As características do Desenvolvimento Ágil, você saberia dizer quais são? E porque devemos segui-las é fundamental para o sucesso?
O crescimento dos métodos ágeis é uma realidade. O mercado se tornou muito dinâmico. E isso exige agilidade (habilidade de mudar de direção) das organizações.
Porém, nem tudo são rosas. Se tem algo negativo para destacar nesse crescimento rápido é o “atropelamento” que existe dos valores e princípios dos Métodos Ágeis.
Mudar o mindset das pessoas é algo que realmente não é fácil. E está cada vez mais comum empresas adotando o ágil como um processo ou ferramenta, enquanto na verdade é necessário ter o mindset ágil para adotar e viver os valores ágeis.
As 10 principais características do desenvolvimento ágil
Por esse motivo, resolvi escrever sobre o que considero sendo as principais características do desenvolvimento ágil e porque você deve se importar com elas.
Antes de começarmos, vou desafiar a você a deixar seu comentário no final do texto, dizendo quantas dessas 10 características estão presentes no seu dia-a-dia. Topa? 🙂
Ahhh, a ordem dessas características é importante também, ok?
01. Ter o envolvimento real do usuário final
Se você tem utiliza qualquer método ágil, seja ele Scrum, Kanban ou Lean Startup, o seu usuário final deve estar envolvido. Afinal de contas é pra ele que você e seu time estão trabalhando, concorda?
Eu sei, é quase impossível ter ele presente no dia-a-dia. Assim ter um representante fiel, com autonomia, conhecedor do mercado e das necessidades dos usuários, vai ser NECESSÁRIO.
Ter o cliente ou usuário final envolvido de verdade no processo é para mim uma das principais características do desenvolvimento ágil.
02. Time de Desenvolvimento deve ser Empoderado
Um time de desenvolvimento ágil deve ser capaz superar qualquer desafio que venha a surgir. Mas para isso devemos dar ao time todas condições e conhecimentos necessário para tal desafio.
Ter um time empoderado é essencial para o sucesso de qualquer aplicação ágil. Um time de desenvolvimento DEVE ser capaz de tomar as suas decisões e essas devem ser respeitadas. Vou tentar sem claro: Se seu time estimou, acredite. Se seu time definiu a solução técnica, confie.
O time é o CORAÇÃO de qualquer método ágil, é ele que vai ser capaz de aprender a como fazer da melhor maneira, é ele, que vai evoluir continuamente através dos erros cometidos e lições aprendidas.
Resumindo, seu time precisa “apenas” de um objetivo e de ter capacidade de chegar lá. O caminho ele vai descobrir enquanto percorre. E a cada vez que qualquer gestor tentar interferir, na verdade ele está é tirando o foco do seu time.
O time deve ser e se sentir empoderado, assim você está dando um passo grande na direção correta.
03. Entregue pouco, mas entregue sempre
Como se come um elefante? Pedaço a pedaço. Simples assim.
No desenvolvimento ágil ter entregas frequentes é vital para o sucesso do projeto ou produto. É através de entregas frequentes que vai existir feedback e através dele as correções assertivas de rota.
Quanto falamos de entregar com frequência, não estamos falamos de estocar software pronto para homologação e sim de entregar para seu usuário final experimentar o que foi feito.
Eu sei que é entregar a todo momento é um grande complicador. Então, se organize e MINIMIZE o tempo que algo fica em desenvolvimento, organizar pequenas releases pode ser uma boa saída. Mas, cuidado, não exagere no tamanho das releases.
[epico_capture_sc id=”348″]
04. Uma peça de cada vez
Se existe uma característica do desenvolvimento ágil é o FOCO. E essa deve ser um característica do seu time também.
Em outras palavras, tudo que ele começa deve ser terminado, antes que outra atividade se inicie. Se você acha que estou falando das atividades do sprint, você acertou.
Comece a terminar e pare de começar
Essa é uma característica que vai fazer a diferença no seu dia-a-dia, assim como no do seu time. Porque é onde se trabalha focado em ter progresso. E progresso em métodos ágeis é software/produto PRONTO.
Pode parece bobagem, mas fazer uma peça de cada vez é algo que POUCOS times fazem e é um comportamento que é muito pouco fomentado pelo líderes e gestores.
Eu penso assim, se um time não atua junto nos mesmos itens, porque chama-los de time?
Obviamente, em alguns momento iremos ter atividades em paralelo, mas um das características do desenvolvimento ágil é reduzir o número de atividades em progresso.
05. Seja SIMPLES
Já ouviu falar sobre o Principio de Pareto? Ela afirma que, para muitos eventos, aproximadamente 80% dos efeitos vêm de 20% das causas. Ou seja, se levarmos para o desenvolvimento ágil, podemos afirmar que 80% do resultado (valor) vem de 20% do esforço.
Já parou pra pensar nisso? Que 80% do resultado vai vir de 20% do esforço. Para exemplificar isso, vou contar uma pequena história.
Algum tempo atras, eu era Scrum Master de um projeto, e em um determinado momento o cliente queria uma funcionalidade de pesquisa de cliente por estado. Lembro bem que quando ele foi apresentar para o PO as suas ideias a primeira história que existia era: Cadastro e Edição de Estados.
Bom, pare pra pensar, porque Cadastro e Edição de Estados? Será que o Brasil sofre alterações assim a ponto de ser necessário um CRUD de estados?
Perceba que esse é um exemplo clássico de que ser simples vai ser um diferencial. Nesse caso dos estados, nos acabamos fazendo uma tabela simples no BD para ter os estados, algo bem mais simples. Que poderia ser ainda mais simples, como um JSON por exemplo.
Enfim, o que você precisa entender que é, ser SIMPLES é o que vai impulsionar os resultados de um projeto ou produto. Nos gostamos de inventar muito, de criar soluções mirabolantes, enquanto na verdade o valor estar em ser simples e entregar valor.
Logo, uma das principais características do desenvolvimento ágil é prover soluções SIMPLES.
06. Tenha Qualidade no que faz
Tem uma frase que diz: Teste cedo e sempre.
Esse deve ser o lema de qualquer time ágil, devemos SEMPRE garantir a qualidade. Caso contrário você e seu time não irão sobreviver muito tempo.
Essa característica passa pelo que chamo de Cultura da Qualidade, que falo um pouco no vídeo abaixo:
Resumindo, um time ágil deve pensar em qualidade o tempo todo. Ou seja, ao fazer um código, ele deve ser feito com qualidade, ao escrever um estória, ela deve ser feita com qualidade e até mesmo ao desenvolver um teste.
A caraterística que seu time deve ter aqui é: Garantir sempre a qualidade e o sempre é sempre mesmo.
07. Melhore continuamente e sempre
Melhoria contínua é fazer hoje melhor do que ontem, mesmo que hoje tenha sido melhor do que ontem.
É exatamente esse o pensamento que qualquer time ágil deve ter, sempre melhorar. Quando falamos de melhoria contínua, no fundo estamos falando sobre ser inquieto e estar sempre buscando oportunidades de melhoria.
Existe um problema em times que alcançam o sucesso, que é, cair de rendimento. Isso acontece por que o time se acomoda e para de evoluir. Times ágeis devem ser o contrário, nunca estão 100% satisfeitos e sempre vão atras de melhorar, em qualquer aspecto.
Sem dúvida uma das principais características do desenvolvimento ágil é a melhoria contínua.
08. Viva com métricas
Um dos pilares do scrum é a inspeção, eu particularmente não o considero só do Scrum, considero de qualquer método ágil.
Inspecionar é necessário em qualquer processo de melhoria contínua e as métricas vão criar a oportunidade da inspeção.
Logo, tenha métricas, mas métricas que agreguem valor ao seu processo e principalmente ao seu time.
Eu gosto de comparar um time sem métrica, com um carro sem farol em uma estrada a noite, ele pode até chegar no objetivo, mas com certeza irá encontrar muito mais buracos na pista.
09. Automatize as coisas chatas
Existe uma verdade no desenvolvimento de software, que é: São nas tarefas mais simples e chatas que acontecem os maiores problemas.
Por isso, seu time deve ser capaz de automatizar tudo que julgar necessário. Até porque ninguém merece, ficar fazendo teste de regressão de 893 itens ao final de cada incremento de produto pronto.
Seguindo até um pouco a linha do Management 3.0, onde o Jurgen Appelo coloca as pessoas como uma das principais chaves de sucesso de um projeto. Ele afirma, que fazer atividades chatas vai acabar desmotivando o seu time, mais cedo ou mais tarde. Além de fazer ele perde seu final de semana.
Posso afirmar que uma das características do desenvolvimento ágil é ter a cultura da automatização e até mesmo de DevOps.
10. Colaboração entre Time e Stakeholders é essencial
Colaboração com o cliente mais que negociação de contrato.
Somente essa frase já deveria ser o suficiente, já que é um dos valores do Manifesto Ágil, concorda?
Mas vamos lá, a colaboração entre time e stakeholders deve ser natural e consistente, uma vez que em Métodos Ágeis os requisitos deve ser leves e a mudança deve ser aceita naturalmente e como resultados de software entregue.
Ter o requisito leve, torna essencial ao colaboração entre as pessoas.
Se um dos dois não existem, é bem possível que você esteja vivendo no mundo das extensas documentações onde as mudanças de escopo são dolorosas ao invés de serem benéficas.
Um das principais características do desenvolvimento ágil é a colaboração entre todos os envolvidos no projeto e/ou produto.
Pra fechar…
Eu listei acima as 10 características que considero essenciais para o desenvolvimento ágil. Obviamente existem mais, e cada contexto vai dar um peso diferente para cada uma delas. O contexto é sem dúvida a maior variável em qualquer ambiente de desenvolvimento de produtos.
E ai? Quantas dessas características você tem no seu dia-a-dia? Deixa ai nos comentários e vamos falar mais sobre.