Capítulo 2 Processos Ágeis de Desenvolvimento de Software



Baixar 1 Mb.
Página1/5
Encontro11.02.2019
Tamanho1 Mb.
  1   2   3   4   5


Capítulo

2
Processos Ágeis de Desenvolvimento de Software

Márcio Amorim de Medeiros1, Milton Moura Campos Neto2

Este capítulo discute sobre Processos Ágeis de desenvolvimento de software, uma nova abordagem de desenvolvimento, que surgiu como uma alternativa aos Processos Tradicionais na tentativa de reduzir os problemas e custos dos projetos de software. Ao longo deste capítulo será feita uma contextualização a respeito do paradigma ágil e enfatizado os processos/metodologias como Extreme Programming (XP), Scrum e Feature Driven Development (FDD).

2.1 Introdução a Processos Ágeis de Desenvolvimento de Software

Os processos tradicionais de desenvolvimento de software não se adéquam à realidade de algumas organizações, em especial, as pequenas e médias fábricas de software que não possuem recursos suficientes para seguirem processo algum. Os processos ágeis surgiram como uma nova tendência de desenvolvimento para melhorar a qualidade dos sistemas e reduzir a quantidade de projetos fracassados, eliminando gastos com documentação excessiva, enfatizando a comunicação, mais flexível à mudança e privilegiando as atividades que agregam maior valor ao negócio.

Os métodos tradicionais e os ágeis possuem o mesmo objetivo: satisfazer as necessidades dos usuários construindo sistemas de qualidade. A diferença entre eles está nos princípios utilizados por cada um [SATO 2007]. Os princípios relacionados aos processos tradicionais já foram abordados no Capítulo 1, já os ágeis serão detalhados no decorrer deste capítulo.

Atualmente, mudança é algo bastante comum na vida de um software, a fim de garantir adaptação do sistema às novas necessidades do cliente, das instituições ou do mercado. Os processos tradicionais tendem a tentar planejar grande parte do software por um longo período antes de iniciar a implementação. Com isso, o software demora a ser disponibilizado ao cliente. Durante esse tempo podem surgir novos padrões, políticas e tecnologias que afetam os requisitos do software, o cliente pode perceber que alguma funcionalidade não está conforme solicitado ou precisar de outras. Esses fatores implicam em mudança no sistema, que não é bem-vinda nos métodos tradicionais, pois a fase de planejamento já foi concluída.

Outro fator comum no desenvolvimento tradicional é a implementação de funcionalidades que não agregarão valor ao cliente, ou seja, o sistema disponibiliza funcionalidades aos usuários que serão de pouca ou nunca utilizada, enquanto outras funções mais prioritárias ainda não foram implementadas.

As metodologias ágeis surgiram com a finalidade de desburocratizar o processo de desenvolvimento. Elas tentam se adaptar e se fortalecer com as mudanças. Os clientes têm, em curto espaço de tempo, versões de software executável, nas quais são priorizadas as funcionalidades que agregam mais valor ao seu negócio. Com isso, eles já podem sugerir novas funcionalidades e correções.

Na agilidade, outro fator determinante é o fato de “não documentar, apenas por documentar”. Só é documentado aquilo que for necessário em outro momento e que justifique o esforço e recursos gastos na documentação. Segundo [BECK 2000], nos processos ágeis, a documentação se restringe às estórias dos usuários, descrições simples do funcionamento do sistema, usadas para ajudarem os envolvidos no projeto a ter uma visão de seu funcionamento e entender os elementos básicos do projeto e seus relacionamentos.

Os Processos ágeis são orientados a pessoas ao invés dos tradicionais que são orientados a processos. Metodologias ágeis afirmam que nenhum processo jamais será semelhante à habilidade da equipe de desenvolvimento. Em vista disso, o papel do processo é dar suporte à equipe e seu trabalho.


2.2 O Manifesto Ágil

