Desenvolvimento Ágil de Software
Introdução a Métodos Ágeis de Desenvolvimento de Software
Fábio Aguiar (@fabyogr), Product Management
Expert & Agile and Team Coach, Developer.
COMUNIDADE ABERTA COM
PESSOAS ADAPTÁVEIS, SIMPLES E
AUTO-ORGANIZADAS
Tá Safo!
Desenvolvimento de Software
Ágil com Tecnologias Abertas
Tá Safo!
Desenvolvimento
de Software Ágil
Tá Safo!
ÁGIL
Ágil
é diferente
Rápido
Compreendendo osValores Ágeis
Manifesto	
  Ágil
www.manifestoagil.com.br
MANIFESTO para o
Em 2001, dezessete especialistas em processos de
desenvolvimento de software estabeleceram princípios
comuns compartilhados por diferentes métodos e criaram
o Manifesto Ágil.
DESENVOLVIMENTO ÁGIL DE SOFTWARE
Todos os Métodos Ágeis são fundamentados no Manifesto Ágil
Manifesto Ágil
Estamos descobrindo maneiras melhores de
desenvolver software fazendo-o nós
mesmos e ajudando outros a fazê-lo.
Inicialmente, contou com dezessete signatários: Kent Beck, Mike Beedle,Arie
van Bennekum, Alistair Cockburn,Ward Cunningham, Martin Fowler, James
Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick,
Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, DaveThomas.
MANIFESTO ÁGIL
Valores e Princípios
VALORES
INDIVÍDUOS E ITERAÇÃO mais que
Ferramentas e Processos
SOFTWARE FUNCIONANDO mais que
Documentação Abrangente
COLABORAÇÃO COM CLIENTE mais que
Negociação de Contratos
RESPONDER A MUDANÇAS mais que
Seguir um Plano
VALORES DO MANIFESTO ÁGIL
"Estamos descobrindo maneiras melhores de desenvolver software fazendo-o nós mesmos e
ajudando outros a fazê-lo. Através desse trabalho, passamos a valorizar:
Ou seja, mesmo havendo valor nos item à direita, valorizamos mais os itens à esquerda."
PRINCÍPIOS
PRINCÍPIO do Manifesto Ágil
PRINCÍPIO do Manifesto Ágil
PRINCÍPIO do Manifesto Ágil
Manifesto para Desenvolvimento Ágil de Software
http://bit.ly/TenhaValoresPrincipios
SCRUM Extreme	
  
Progrtamming
FDD
DSDM
Lean Crystal
ASD EVO
Métodos Ágeis
DE DESENVOLVIMENTO DE SOFTWARE
Referência: Rildo Santos	
  
http://www.slideshare.net/Ridlo/engenharia-de-software-agil-scrum-e-fdd
Métodos Ágeis é simples, mas difícil de aplicar
Empresas que usam Metodologias Ágeis
Fábio Aguiar
! Google
! Microsoft
! Yahoo
! ThoughtWorks
! Siemens
! Nokia
! Philips
! Amazon.com
! HP
! Intel
! Xerox
! SEA Tecnologia
! OnCast
! Globo.com
! Abril
! UOL
! Improve It
! Caelum
! Teamware
! Objective Solutions
! LocaWeb
Projetos QUASE SEMPRE Falham
Jim	
  Johnson,	
  2000
Funcionalidades
NUNCA ou
RARAMENTE
utilizadas
64%
64% de DESPERDÍCIO
do desenvolvimento de software
Cliente Insatisfeito
Qual será o RESULTADO?
Como estamos desenvolvendo software?
Cliente precisa de RE$ULTADO
Desenvolver software orientado a valor de negócio
Sempre ENTREGAR VALOR
Cliente tem que está dentro do
TAXI
Falha na COMUNICAÇÃO
Entenda a necessidade do cliente
Precisamos MUDAR a visão de desenvolver
PARADIGMAS
Mas será que o cliente vê o mesmo que você?
Visão do Cliente
Comprometimento
Características DE UM TIME ÁGIL
Confiança
Comunicação
Motivação
Responsabilidade
Sem	
  hierarquia	
  formal
Auto	
  Organização
Coragem
Respeito
Feedback
Transparência
Interdisciplinares
Adaptação
Auto	
  Gerenciamento
Envolvimento X Comprometimento
“A	
  galinha	
  só	
  tem	
  uma	
  parte	
  no	
  omelete:	
  
