Artigo Java Magazine 33 - Desenvolvimento Ágil

Artigo Publicado pela Java Magazine 33.

Esse artigo faz parte da revista Java Magazine edição 33. Clique aqui para ler todos os artigos desta edição


Clique aqui para ler esse artigo em PDF.

Desenvolvimento Ágil

Um Guia sobre os Processos Ágeis de Desenvolvimento

Conheça as origens do movimento ágil, suas principais características e os processos ágeis mais utilizados

Jefferson de Barros Santos

Nos últimos anos, observamos o aparecimento de novas e interessantes abordagens para o desenvolvimento de software. Técnicas como Test-Driven Development e processos como Extreme Programming ganharam popularidade, e hoje são utilizados por muitas das grandes empresas de software do mundo. Essas abordagens constituem um movimento que vem se tornando cada vez mais importante – o do Desenvolvimento Ágil de Software.

O objetivo deste artigo é mostrar porque o desenvolvimento ágil é importante e como pode ser usado para melhorar a maneira que desenvolvemos software. Serão exploradas suas principais características e apresentados os processos ágeis mais difundidos atualmente. Para compreender melhor as motivações por trás do desenvolvimento ágil, iniciamos por um rápido histórico.

Origens

Em meados dos anos 80, se popularizaram os primeiros processos de desenvolvimento. Era uma tentativa de tornar a produção de software mais previsível e eficiente, numa época caracterizada por uma forma de trabalho bastante caótica. O desenvolvimento, até então, era marcado pela falta de planejamento e por pouca organização, o que acarretava muito trabalho repetido ou desnecessário, e levava a um número excessivo de bugs e uma redução drástica na manutenibilidade dos sistemas à medida que evoluíam. Esse estilo de desenvolvimento ficou conhecido pelo termo em inglês code-and-fix (codificar e consertar).

Os primeiros processos de desenvolvimento ("tradicionais") enfatizavam a importância do planejamento para controlar e melhorar a previsibilidade da produção de software. Os planos eram elaborados no início do projeto e eram seguidos fielmente através de etapas seqüenciais de trabalho – o que abria pouco espaço para mudanças. Com o passar do tempo e a experiência adquirida, esses processos se mostraram pouco eficientes. Fortemente burocráticos, exigiam a produção de uma documentação extensa, o que tornava lento o ritmo de desenvolvimento. A rigidez em seguir os planos e etapas do processo dificultava a resposta rápida às mudanças – uma exigência cada vez maior nos cenários de negócios atuais.

O movimento ágil surgiu como uma reação a esses primeiros processos. Insatisfeitos com os resultados obtidos com as abordagens existentes, muitos desenvolvedores e pesquisadores iniciaram uma busca por alternativas. Novas soluções começaram a ser testadas independentemente por diferentes grupos, principalmente nas comunidades de orientação a objetos e de design patterns. Eram baseadas em processos mais leves, menos rígidos, e que produziam uma documentação mais enxuta, suficiente para o andamento do projeto. Caracterizavam-se também pelo foco na qualidade do código, pelo uso de ciclos de desenvolvimento iterativos e pela intensa colaboração entre os envolvidos na produção dos softwares.

Características

O quadro “O Manifesto Ágil” apresenta os valores que fundamentam o desenvolvimento ágil de software. Analisando o Manifesto, que foi elaborado por especialistas e líderes em diversas áreas do desenvolvimento de software, é possível identificar as principais características que definem como ágil um processo de desenvolvimento.

Processos adaptativos

Uma característica fundamental de um processo ágil é o forte comprometimento com mudanças, reconhecendo que o desenvolvimento de software é na maioria das vezes uma atividade adaptativa. As necessidades de negócio mudam constantemente – principalmente hoje com o crescimento das transações comerciais via internet – e o software precisa ser capaz de adaptar-se a essas novas necessidades.

Processos tradicionais entendem o desenvolvimento de software como uma atividade previsível, em que é possível definir, no início de um projeto, os requisitos de negócio e o design da aplicação, que permanecerão estáveis (ou sofrerão poucas modificações) nas etapas seguintes. Assim, estes processos se enquadram melhor em áreas de negócio mais estáveis, quase imutáveis – o que a cada dia é mais difícil de encontrar. " [...] continue lendo...

Artigos relacionados