Agile Methods for the Traditional Guy

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

Tópicos. Métodos Ágeis. Histórico; Valores; Métodos Ágeis x Modelos Tradicionais; Exemplo: Referências Bibliográficas.

Introdução a Métodos Ágeis de Desenvolvimento de Software

Scrum Guia Prático. Raphael Rayro Louback Saliba Certified Scrum Master. Os papéis, eventos, artefatos e as regras do Scrum. Solutions.

Engenharia de Software II

Desenvolvimento Ágil de Software em Larga Escala

Jonas de Souza H2W SYSTEMS

Desenvolvendo Software Livre com Programação extrema

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

Métodos Ágeis para Desenvolvimento de Software Livre

Desenvolvimento Ágil de Software

Sistemas de Informação I

Trilha Agile TDD e 20 coisas que você precisa saber

XP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp

ENGENHARIA DE SOFTWARE I

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

Prof. Me. Marcos Echevarria

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

Daniel Wildt

ELABORAÇÃO DE UM PRODUCT BACKLOG EFETIVO

Desenvolvimento Ágil sob a Perspectiva de um ScrumMaster

SCRUM: UM MÉTODO ÁGIL. Cleviton Monteiro

Agenda. Introdução Etapas genéricas Atividades de apoio Ferramentas de apoio Modelos genéricos Modelos de mercado Modelos de melhoria

Programação Orientada a Testes Rodrigo Rebouças de Almeida

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil. Profª Esp.: Maysa de Moura Gonzaga

Um case de sucesso em equipe ágil, dedicada e remota com evolução adaptativa e gradativa do Scrum.

Prof. Luiz A. Nascimento. As práticas denominadas ágeis vêm sendo cada vez mais utilizadas na gerência de projetos de software.

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP

Leves ou pesadas Incrementais, cascata, lineares... etc. Pro ativas e reativas RAD, SDLC

Métodos Ágeis e Gestão de Dados Moderna

Sistemas de Informação I

Processo de Desenvolvimento de Software. Unidade V Modelagem de PDS. Luiz Leão luizleao@gmail.com

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

Gerenciamento de Equipes com Scrum

Gerenciamento Ágil de Projetos HEITOR RORIZ FILHO, MSc, PMI-ACP, CST Massimus C&T

Agilidade em Gerenciamento de Projetos Software

SCRUM. Otimizando projetos. Adilson Taub Júnior tecproit.com.br

Processo de Abertura de Projetosescritorio. Bizagi Process Modeler

Metodologias Ágeis. Aécio Costa

Frederico Aranha, Instrutor. Scrum 100 Lero Lero. Um curso objetivo!

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 05 PROFª BRUNO CALEGARO

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

5. Métodos ágeis de desenvolvimento de software

Ferramenta para gestão ágil

Segurança de Aplicações Aula 6

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no

Capítulo X. Gerenciar Mudanças dos Requisitos. Aluizio Saiter, M. Sc.

Ideal para que tipo de empresa (equipe): pequena, média, grande? Em software onde os requisitos não são conhecidos é recomendado o uso do XP? Por quê?

ESPECIFICANDO OS REQUISITOS. Cleviton Monteiro

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

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

UTILIZAÇÃO DAS METODOLOGIAS ÁGEIS XP E SCRUM PARA O DESENVOLVIMENTO RÁPIDO DE APLICAÇÕES

TESTE DE SOFTWARE COM XP. Isac Aguiar isacaguiar.com.br

O Processo de Desenvolvimento de Software

Scrum no Desenvolvimento de Jogos Eletrônicos

Com metodologias de desenvolvimento

Manifesto Ágil - Princípios

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 06 PROFª BRUNO CALEGARO

Case Pró-Laudo. BPM em Telemedicina

MPSP Projeto ALM/Scrum. Diretoria de Sistemas de Informação

Método Aldeia de Projetos

RELATÓRIO REFERENTE AO SUPORTE DO MÊS JUNHO/2013.

Guia de Projetos de Software com Práticas de Métodos Ágeis para o SISP

Aplicando Scrum no. Vítor E. Silva Souza

ScRUM na prática. Scrum no dia-a-dia. V Semana de Tecnologia da Informação

Engenharia de Software

Metodologias Ágeis. Gerenciando e Desenvolvendo Projetos de forma eficiente. Gabriel Verta Rafael Reimberg Vinicius Quaiato

ATO Nº 91/2015/GP/TRT 19ª, DE 1º DE JUNHO DE 2015

Uma introdução ao SCRUM. Evandro João Agnes

Expresso Livre Módulo de Projetos Ágeis

Processo de Desenvolvimento de Software. Engenharia de Software.

EXIN Agile Scrum Fundamentos

Processo de Desenvolvimento de Software Scrum. Prof. Antonio Almeida de Barros Jr.

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

