28 pontos por spilist2 2024-07-22 | 1 comentários | Compartilhar no WhatsApp

Experiência recente de depuração em par

  • “Um problema em que o resultado de executar uma determinada ação para vários itens na página de lista às vezes não aparece refletido na página de item individual”. Não foi possível identificar o caminho de reprodução
  • Assim que ouvi isso, sugeri verificar o caso em que “você primeiro entra na página do item individual, depois volta para a página de lista e então executa a ação em questão”. Esse era mesmo o caminho de reprodução

A sessão de depuração em par terminou em menos de 5 minutos, mas isso me deixou pensando

  • Como eu consegui perceber isso, e por que esse colega não conseguiu?
  • Como posso elevar de forma eficaz a capacidade dessa pessoa?

Como sênior, esse tipo de situação acontece com certa frequência em code reviews e trabalho em dupla

  • O sênior percebe rapidamente alguma parte suspeita e faz uma sugestão de melhoria plausível.
  • O júnior recebe isso com admiração.
  • Da próxima vez, surge de novo um problema parecido, embora não exatamente igual.
  • O sênior percebe de novo e faz outra sugestão de melhoria.
  • O júnior entende um pouco mais e erra menos, mas não evolui tão rápido quanto eu gostaria.

Isso acontece porque só a solução do sênior é transmitida, enquanto o processo cognitivo por trás dela — ou seja, “como foi possível chegar àquele julgamento e àquela tomada de decisão” — não é transmitido

O CDM, desenvolvido por Gary Klein, é um bom método para analisar esse processo cognitivo com relativa rapidez, até mesmo por conta própria

  • Cues : What were you seeing, hearing, smelling ...?
  • Knowledge, Source : What information did you use in making this decision, and how was it obtained?
  • Analogues : Were you reminded of any previous experience?
  • Goals : What were your specific goals at this time?
  • Options : What other courses of action were considered by or available to you?
  • Basis : How was this option selected/other options rejected? What rule was being followed?
  • Experience : What specific training or experience was necessary or helpful in making this decision?
  • Aiding : If the decision was not the best, what training, knowledge, or information could have helped?
  • Tools : When making this decision, were there any tools that helped that specific decision?
  • Time Pressure : How much time pressure was involved in making this decision?
  • Situation Assessment : Imagine that you were asked to describe the situation to someone superior to(in terms of expertise, for example) you at this point, how would you summarize the situation?
  • Hypothesis : If a key feature of the situation had been different, what difference would it have made in your decision?

Conclusão

  • Em reviews de PR no GitHub, que em geral acontecem de forma assíncrona, o conhecimento tácito do revisor tende a aparecer muito menos
  • Nesse momento, se a pessoa conscientemente se fizer as perguntas do CDM e incluir junto “como eu consegui pensar nesse comentário”, acredito que tanto a capacidade do revisor quanto a de quem escreveu o PR vão evoluir muito mais rápido
  • Naturalmente, isso pode ser extremamente útil também fora do desenvolvimento: em qualquer área que exija trabalho cognitivo, seja eu quem ensina ou quem aprende.

1 comentários

 
inthelife 2024-07-22

Tradução parcial do CDM (DeepL):

  • Pistas: o que você viu, ouviu, cheirou...?
  • Conhecimento, fontes: que informações você usou para tomar essa decisão e como as obteve?
  • Semelhança: alguma experiência anterior lhe veio à mente?
  • Objetivo: qual era o objetivo específico naquele momento?
  • Opções: que outras linhas de ação foram consideradas ou poderiam ser escolhidas?
  • Fundamentação: como esta opção foi escolhida e as outras rejeitadas? Que regras foram seguidas?
  • Experiência: que treinamento ou experiência específicos eram necessários ou ajudaram a tomar essa decisão?
  • Ajuda: se não foi a melhor decisão, que treinamento, conhecimento ou informação teria ajudado?
  • Ferramentas: havia alguma ferramenta específica que ajudou a tomar essa decisão?
  • Pressão de tempo: quanta pressão de tempo havia para tomar essa decisão?
  • Avaliação da situação: supondo que, nesse momento, pedissem para você explicar a situação a alguém mais graduado que você (por exemplo, em termos de especialização), como você a resumiria?
  • Hipótese: se as principais características da situação fossem diferentes, que diferença isso faria na sua decisão?