Processos Ágeis de Desenvolvimento de Software

Documentos relacionados
SCRUM aplicado na Gerência de Projetos

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Desenvolvimento Ágil de Software

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

Processos Ágeis de Desenvolvimento de Software. Yuri Pereira

Scrum Foundations. Fundamentos de Scrum

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

Extreme Programming: Valores e Práticas

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

Programação Extrema na Prática

Estágio II. Aula 04 Testes Ágeis. Prof. MSc. Fred Viana

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

METODOLOGIA ÁGEIS FDD FEATURE DRIVEN DEVELOPMENT. Prof. Fabiano Papaiz IFRN

Princípios e práticas de extremme Programming

Scrum. Projeto de. Desenvolvimento. Software. Prof.: Ari Oliveira

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

XP EXTREME PROGRAMMING. AGO106 - Gestão

Processo de desenvolvimento

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

Métodos Ágeis e o SCRUM. Bruno Henrique Oliveira

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

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

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

METODOLOGIAS ÁGEIS FEATURE DRIVEN DEVELOPMENT E AUP

O papel do QA (Testador) em um time Ágil. #caipiraagil2017

Modelos de Gestão de Projetos

Engenharia de Software. Prof. Me. Clodoaldo Brasilino

Introdução a Métodos Ágeis. Curso de Verão IME/USP

Desenvolvimento ágil de software

22/03/2018. Professor Ariel da Silva Dias RUP e Modelos Ágeis

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

Visão Geral do RUP.

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

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Manifesto Ágil Princípios

Engenharia de Software

Processo. Processo unificado. Principais Características do UP. Principais Características do UP RUP. Unified Process (Processo Unificado)

Luiz Fernando Maurício de Souza Sidemar Fidelis Cezario. FDD Desenvolvimento dirigido a funcionalidades

Scrum e Extreme Programming

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

- 6ª Lista de Exercícios -

Análise e Projeto. Prof. Erinaldo Sanches Nascimento

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Papel do PO Métodos Ágeis. Fonte: Adaptworks

Scrum. Daniel Krauze

Engenharia de Software I. Aula 15: Metodologias Ágeis. Prof. Márcio D. Puntel

RUP Unified Process. Profª Jocelma Rios

Introdução a Engenharia de Software

SIMPLe: uma abordagem simples

Adoção de metodologia ágil baseada em Scrum - Case da Procergs

ENGENHARIA DE SOFTWARE

Processos de Software

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

MANIFESTO ÁGIL. Esses conceitos aproximam-se melhor com a forma que pequenas e médias organizações trabalham e respondem à mudanças.

Processos de software Leitura: Cap3 Sommerville / Cap1: Pressman - Ariadne

Abordagens para Análise de Negócio

Gestão Ágil de Projetos

Modelagem da Interação do Usuário no Desenvolvimento Ágil

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

Especialização em Arquitetura e Engenharia de Software

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

EXIN Agile Scrum Foundation. Guia de Preparação. Edição

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software

Versão 3.1br. Foundation Level Agile Tester

Transcrição:

Processos Ágeis de Desenvolvimento de Software -Focono XP - Rodrigo Rebouças de Almeida rodrigor@rodrigor.com

Processo Conjunto de atividades ordenadas, restrições e recursos que produzem um resultado de algum tipo. (Pfleeger) Em software: Processo de desenvolvimento Define quem faz o quê, quando e como. O processo guia o desenvolvimento do software.

Porque precisamos de um processo? Desenvolver software envolve pessoas. Precisamos definir suas atividades, artefatos, prazos, prioridades. Precisamos planejar, estimar, executar. E controlar a evolução do desenvolvimento. O processo estrutura o planejamento, execução e controle das atividades e artefatos gerados. 3

Processos tradicionais Processos pesados ou focados em planejamento Ex.: Processo Unificado. Contexto: Requisitos não mudam (ou mudam pouco) com o tempo. Grande esforço no planejamento e projeto do software. Gerência focada nos papéis desempenhados pelas pessoas: programador, arquiteto, analista, testador,...

Manifesto Ágil Resposta à insatisfação com os processos tradicionais de desenvolvimento de software. Estabelece os valores: Indivíduos e Interações X Processos e Ferramentas. Software Funcionando X Documentação. Colaboração com o cliente X Contrato. Resposta a mudanças X Seguir planejamento.

Processos Ágeis Muito mais do que simples definições de processos. Afetam várias dimensões das empresas e dos projetos. Relação profissional Atribuição de responsabilidades e confiança. Relação com clientes Parceria ao invés da relação de prestação de serviço. Formato contratual Contratos têm que ser adaptáveis.

Processos Ágeis Existem vários processos que seguem os valores definidos no manifesto: extreme Programming (principal representante) Foco em testes. Scrum Foco na adaptação contínua do processo à equipe. FDD (Feature Driven Development) (...) Foco nas funcionalidades.

extreme Programming Praticas de Eng. Software ao extremo! Testes de unidade, de aceitação, de integração Testar antes de codificar! Dois programadores e um teclado (Pair Programming). Releases pequenos (com software funcionando para o cliente). Integração contínua. Refatoramento contínuo. Cliente participa da equipe de desenvolvimento.

Valores de XP Comunicação Interação constante entre os membros da equipe. Simplicidade KISS! Feedback Iterações pequenas e interferência constante do cliente. Coragem Mudanças constantes, testes e refatoramento constante.

Algumas Práticas de XP Planning Game. Releases pequenas. Integração contínua. Posse coletiva do código. Design simples. Programação em pares. Programação orientada a testes. Refatoramento constante.

extreme Programming na prática Etapas do processo: Levantamento de estórias do usuário Funcionalidades Prioridade Planning Game Planejamento da Release Planejamento de Iterações Desenvolvimento Programação em pares Programação orientada a testes Envolvimento com o usuário

Pré-requisitos para uso de processos ágeis Cliente sempre presente. Requisitos mudam com muita freqüência Requisitos imprevisíveis. Equipe forte, bons profissionais Profissionais devem ser capazes de tomar decisões. Não adotar contrato com valor fixo Contrato fixo -> requisitos fixos -> não usar processos ágeis.

Quando não usar processos ágeis Cliente ausente Reuniões a cada dois meses. Requisitos fixos, com pouca mudança no tempo. Equipe volátil e despreparada. Contratos com valor e escopo fixos. Submissão a programas de certificação de qualidade, como CMMI. É necessário incorporar muitas atividades nos processos ágeis para atenderem aos requisitos dos programas de qualidade.

Processos ágeis são uma boa idéia Quando aplicados no contexto adequado. Não são tão leves assim Standup meeting, testes constantes, iterações curtas, releases pequenas, Exigem disciplina e competência da equipe.

Referências Pfleeger M., Software Engineering Theory and Practice, 2 nd ed., 2001, ISBN: 0-13-0290490-1. Manifesto for Agile Software Development, online: http://agilemanifesto.org/ Extreme Programming: A Gentle Introduction, on-line: http://extremeprogramming.org/ Control Chaos, on-line: http://www.controlchaos.com/ Fowler M., The new Methodology, on-line: http://www.martinfowler.com/articles/newmethodol ogy.html 15