Cave mais fundo

Tradução para português brasileiro de Dig deeper.

Um problema pequeno pode ser um sintoma de uma situação complexa que ainda não foi abordada. Você deve se perguntar:

  • Qual é o problema?
  • Qual é o contexto do problema?
  • O que levou a sua organização a esse desdobramento?
  • Como pode você pode resolver esse problema?
  • Há problemas similares que você pode resolver com soluções similares?
  • Como você pode gerenciar essa situação complexa?

Gatilho

Algumas semanas atrás, eu notei que o nosso e-mail de lembrete da Avaliação 4 incluía um alerta para mentores do Outreachy que lhes dizia que o atraso na submissão da avaliação do progresso de seu mentorando resultaria em um atraso na autorização de seu pagamento final — e essa informação não está correta.

Outreachy oferece estágios em projetos de software livre e ciência aberta a pessoas sujeitas a viés sistêmico e impactadas por sub-representação na indústria técnica onde vivem. Nós gerenciamos duas turmas por ano:

  • A nossa turma de maio, entre maio e agosto;
  • A nossa turma de dezembro, entre dezembro e março.

Atualmente, as pessoas organizadoras do Outreachy coletam avaliações de mentores e mentorandos quatro vezes durante o período de estágio. Internamente, nós nos referimos a esses ciclos de avaliação como Avaliação 1 a 4. Os ciclos de avaliação 1 e 3 são vinculados às autorizações de pagamento 1, enquanto os ciclos de avaliação 2 e 4 nos permitem continuar a monitorar o progresso e o sucesso de nossos mentorandos.

A adição de um quarto ciclo de avaliação é uma mudança recente. Antes de março de 2022, nós só coletávamos avaliações de pessoas mentores e mentorandos três vezes. Nós chamávamos esses ciclos de avaliação de avaliações inicial, intermediária, e final. Nós decidimos aumentar a frequência do recolhimento de avaliações por alguns motivos:

  • Para monitorar o progresso de mentorandos com atenção, e agir mais cedo quando problemas aparecerem;
  • Para diminuir o tempo que mentorandos devem esperar para receber o seu segundo pagamento;
  • Para permitir que a Software Freedom Conservancy termine de pagar a maioria, se não todos os mentorandos das turmas de dezembro antes do fim do seu ano fiscal.

Nós mandamos e-mails automatizados para coordenadores, mentores, e mentorandos o tempo todo; alguns dos e-mails mais importantes são enviados diretamente do nosso painel de organizadores. O nosso painel é dinâmico: ele recomenda diferentes ações assistidas por automação de acordo com a etapa atual das duas turmas (uma vez que muitas delas acontecem ao mesmo tempo). Um desses e-mails é um lembrete para mentores submeterem uma avaliação sobre seus mentorandos se eles ainda não fizeram isso. O modelo usado para esse e-mail automatizado muda um pouco se o lembrete é enviado após o fim do prazo de submissão — por exemplo, ele sempre inclui uma marcação [URGENTE] no assunto do e-mail, e pode incluir uma mensagem afirmando que o pagamento do mentorando pode atrasar se aquela avaliação é vinculada a uma autorização de pagamento. Como você já sabe, a Avaliação 4 não é uma delas.

Cavando

Eu decidi dar uma olhada na pasta do nosso site que contém todos os modelos de e-mail automatizados e percebi que temos quatro modelos de e-mail para a Avaliação 4:

  • final-feedback-instructions.txt → Atualizado há 2 anos por Sage Sharp, uma das pessoas organizando o Outreachy, para refletir as nossas políticas de autorização de pagamentos atuais.
  • final-feedback-reminder.txt → Atualizado há 5 anos, e que ainda inclui um alerta de atraso de pagamento.
  • feedback4-feedback-instructions.txt → Criado há 2 anos, e que inclui instruções corretas para a Avaliação 4.
  • feedback4-feedback-reminder.txt → Criado há 2 anos, e que inclui um lembrete correto para a Avaliação 4.

Bem, se um lembrete atualizado para a Avaliação 4 existe no nosso código, por que o nosso site não está puxando esse lembrete?

No alvo

O código do nosso site ainda chama os ciclos de avaliação 1, 2, e 4 de ciclos de avaliação inicial, intermediária, e final. Foi muito mais fácil e menos demorado para o meu colega organizador adicionar mais um ciclo de avaliação como Avaliação 3 entre os ciclos de avaliação intermediária e final do que renomear cada menção a cada ciclo de avaliação em cada arquivo.

O arquivo emails.py puxa modelos de e-mail com base em um stage, ou seja, uma etapa:

def feedback_email(intern_selection, request, stage, past_due, **kwargs):
    emails = []
    if past_due:
        emails.append(organizers)
        for m in intern_selection.mentors.all():
            emails.append(m.mentor.email_address())
        emails = emails + intern_selection.project.project_round.community.get_coordinator_email_list()
        template = 'home/email/' + stage + '-feedback-reminder.txt'
    else:
        emails.append(intern_selection.applicant.applicant.email_address())
        for m in intern_selection.mentors.all():
            emails.append(m.mentor.email_address())
        emails = emails + intern_selection.project.project_round.community.get_coordinator_email_list()
        template = 'home/email/' + stage + '-feedback-instructions.txt'
    send_group_template_mail(template, {
        'intern_selection': intern_selection,
        'current_round': intern_selection.project.round(),
        },
        request=request,
        recipient_list=emails,
        **kwargs)

