Avaliação Experimental de Técnicas Ágeis de Desenvolvimento Lucas dos Santos Lima Andrés Ignácio Martínez Menéndez (orientador) Universidade Federal de Sergipe Julho de 2011 Plano de Apresentação •Introdução •Referencial teórico -Processo de Software -Modelo de Processo de Software -Metodologias Tradicionais -Metodologias Ágeis •Trabalho proposto •Resultados parciais atingidos •Principais desafios do trabalho •Cronograma •Bibliografia Introdução • Motivação – – – – – – Crise do software Processos burocráticos Métodos claros e adaptáveis Menos orientação ao documento, mais orientação ao código Eficiência dos métodos ágeis Motivação pessoal Referencial Teórico • Processo de Software - Definição - Desenvolvimento - Manutenção Referencial Teórico • Modelo de Processo de Software Referencial Teórico • Cascata ou Clássico Referencial Teórico • Prototipagem Referencial Teórico • Evolucionário – Incremental Referencial Teórico • Evolucionário – Espiral Referencial Teórico • Metodologias Tradicionais – – – – Mainframes e Terminais Burros Acesso Limitado Alto Custo de Alteração/Correção Processo Rigoroso Referencial Teórico • RUP (Rational Unified Process) Referencial Teórico • Metodologias Ágeis – – – – – – Refinar métodos Iterativos Tradicionais; Ênfase nas pessoas; Cliente próximo ao processo; Iterações curtas; Testes automatizados; Equipes pequenas; Referencial Teórico • Impedimentos – – – – Burocracia como requisito; Maturidade; Nível técnico da equipe; Medo; Referencial Teórico • Manifesto Ágil (2001) – – – – Indivíduos e interação 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; Referencial Teórico • Mitos e Concepções Erradas – – – – – Abomina documentação; Não precisamos de processos nem de ferramentas; Não há disciplina; Não há plano a seguir; Uma metodologia ágil vai resolver o problema de nossa empresa; Referencial Teórico • Maiores Vantagens – – – Iterações curtas; Diminuição dos custos de comunicação; Levar em consideração que as coisas vão mudar ao longo do caminho Referencial Teórico • Algumas práticas são boas de qualquer jeito: – – – Testes automatizados; Integração contínua; Iterações curtas; Referencial Teórico • Scrum Trabalho Proposto • Avaliação Experimental de Técnicas Ágeis de Desenvolvimento – Por que adotar o Agile? – Quando é aplicável? – Como aplicá-lo? Trabalho Proposto • Metodologia – Bibliográfico – Prático – Experimental Resultados Parciais Atingidos • Levantamento bibliográfico • Escrita dos capítulos teóricos do trabalho • Escolha de um projeto piloto e uma equipe de desenvolvimento Principais Desafios do Trabalho • • • • • Projetos disponíveis; Evitar nebulosidade nos objetivos; Evitar problemas de comunicação; Manter o projeto dentro do prazo; Perda de recursos essenciais durante o andamento do projeto; • Usar a criatividade; Cronograma Cronograma Bibliografia • SOMMERVILLE, Ian. Engenharia de software. 8. ed. São Paulo, SP: Pearson, 2007 • PRESSMAN, Roger S. Engenharia de software. São Paulo, SP: Makron Books, 2007 • KRUCHTEN, P., “The Rational Unified Process, An Introduction”, 2nd Edition, Addison-Wesley, 2000 • OLIVEIRA, S. R. B, ROCHA, T. A., VASCONCELOS, A. M. L., “Adequação de Processos para Fábricas de Software”, Anais do Simpósio Internacional de Melhoria de Processos de Software – SIMPROS 2004, São Paulo, 2004. Dúvidas?