XP EXTREME PROGRAMMING. AGO106 - Gestão

Documentos relacionados
Extreme Programming: Valores e Práticas

Vinícius Manhães Teles prefácio de Kent Beck colaborações especiais de Kent Beck e Robert Mee

2 Processos Ágeis Scrum

Programação Extrema na Prática

Desenvolvimento Ágil de Software. Prof. Edjandir Corrêa Costa

Modulo I Introdução ao XP

Extreme Programming. Projeto de. Desenvolvimento. Software. Prof.: Ari Oliveira

Princípios e práticas de extremme Programming

Desenvolvimento Ágil de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Engenharia de Software DESENVOLVIMENTO ÁGIL

Processos Ágeis de Desenvolvimento de Software

Capítulo 1. Extreme Programming: visão geral

Métodos Ágeis e Programação Extrema (XP)

Processos Ágeis de Desenvolvimento de Software. Yuri Pereira

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome:

Desenvolvimento ágil de software

Scrum e Extreme Programming

Engenharia de Software Processo de Desenvolvimento. Ciclo de Vida - Modelo Cascata

PROGRAMAÇÃO EXTREMA - XP

Dificuldades na implantação de Métodos Ágeis

Apresentando XP. Encante seus clientes com Extreme Programming

Introdução à Programação extrema (XP)

NUNES, R. D. A implantação das metodologias ágeis de desenvolvimento de software Scrum e Extreme Programming (XP)

Modelos de Gestão de Projetos

A Evolução de XP segundo Kent Beck Parte 1

O PAPEL DO ANALISTA DE NEGÓCIOS NA AGILIDADE. Ainda precisamos de Analistas de Negócios?

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS

Sistemas de Informação I

Processo de desenvolvimento

SIGEPRO - Mini Curso sobre Métodos Ágeis de Gestão de Projetos

METODOLOGIAS ÁGEIS FEATURE DRIVEN DEVELOPMENT E AUP

1. A função DevOps, que se concentra principalmente em Produtos & Serviços:

Lista de Exercícios 02: Revisão

Introdução a Métodos Ágeis com ênfase em XP. Alfredo Goldman Professor do IME - USP

Teste de Software. Prof. Camila. Pedro de Assis Sobreira Jr.

Análise e Projeto de Sistemas

MANIFESTO ÁGIL, SCRUM E EXTREME PROGRAMMING COMO CONSTRUIR SOFTWARE COM QUALIDADE E QUE AGREGAM VALOR AO CLIENTE?

Escolhendo um Modelo de Ciclo de Vida

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Engenharia de Software. Prof. Me. Clodoaldo Brasilino

TS03. Teste de Software ESTÁGIOS DO TESTE DE SOFTWARE. COTI Informática Escola de Nerds

especificação por meio de exemplos não é garantia de corretude, mas a experiência mostra que tende a ser melhor do que o estado da prática hoje

Introdução a Engenharia de Software

Rational Unified Process (RUP)

METODOLOGIAS ÁGEIS PARA O DESENVOLVIMENTO DE SOFTWARE

Professor Emiliano S. Monteiro

Capítulo 3. Desenvolvimento Ágil de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

DESENHO DE CARGOS E TAREFAS

Guia do Processo de Teste Metodologia Celepar

EXTREME PROGRAMMING (XP)

Scrum Foundations. Fundamentos de Scrum

Prof. Fábio Lúcio Meira

Visão Geral do RUP.

Escrevendo Estórias do Usuário Eficazes aula #3

Verificação e Validação (V & V)

Análise e Projeto. Prof. Erinaldo Sanches Nascimento

ALUNO: ALCIDES WENNER FERREIRA BASTOS IFMA- INSTITUTO FEDERAL DO MARANHÃO DE CIÊNCIAS E TECNOLOGIA TÉCNICO EM INFORMÁTICA

SCRUM MASTER PROFESSIONAL CERTIFICATE (SMPC) SIMULADO DO EXAME Sample Test V092018

