DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Engenharia de Software Magazine
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Fundamentos das Metodologias Ágeis - Revista Engenharia de Software Magazine 41

Nesse artigo são descritas de forma geral a origem e as motivações para a utilização de métodos ágeis e também detalhes sobre os principais métodos. Os métodos ágeis são descritos principalmente sob o ponto de vista do fluxo de atividades e práticas conduzidas durante o desenvolvimento de software.





Engenharia de Software Magazine 41

[Artigo disponível no Leitor Digital DevMedia. Clique aqui para acessá-lo]

> Clique aqui para ler todos os artigos da Engenharia de Software Magazine 41


Para enfrentar problemas com prazos e complexidade de métodos tradicionais da engenharia de software, diversos métodos ágeis de desenvolvimento estão sendo utilizados em projetos de software. Estes métodos possuem como principal objetivo a satisfação do cliente, preocupando-se com a entrega incremental de software desde as etapas iniciais de desenvolvimento, produtos de trabalho de engenharia de software minimizados e simplicidade global no desenvolvimento.

Métodos ágeis foram desenvolvidos para beneficiarem a entrega rápida de código que agregue valor ao cliente por meio do desenvolvimento em pequenos ciclos. Para atingir esse objetivo, esses métodos são focados na contínua interação entre desenvolvedores e clientes, que garantem que o software atenda as necessidades de mudança dos requisitos do cliente. Os métodos ágeis mudam o foco de artefatos complexos de projeto, fortemente utilizados em métodos tradicionais, para técnicas focadas no desenvolvimento de código-fonte e testes. A prototipação ágil também ajuda a acelerar a velocidade de desenvolvimento, reduzindo o excesso de planejamento e a documentação.

Todo esse dinamismo dos métodos ágeis tem provocado um grande impacto na forma de se conduzir um projeto de software fortemente sensível a mudanças. Uma grande diversidade de métodos ágeis tem sido utilizada. Como exemplos mais conhecidos tem-se o XP (eXtreme Programming), o Scrum, a família Crystal, o FDD (Feature Driven Development ), o ASD (Adaptative Software Development), o DSDM (Dynamic System Development Method) e o Lean Software Development. Esses métodos seguem princípios semelhantes, mas o que os diferencia são as suas práticas e a forma de condução do processo de desenvolvimento. O XP é o método mais conhecido, além de ser o método mais avaliado por estudos acadêmicos. Ele propõe um conjunto de valores, princípios e práticas em um cenário no qual os requisitos são vagos e mudam constantemente. Nesse contexto o objetivo do método é a excelência no desenvolvimento de software, visando baixo custo, poucos defeitos, alta produtividade e alto retorno de investimento. Outro método que vem se destacando é o Scrum, que é o mais utilizado na indústria de software atualmente, sendo mais focado em aspectos de gerenciamento de projeto.

Para satisfazer o cliente por meio da entrega rápida e contínua de software de qualidade são utilizadas diversas práticas que serão detalhadas no ao longo deste artigo. Como exemplo pode-se citar a presença do cliente para ajudar na correção e refinamento de requisitos, a programação em pares utilizada para melhorar a qualidade do desenvolvimento e promover a diminuição de defeitos, e a refatoração que otimiza o código já existente. A agilidade descrita anteriormente traz consigo uma forte preocupação com a melhoria constante do processo e do produto durante todo o ciclo de desenvolvimento do software, no qual o progresso do projeto é avaliado diariamente. Em projetos que utilizam métodos ágeis, a atividade de teste de software vem sendo considerada uma atividade primordial, com o objetivo de evitar que a qualidade do produto e a condução do projeto não sejam afetados por processos menos formais de documentação e projeto em relação aos métodos tradicionais.

A importância da atividade de teste em métodos ágeis pode ser constatada no método XP, que considera a atividade tão importante quanto a atividade de programação. No XP todo pedaço de código tem um conjunto de testes de unidade automatizados, que deve ser integrado ao repositório de código-fonte. Os resultados dos testes servem como uma forma de feedback instantâneo, no qual o desenvolvedor pode detectar em pouco tempo se o método desenvolvido ainda precisa ser modificado ou refatorado. O código é considerado completo apenas se passar por todos os testes de unidade. Além disso, no fim de cada iteração, todos os testes de aceitação (business testing) que foram criados durante a fase de planejamento serão executados por usuários e clientes. Esses testes incluem os testes de iterações prévias e aqueles da última iteração, para determinar se as novas funcionalidades são aceitáveis e prevenir que novas mudanças causem efeitos colaterais em funcionalidades que estavam funcionando até o momento.

