Café com ADM
#

As 7 habilidades humanas para desenvolvimento de software ágil

A adoção de práticas ágeis de desenvolvimento de software cresceu muito desde os final dos anos 90, após Ken Schwaber ter elaborado o Scrum e publicado seu livro [SCH01]. Uma simples comparação entre Scrum e RUP no Google Trends mostra que a busca por "Scrum" vem crescendo enquanto a busca por RUP vem caindo a cada dia.

É cada vez mais evidente que métodos com mais processos, papéis e artefatos têm dado lugar a métodos mais leves, colaborativos e que mostram resultado e valor para o cliente mais rapidamente. Diversos autores vêm publicando muitos livros e artigos sobre métodos ágeis, porém poucos dão a devida importância ao principal fator que faz a agilidade realmente ser conquistada em sua essência: o fator humano.

É natural que muitos profissionais da área de Tecnologia da Informação (TI) não deem muita ênfase ao fator humano ao adotar um processo de desenvolvimento de software, uma vez que ele está intrinsicamente ligado a fatores psicológicos, sociais e comportamentais, os quais geralmente não são tema de estudo da TI. Porém, ignorar esse fator tão importante pode fazer com que a decisão do uso de um processo ágil (como o Scrum) gere frustração, desmotivação dos profissionais e desperdício de recursos da empresa.

Assim, relato a seguir algumas características e habilidades fundamentais que irão facilitar a aplicação de práticas ágeis em sua essência.

Competência: a equipe deve ser competente, isto é, devem ter as habilidades específicas de software necessárias e conhecer as tecnologias envolvidas em um determinado projeto ou iniciativa. Além disso as pessoas devem possuir conhecimento generalizado dos processos utilizados. Não se pode dizer que uma equipe não consegue trabalhar de forma ágil se ela não conhece os principais conceitos deste processo. Em muitas empresas, parte da equipe possui todas as habilidades técnicas necessárias, mas não conhece o processo. Isso pode ser endereçado com um simples workshop liderado por alguém que já conhece o processo.

Colaboração: a boa e velha habilidade de trabalhar em equipe é também fundamental. As pessoas devem colaborar entre si e com todos os envolvidos, pelo bem do projeto. Isso exige acima de tudo humildade. Até o mais sênior dos desenvolvedores tem muito o que aprender com outros colegas.

Foco: todas as pessoas da equipe devem estar focados em um único objetivo comum: entregar ao cliente um incremento de software funcionando, no prazo combinado. A equipe deve focar também em adaptações contínuas, sempre melhorando o processo conforme as necessidades. Lembre-se que a própria equipe deve parar de tempos em tempos (exemplo, a cada 15 dias) para refletir sobre o que está bom e o que pode ser melhorado no processo de trabalho.

Tomada de decisão: a equipe de desenvolvimento deve ter liberdade pra controlar seu próprio destino. Deve ter autonomia em assuntos técnicos e de projeto. É a equipe quem deve definir a melhor maneira de controlar versões de código, fazer builds, deploys, executar testes, documentar requisitos, etc. A empresa pode (e deve) sugerir boas práticas, mas no fim é a equipe (auto organizável) que irá adotar os métodos ou processos que ache melhor. As pessoas envolvidas no desenvolvimento devem saber lidar com situações conflitantes, ambiguidade e mudanças frequentes, pois são cenários que acontecem cada vez mais no dia-dia das empresas. É necessário que a equipe registre as principais lições aprendidas, o que irá facilitar no processo de melhoria contínua.

Confiança e respeito: a equipe deve ser consistente e precisa demonstrar a confiança e o respeito necessário para tornar a equipe forte. Lembre-se que o principal objetivo é tornar o time forte o bastante para que o todo seja maior que a soma das partes.

Auto organização: é a própria equipe que deve se organizar para realizar o trabalho. É preciso procurar a todo instante o que mais pode ser melhorado no processo para que ele se adeque ainda mais ao ambiente. A auto organização tem benefícios técnicos, mas é muito importante para melhorar a colaboração. A equipe seleciona quanto trabalho acredita ser capaz de realizar na iteração e se compromete.

Ao implantar processos ágeis em sua empresa, lembre-se sempre que os membros da equipe devem orientar as características do processo. O processo ágil de desenvolvimento foca em talentos e habilidades das pessoas (indivíduos). Assim, o processo deve ser moldado de acordo com as pessoas e as equipes envolvidas. Tome cuidado para não fazer o contrário, ou seja, moldar as pessoas e equipes ao processo.

Como disse Ken Schwaber em [SCH02], “nada desmotiva tanto uma equipe quanto um terceiro assumindo compromissos por ela, e nada a motiva tanto quanto aceitar a responsabilidade de cumprir completamente o que foi prometido por ela própria”.

Um abraço e até breve. Sucesso!

Referências:

  • [SCH01] SCHWABER, Ken; BEEDLE, Mike. “Agile software development with Scrum”. 2002. Prentice Hall.
  • [SCH02] SCHWABER , Ken. “Agile Processes and Self-Organization”. 2002.
ExibirMinimizar
CEO Outllok, A era da liderança resiliente. Confira os Resultados.