Título PROCESSO LABES ESPECIALIZADO PARA DESENVOLVIMENTO SEGUNDO O PARADIGMA ESTRUTURADO. Projeto. Analista; Requisitos Funcionais Escopo; Cliente;

Perfis Importantes no Scrum

Modelos de Ciclo de Vida

BEHAVIOR DRIVEN DEVELOPMENT BRUNO ROLIM MANSUR

RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS. Prof. Fabiano Papaiz IFRN

! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado

Comparação entre Metodologias Rational Unified Process (RUP) e extreme Programming(XP)

Implementação de um sistema para gerenciamento de projetos baseado no Framework Scrum: um estudo de caso

Transcrição:

XP EXTREME PROGRAMMING AGO106 - Gestão de Processos de Desenvolvimento de Software

DESENVOLVIMENTO TRADICIONAL Sequencial: Análise, Design, Implementação, Teste, Implantação e Manutenção Características: Determinismo O final do processo de desenvolvimento deve sempre gerar o resultado conhecido, previsto Especialização Dividir o processo de desenvolvimento para que as tarefas sejam suficientemente simples e gerem resultados determinísticos Foco na execução O determinismo e a especialização permitiriam que os desenvolvedores se concentrassem apenas na execução. Bastaria seguir a especificação para chegar ao resultado desejado 2/18

Custo de uma alteração DESENVOLVIMENTO TRADICIONAL Custo de uma alteração Requisitos Análise Design Implementação Teste Produção 3/18

DESENVOLVIMENTO TRADICIONAL Tipos de projetos: Tipo 1 (bem-sucedido) Finalizado no prazo, dentro do orçamento e contendo todas as funcionalidades especificadas Tipo 2 (desafiado) Finalizado e entrega um software operacional, mas ultrapassa o orçamento e o prazo, além de disponibilizar menos funcionalidades que o especificado Tipo 3 (fracassado) Cancelado em algum momento durante o ciclo de desenvolvimento Projetos - 1994 31,1% 16,2% Tipo 1 Tipo 2 Tipo 3 52,7% 4/18

DESENVOLVIMENTO TRADICIONAL Trabalhador manual Exerce atividades que dependem basicamente de suas habilidades manuais e não se baseiam no uso intensivo de conhecimento Fácil de automatizar Determinístico Repetitivo Trabalhador do conhecimento Produz com base no uso intensivo do conhecimento e criatividade Cometer erros é uma parte natural e saudável do trabalho O desenvolvimento de software necessita de trabalhadores do conhecimento, entretanto as premissas do desenvolvimento tradicional somente são válidas para trabalhadores manuais 5/18

MANIFESTO ÁGIL Indivíduos e interação entre eles 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 6/18

Custo de uma alteração DESENVOLVIMENTO ÁGIL Custo de uma alteração Como o processo é iterativo, o custo para uma alteração se mantém constante Tempo 7/18

XP Kent Beck 1996 Valores: Feedback O cliente aprende com o software que utiliza e fornece feedback para a equipe de desenvolvimento, direcionando o desenvolvimento e garantindo que a atenção seja focada naquilo que gera mais valor Comunicação - Todos os envolvidos no projeto devem poder se comunicar face a face ou da forma mais rica possível. A comunicação com o cliente permite que todos os detalhes do produto sejam tratados com a atenção e a agilidade que merecem Simplicidade Apenas aquilo que é suficiente para atender a cada necessidade do cliente deve ser implementado. Evitar futurologia! Coragem A equipe deve ser corajosa e acreditar que, utilizando as práticas e valores do XP, será capaz de fazer o software evoluir com segurança e agilidade 8/18

XP - PRÁTICAS 9/18

XP - PRÁTICAS Cliente presente É essencial que o cliente participe ativamente do processo de desenvolvimento. Ligada aos valores: feedback, comunicação e simplicidade Jogo do planejamento Ocorre no início de cada release e iteração. É uma reunião onde o cliente avalia e prioriza as funcionalidades a serem desenvolvidas. Funcionalidades são descritas em pequenos cartões e denominadas estórias. As estórias são estimadas usando pontos Release Período longo, onde se desenvolve um módulo do sistema, que gera um valor bem definido para o cliente. Um release pode incluir várias iterações Iteração Período de poucas semanas, onde se desenvolve um conjunto de funcionalidades Ponto Uma unidade de esforço, com significado definido no projeto 10/18