Entre as práticas de teste utilizadas em métodos ágeis pode-se citar os testes de unidade utilizando Test Driven Development (TDD), testes de integração contínuos, testes de aceitação com o cliente e testes de regressão associados à prática de refatoração. Para complementar essas práticas a equipe pode utilizar testes exploratórios, teste da interface gráfica (GUI) e teste de requisitos não-funcionais que podem envolver, por exemplo, requisitos de desempenho, carga ou stress. Todas essas práticas de testes devem ser executadas preferencialmente de forma automatizada, buscando a agilidade no processo de testes.

Neste contexto, o objetivo deste artigo é descrever de forma detalhada um referencial teórico a respeito das metodologias ágeis considerando algumas de suas principais abordagens. Para isso, nesse artigo são descritas de forma geral a origem e as motivações para a utilização de métodos ágeis e também detalhes sobre os principais métodos. Os métodos ágeis são descritos principalmente sob o ponto de vista do fluxo de atividades e práticas conduzidas durante o desenvolvimento de software.

Motivação em estudar Métodos Ágeis

Atualmente pode-se observar uma grande sinergia entre a academia e a indústria na área de métodos ágeis, que pode ser constatada em eventos de larga importância como o International Conference on XP (http://xp2010.org), Agile Conference (http://agile2010.agilealliance.org) e mais recentemente em eventos nacionais e latino-americanos, como o Agiles (http://agiles2010.agiles.org) e o Agile Brazil (http://www.agilebrazil.com).

Em relação à maturidade das pesquisas da área de métodos ágeis, Dingsøyr et al. (2008) afirmam que há um nível intermediário nas pesquisas em relação ao método XP, a programação em pares e TDD. Tópicos como: modelagem ágil, DSDM, Lean, Scrum e a educação de engenharia de software com métodos ágeis ainda são nascentes. Nesse contexto, é importante realizar mais estudos, por exemplo, com o método Scrum. Além disso, os estudos devem ser conduzidos com organizações experientes na aplicação de métodos ágeis e devem explorar a utilização de práticas ágeis em diversos contextos, procurando encontrar como aplicar princípios ágeis em situações reais e aplicar práticas e princípios do desenvolvimento ágil em áreas já estabelecidas como engenharia de requisitos, teste de software ou arquitetura de software.

A utilização de métodos ágeis de desenvolvimento tem crescido sensivelmente. Esses métodos vêm sendo adotados em diversos contextos, em pequenas, médias e grandes empresas e até agências governamentais e universidades. As pesquisas da área de métodos ágeis têm mostrado por meio de diversos estudos experimentais a efetividade e algumas deficiências das principais práticas de métodos ágeis tanto na indústria, quanto na academia.

Os benefícios da utilização de métodos ágeis envolvem a capacidade de reação a mudanças constantes, a colaboração com o cliente, processos eficientes para gerar produtos de qualidade (que atendem ao cronograma, possuem menos defeitos e que resultam em usuários mais satisfeitos), aprendizagem e melhoria contínua do projeto. Nesse contexto, estudos com o cliente relataram sua satisfação com oportunidades de feedback constante. Empresas de desenvolvimento que utilizam XP relatam que seus funcionários ficaram mais satisfeitos com os seus trabalhos e com o produto final e estudantes universitários acreditam que a utilização de métodos ágeis melhora a produtividade do time.

"

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Engenharia de Software Magazine
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


André Abe Vicente
Mestre em Ciências da Computação e Matemática Computacional (LabES - Laboratório de Engenharia de Software) pela Universidade de São Paulo (USP) - 2010. Bacharel em Informática pela Universidade Estadual do Oeste do Paraná (Unioeste - Campus Cascavel). Têm experiência na área de Engenharia de Softw...
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03