Mostrando postagens com marcador Scrum. Mostrar todas as postagens
Mostrando postagens com marcador Scrum. Mostrar todas as postagens

sábado, 12 de dezembro de 2009

Desenvolvimento Ágil

Esta semana um amigo me emprestou a revista TIDigital, edição novembro 2009, que possui uma matéria bem interessante sobre desenvolvimento ágil. Após ler a matéria, resolvi escrever um post a respeito do assunto.

Em conversa com esse mesmo amigo sobre a aplicabilidade de metodologias ágeis, chegamos a conclusão de que tais práticas funcionariam melhor em uma equipe de sêniors, não em registro, mas sim em maturidade.

Conheça o Manifesto Ágil aqui.

Além do manifesto, existem 12 princípios a serem seguidos para o desenvolvimento ágil de software:

1° princípio:

“Nossa maior prioridade é satisfazer o cliente através de entregas rápidas e contínuas de software usual”.

Sabe-se que a entrega é um dos maiores desafios da industria de TI, dado o atual grau de insucesso dos softwares. Confira o Chaos Report confeccionado pelo Standish Group:

Repare que o Standish Group entende como fracassado (vermelho) um projeto cancelado ou entregue e nunca utilizado e como desafiado (amarelo) um projeto que atrasou, custou mais ou entregou menos. O gráfico demonstra que em 2009 os projetos considerados sucesso (verde) somam aproximadamente 30% contra 70% de softwares fracassados ou desafiados. Imagine se mudássemos o cenário, e que ao invés de software, estivéssemos falando de carros, isso significaria que a cada 10 carros que você comprasse, apenas 3 funcionariam e 7 não funcionariam ou funcionariam com inúmeros problemas.

2° princípio:

“Seja bem vindo à mudança de requisitos, mesmo que tardiamente, no desenvolvimento. Processos ágeis aproveitam a mudança para a vantagem competitiva do cliente”.

3° princípio:

“Entregar software utilizável frequentemente, e algumas semanas a alguns meses, com preferência e menores escalas de tempo”.

Pequenas entregas aumentam muito a chance de sucesso de um software. Quando o software é colocado em produção é que pode-se verificar se ele atende a necessidade daquele negócio ou não de forma menos abstrata. Confira o gráfico do Standish Group para o uso das funcionalidades de um software:

Note que apenas 7% do software é utilizado sempre e 13% utilizado frequentemente, e que 64% do software é nunca ou raramente utilizado. Isso significa dizer que em um projeto de 1 milhão de reais, o cliente pagaria 640 mil por funcionalidades talvez desnecessárias.

4° princípio:

“Executivos e desenvolvedores devem trabalhar juntos diariamente durante o projeto”.

5° princípio:

“Construa projetos em torno de indivíduos motivados. Dê-lhes o ambiente e a ajuda de que eles precisam e confie neles para ter o trabalho concluído”.

6° princípio:

“O método mais eficiente e eficaz de transmitir informações para uma equipe de desenvolvimento e dentro dela é a conversa face a face”.

Por experiência própria posso confirmar que o método mais eficaz para transmitir informações é pela conversa face a face. Geralmente escrevo melhor do que falo, coisa que faz meus emails ficarem formais demais e, por consequencia, ríspidos, isso pode causar no receptor um certo desconforto, insegurança, raiva, etc.

7° princípio:

“Software funcional é a medida primordial do progresso”.

8° princípio:

“Processos ágeis promovem desenvolvimento sustentável. Os patrocinadores, desenvolvedores e usuários deveriam ser aptos a manter um ritmo constante indefinidamente”.

É comum ouvirmos piadas a respeito da inconstância no desenvolvimento de software. Costuma-se dizer que “os primeiros 90% do software levam 90% do tempo para ficarem prontos e os 10% finais levam mais 90% do tempo para serem concluídos”.

9° princípio:

“Atenção contínua à excelência técnica e bom design aumentam a agilidade”.

10° princípio:

“Simplicidade – a arte de maximizar a quantidade de trabalho não feito – é essêncial”.

11° princípio:

“As melhores arquiteturas, requisitos e design surgem de um time auto-organizado”.

É tempo de as fábricas de software passarem da versão 1.0 para a 2.0, pois assim como a web, devem ter um caráter colaborativo mais intenso.

12° princípio:

“Em intervalos regulares, o time reflete sobre como tornar-se mais eficiente, então sintoniza e ajusta seu comportamento”. (Lembra da consideração inicial sobre a equipe de sêniors?)

Deseja saber mais sobre o assunto? Clique aqui e leia uma reportagem completa sobre SCRUM, um dos métodos ágeis mais utilizados atualmente e que vem se popularizando no Brasil, publicada na revista TIDigital na edição de abril/09.