Remote-first: um modelo comportamental para times de desenvolvimento de produto
Segundo a Forbes Magazine, no ano de 2020, cerca de 50% das pessoas vão trabalhar de maneira remota. Com a chegada de 2020, muitas de nós repentinamente nos deparamos com uma realidade que há seis meses pareceria extrema. Não faltam dicas: uma busca rápida na internet revelará que há uma variedade de livros, blogs, artigos e cursos oferecendo conselhos sobre como trabalhar remotamente. Apesar disso, muitos times estão agora sofrendo com a realidade e a produtividade ao trabalhar remotamente.
A autora deste artigo trabalhou com times remotos e distribuídos globalmente por mais de 5 anos, cobrindo mais de 17 fusos horários. Nesse contexto, nós entregamos, damos suporte e executamos consistentemente software de alta qualidade, de modo que temos algumas sugestões que podem ajudar.
Uma observação importante é que times remotos compensam a distância física tentando trabalhar como se fossem presenciais. Nós acreditamos que isso é um erro e que, ao invés de tentar compensar o afastamento físico, o melhor é aceitar a situação e abster-se de tentar trabalhar como um time presencial.
Como fazer isso? Nós achamos que as ideias por trás de padrões de projeto de software podem oferecer uma solução.
Vamos usar as técnicas do padrão comportamental para construir um time remote-first bem-sucedido, como é descrito por Martin Fowler em seu artigo Remote versus Co-Located Work, sendo inspirado por vários clássicos: GoF Design Patterns, The Mediator, The Decorator, The Chain of Responsibility, The Observer, The Strategy Pattern e The Adaptor Pattern.
O objetivo de documentar um padrão é prover uma série de técnicas replicáveis que possam ser usadas para construir um time de produto remoto de alta performance. Assim é possível aproveitar os diversos benefícios de trabalhar de maneira remota enquanto tentamos corrigir algumas possíveis desvantagens. Este modelo traz alguma restrições de recrutamento, mas a garantia da produtividade independentemente da locação é um benefício chave.
Técnicas
O Padrão Mediador
O padrão Mediador tem o objetivo de resolver problemas associados com acoplamento entre objetos que causam dependências em um software. Este também é um problema em times remotos, especialmente quando as pessoas estão distribuídas em múltiplos fusos horários.
Com base na lógica do padrão mediador, nós sugerimos o "bastão de revezamento", que é uma técnica feita para construir um time em que todos os membros estejam remotos e localizados em diferentes fusos horários, mas com uma sobreposição razoável entre a maioria. A escolha cuidadosa dos fusos horários pode permitir que o time esteja disponível durante as 24 horas do dia e ainda dentro das horas normais de trabalho. Idealmente deveria existir um par de profissionais em cada faixa de fuso horário, resultando em um acoplamento relaxado entre integrantes do time. Cada profissional pode trabalhar de forma autônoma na maior parte do tempo, mas não completamente desconectada.
O padrão mediador também propõe que seja possível mudar a interação entre vários objetos de maneira independente, um requisito suportado por outra técnica importante.
A técnica de "colocar os pingos no is" demanda que todos os membros do time sejam capazes de colaborar em uma ampla gama de tarefas com qualquer outro membro. Trata-se de garantir que não haja algum trabalho em andamento que é conhecido apenas por uma pessoa. Sempre há alguém que possa retomar uma tarefa e manter o andamento das coisas. Para isso, é necessária uma seleção cuidadosa da localização das pessoas e que o time seja completamente multidisciplinar.
Um benefício da combinação dos dois padrões descritos acima é a resiliência deste time. Se algo que impactaria em disponibilidade ou produtividade acontece em uma das localizações, os membros em áreas não afetadas potencialmente não serão afetados.
O Padrão Decorador
O padrão decorador propõe que novas responsabilidades ou comportamentos sejam adicionadas e removidas de um objeto durante a execução do software.
A Corrente de Responsabilidade
A corrente de responsabilidade é um padrão que propõe que o acoplamento entre quem emite e quem recebe uma solicitação seja evitado. Estes padrões se baseiam na já citada técnica de "colocar os pingos nos is".
Convergência Dinâmica
Convergência Dinâmica é uma técnica do padrão de estratégia, que possibilita a seleção de um algoritmo de uma determinada família de algoritmos durante o tempo de execução do software. Esta técnica propõe que um time, além de ser amplamente multidisciplinar, deve ter indivíduos (mais de um) que possuam especialidade em um ou mais domínios-chave, o que significa que uma parte substancial do trabalho não dependa de uma pessoa específica. A flexibilidade no pareamento é importante e cada integrante do time também deve cuidar para que regularmente colabore com todos os outros membros. Isto reduz riscos de negócio e promove colaboração, conexão, compartilhamento de conhecimento e uma cultura de responsabilidade compartilhada por um produto ou serviço.
Ancoragem
É uma técnica inspirada pelo padrão adaptador, que permite que interfaces incompatíveis possam trabalhar juntas. A técnica determina que todo membro do time deve se ver como uma "pessoa âncora", cujo papel é dar suporte e coordenar o compartilhamento de informações entre colegas de time nos diferentes fusos horários. Essa é uma prática defendida em Working Out Loud de John Stepper.
Imagem: foto de mulher sentada à mesa em uma sala de estar, usando um laptop
Maneiras de trabalhar e seleção de ferramentas (ou não)
Um time remote-first acaba sendo fortemente dependente de ferramentas online para compartilhamento de trabalho, no entanto, não deveria ser dependente de comunicação síncrona. Métodos síncronos, como videoconferências, podem funcionar para alguns times, mas não são essenciais. Em algumas circunstâncias, esses métodos podem acabar neutralizando algumas das vantagens do trabalho remoto para algumas pessoas. A tecnologia relacionada à videoconferência está se aperfeiçoando, mas a variação da banda larga continua sendo um desafio. Videoconferências podem ser física e psicologicamente desgastantes e, em geral, realizar grandes ou longas reuniões é uma experiência que deixa a desejar.
É possível usar videoconferência como parte de um conjunto de ferramentas mais amplo, mas dar preferência a meios de comunicação assíncronos, como chat online, documentos compartilhados, arquivos armazenados e workspaces online colaborativos é igualmente importante. Outras técnicas incluem criar múltiplas salas de chat com foco em temas variados, por exemplo, um chat apenas para conversas informais, além do óbvio chat para temas gerais do time. Ter uma sala de chat para coisas como alertas relacionados às tarefas e atualizações do quadro de cartões permite que qualquer pessoa se atualize rapidamente sobre como uma parte do trabalho progrediu.
Trabalhar em iterações de duração fixa é desafiador para times cujas semanas de trabalho não coincidem, assim como estimar com base em pontos é difícil, especialmente para um time de produto que utiliza a técnica de "colocar os pontos nos is". Tudo isto é particularmente real quando o produto requer um alto nível de disponibilidade. Para esses times, uma estratégia do tipo fluxo contínuo, como Kanban, que não separa a entrega de novas funcionalidades do trabalho de suporte, apresentar melhores resultados. Com o ganho de experiência, a capacidade de estimar a entrega de novas funcionalidades em times de longa duração melhora, especialmente se as tarefas são fatiadas em suas menores partes possíveis.
Em resumo
O padrão remote-first foi desenvolvido ao longo de cinco anos em um time de produto de longa duração, cujos mebros estão distribuídos em 17 fusos horários diferentes. As técnicas, abordagens de ferramentas e maneiras de trabalhar descritas neste texto foram resultado de muitos erros e acertos, mas contribuíram para o crescimento e sucesso do time.
Ainda ficam dúvidas sobre o quão escalável seria este modelo. Hoje, o time é composto por oito pessoas, com dois pares de profissionais na mesma localização e quatro profissionais sem par. O padrão aponta que um par deveria ser encontrado para os indivíduos solitários antes de considerar adicionar novos fusos horários ao time.
Outro desafio é que integrantes do time precisam de um certo nível de senioridade e experiência para poderem trabalhar usando este padrão. Isso torna mais difícil realizar planos de sucessão e promover o crescimento de indivíduos menos experientes.
Aviso: As afirmações e opiniões expressas neste artigo são de responsabilidade de quem o assina, e não necessariamente refletem as posições da Thoughtworks.