Tudo Que Você Precisa é Foco

Esse post foi traduzido automaticamente do inglês. Se você encontrar algum erro, por favor entre em contato.

Focus Foco, por MidJourney

Um dos desafios mais comuns que um gestor enfrenta é melhorar a produtividade de um time. O contexto varia, mas é seguro apostar que qualquer pessoa que tenha sido gestora por mais de 5 minutos já ouviu alguma variação da pergunta “Por que esse time não entrega mais rápido?”

Existem obviamente centenas de aspectos (e combinações deles) que influenciam o quanto e quão rápido um time consegue entregar, incluindo como você mede produtividade em primeiro lugar. Um time é um grupo complexo influenciado pelos processos que implementa, pela tecnologia que utiliza, pelas pessoas que o compõem e pela organização na qual existe.

No entanto, uma regra que tenho aplicado cada vez mais quando ajudo gestores nessa situação é perguntar: Você tem certeza de que seu time está trabalhando no que você acha que deveria estar trabalhando?

Trabalho em Progresso Ilimitado

A indústria de tecnologia aprendeu muitas lições na última década. Ela saiu de projetos Waterfall, onde times gerenciavam software de maneira muito estruturada, para metodologias mais iterativas, que valorizam ciclos curtos de feedback que se encaixam melhor na flexibilidade da engenharia de software. Ao longo dessa jornada, um dos aprendizados foi que ter menos itens sendo trabalhados simultaneamente leva a uma vazão mais rápida, o agora famoso conceito de redução do trabalho em progresso.

“A maneira mais eficaz de melhorar a produtividade é eliminar trabalho.” ~William E. Conway Jr.

O conceito de trabalho em progresso vem dos Sistemas de Produção Lean, onde uma grande quantidade de inventário é considerada um problema, já que quanto mais inventário existe, mais risco há no processo (e se os clientes não comprarem?). O mesmo princípio se aplica ao trabalho intelectual, onde quanto mais itens uma pessoa trabalha, mais tempo levará para completá-los. Ter múltiplos itens inacabados aumenta o risco, pois o contexto ao redor do trabalho tem mais chance de mudar quanto mais tempo ele está em andamento.

Qualquer pessoa que já trabalhou com software consegue entender como isso faz sentido. Como engenheiro, você acumula uma quantidade significativa de contexto na cabeça para resolver um problema, ou seja, escrever código. Mas então, quando você está prestes a terminar as mudanças, outro item mais urgente aparece. Depois, para retornar ao item original, você precisa recuperar todo aquele contexto que tinha antes. E então, quando você finalmente está prestes a fazer o merge das suas alterações, percebe que outra pessoa fez um commit que invalida o seu — hora de começar de novo.

No entanto, se olharmos para uma empresa de tecnologia moderna, parece que meio que esquecemos disso como indústria — ou pelo menos não estamos prestando muita atenção. Hoje em dia, é muito difícil encontrar um engenheiro de software em um time trabalhando em apenas uma coisa.

E isso não é porque engenheiros de software são pessoas que se distraem facilmente. A engenharia de software moderna, da forma como a maioria das empresas a pratica, é um campo minado de distrações. Times têm múltiplos projetos, engenheiros recebem múltiplos tickets, gestores puxam pessoas para missões paralelas, e itens urgentes como incidentes e trabalho operacional são adicionados à mistura.

Então, quando as pessoas me perguntam como deveriam abordar a melhoria da produtividade de um time, meu conselho é primeiro garantir que o time tenha foco e esteja trabalhando no que querem que trabalhe — as iniciativas que levarão ao maior impacto. Embora existam muitas formas de um gestor liderar melhorias, minha experiência me diz que trabalhar na coisa certa é a principal alavanca na maioria dos casos.

Remoto, Individual e Confuso

Embora o trabalho em progresso em engenharia de software sempre tenha sido um desafio, múltiplas tendências na indústria atual agravaram o problema: trabalho remoto, foco individual e falta de liderança.