No início de 2001, 17 especialistas em software reuniram-se para propor um conjunto de princípios e valores para agilizar o desenvolvimento dos seus sistemas tendo como base suas experiências em programação. Foram motivados pela conclusão de que os processos de desenvolvimento estavam tornando-se cada vez mais longos, ao tempo em que dificultavam a visibilidade e o entendimento das equipes de construção de softwares.

A essência desse movimento prol agilidade é a definição de novo enfoque de desenvolvimento de software, calcado na agilidade, na flexibilidade, nas habilidades de comunicação e na capacidade de oferecer novos produtos e serviços de valor ao mercado, em curtos períodos de tempo. [HIGHSMITH 2004]

Esse movimento, marco inicial do desenvolvimento ágil de software, foi descrito conforme o Quadro 2.1

Quadro 2.1 O Manifesto Ágil. Adaptado de [AGILE MANIFESTO 2009]

Nós estamos descobrindo melhores maneiras de desenvolver software, fazendo e ajudando outros a fazê-lo. Através deste 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
Mesmo havendo valor nos itens à direita, valorizamos mais os itens à esquerda.


Assinam este manifesto:

Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham,

Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern,

Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland e Dave Thomas.




1































(PADS)

2

(AUP), também conhecida como AgileUP e desenvolvida por Ambler [AMBLER 2002], é uma versão simplificada do Rational Unified Process (RUP). Ela descreve como desenvolver sistemas utilizando técnicas ágeis, como Test Driven Development (TDD), Agile Modeling e Refactoring no banco de dados para melhorar a produtividade, porém mantendo-se fiel ao RUP.

A Lean Development tem suas raízes na indústria automotiva, ela é uma adaptação para software do Lean Manufacturing do revolucionário Sistema Toyota de Produção. Inicialmente proposto por Bob Charette, tem como principais objetivos tentar reduzir em um terço o prazo, o custo e o nível de defeito no desenvolvimento de software e para isso exige um grande comprometimento da alta administração com predisposição inclusive para mudanças radicais.

Baseado no Desenvolvimento Rápido de Aplicações (RAD) e no modelo iterativo e incremental, a metodologia Dynamic Systems Development Method (DSDM) se tornou o framework para RAD [STAPLETON 2003]. A idéia central do DSDM baseia-se no seguinte: ao invés de fixar o escopo de funcionalidades do produto e a partir daí estimar tempo e recursos para alcançar o escopo definido, é preferível fixar tempo e recursos e ajustar o escopo de acordo com estas limitações [COHEN et al. 2003].

O Crystal não é apenas uma única metodologia, e sim, uma família de métodos denominada, portanto, de Família Crystal, proposto por Alistair Cockburn [COCKBURN 2002]. É categorizada por cores de acordo com a quantidade de pessoas envolvidas. A versão mais ágil e mais documentada é a Crystal Clear que pode ser usada em projetos de até oito pessoas, seguida pela Crystal Yellow (para times de 8 a 20 pessoas), Crystal Orange (para times de 20 até 50 pessoas), Crystal Red (para times de 50 até 100 pessoas), e assim por diante.

Já a Agile Modeling (AM), apesar de ser citada na pesquisa, não é uma metodologia de desenvolvimento de software. É uma metodologia de modelagem ágil, isto é, AM visa construir e manter modelos de sistemas de maneira eficaz e eficiente, que pode ser utilizada dentro de metodologias ágeis ou nos processos tradicionais, como o RUP.

Os métodos ágeis que se destacam no mercado são o Extreme Programming (XP), que se atém ao desenvolvimento propondo um conjunto de técnicas, e o Scrum, que enfatiza o planejamento e gerenciamento dos projetos. Ambos serão tratados com maior detalhe nas próximas seções, além da metodologia FDD, pois é uma boa opção para grandes projetos e para empresas que possuem dificuldades para migrar para um ambiente completamente ágil.

  1   2   3   4   5


©bemvin.org 2016
enviar mensagem

    Página principal