Metodologias ágeis de desenvolvimento de software

6
METODOLOGIAS ÁGEIS DE DESENVOLVIMENTO DE SOFTWARE Por: Lucas Fentanes Machado, Aluno do 2º Módulo de Informática da Etec de Cotia. Este artigo tem como objetivo esclarecer o que são metodologias ágeis de desenvolvimento de software, definindo seus principais conceitos e ideias. Além disso mostrar suas vantagens sobre as metodologias tradicionais, e citar exemplos como Scrum e Extreme Programming. Metodologia ágil de desenvolvimento de software é um conceito relativamente novo, que surgiu em 2001, representando um grupo de técnicas, métodos e ideias alternativas aos usados nas metodologias tradicionais que focam em planejamento árduo, análise demorada e documentação extensa. Muitas empresas não têm recursos para cobrir esses processos longos e pesados de desenvolvimento. Além disso, com todas as ferramentas, técnicas e computadores provenientes do avanço, o índice de sistemas que são entregues dentro do prazo, com o preço previsto e todas as funcionalidades desejadas, é extremamente baixo. Dados de 1995, usando como base 8380 projetos, mostram que apenas 16,2% dos projetos foram entregues respeitando os prazos e os custos, e com todas as funcionalidades previstas. Aproximadamente 31% dos projetos foram cancelados antes de estarem completos e 52,7% foram entregues, porém com prazos maiores, custos

description

Este artigo tem como objetivo esclarecer o que são metodologias ágeis de desenvolvimento de software, definindo seus principais conceitos e ideias. Além disso mostrar suas vantagens sobre as metodologias tradicionais, e citar exemplos como Scrum e Extreme Programming

Transcript of Metodologias ágeis de desenvolvimento de software

Page 1: Metodologias ágeis de desenvolvimento de software

METODOLOGIAS ÁGEIS DE DESENVOLVIMENTO DE

SOFTWARE

Por: Lucas Fentanes Machado, Aluno do 2º Módulo de Informática da Etec de

Cotia.

Este artigo tem como objetivo esclarecer o que são metodologias ágeis

de desenvolvimento de software, definindo seus principais conceitos e ideias.

Além disso mostrar suas vantagens sobre as metodologias tradicionais, e citar

exemplos como Scrum e Extreme Programming.

Metodologia ágil de desenvolvimento de software é um conceito relativamente novo, que surgiu em 2001, representando um grupo de técnicas, métodos e ideias alternativas aos usados nas metodologias tradicionais que focam em planejamento árduo, análise demorada e documentação extensa.

Muitas empresas não têm recursos para cobrir esses processos longos e pesados de desenvolvimento. Além disso, com todas as ferramentas, técnicas e computadores provenientes do avanço, o índice de sistemas que são entregues dentro do prazo, com o preço previsto e todas as funcionalidades desejadas, é extremamente baixo. Dados de 1995, usando como base 8380 projetos, mostram que apenas 16,2% dos projetos foram entregues respeitando os prazos e os custos, e com todas as funcionalidades previstas. Aproximadamente 31% dos projetos foram cancelados antes de estarem completos e 52,7% foram entregues, porém com prazos maiores, custos

Page 2: Metodologias ágeis de desenvolvimento de software

maiores ou com menos funcionalidades do que especificado no início do projeto. Dentre os projetos que não foram finalizados de acordo com os prazos e custos especificados, a média de atrasos foi de 222%, e a média de custo foi de 189% a mais do que o previsto. Considerando todos os projetos que foram entregues além do prazo e com custo maior, na média, apenas 61% das funcionalidades originais foram incluídas. E os softwares que são entregues no prazo e com todas as funcionalidades têm baixa qualidade, porque são feitos sobre pressão e acabam deixando muitas falhas para trás.

Essas estatísticas foram frutos de metodologias tradicionais, ou “metodologias orientadas a planejamento”, como são conhecidas. Um exemplo delas é o “Modelo Cascata”. Metodologias como essas são fatores que limitam o desenvolvimento, pelo excesso de burocracia, perda de tempo em documentação e em tentar prever o futuro.

É aí que as metodologias ágeis entram. Ao invés de focarem em processos pesados, elas focam em pessoas, isto é, comunicação com o cliente, reconhecimento de suas necessidades, que podem mudar, e interação. É gasto menos tempo numa documentação extensa e mais tempo em um desenvolvimento e implantação bem feitas, ou seja, melhor um software executável do que uma documentação extensa e muitas vezes confusa. Outra característica muito importante é a capacidade de se adaptar aos problemas que aparecerão. Os problemas acontecerão de qualquer forma, a chave é saber como lidar e se adaptar a eles. Dizemos que as metodologias ágeis são adaptativas e não preditivas. Elas não perdem o tempo tentando prever e projetar o que acontecerá, mas sim, focam em se adaptar às iminentes mudanças.