É óbvio que o trabalho remoto veio para ficar e que times de software podem ser muito eficientes trabalhando remotamente. Dito isso, o trabalho remoto tornou ainda mais difícil perceber quando as pessoas perdem o foco. Um engenheiro pode estar tentando trabalhar em um problema específico e, do nada, alguém na organização entra em contato pedindo ajuda. Claro, posso entrar em uma call rápida. No dia seguinte, o relatório de trabalho dele diz: “Não tive muito tempo para trabalhar nisso. Fui desviado ajudando outra pessoa”. E tudo isso acontece sem ninguém no time perceber.

Outro aspecto que contribui para a falta de foco é a importância da conquista individual na indústria de tecnologia. Em muitas empresas, o principal caminho para progressão na carreira é ter impacto individual, o que significa trabalhar principalmente sozinho em projetos, entregando-os de ponta a ponta. Trabalho individual naturalmente leva a distrações, já que ninguém (ou pelo menos a maioria das pessoas) consegue se concentrar e manter o foco por longos períodos enquanto enfrenta problemas complexos. Isso também incentiva as pessoas a pegarem mais trabalho quando têm folga, já que mais (PRs, tickets, mudanças) é frequentemente visto como impacto.

Por último, foco é um problema de liderança. É comum ver times e culturas empresariais onde gestores estão tão preocupados em não microgerenciar seus times que não conseguem perguntar ou questionar no que os engenheiros estão trabalhando. Essa situação leva as pessoas a persistirem em suas distrações por mais tempo sem nenhum caminho claro para serem redirecionadas. Embora a maioria dos gestores entenda que limitar o trabalho em progresso é importante, poucos tomarão a iniciativa e estabelecerão processos para tornar isso realidade.

Em resumo, manter o foco de um time na indústria e no ambiente atuais não é fácil.

Um Foco Melhor é Possível

O lado positivo nessa situação é que um foco melhor é possível e, quando alcançado, pode impactar significativamente a performance de um time. Se é isso que você está tentando fazer, aqui estão algumas formas práticas de alcançá-lo.

Foque seus check-ins no trabalho, não nas pessoas. Se o seu foco como gestor é cada item de trabalho e como ele pode ser fechado mais rápido, o time também vai se centrar nisso. Uma forma simples é usar suas stand-ups.

Acompanhe os itens de trabalho do início ao fim. Torne-se especialista em entender por que o trabalho anda mais rápido ou mais devagar no seu time. Onde ele para? Como geralmente fica bloqueado? Quanto mais você entender, melhor poderá agir.

Pareie com engenheiros. Eu encorajo gestores a parear com engenheiros que estejam enfrentando desafios. Em vez de dizer às pessoas para fazerem diferente, trabalhe com elas e veja seus desafios em primeira mão. Isso lhe dará apreciação e compreensão da situação delas e pode revelar melhorias para ajudar o trabalho a andar mais rápido.

Remova distrações. Parece óbvio, mas remover distrações é um desafio perene. Sempre haverá coisas novas, problemas e ideias. Um EM pode ajudar criando a estrutura para capturar esses novos itens, colocando-os na prateleira enquanto o trabalho em progresso é completado, e trazendo-os de volta depois.

Clarifique a prioridade. Prioridade não é sobre ideias boas vs ruins. É sobre qual item é mais importante entre o que provavelmente são duas ótimas opções. Como gestor, também é essencial continuamente clarificar as prioridades do trabalho, colaborar com product managers e ajudar o time a entender que existe um trade-off sempre que algo novo começa.

Por último, embora as práticas acima sejam relativamente simples, persistir com elas pode ser desafiador. Como em qualquer mudança, haverá resistência, especialmente quando envolve práticas que influenciam a performance percebida dos indivíduos. É sempre importante comunicar, alinhar, definir e executar uma estratégia de forma consistente para alcançar resultados significativos.

Gostou deste post? Escrevo sobre liderança em times de engenharia de software. Assine para ficar por dentro.