o	
  ovo.	
  O	
  bacon	
  quem	
  dá	
  é	
  o	
  porco,	
  que	
  
também	
  participa”
TIME Comprometido
Desenvolvimento ITERATIVO e INCREMENTAL
Ciclo PDCA
Melhoria Contínua
Planejar
Executar
Agir
Verificar
ADAPTAÇÃO às mudanças através
do FEEDBACK constantes
Planejamento Constante
1. QUAL OBJETIVO O PROJETO DEVE ATIGIR?
3. QUAL RETORNO DE INVESTIMENTO O PROJETO VAI ESTÁ
AGREGANDO?
5. COMO MEDIR SE O PROJETO FOI BEM SUCDIDO?
VISÃO do Cliente
Entender a NECESSIDADE do Cliente
Product
 Backlog
 Building
CONSTRUÇÃO E ELABORAÇÃO DE
UM PRODUCT BACKLOG
construindo entendimento compartilhado
Cliente escreve HISTÓRIA DO USUÁRIO
Uma breve descrição do que é necessário para o cliente ter
no produto, que pode representar uma necessidade do
usuário ou uma descrição de uma funcionalidade.
Como um PERFIL eu posso/gostaria/
devo FUNÇÃO para
VALOR AO NEGÓCIO
Título: Reservar Lugar
Prioridade: 1-Alta Esforço: 5
Como um AGENTE DE VIAGENS eu posso RESERVAR
LUGAR para FACILITAR O ATENDIMENTO DOS
CLIENTES CORPORATIVOS
Exemplo de Estória do Usuário
Pontuação: 7
Lista de Desejo do CLIENTE	
  
Define as FUNCIONALIDADES do Produto
Referência: Scrum, O Tutorial	
  
Rildo Santos
Post-it
Tarefas
Priorização de Funcionalidades
Cliente PRIORIZA	
  
de acordo com sua necessidade
	
  
	
  
Lista	
  que	
  representa	
  tudo	
  que	
  é	
  necessário	
  para	
  desenvolver	
  o	
  produto
Definindo ENTREGAS com Planejamento de
Release
2 semanas cada
8 semanas para o
primeiro Release
Planejamento e Desenvolvimento Colaborativo
Estimativas em pontos
Planning Poker
OTime ESTIMA
Velocidade do
TIME
Definição de
PRONTO
Objetivo
(META) Quebrar histórias em
tarefas
Seleciona as histórias de usuário
Planejando uma ITERAÇÃO
Estimativas Ágeis e Planning Poker
O Time ESTIMA
Quadro de Tarefas
Visibilidade e Transparência
ao Desenvolvimento de Software
Hora de Executar
Design e Desenvolvimento Evolutivo
Com	
  pequenos	
  passos	
  ajudarão	
  no	
  desenvolvimento	
  
ITERATIVO	
  e	
  INCREMENTAL	
  do	
  produto
Uma evolução do aprendizado através de BABY STEP's
Responde as Perguntas:	
  
O Que fiz ontem?
O que irei fazer hoje?
Quais são meus impedimentos?
Reunião Diária
15 MINUTOS
Q U A L I D A D E
O que mais acontece durante a ITERAÇÃO
Não tentar prever o futuro com generalizações
Codificar somente o necessário
Design Emergente
Classes são criadas para testar classes do sistema
Cria-se somente o necessário
Testes Automatizados
revisão de código ao vivo
Distribuição de Conhecimento
Programação Pareada
Com o suporte de testes, pode-se
melhorar o sistema sem medo
REFATORAÇÃO
Os pares integram seus códigos várias vezes
Os testes garantem a integridade do sistema
Integração Contínua
Todos os testes estão rodando em verde?
Já foi aprovado pelos analistas de teste?
Definição de Pronto
Com controle de versões, todos devem
ter acesso ao código fonte
Proriedade Coletiva do Código
Nós ao invés de Eu
No que posso ajudar ao invés de terminei a minha parte
Ambiente Colaborativo
Apresentando o resultado ao CLIENTE
Time ENTREGA	
  
Revisão
Sempre entrega VALOR
Perguntas:
O que funcionou bem?	
  
O que precisa ser melhorado?
RMelhoria Contínua com RETROSPECTIVA
A Hora de MELHORAR	
  
Promover as melhorias incrementais
INSPEÇÃO e ADAPTAÇÃO
…e começa tudo de novo!!!

Metodos Ageis