Utilizando SCRUM em contratos de preço fixo

Introdução à ES - Continuação

INTRODUÇÃO AOS MÉTODOS ÁGEIS

1. Desenvolver o software iterativamente. Um pouco de reflexão: Acabou aí? 31/08/2010

Manifesto Ágil e as Metodologias Ágeis (XP e SCRUM)

Modelos de Processo (métodos)

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis. Profª Esp.: Maysa de Moura Gonzaga

Apresentar os conceitos básicos da metodologia de desenvolvimento Processo Unificado, utilizando como aporte o Processo Unificado Rational RUP

Introdução ao Processo Unificado (PU)

20 perguntas para descobrir como APRENDER MELHOR

ENGENHARIA DE SOFTWARE

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

Como fazer contato com pessoas importantes para sua carreira?

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

Quando a análise de Pontos de Função se torna um método ágil

PROJETO DE FÁBRICA DE SOFTWARE

Programação extrema (XP)

globo.com Novos paradigmas na gestão de produtos da Globo.com

CONHEÇA. nosso. processo. Para você lançar sua Startup. Semana de descoberta. Semana de desenvolvimento. E depois de tudo pronto?

COMO ENTENDER O VALOR EMPRESARIAL DOS SISTEMAS E COMO GERENCIAR A MUDANÇA

Práticas de. Engenharia de Software. Givanaldo Rocha de Souza

Processos de Desenvolvimento de Software

Metodologias de desenvolvimento de jogos

AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE. Prof. Msc. Hélio Esperidião

Gestão do custo do projeto

Transcrição:

Agile Methods for the Traditional Guy Conexão Java 07 Danilo Sato www.dtsato.com (Agradecimento: Mariana Bravo)

Danilo Sato BCC/Mestrado - IME/USP AgilCoop Fundador do Dojo@SP ThoughtWorks UK Modelo? Quem são vocês? 2

Tradicional ou Ágil? 3

Tradicional ou Ágil? Forecast-driven vs Feedback-driven 4

O Que é Sucesso? Prazo Escopo Orçamento 5

CHAOS Report Resultado dos projetos (2003): com problemas 51% 34% 15% sucesso 6 falham

Qual software? Funcionalidades nunca ou raramente utilizadas 64% Jim Johnson, 2000 7

O Que é Sucesso? Ser Realista? Atender necessidades?? Qualidade? Prazo? Escopo Equipe?? Orçamento Retorno de Investimento?? 8

Um pouco de história Requisitos 1970 Análise Arquitetura e Design Construção Testes Produção 9

Analogias Engenharia de Software Engenharia Civil Custo da mudança Manutenção Constante! 10

Analogias Engenharia de Software Engenharia Civil Programar é fazer Design! 11

E o RUP? Ninguém segue o modelo cascata Incepção Elaboração Construção Transição 12

Jacobson, agosto/2007 13

Como extrair valor de TI? Processos tradicionais: -$$??? +$? tempo Gasto: -30$ 0$ 0$ 0$ 0$ 0$ Lucro: 0$ 0$ 0$ 0$ 0$ 20$ Saldo: -30$ -30$ -30$ -30$ -30$ -10$ 14

Como extrair valor de TI? Métodos Ágeis: tempo Gasto: -5$ -5$ -5$ -5$ -5$ -5$ Lucro: 0$ 2$ 4$ 9$ 15$ 20$ Saldo: -5$ -8$ -9$ -5$ 5$ 20$ 15

O que é valor? Processos tradicionais: Valor = software funcionando 16

Ou seja... Software funcionando é mais importante que documentação abrangente 17

Então não documenta? Documentação é uma excelente forma de armazenar o histórico de decisões de um projeto. Quando algo dá errado, é importante poder rastrear tais decisões para descobrir o que deu errado. Além disso, um documento é escrito numa linguagem muito mais formal e, portanto, mais correta, evitando ambigüidades de sentido. É importante manter toda a documentação sincronizada com o resto do projeto. Por exemplo, um documento de design ou arquitetura do sistema precisa refletir a realidade implementada. Outro tipo de documentação comumente escrita ao desenvolver software como um produto, é um manual técnico ou guia de uso para o usuário final. No entanto, é preciso lembrar que produzir documentação é uma tarefa que exige esforço e, portanto, toma tempo da equipe. A quantidade de tempo gasta produzindo documentação desnecessária é desperdício para o projeto e para o cliente. A equipe deve colaborar com o cliente para determinar o real valor da produção de um documento, levando em conta pontos como custo, benefício, precisão, manutenção e linguagem utilizada... Entenderam? 18

Comunicação Telefone sem fio A B Documento sem fio A? 19

Documente o necessário Bom senso: O que a equipe julgar necessário O que o dono do projeto exige Tratada como funcionalidade 20