Lendo o arquivo dashboard.py, se torna claro que o código ainda chama a Avaliação 4 de avaliação final:

class FinalFeedbackInstructions(FeedbackInstructions):
    """
    Send final feedback instructions to mentors and interns.

    When: When final feedback forms open, and again if feedback is missing.
          Emails may be sent with an URGENT subject if feedback is late.
          Emails may be sent multiple times if there is a internship extension.

    Templates: home/templates/home/email/final-feedback-reminder.txt
               home/templates/home/email/final-feedback-instructions.txt
    """
    description = 'Final Feedback Reminder'
    slug = 'final-feedback-instructions'

    @staticmethod
    def due_date(current_round):
        return current_round.finalfeedback

    def generate_messages(self, current_round, connection):
        if not self.request.user.is_staff:
            raise PermissionDenied("You are not authorized to send reminder emails.")

        # Only get interns that are in good standing and
        # where a mentor or intern hasn't submitted feedback.
        interns = current_round.get_interns_with_open_final_feedback()

        for i in interns:
            email.feedback_email(i, self.request, "final", i.is_final_feedback_on_intern_past_due(), connection=connection)

A solução de curto prazo e que requer a edição de apenas um arquivo é editar final-feedback-reminder.txt para usar a mesma mensagem contida em feedback4-feedback-reminder.txt. Mas a solução de longo prazo é reconhecer que a nossa terminologia é confusa e chegar a um acordo sobre como nos referimos a ciclos de avaliação em comunicações internas e externas.

Por exemplo, a Software Freedom Conservancy ainda usa as denominações inicial e final para se referir a ciclos de avaliação vinculados a autorizações de pagamento. O arquivo JSON que usamos para assisti-los com suas automações no sistema RT por algum motivo chama a Avaliação 3 de avaliação intermediária (e nós precisamos renomear manualmente o arquivo para avaliação final toda vez que mandamos novas autorizações de pagamento). É uma dívida técnica, de processos, e de arquitetura de informação que continuará nos assombrando até que nós abordemos as suas causas raízes. É por isso que você precisa continuar cavando mais fundo.

Mais fundo

Quando Sage eu tivemos um 1:1 no qual falamos sobre o problema com o ciclo de avaliação 4, ele sugeriu que eu removesse os arquivos redundantes que não usamos, feedback4-feedback-instructions.txt e feedback4-feedback-reminder.txt. Enquanto eu fazia isso, eu decidi olhar os modelos que usamos para outros ciclos de avaliação para verificar se existiam quaisquer problemas similares que eu poderia resolver com uma solução similar. Isso me levou às seguintes descobertas:

  • initial-feedback-instructions.txt ainda chama o ciclo de avaliação 1 de “avaliação inicial”. O assunto do e-mail do modelo initial-feedback-reminder.txt também chama a parcela de U$3000 de “pagamento inicial”.
  • midpoint-feedback-reminder.txt ainda chama o ciclo de avaliação 2 de “avaliação intermediária”.
  • feedback3-feedback-reminder.txt não inclui um alerta sobre atrasos no pagamento de mentorandos no assunto do e-mail ou na mensagem. feedback3-feedback-instructions.txt sequer menciona que esse ciclo de avaliação é vinculado a uma autorização de pagamento.

E foi assim que a minha solução que requeria a edição de um só arquivo se tornou uma proposta de correção que envolve múltiplos arquivos!

Graça

O Outreachy é organizado por uma equipe bem pequena:

  • Karen Sandler, uma das co-fundadoras do Outreachy junto com Marina Zhurakhinskaya;
  • Sage Sharp, nosso agente de mudança cultural;
  • Eu, Anna e só, como nossa arquiteta de procesos e informação;
  • Omotola Omotayo, nossa gerente de comunidade;
  • Tilda Udufo, nossa porta-voz de mentores.

Nós atingimos o marco de 1.000 mentorandos no ano passado após 14 anos de história. Nós apoiamos 40 organizações mentoras, 191 mentores, e 121 mentorandos em 2023. Esse trabalho incrível só é possível gracas ao apoio de nossos doadores, corporativos e individuais, e da Software Freedom Conservancy. (Tenho certeza de que não estou sozinha em achar que o nosso trabalho é importante e impactante. Se você sente o mesmo, por favor, nos apoie!)

Nós acumulamos dívidas como essa porque estávamos — e continuamos — sob a pressão de recursos limitados e restrições de tempo. Apesar de termos as nossas áreas de interesse refletidas em nossos títulos, na realidade, toda pessoa organizadora do Outreachy que você conhece exerce quatro ou cinco papéis diferentes de uma só vez. A implementação de Sage de um quarto ciclo de avaliação é brilhante porque, apesar de ter muito pouco tempo para lançar essa funcionalidade, a sua solução ainda é efetiva. Ela tem os seus efeitos colaterais, mas nós temos a capacidade de aumentar a sua eficiência.

Como arquiteta de processos, é a minha missão analisar a nossa estrutura organizacional e encontrar formas de melhorá-la. No entanto, também tenho a responsabilidade de entender que nós escolhemos fazer algo de um jeito específico não por que se trata da melhor solução possível, mas por que se trata do melhor que podemos fazer naquele momento específico.

  1. Em abril de 2024, Outreachy oferecia uma bolsa-auxílio a seus mentorandos totalizando U$7000. O ciclo de avaliação 1 é vinculado à autorização do pagamento de uma parcela de U$3000, enquanto o ciclo de avaliação 3 é vinculado à autorização do pagamento de uma parcela de U$4000. 

Linked mentions