AS METODOLOGIAS ÁGEIS
Por: Karina.S • 29/10/2015 • Trabalho acadêmico • 6.682 Palavras (27 Páginas) • 298 Visualizações
1. METODOLOGIAS ÁGEIS
Antigamente, no início da era digital e de softwares para computadores, todos esses programas eram desenvolvidos seguindo um esquema clássico de projeto e acompanhamento de software, sendo mais voltado para programas permanentes e gigantes. Processamento de dados que se transformam em informações úteis. Num ambiente competitivo e de mudança cada vez mais complexo, a gestão adequada da informação assume uma importância decisiva no processo de tomada de decisão nas organizações.
Essa abordagem clássica de desenvolvimento pesada e baseada em planos foi aplicada a sistemas de pequenas e médias empresas, o overhead envolvido foi tão grande que algumas vezes dominou o processo de desenvolvimento de software. O tempo gasto para determinar como o sistema deveria ser desenvolvido era maior do que o empregado no desenvolvimento do programa e em testes. À medida que os requisitos de sistema mudavam, o retrabalho era essencial e, em princípio pelo menos, a especificação e o projeto tinham de mudar com o programa.
A insatisfação com essas abordagens pesadas levou um numero de desenvolvedores da década de 1990 a propor novos métodos ágeis. Estes permitiam que a equipe de desenvolvimento se concentrasse somente no software, em vez de em seu projeto e documentação. Geralmente os métodos ágeis contam com uma abordagem iterativa para especificação, desenvolvimento e entrega de software, e foram criados principalmente para apoiar o desenvolvimento de aplicações de negócios nas quais os requisitos de sistema mudam rapidamente durante o processo de desenvolvimento. Eles destinam-se a entregar um software de trabalho rapidamente aos clientes, que podem então propor novos requisitos e alterações a serem incluídos nas iterações posteriores do sistema.
1.1 Princípios dos métodos ágeis
Princípios Descrição
Envolvimento do cliente Clientes devem ser profundamente envol-vidos no processo de desenvolvimento. Seu papel é fornecer e priorizar novos re-quisitos do sistema e avaliar as iterações do sistema.
Entrega incremental O software é desenvolvido em incremen-tos e o cliente especifica os requisitos a serem incluídos em cada incremento.
Pessoas, não processo As habilidades da equipe de desenvolvi-mento devem ser reconhecidas e explora-das. Os membros da equipe devem de-senvolver suas próprias maneiras de tra-balhar sem processos prescritivos.
Aceite as mudanças Tenha em mente que os requisitos do sis-tema vão mudar, por isso projete o siste-ma para acomodar essas mudanças.
Mantenha a simplicidade Concentre Concentre-se na simplicidade do software que está sendo desenvolvido e do proces-so de desenvolvimento. Sempre que pos-sível, trabalhe ativamente para eliminar a complexidade do sistema.
2. EXTREME PROGRAMMING
A extreme programming (XP) é talvez o mais conhecido e mais amplamente usado dos métodos ágeis. O nome foi cunhado por Beck porque a abordagem foi desenvolvida pelo avanço de reconhecida boa prática, tal como o desenvolvimento iterativo e o envolvimento do cliente em níveis extremos.
Na extreme programming, todos os requisitos são expressos como cenários (chamados histórias do usuário), que são implementados diretamente como uma série de tarefas. Os programadores trabalham em pares e desenvolvem testes para cada tarefa antes da escrita do código. Todos os testes devem ser executados com sucesso quando um novo código é integrado ao sistema. Há um pequeno espaço de tempo entre os releases do sistema.
2.1 Práticas da extreme programming
Princípio ou prática Princípio ou prática
Planejamento incremental Os requisitos são registrados em cartões de histórias e as histórias a serem incluídas em um release são determinadas pelo tempo disponível e sua prioridade relativa. Os desenvolvedores dividem essas histórias em tarefas.
Pequenos releases O conjunto mínimo útil de funcionalidade que agrega valor ao negócio é desenvolvido primeiro. Releases do sistema são frequentes e adicionam funcionalidade incrementalmente ao primeiro release.
Projeto simples É realizado um projeto suficiente para atender aos requisitos atuais e nada mais.
Desenvolvimento test-first Um framework automatizado de teste unitário é usado para escrever os testes para uma nova parte da funcionalidade antes que esta seja implementada.
Refactoring Espera-se que todos os desenvolvedores recriem o código continuamente tão logo os aprimoramentos do código forem encontrados. Isso torna o código simples e fácil de manter.
Programação em pares Os desenvolvedores trabalham em pares, um verificando o trabalho do outro e fornecendo apoio para realizar sempre um bom trabalho.
Propriedade coletiva Os pares de desenvolvedores trabalham em todas as áreas do sistema, de tal maneira que não se formem ilhas de conhecimento, com todos os desenvolvedores de posse de todo o código. Qualquer um pode mudar qualquer coisa.
Integração contínua Tão logo o trabalho em uma tarefa seja concluído, este é integrado ao sistema como um todo. Depois de qualquer integração, todos os testes unitários do sistema devem ser realizados.
Ritmo sustentável Grandes quantidades de horas extras não são consideradas aceitáveis, pois, no médio prazo, há uma redução na qualidade do código e na produtividade.
Cliente on-site Um representante do usuário final do sistema (o cliente) deve estar disponível em tempo integral para apoiar a equipe de XP. No processo da XP, o cliente é um membro da equipe de desenvolvimento e é responsável por trazer os requisitos do sistema à equipe para implementação.
2.2 Teste em XP
Umas das mais importantes diferenças entre o desenvolvimento iterativo e o desenvolvimento baseado em planos é a maneira como o sistema é testado. Com o desenvolvimento iterativo, não há uma especificação de sistema que possa ser usada por uma equipe de teste externa para desenvolver os testes do sistema. Como consequência, algumas abordagens para o desenvolvimento iterativo tem um processo de teste muito informal.
Para evitar alguns dos problemas de teste e validação de sistema, a extreme programming (XP) enfatiza mais o processo de teste que outros métodos ágeis. O teste de sistema é fundamental para a XP, segundo a qual uma abordagem desenvolvida para reduzir a probabilidade de produção de novos
...