Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Clique para editar o estilo do título mestre Clique para editar o estilo do subtítulo mestre * * * Extreme Programming & Processos Ágeis de Desenvolvimento * * * O Manifesto do Desenvolvimento Ágil www.agilealliance.org: Estamos descobrindo maneiras melhores de se desenvolver software, aplicando-as e ajudando os outros a aplicá-las. Deste trabalho nós valorizamos: Indivíduos e interações mais que processos e ferramentas Trabalhar no software mais que documentação abrangente Colaboração do Cliente mais que negociação contratual Responder às mudanças mais que seguir um plano É isto, embora exista valor nos itens da direita, nós valorizamos mais os itens da esquerda. * * * Características dos Processos Ágeis Adaptabilidade X Previsibilidade A Engenharia de Software e as demais Engenharias; A diferença entre as fases de Projeto e Construção; Negócios Atuais: Mudança constante de requisitos; Adaptabilidade exige um ciclo iterativo; Adaptabilidade exige participação extrema do cliente; * * * Características do Processos Ágeis Foco nas Pessoas X Foco no Processo O fator humano: motivação conduz ao sucesso; Pessoas não são recursos; * * * Metodologias Existentes Crystal Family Adaptive Software Development (ASD) SCRUM Feature-Driven Development (FDD) Dynamic System Development Method (DSDM) * * * Metodologias Existentes Extreme Programming (XP) Agile Modeling (AM) Instância do RUP para XP * * * Processos Ágeis Algumas Considerações: Não se aplicam a todas as situações; Não existe nada novo, apenas reconhecem a natureza do desenvolvimento de software; Ame ou Odeie; No cenário atual constituem uma alternativa que deve ser considerada. Clique para editar o estilo do título mestre Clique para editar o estilo do subtítulo mestre * * * Extreme Programming Abrace as Mudanças * * * Origem Chrysler Comprehensive Compensation system (C3) Novo sistema de folha de pagamento, unificando os sistemas existentes Projeto Orientado a Objetos usando Smalltalk De 1995 a 1996 – Empresa contratada inicia o projeto. Os resultados obtidos são ruins e o projeto entra em crise. Kent Beck avalia o projeto e constata seu estado crítico. De 1997 a 1999 – Liderado por Beck, o projeto se tornou o laboratório das práticas que hoje formam o XP * * * A Premissa Extrema * * * Aprendendo a Dirigir * * * Valores Simplicidade Comunicação Feedback Coragem * * * Práticas de XP Jogo do Planejamento Pequenas Versões Projeto Simples Refatoração Teste Primeiro Programação em Pares Nível do Cliente Nível da Equipe Nível do Par Baseado no gráfico de Ron Jeffries Metáfora Padrões de Codificação Propriedade Coletiva do Código Integração Contínua Semana de 40 horas Testes de Aceitação Cliente “on-site” * * * O Ciclo de Vida de um Projeto XP Exploration Planning Iterations to Release Productionizing Adaptado do site www.extremeprogramming.org de Don Wells * * * A Força do Conjunto * * * Variáveis de Projeto Modelo Tradicional: Tempo Custo Escopo Manipula-se a Qualidade Modelo XP: Tempo Custo Qualidade Manipula-se o Escopo Contratos de Preço Pré-Fixado Contratos de Escopo Varável * * * Conte-me uma Estória Prioridade: 1 Renovação de Matrícula As disciplinas disponíveis para matrícula devem ser apresentadas. O aluno escolhe as disciplinas desejadas e confirma. Um e-mail com a confirmação da matrícula é enviado para o aluno. 3 Dias Equipe estima a estória em Tempo Ideal Cliente prioriza. * * * Release Planning Cliente escreve as estórias. Equipe de desenvolvimento estima as estórias. Estórias muito pequenas são unificadas, estórias muito grande são quebradas. Cliente prioriza as estórias. Equipe ajuda o cliente a entender riscos técnicos. Cliente define os releases. * * * Iteration Planning Cliente define estórias que devem ser implementadas na iteração considerando a velocidade definida pela equipe. Cliente e equipe conversam sobre as estórias selecionadas. Desenvolvedores se oferecem para implementar determinadas tarefas. Equipe identifica as tarefas de programação necessárias para implementar as estórias da iteração. Equipe estima e prioriza as tarefas. * * * Stand Up Meeting Cada dia de trabalho “começa” com uma reunião, onde todos conversam sobre os problemas encontrados no dia anterior e definem as prioridades do dia que se inicia. A reunião é curta, mais ou menos uns 15 minutos. O fato de ser em pé ajuda a alcançar este objetivo. Web Designer ? * * * Estratégia de Desenvolvimento Programação em Pares Propriedade Coletiva Integração Contínua Padrões de Codificação * * * Estratégia de Teste Test Driven Development Teste antes de codificar (Murmurinhos típicos: Que? Tá maluco?) Testar tudo o que pode quebrar. O risco deve ser considerado. Devem ser automatizados. A cada funcionalidade implementada, os testes devem rodar 100% Testes de Aceitação Cliente escreve testes funcionais para validar se as funcionalidades entregues fazem o que eles querem. * * * Estratégia de Design Design Simples Metáfora Test-First Refatoração Projete para os problemas de hoje, hoje; projete para os problemas de amanhã, amanhã (Curva de Mudança XP). * * * Estratégias de Gerenciamento Cliente on site Ritmo Sustentável, semana de 40 horas Papéis: Gerente de Projeto Desenvolvedor Cliente Tester Coach Tracker * * * Ambiente de Trabalho A primeira coisa que deve ser feita para se começar um projeto XP é reorganizar o ambiente. White Boards. Mobília preparada para o trabalho em duplas. Mural para colocar os cartões. * * * Algumas considerações importantes Xp não é uma bala de prata XP não é fácil de adotar XP não é possível em todos os ambientes a todo momento Pequenas equipes Requisitos instáveis Novas tecnologias ou prazo pré-definido * * * Exemplo Desenvolver um sistema para Acompanha-mento da Vida Acadêmica de alunos da XP University. Condições do Cliente: Criar um sistema para uso na Web com acesso pelo site da universidade. Precisa entrar no ar no início de Junho/2002 * * * Exemplo - Cont. Levantamento das Estórias: Total de Dificuldade = 33 Estória Dificuldade (em dias ideais) Atualizar Dados Pessoais do Aluno 3 Consultar Quadro de Horários 4 Listar Turmas Inscritas 3 Verificar Recursos Disponíveis da Turma 3 Donwload de Recurso 2 Renovação de Disciplina 12 Inclusão/Exclusão de Disciplina 6 * * * Exemplo - Cont. Refinamento das Estórias: Maiores do que uma iteração Divisão do Conceito Total de Dificuldade = 33 (Poderia Mudar) Estória Dificuldade (em dias ideais) Prioridade Atualizar Dados Pessoais do Aluno 3 1 Consultar Quadro de Horários 4 1 Listar Turmas Inscritas 3 1 Verificar Recursos Disponíveis da Turma 3 1 Donwload de Recurso 2 1 Apresentar Disciplinas Oferecidas 7 2 Simular Quadro de Horários 5 2 Inclusão de Disciplina 3 3 Exclusão de Disciplina 3 3 * * * Exemplo - Cont. Release Planning Tamanho da Iteração = 2 semanas reais (10 Dias) Total de Dificuldades = 33 dias ideais Velocidade Inicial: 1 desenvolvedor - 5 DI em uma iteração 2 desenvolvedores - 10 DI em uma iteração Total de Iterações necessárias = 3.3 ou seja 4. Considerar dois Releases de 1 mês cada (2 iterações) Entregar uma versão no início de fevereiro. Cliente define o escopo. * * * Exemplo - Cont. Release Planning - Release 1 i1 – 01/04 – 12/04 Atualizar Dados Pessoais do Aluno 3 Consultar Quadro de Horários 4 Listar Turmas Inscritas 3 i2 – 15/04 – 26/04 Verificar Recursos Disponíveis da Turma 3 Apresentar Disciplinas Oferecidas 7 * * * Exemplo - Cont. Release Planning - Release 2 Planejar somente 1 ou 2 releases. Não prever o futuro. Só definir o limite de datas: i3 – 29/04 – 10/05 i4 – 13/05 – 24/05 OU i3 – 29/04 – 10/05 Donwload de Recurso 2 Simular Quadro de Horários 5 Inclusão de Disciplina 3 i4 – 13/05 – 24/05 Exclusão de Disciplina 3 * * * Exemplo - Cont. Iteration Planning Utilizar iteração zero-funcionality Framework de Teste, Framework de Desenvolvimento, Software de Controle de Versão, Configuração de SGBD, App Server... Dividir em Tarefas de Programação Alocar Membros da Equipe pelas Tarefas Releases - prioridade do cliente Iterações - riscos técnicos envolvidos * * * Exemplo - Cont. Dividindo a Estória em Tarefas: Plan1 3 Tarefas Criar Página ASP 1.5 Desenvolver Componente COM 2 Criar Tabelas no Banco de Dados 0.5 Estimativa Total: 4 Plan2 Plan3 * * * Exemplo - Cont. Ao final de cada iteração: medir o Andamento do Projeto. Medir no meio da iteração; Decisões: Novas Estórias; Retirar Estórias; Mudança de Prioridade; Ajuste nas Estimativas; Too Much To Do; Too Little To Do; * * * Referências No Brasil: www.groups.yahoo.com/groups/xprio www.groups.yahoo.com/groups/xpers www.xispe.com.br No Mundo: www.extremeprogramming.org ww.xprogramming.com www.c2.com/cgi/wiki?ExtremeProgrammingRoadmap Do the Simplest Thing That Could Possibly Work! (DTSTTCPW) You aren’t going to need it! (YAGNI)
Compartilhar