Zusammenfassung der Ressource
13. Eng de Software:Modelo Processo Ágil de Desenvolvimento
- As definições modernas de desenvolvimento de
software ágil evoluíram a partir de meados de 1990,
como parte de uma reação contra métodos
caracterizados por uma regulamentação complexa e
rígida e contra a regimentação e sequenciamento
usados no modelo em cascata. O objetivo era
desburocratizar os procedimentos que tornavam as
etapas dos processos lentas, o que era contrário ao
modo de trabalho usual dos engenheiros de software.
- Inicialmente, os métodos ágeis foram denominados de “métodos
leves”. Em 2001, Kent Beck e dezesseis outros profissionais
notáveis da área de engenharia de software se reuniram, adotaram
o nome de métodos ágeis, e publicaram o Manifesto Ágil,
documento que reúne os princípios e práticas dessa metodologia
de desenvolvimento. Esses veteranos formaram a Agile Alliance
(ou Aliança Ágil), uma organização não lucrativa que promove e
fomenta o desenvolvimento ágil (BECK, 2001).
- Os principais modelos
baseados na concepção de
desenvolvimento ágil incluem
- O Scrum: criado em 1986
- O ASD: (Adaptive
Software Development)
- O FDD: (Feature
Driven Development)
- O DSDM (Dynamic Systems
Development Method), de 1995
- O Crystal e a XP (eXtreme Programming ou
Programação Extrema), criados em 1996.
- Os membros da Aliança Ágil declararam os princípios da metodologia em seu manifesto da
seguinte forma: "Estamos descobrindo maneiras melhores de desenvolver software fazendo-o nós
mesmos e ajudando outros a fazê-lo. Por meio desse trabalho, passamos a valorizar: —
Indivíduos e interação entre eles, 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. Ou seja, mesmo
havendo valor nos itens à direita, valorizamos mais os itens à esquerda" (BECK, 2001).
- O Desenvolvimento Ágil de Software (Agile
Software Development)envolve uma metodologia
que visa minimizar os riscos, por meio de
desenvolvimentos em curtos períodos ou iterações
- A iteração típica envolve o
desenvolvimento em fases
curtas, de uma a quatro
semanas, envolvendo todas as
tarefas necessárias para
implantar uma funcionalidade.
- Considerando-se o período curto de cada iteração,
a comunicação mantida entre os stakeholders é em
tempo real sendo, preferencialmente, tratada por
meio verbal (embora documentada), ou face a face,
visando minimizar entendimentos parciais ou
errôneos. Para tanto, é necessário estabelecer-se
um local físico (uma sala) em que toda a equipe
necessária ficará focada no projeto.
- Alguns críticos do processo ágil afirmam que o maior risco desse tipo de abordagem é a
baixa qualidade ou mesmo inexistência de documentação do projeto devido à interação
humana face a face que, se por um lado traz agilidade na comunicação, por outro traz a
informalidade nas definições. Assim sendo, é necessário um bom acompanhamento do
gestor do projeto para garantir a qualidade dos trabalhos, independente do processo utilizado.
- A metodologia ágil vem gerando grande debate entre
desenvolvedores apaixonados e críticos ferrenhos.
Contudo, deve-se manter a imparcialidade profissional e
questionar o que realmente tem que ser observado, como:
- Qual é a melhor forma de se alcançar
a agilidade nos processos e práticas do
desenvolvimento de software?
- Como construir softwares que satisfaçam às necessidades do cliente
e possuam características de qualidade que permitam sua extensão e
ampliação para satisfazer às necessidades do cliente em longo prazo?
- De forma geral, os processos ágeis
atendem aos projetos de software
que, normalmente, apresentam:
- Dificuldade em prever com antecedência quais
requisitos vão persistir e quais serão
modificados, bem como quais prioridades dos
clientes sofrerão mudanças ao longo do projeto;
- Intercalação das etapas de projeto e construção, que vão
sendo realizadas juntas, de modo que os modelos de projeto
vão sendo comprovados na medida em que são criados
- Falta de previsibilidade da análise, projeto, construção e testes
do ponto de vista do planejamento, como seria desejado.
- Desenvolvimento Ágil Funciona?
- Scrum e Extreme
Programming são algumas
metodologias ágeis que
estão em voga no momento.
Elas refletem o espírito
deste manifesto ágil?
- A gente ouve falar muito
hoje de Scrum, de
Extreme Programming,
mas se usam essas
ferramentas apenas
como ferramentas.
- Isso não funciona.
- Tem gente que até discute se o pico recente
de Scrum não foi mais negativo que positivo,
porque muita gente está aplicando e não
atinge os resultados, simplesmente porque
usa o raciocínio antigo com ferramentas
novas. Os valores não foram entendidos.
- Scrum é um template. Ele te diz que você tem este
papel chamado product owner, você tem este tempo
chamado sprint, tem esta atividade chamada scrum diário,
e estas coisas chamadas retrospectiva e backlog.
- Ele te dá nomes e elementos que
você aplica. Mas não é só aplicar e
ponto. Isso é só o começo. A grande
mensagem da forma ágil de pensar é
que o procedimento não é importante.
É irrelevante se eu chamo o meu
tempo de trabalho de sprint ou o dono
do projeto de product owner.
- É absolutamente
irrelevante, se eu não
entendi os valores que são
entregar valor ao cliente,
criar uma organização de
aprendizado, acreditar nas
pessoas e dar suporte a
elas. Esses princípios é
que são importantes, mas
não são explícitos.