Estudo Comparativo Entre Metodologias Ágeis e Tradicionais Aluno: Márcia Seabra Cabral Professor: Augusto Sampaio Disciplina: Tópicos Avançados em Engenharia de Software 3 Agenda • • • • • • • • Motivação Metodologias Ágeis Metodologias Tradicionais Análise Entre as Metodologias Trabalhos Relacionados Conclusão Trabalhos Futuros Referências Motivação • • • • Preocupação da Engenharia de Software em desenvolver sistemas complexos Criação de metodologias ágeis Como usar metodologias tradicionais para pequenos projetos Custo e tempo são fatores críticos Metodologias Ágeis • • • • Crescente número de metodologias ágeis Desenvolvimento de software menos complexos Conjunto de maneiras e princípios para desenvolvimento de software Não incorporam novidade no desenvolvimento de software Metodologias Tradicionais • • • Utilizadas para desenvolver sistemas de grande porte Classificadas como burocráticas Não satisfatórias para projetos de pequeno porte Análise Entre as Metodologias • • • Estudo feito usando o RUP e XP Identificação similaridades entre as metodologias É possível usar o RUP para desenvolvimento de projetos de pequeno porte? • Incorporação de práticas do XP Análise Entre as Metodologias • Concepção • • Importância da participação do cliente Atividades essenciais • • • Formular o escopo do projeto Planejar e preparar o estudo de viabilidade Sintetizar uma arquitetura candidata • • • • protótipos simples – inicia o escalonamento do projeto e refinamento dos casos de uso Preparar o ambiente para desenvolvimento do projeto Planejamento da próxima iteração Milestone • Visibilidade inicial dos casos de uso mais prioritários, escalonamento do projeto e arquitetura inicial. Análise Entre as Metodologias • Documentação – menos formalismo • • • • • Lista de risco – XP não descreve como os riscos serão tratados Plano de projeto Plano de aceitação do projeto – XP usa testes de aceitação Plano de iteração – Técnicas de XP para monitorar e medir o sucesso do projeto Modelo de caso de Uso Análise Entre as Metodologias • • Elaboração Atividades essenciais • • • • Definir e validar a arquitetura Refinar a visão do sistema Criar planos de iteração para a fase de construção Práticas • • • • Criação de testes antes da codificação Simplicidade Propriedade coletiva do código Integração contínua Análise Entre as Metodologias • Documentação Documento de arquitetura • Plano de iteração • Análise Entre as Metodologias • • Construção Atividades essenciais Gerenciar recursos e controlar processos • Desenvolver e testar componentes • Análise Entre as Metodologias • Práticas a serem adotadas • • • • • • Comunicação Testes Integração contínua Projeto simples Código coletivo Medições simples Análise Entre as Metodologias • Documentação Componente • Material de treinamento • Plano de deployment • Plano de iteração • Análise Entre as Metodologias • • Transição Atividades essenciais Finalizar material de suporte para o usuário final • Realizar testes no ambiente do consumidor • Ajustar o produto com base no feedback do consumidor • Entregar o produto final ao usuário • Análise Entre as Metodologias • Documentação Plano de deployment • Release notes • Material de treinamento e documentação • Análise Entre as Metodologias • Revisões • • Testes • • • Informais Ênfase em caixa-branca Avaliar iteração Reuniões Trabalhos Relacionados • RUP-pe – RUP para Pequenas Equipes • • • • Planejamento e Implementação Grupos de até 15 desenvolvedores Alinhada ao TSP – alinhamento com o SWCMM Validação da metodologia através de questionários • Entrevistados – • • Gerente/Líder de Equipe – 20 pessoas Arquiteto/Engenheiro de Software – 18 pessoas Trabalhos Relacionados • Objetivo do questionário Verificar se alguma das práticas do RUPpe já tinham sido aplicadas, e quais foram seus benefícios e problemas • Verificação da importância dos artefatos excluídos ou modificados • • Três empresas foram entrevistadas Trabalhos Relacionados • Planejamento • • • • • • Iterações de curta duração – 2 a 4 semanas Participação de toda a equipe no planejamento Balanceamento constante da carga de trabalho entre a equipe Acompanhamento do progresso e dos problemas do projeto através de encontros diários com a equipe Uso de métricas para acompanhar o progresso do projeto e melhorar estimativas e re-planejamento Cliente ou especialista do negócio participando da definição do escopo das iterações Trabalhos Relacionados • Implementação • • • • • • • Adoção de um padrão de codificação Integração contínua Programação em pares Desenvolvimento de testes unitários para todo o sistema, com execução automatizada Elaboração dos testes antes do início da implementação Refactoring do Código Propriedade Coletiva do Código Trabalhos Relacionados • Artefatos • Eliminados • • • • Plano de Resolução de Problemas Plano de Gerenciamento de Riscos Avaliação da Iteração – incorporado na Avaliação de Status Atualizados • • Ordem de Trabalho Avaliação de Status Conclusão • • • As práticas de XP já são utilizadas pelas equipes de desenvolvimento e trazem benefícios ao projeto Artefatos e atividades essenciais da processo podem ser aplicadas Não existe uma abordagem a ser seguida para definição de estratégias de testes caixa-branca, necessitando da experiência da equipe Trabalhos Futuros • • • Análise do RUP Versão 7 para pequenos projetos em relação a metodologias ágeis. Instanciar o RUP-pe para incorporar o processo Code Coverage. Instanciar a proposta da monografia ao nível de disciplinas do RUP. Referências • • • • • • • Abrahamsson, P., Salo, O., Ronkainen, J., Warsta, J. Agile Software Development Methods: Reviews and Analysis. ESPOO: VTT Publications, 2002. Disponível em: <http://www.inf.vtt.fi/pdf/publications/2002/P478.pdf>. Acesso em: 18 jan. 2006 [Beck, 1999a]. Beck, K. Embracing Change with Extreme Programming. IEEE Computer 32(10): 70-77. [Cause, 2004]. Cause, G. Delivering Real Business Value using FDD. 2004. Disponível em: <http://www.methodsandtools.com/archive/archive.php?id=19>. Acesso em: 04 fev. 2006. [Miller, 2001]. Miller, G. G. The characteristics of Agile Software Process. The 39th International Conference of Object-Oriented Languages and Systems (TOOLS 39), Santa Barbara, CA. [Oliveira, 2003]. Oliveira, J. P. C. RUP-pe: Uma Metodologia Ágil, Baseada no RUP e no TSP, para Pequenas Equipes. Dissertação de Mestrado. Centro de Informática. Universidade Federal de Pernambuco. Setembro, 2003. [Rational, 2003]. Rational Unified Process. Version 2003.06.13. [Costa Filho et al, 2005]. Costa Filho, E. G., Penteado, R., Silva, J. C. A., Braga, R. T. V. Padrões e Métodos Ágeis:agilidade no processo de desenvolvimento de software. SugarLoafPLoP’2005. 5th Latin American Conference on Pattern Languages of Programming. August 16-19, 2005. Disponível em: <http://sugarloafplop2005.icmc.usp.br>. Acesso em: 18 jan. 2006.