Ser ágil é uma questão de princípios

Parte 2 - Comunicação


Que tal começar pelo começo? Parece óbvio, repetitivo e até bobo, mas, quando se trata de princípios ágeis, a palavra certa está mais próxima de “fundamental” do que de “clichê”. Sim, pois aprender agile se torna um processo bem mais fácil quando começamos pela base. Ou seja, pelos valores e princípios.

Quanto mais internalizadas essas informações estiverem, mais consciente se torna a escolha dos processos e ferramentas. Afinal, você consegue saber por que escolheu a metodologia X ao invés da Y e entende que, para cada prática, existe um fundamento.

Se você é do time dos que adoram porquês e comos, se acomode confortavelmente e aproveite a leitura. Se você já conhece o Manifesto Ágil de cima para baixo e de trás pra frente, vai poder revisitar cada um dos princípios e perceber que a aplicação dos conceitos pode variar de time para time (e isso é bom).

Na semana passada, começamos a destrinchar os princípios ágeis sobre entrega de valor. Com detalhes, exemplos e comentários. De quatro em quatro explicaremos, em três posts, os 12 “mandamentos” do Manifesto Ágil.

Já foram quatro, agora faltam mais 8. Então, chega de mimimi e mãos à obra!

Pessoas de negócio e desenvolvedores devem trabalhar diariamente juntos

Sabe aquele modelo de comercialização no qual o cliente envia a demanda, o profissional produz exatamente o que ele pediu e entrega tudo de uma vez, na data que foi combinada? Para o desenvolvimento ágil, modelos que não incentivam a comunicação entre o time, o cliente e o usuário não existem.

Ainda é comum encontrar formatos que tentam substituir a comunicação direta, como a produção de documentos detalhados para que o desenvolvedor saiba com precisão o que deve ser entregue. De longe, essa opção pode até parecer viável, mas na prática ela traz uma série de novos problemas, como o custo de produção e o fato de não resolver pontualmente a questão, já que interpretação de texto ainda é um gargalo.

Além disso, a documentação se torna desatualizada muito rapidamente e engessa todo o processo de desenvolvimento. E aí, a agilidade vai para o espaço.

A solução para isso é óbvia. Dentro de um projeto, o objetivo de todos os envolvidos é o mesmo. Por isso, a aproximação entre quem entende do negócio e o time de desenvolvimento é lógica e muito importante.

A boa comunicação evita trabalhos desnecessários, mantém o nível de motivação da equipe lá em cima, corta custos e ainda envolve o usuário em todo o processo — muitas vezes, o pessoal de negócio é até mais próximo do usuário do que a equipe de desenvolvimento. Todas essas vantagens juntas aumentam as chances de sucesso do software.

Quanto mais direta for a comunicação, melhor. A convivência diária também é um dos fatores que aumenta a qualidade da informação entre o time. Como nem sempre é possível estarem todos no mesmo lugar, ou porque o cliente mora em outra cidade ou viaja muito, manter contato regularmente por ferramentas como Skype ou Hangout ajuda a estreitar o relacionamento.

Construa projetos com pessoas motivadas. Forneça o ambiente e o suporte necessários e confie que eles farão o trabalho

Dizer que fazemos parte de um time é muito mais forte do que falar que compomos uma equipe. Nós somos um time porque nos preocupamos uns com os outros e queremos manter todos felizes e satisfeitos com o trabalho.

Nós somos um time porque trabalhamos juntos e nos envolvemos nos processos. Se apenas sentássemos um do lado do outro, sem interação, sem troca de ideias e sem motivação, seríamos apenas uma equipe qualquer fazendo qualquer coisa em um escritório qualquer.

Porém, a gente sabe que fatores externos também influenciam diretamente na motivação (ou desmotivação) do time. De coisas básicas, como cadeiras desconfortáveis e internet ruim, a fatores mais cruciais, como ausência de autonomia e falta de espaço para opiniões. Tudo isso impacta negativamente a rotina de trabalho. Tirar esses problemas do caminho ajuda a manter o foco no que é realmente importante.

Por isso que a gente fala, e volta a repetir: o cuidado com o local de trabalho e a valorização de cada membro do time importa. E importa muito. Pessoas felizes trabalham melhor e muito mais motivadas. Foi-se o tempo que ter alguém fungando atrás de você, verificando se você realmente trabalha e como você desenvolve as suas tarefas significava controle sobre os projetos. Motivação e liberdade (com responsabilidade) têm tudo a ver.

Uma conversa cara a cara é a melhor forma de transmitir e receber informação do time de desenvolvimento

Existem coisas que só uma conversa presencial é capaz de resolver. A entonação, os gestos e o auxílio de um quadro para rabiscar as ideias fazem toda a diferença e evitam mal entendidos.

Mas não é a impossibilidade de uma conversa cara a cara que vai arruinar a comunicação do time. Existem ótimas ferramentas que ajudam a manter o diálogo ativo. A gente usa bastante o Slack para conversar sobre os projetos e enviar documentos, o Hangouts pra fazer reuniões de alinhamento fora do horário comercial ou quando precisamos falar com clientes em outra cidade e o Taiga para gerenciar projetos.

Processos ágeis promovem um ambiente sustentável. Stakeholders, desenvolvedores e usuários devem ser capazes de manter um ritmo constante indefinidamente

Ser sustentável é mais importante do que ser produtivo. Oi? É isso mesmo. Produzir muito não é sinônimo de ser ágil. Até porque, os times não são formados só por desenvolvedores — principalmente se o processo utilizado for o incremental (aquele que entrega pequenos pedaços de software funcionais em ciclos constantes). Produzir muito também gera desperdícios.

Ficou confuso? A gente te explica. Produzir mais software pode não ser uma boa pedida quando o levantamento do que é prioridade (backlog) não acompanha o ritmo. Em outras palavras: do que adianta produzir um monte se o que precisa ser feito não sai da lista de prioridades?

Ao mesmo tempo, é arriscado elaborar muito código sem que as atualizações cheguem ao usuário ou, ainda, antes de serem aprovadas pelo cliente.

Deixamos implícita essa afirmação em um texto sobre como o ambiente de trabalho impacta no desempenho profissional, mas vale frisar: hora extra não é o mesmo que comprometimento. Na verdade, é um jeito de deixar escapar falhas no planejamento.

Para o desenvolvimento ser sustentável é preciso que o time esteja alinhado, que as tarefas estejam bem definidas e que as metas de produção sejam respeitadas. Até porque, em um time não existe meu software ou seu software. O mérito é sempre de todos. Dessa forma, trabalhar junto requer a consciência de que o esforço individual impacta no todo: o seu trabalho sempre influencia o trabalho do outro.

Dicas de leitura

Por hoje é só, pessoal. Na semana que vem tem mais. Mas antes de dar tchau, vamos deixar algumas sugestões de leitura interessantes e complementares, sobre esse mundo encantado (ou não) que é o desenvolvimento ágil:

  • A primeira parte da série "Desvendando os princípios ágeis", com os quatro primeiros princípios do Manifesto Ágil;
  • Este artigo sobre a relação entre a motivação e o local de trabalho, para te ajudar a entender melhor o 5º princípio e;
  • Para quem está começando agora a estudar o Manifesto Ágil, este texto porreta sobre esse documento maravilhoso.

Agora sim: tchau! o/


Gostou do texto? Que tal recomendá-lo? Você também pode seguir a gente no Facebook e no Twitter e ficar por dentro das nossas atualizações semanais. (: