Espírito de Startup: Tudo ao mesmo tempo agora

Glauter Jannuzzi e Ricardo Abreu · Capítulo 71 de 106

Páginas do PDF

Espírito de Startup: Tudo ao mesmo tempo agora

O manifesto para desenvolvimento ágil de software

O MANIFESTO PARA

DESENVOLVIMENTO ÁGIL DE

SOFTWARE

 

No ano de 2001, dezessete pessoas se reuniram numa estação de esqui nas montanhas de Wasatch, em Utah, nos Estados Unidos, e se hospedaram no The Lodge at Snowbird Ski Resort para, entre outras coisas, esquiarem, relaxarem e discutirem o futuro do desenvolvimento de software . O resultado desse encontro foi a publicação do Agile Software Development Manifesto (Manifesto para Desenvolvimento Ágil de Software ). O texto propunha uma nova forma de desenvolver softwares , fomentando bastante o conceito de contribuição e compartilhamento em comunidades. Os principais valores destacados no manifesto eram:

 

• Indivíduos e interações, mais que processos e ferramentas.

 

• Software em funcionamento, mais que documentação abrangente.

 

• Colaboração com o cliente, mais que negociação de contratos.

• Responder a mudanças, mais que seguir um plano.

 

 

Seus idealizadores reforçavam a importância dos valores nos itens à direita – processos e ferramentas, documentação abrangente, negociação de contratos e um bom plano a seguir –, mas deixavam bem claro que os itens à esquerda – indivíduos e interações, software funcionando, colaboração com o cliente e respostas a mudanças – seriam ainda mais valorizados.

 

Os doze princípios que estão por trás do manifesto, em seu texto original para que não exista perda na tradução, são:

 

1. Our highest priority is to satisfy the customer through early and

continuous delivery of valuable software.

 

2. Welcome changing requirements, even late in development. Agile

processes harness change for the customer’s competitive advantage.

 

3. Deliver working software frequently, from a couple of weeks to a

couple of months, with a preference to the shorter timescale.

4. Business people and developers must work together daily

throughout the project.

 

5. Build projects around motivated individuals. Give them the

environment and support they need, and trust them to get the job done.

 

6. The most efficient and effective method of conveying information to

and within a development team is face-to-face conversation.

 

7. Working software is the primary measure of progress.

 

8. Agile processes promote sustainable development. The sponsors,

developers, and users should be able to maintain a constant pace

indefinitely.

 

9. Continuous attention to technical excellence and good design

enhances agility.

10. Simplicity – the art of maximizing the amount of work not done –

is essential.

 

11. The best architectures, requirements, and designs emerge from

self-organizing teams.

 

12. At regular intervals, the team reflects on how to become more

effective, then tunes and adjusts its behavior accordingly.

 

Em síntese, sem pretensão de traduzir, o modelo ágil prescreve o seguinte:

 

1. Entrega de software para o cliente final em períodos mais curtos de

tempo, para que exista um ciclo contínuo de feedbacks e melhorias.

 

2. Aceitar as mudanças durante todas as fases do processo, isso tornará

a aplicação final mais apta a desempenhar as funções que necessita

suportando o negócio.

 

3. Gerar módulos ou partes da aplicação que funcionem em ciclos

semanais ou mensais.

4. Integração entre os times de desenvolvimento de software e os

especialistas do negócio.

 

5. Motivação, confiança e liberdade aos desenvolvedores para que

atuem em seus projetos.

 

6. Conversas pessoalmente, cara a cara, para o levantamento de

requisitos ou coleta de feedbacks .

 

7. A principal métrica do progresso é software funcionando.

 

8. Os desenvolvedores, usuários e patrocinadores da solução devem

estar no mesmo ritmo dentro do ciclo contínuo de desenvolvimento e

melhoria.

 

9. Investir na excelência técnica e na qualidade do projeto para ganhar

mais agilidade, evitando retrabalho.

10. Simplicidade é essencial.

 

11. As melhores soluções arquiteturais emergem de times auto-

organizados.

 

12. Em intervalos regulares, o time deve se reunir para verificar como

pode ser mais efetivo e, a partir daí, faz os ajustes necessários, caso

existam.

 

A partir da publicação desse manifesto, começaram a surgir uma série de métodos chamados ágeis. Talvez os dois movimentos que conseguiram maior adeptos ao redor do mundo tenham sido o Extreme Programming (XP) e o SCRUM.

 

Diagrama de desenvolvimento ágil baseado em SCRUM

A filosofia por trás desses movimentos os torna muito alinhados aos princípios do desenvolvimento ágil comentados anteriormente. Não é objetivo deste livro entrar no detalhe de cada uma das técnicas, mas basta comentar que, por exemplo, enquanto o SCRUM prescreve atividades iterativas no que chama de sprints que devem durar de duas semanas a um mês, o XP prescreve iterações de uma a duas semanas. O importante aqui não é definir qual o melhor método ágil, mas adotar aquele que mais se enquadre nos princípios e na cultura do time que será montado.

 

 

Como vimos até aqui, a evolução do desenvolvimento de software , tanto na perspectiva das linguagens de programação quanto das metodologias para seus projetos, proporciona mudança de paradigmas de tempos em tempos. Isso causa impacto direto na forma de trabalho de pessoas da área de TIC, como também do papel que desempenham.

OceanofPDF.com