Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Teoria de Engenharia de Software Unidade 3 Métodos Ágeis Prof. Rafael Targino rtargino@unicarioca.edu.br 2 Casos Comuns em Projetos Cliente não presente e não explica direito suas necessidades Equipe culpa o cliente por não conseguir entregar Patrocinador do projeto exige que o projeto entre em produção 2 Modelo em Cascata (ou Sequencial) • O modelo em cascata move-se para a próxima fase somente quando a fase anterior está completa • Não há pulo para frente, para trás ou sobreposição entre as fases. Assume que o Planejamento do Projeto pode ser feito para o projeto inteiro no início do projeto! 4 Triângulo de Gerenciamento de Projetos Método em Cascata Escopo Custo Prazo Orientado ao Plano 3 Planejamento x Realidade Mas Mudanças no Projeto Sempre Ocorrem • Clientes tem baixa percepção do problema no início do projeto • Nossa capacidade de planejar mais do que 2 ou 3 meses do projeto é muito limitada – Frequentes estouros de prazos e orçamentos... • O negócio muda muito rápido • A equipe não sabe a melhor maneira de executar o projeto no início Engenharia de Software Principalmente se considerarmos ambientes mais dinâmicos como desenvolvimento de software, publicidade, jornalismo, entreterimento entre outros... 4 7 Manifesto Ágil • No início dos anos 2000, um grupo de 17 profissionais veteranos da ares de desenvolvimento de software decidiram se reunir em uma estação de esqui nos EUA, para discutir novas formas de melhorar o desempenho de seus projetos 8 Manifesto Ágil Indivíduos e Iterações entre eles mais do que processos e ferramentas (Pessoas) Software em funcionamento mais do que documentação abrangente (Valor) Colaboração com o cliente mais do que negociação de contratos (Confiança) Responder a mudança mais que seguir um Plano (Complexidade) 5 9 Concepção do Ágil Á g i l ≠ R á p i d o Á g i l = A d a p t a t i v o 10 Experimentar Metáfora: Velejando Contra o Vento... 6 11 • Quando o cliente aprende com o produto que está sendo entregue e reavalia as suas necessidades, gerando feedback para a equipe do projeto. • É o mecanismo fundamental que permite que o cliente conduza o desenvolvimento do projeto diariamente. • Garante que a equipe direcione as suas atenções para aquilo que irá gerar mais valor. A Importância do Feedback 12 Abordagem Iterativa Ciclos Iterativos e Incrementais Versão 1 Versão 2 Versão 3 tempo abrangência Feedback Feedback Feedback Aprendizado 7 13 Visibilidade do Progresso do Projeto • Os clientes e demais partes interessadas vem o progresso do projeto – incrementos do produto – a cada final de iteração, ou seja, em semanas. Engenharia de Software • Estabelece um senso de progresso do projeto • Constrói a confiança entre o cliente e a equipe de desenvolvimento Redução do Desperdício • Produzir apenas o que é necessário e suficiente – Produzir apenas o que os usuários irão utilizar – Planejar apenas com o nível de detalhe possível – Utilizar apenas os artefatos necessários e suficientes Engenharia de Software 8 15 Iterações e Releases • Os métodos Ágeis estão centrados nas utilizações de Iterações e Releases Engenharia de Software 16 Exemplo de uma Iteração de 1 Semana Engenharia de Software Definição com o cliente Desenvolvimento Teste Avaliação pelo cliente Validação parcial com o cliente 9 Princípios Ágeis 1. Nossa maior prioridade é satisfazer o cliente, através da entrega adiantada e contínua de software de valor. 2. Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento. Processos ágeis se adequam a mudanças, para que o cliente possa tirar vantagens competitivas. 3. Entregar software funcionando com frequência, na escala de semanas até meses, com preferência aos períodos mais curtos. 4. Pessoas relacionadas à negócios e desenvolvedores devem trabalhar em conjunto e diariamente, durante todo o curso do projeto. 5. Construir projetos ao redor de indivíduos motivados. Dando a eles o ambiente e suporte necessário, e confiar que farão seu trabalho. 6. O Método mais eficiente e eficaz de transmitir informações para, e por dentro de um time de desenvolvimento, é através de uma conversa cara a cara. 7. Software funcional é a medida primária de progresso. 8. Processos ágeis promovem um ambiente sustentável. Os patrocinadores, desenvolvedores e usuários, devem ser capazes de manter indefinidamente, passos constantes. 9. Contínua atenção à excelência técnica e bom design, aumenta a agilidade. 10.Simplicidade: a arte de maximizar a quantidade de trabalho que não precisou ser feito. 11.As melhores arquiteturas, requisitos e designs emergem de times auto organizáveis. 12.Em intervalos regulares, o time reflete em como ficar mais efetivo, então, se ajustam e otimizam seu comportamento de acordo. Exercício Princípios Ágeis Para cada situação abaixo, indique se a mesma está de acordo ou não aos Princípios Ágeis identificados na lista do slide anterior (informe o número do Princípio Ágil): 1. Provocar as pessoas para trabalharem horas extras pois o produto está atrasado 2. Equipes de trabalhos distribuídas geograficamente e membros de equipes trabalhando remotamente 3. A equipe decide aumentar a duração da iteração de 2 para 4 semanas porque não estava conseguindo constantemente produzir os requisitos acordados. 4. O negócio precisa de uma nova funcionalidade que não estava acordada inicialmente no planejamento. 10 Mas será que quebrar o projeto em entregas parciais é o suficiente? Como fica o escopo do seu projeto? 11 Produto Mínimo Viável (MVP) Importância de saber o momento de Parar Não dá para ter certeza que a bicicleta elétrica atende ao negócio até você desenvolvê-la... 12 Triângulo de Gerenciamento de Projetos Metodologias Ágeis Prazo Orientado ao Valor Escopo Custo FixoFixo Deixando o Escopo Fluir (Escopo Aberto) Fluidez do Backlog do Projeto 13 SCRUM Planejamento por Iteração Aprendizado a partir do que está sendo entregue Interações inter e intra equipes rápidas e constantes Resumo Métodos Ágeis 14 Usar métodos tradicionais ou ágeis? • Ágil • requisitos não conhecidos • inovação • usuários irão aprender durante o desenvolvimento • documentação apenas do que é necessário • planejamento apenas da próxima iteração • Sistemas menores • Tradicional • requisitos estáveis • migrar sistemas • usuários seguros do que querem • documentação abrangente • planejamento de um conjunto de iterações • Sistemas muito grandes É p r e c i s o o l h a r a n a t u r e z a d o p r o d u t o ! Resumo dos Métodos Método Planejamento Entrega Método Sequencial Planejamento do Todo Tudo no final do projeto Método Iterativo e Incremental Planejamento do Todo Parciais ao longo do Projeto Métodos Ágeis (também é iterativo e incremental) Planejamento próximo de alguma coisa do todo, mas sem garantia do que será feito Parciais ao longo do Projeto
Compartilhar