XP - PRÁTICAS Stand up meeting Uma reunião, onde cada membro da equipe apresenta o que foi realizado, os próximos passos e os impedimentos encontrados. É rápida (alguns minutos) e todos os membros permanecem em pé Programação em par Diante de cada computador existem sempre dois desenvolvedores que trabalham juntos para produzir o mesmo código. Permite que o código seja revisando enquanto é construído. Os desenvolvedores se complementam e têm mais oportunidades de gerar soluções inovadoras 11/18

XP - PRÁTICAS Desenvolvimento guiado pelos testes (TDD) Os desenvolvedores escrevem testes para cada funcionalidade antes de codificá-las. Fazendo isso, os desenvolvedores: Aprofundam o entendimento das necessidades do sistema (o que aprimora a análise) Se preocupam com as interfaces externas dos métodos e classes antes de codificá-los (o que melhora o design) Sabem até onde codificar cada funcionalidade (o que ajuda a manter o sistema simples) Passam a contar com uma massa de testes que pode ser usada a qualquer momento para validar todo o sistema Refactoring É o ato de alterar um código sem afetar a funcionalidade que ele implementa. É usado para tornar o software mais simples de ser manipulado 12/18

XP - PRÁTICAS Código coletivo Os desenvolvedores têm acesso a todas as partes do código e podem alterar aquilo que julgarem importantes, sem a necessidade de pedir autorização de outra pessoa Código padronizado A equipe deve criar padrões de codificação para tornar o sistema mais homogêneo e permitir que manutenções futuras ocorram de forma mais rápida Design simples Em vez de criar generalizações dentro do código, de modo a prepará-lo para possíveis necessidades futuras, a equipe deve sempre optar por um código que seja suficiente para atender às necessidades da funcionalidade que está implementando Os desenvolvedores se baseiam na premissa de que serão capazes de incorporar qualquer necessidade futura quando e se ela surgir 13/18

XP - PRÁTICAS Metáfora Tem o poder de transmitir ideias complexas de forma simples, utilizando uma linguagem comum que é estabelecida entre a equipe de desenvolvimento e o cliente Ritmo sustentável Para garantir que a equipe tenha sempre o máximo de rendimento e produza software com melhor qualidade possível, o XP recomenda que os desenvolvedores trabalhem apenas oito horas por dia e evitem fazer horas extras, visto que é essencial estar descansado a cada manhã, de modo a utilizar a mente na sua plenitude ao longo do dia Integração contínua Uma nova funcionalidade pode afetar outras já implementadas. Os pares devem integrar seus códigos com o restante do sistema várias vezes ao dia, executando todos os testes, para assegurar que a integração ocorreu de forma satisfatória 14/18

XP - PRÁTICAS Releases curtos O XP tem como objetivo gerar um fluxo contínuo de valor para o cliente e, por isso, trabalha com releases curtos. A equipe produz um conjunto reduzido de funcionalidades e o coloca em produção rapidamente, de modo que o cliente possa utilizar o software no dia a dia e se beneficiar dele 15/18

XP - EQUIPE Papéis: Gerente de projeto Responsável por assuntos administrativos e relacionamento com o cliente Coach Responsável técnico do projeto. Assegura o bom funcionamento do processo e busca formas de melhorá-lo continuamente Analista de teste Auxilia o cliente a escrever os testes de aceitação. Garante a execução contínua dos testes Redator técnico Auxilia a equipe a documentar o sistema. Permite que os desenvolvedores se concentrem prioritariamente na implementação do software Desenvolvedor Analisa, projeta e codifica o sistema. Em XP, não existem divisões entre analista, projetista, programador, etc 16/18

REFERÊNCIAS Teles, Vinícius Manhães. Extreme Programming. Segunda edição. Novatec, 2014 17/18

DÚVIDAS?