Apesar de existirem diferentes metodologias ágeis como FDD, Strum, Extreme Programming (XP), que variam em suas organizações, ciclos e ênfases, existem algumas características que todas possuem em comum. Todas elas usam o desenvolvimento iterativo e incremental, e existe o foco na comunicação e na redução de produtos intermediários (documentação extensa, relatórios e outras burocracias em excesso). Desenvolvimento iterativo e incremental significa um processo de desenvolvimento cíclico. Iterativo significa “loop”, quando tais partes são revisadas. Um projeto é dividido em várias iterações e ao final de cada iteração é entregue uma parte do produto funcionando. E incremental é uma estratégia pela qual as partes são criadas separadamente e integradas quando completas. A ideia principal é criar o programa incrementalmente, que permite o desenvolvedor aprender, corrigir e otimizar cada versão, dificultando que ao final não se atenda aos requisitos do cliente, que muitas vezes podem mudar.

Sobre as metodologias ágeis foram estabelecidos princípios e ideais comuns entre elas. Assim foi criada a “Aliança Ágil” e logo o “Manifesto Ágil”. Nesse documento é possível encontrar os principais conceitos do Manifesto Ágil, que estão listados a seguir:

- Pessoas e interações, ao contrário de processos e ferramentas.

Page 3: Metodologias ágeis de desenvolvimento de software

- Software executável, ao contrário de documentação extensa e confusa.

- Colaboração do cliente, ao contrário de constantes negociações de contratos.

- Respostas rápidas para as mudanças, ao contrário de seguir planos previamente definidos.

Dois exemplos de metodologias ágeis bastante usadas são o Extreme Programming (XP) e o Scrum.

EXTREME PROGRAMMING

A metodologia XP (Extreme Programming) é uma metodologia extremamente ágil. Ela foi criada nos Estados Unidos na década de 90. Por sua agilidade, temos gastos menores do que o habitual e maior qualidade, ela vem fazendo sucesso em diversos países e está sendo bastante estimulada. É uma Metodologia Ágil para equipes pequenas e médias que desenvolvem software baseado em requisitos vagos e que se modificam rapidamente. Suas regras tem o objetivo de sempre deixar o cliente satisfeito e criar um ambiente de desenvolvimento agradável para seus praticantes.

Page 4: Metodologias ágeis de desenvolvimento de software

SCRUM

Scrum é uma metodologia para planejamento e gestão de projetos de software. Ela é bastante usada no mercado, sendo muito eficiente e aparece em qualquer apostila ou livro sobre Engenharia de Software, por ser atual e conhecida. Nessa metodologia os projetos são divididos em ciclos (tipicamente mensais) chamados de Sprints. O Sprint representa um Time Box dentro do qual um conjunto de atividades deve ser executado. Metodologias ágeis de desenvolvimento de software são iterativas, ou seja, o trabalho é dividido em iterações, que são chamadas de Sprints no caso do Scrum.

CONLUSÃO

Apesar de ainda não existirem projetos suficientes para uma pesquisa concreta, as metodologias ágeis estão dando resultados bastante positivos e mostrando-se promissoras. Além disso estão sendo bem aceitas na indústria de software e pelos engenheiros de software. Em qualquer apostila de Engenharia de Software já podemos encontrar explicações conceituais sobre elas. Apesar da metodologia XP estar sendo considerada como revolucionária, ela apenas reuniu práticas e técnicas que já eram usadas desde o começo da computação;

Page 5: Metodologias ágeis de desenvolvimento de software

REFERÊNCIAS

SOARES, Michel. “Metodologias Ágeis Extreme Programming e Scrum para o Desenvolvimento de Software”. Disponível em:<http://revistas.facecla.com.br/index.php/reinfo/article/view/146/38> Acesso em: 16/10/2013 às 22:41.

REIS, Daniel. “Conceitos básicos sobre Metodologias Ágeis para Desenvolvimento de Software”. Disponível em: <http://www.devmedia.com.br/conceitos-basicos-sobre-metodologias-ageis-para-desenvolvimento-de-software-metodologias-classicas-x-extreme-programming/10596> Acesso em: 16/10/2013 às 22:00.

COMUNIDADE ÁGIL. “Manifesto para desenvolvimento ágil de software.” Disponível em: <http://manifestoagil.com.br/> Acesso em: 16/10/2013 às 19:50.

CARVALHO, Ruan. “Desenvolvimento Iterativo-Incremental.” Disponível em: <http://www.slideshare.net/ruancarvalho/processos-iterativoincremental> Acesso em: 16/10/2013 às 23:00.

AUTOR: Henrik Kniberg. SCRUM E XP DIRETO DAS TRINCHEIRAS. Como nós

fazemos Scrum.Editora. InfoQ – Série de Desenvolvimento de Software Corporativo.

AUTOR: Sérgio Luiz Tonsig. ANALISE e PROJETOS de SISTEMAS: Engenharia de

Software. Editora. CM Ciência Moderna. Volume 1.

Page 6: Metodologias ágeis de desenvolvimento de software