Então... Indivíduos e interações são mais importantes que processos e ferramentas 21

Então não usa processos e ferramentas? 22

Fazer certo o software Carne assada e vagem com bacon, uma delícia. Seguindo a receita vai ficar muito gostoso! Sem dúvida vai ser um sucesso!! 23

Fazer o software certo Voilá! Mas eu sou vegetariana!! 24

E como fazer o software certo? Enxergue pelos olhos do cliente! 25

Falta de Feedback Por enquanto tudo bem 26

Isto é... Colaboração com o cliente é mais importante que negociação de contratos 27

Então não tem contrato? Contratos tradicionais incentivam comportamentos indesejados Faça um contrato de benefício mútuo 28

Contrato de Escopo Negociável Cliente: Tem a oportunidade de mudar de idéia Pode interromper o desenvolvimento a qualquer momento Custo e Prazo fixos Desenvolvedores: Motivados a produzir o melhor sistema Receita previsível 29

Se não houver interação... Perguntas: Faça sua lista de compras de 2008 Quem vai ganhar o campeonato de 2010? Quanto tempo demora para pedalar até o RJ? Somos ruins para planejar a longo prazo! 30

Portanto... Adaptação a mudanças é mais importante que seguir um plano 31

Então não planejamos? Mudando um pouco a história: Faça a lista de compras para mês/semana que vem. Quem vai ganhar o jogo do fim de semana? Quanto tempo demora para pedalar de casa até o trabalho? 32

Pelo contrário... Planejamos SEMPRE 33

Pêndulo do Planejamento No mundo não-ágil: Nenhum Plano Excesso de Planos Planejar sempre, em ciclos pequenos 34

Planejamos para o curto, médio e longo prazos Planejamento Ágil 35

Planejamento em Ciclos Dia Iteração A Release S W O A F R T E 36

Retrospectivas 37

Guiado por Feedback 38

Estimativas - Quiz Qual a vazão média das Cataratas do Iguaçu? 1.500 m 3 /s Qual a área do Brasil? 8.514.877 km 2 Que dia foi a Tomada da Bastilha? 14/Jul/1789 Quando foi a primeira transmissão em cores no Brasil? 31/Mar/1972 Qual a altura do Cristo Redentor? 38 m Qual a distância média da Terra à Lua? 384.403 km 39

Somos péssimos estimadores tempo 40

Estimar é difícil Como um projeto atrasa 2 anos? 80% pronto Já está chegando em casa? Faltam só 2 quarteirões Estimativas não são compromissos! 41

Boas estimativas Tamanho Duração 1 1 8 2 16 4 2 16 4 2 2 4 4 2 Total = 58 42

Acompanhamento Velocidade = Pontos Entregues / Iteração tempo 43

Área de Trabalho Informativa 44

Área de Trabalho Informativa 45

Requisito Obrigação Alto R i s c o Baixo Valor Alto 46

Novo conceito: Pronto Seu quarto está pronto!??? 47

Equipe completa 48

<Técnico> Visão do Sistema Decomposição por especialidade 49

Integração Tardia 50

Integração Contínua 51

Criando Conhecimento Código Compartilhado Programação Pareada Padronização de Código 52

Qualidade leva à agilidade Work smarter, not harder -- Tom de Marco, Slack Inspecionar para previnir defeitos é bom; Inspecionar para encontrar defeitos é desperdício -- Shigeo Shingo, The Toyota Production System Qualidade é sempre alta! 53

Previnindo defeitos Auto-inspeção (mistake proof) Testes são a especificação! 54

Testes automatizados Testes de unidade Programadores Testes de aceitação Clientes 55

Constante manutenção Evitando débito técnico: Refatoração e Design Simples Complexidade é o inimigo invisível! 56

Quando não refatora. 57

E os bugs? Escreva um teste para reproduzí-lo Resolva a Causa Raíz 58

</Técnico> 59

</Técnico> Onde começar? Comece onde está Use Retrospectivas Procure desperdícios 60

Recapitulando Manifesto Ágil: Indivíduos e interações são mais importantes que processos e ferramentas Software funcionando é mais importante que documentação completa e detalhada Colaboração com o cliente é mais importante que negociação de contratos Adaptação a mudanças é mais importante que seguir um plano 61

Metodologias Scrum: Planejamento ágil Ciclos pequenos Retrospectiva Equipe completa 62

Metodologias Scrum + XP: Integração Contínua Testes Automatizados Refatoração e Design Simples Área de Trabalho Informativa Programação Pareada 63

Metodologias A melhor metodologia é a sua metodologia 64

Conclusão Não seja um Lemming! 65

Dúvidas? danilo@dtsato.com? www.dtsato.com www.agilcoop.org.br 66