roteiro Ágil - integrando princípios ágeis para a melhoria do desenvolvimento no serpro - fábio...

47
Maré de Agilidade Bahia 2009 – Case Serpro Roteiro Ágil Java/Web Integrando princípios ágeis para a melhoria do desenvolvimento em grandes empresas Palestrante: Fábio Rilston 28/03/2009

Upload: manoel-pimentel-medeiros

Post on 18-Dec-2014

2.864 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Roteiro Ágil Java/WebIntegrando princípios ágeis para a melhoria do desenvolvimento em grandes empresas

Palestrante: Fábio Rilston 28/03/2009

Page 2: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

A Empresa Serpro

Maior empresa pública de TI da América Latina

Mais de 3.500 desenvolvedores

Presente nas áreas de Desenvolvimento, Comunicação e Tecnologia da Informação

Cases de Sucesso: Receita-Net, SIAFI, SISCOMEX, Renavam, SIAPE, CPF, dentre outros

Alguns clientes Serpro

Secretaria do Tesouro Nacional

Page 3: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Contexto

O Serpro possui um processo de software (PSDS) executado por todos os desenvolvedores

O PSDS é baseado em referenciais de mercado como o CMMI, Rational Unified Process e USDP

O Serpro é uma empresa Nível 2 do CMMI e, em algumas unidades, busca aderência ao seu Nível 3

O PSDS mudou o panorama de gestão e engenharia do produto, trazendo maior maturidade para os ciclos de gestão e produção

Page 4: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Contudo…

… Algumas categorias de projeto possuem peculiaridades que requerem tratamento diferenciado (ex. Web, DW, Portais Web, Projetos Sumários, etc.)

… O PSDS não consegue atender a todas as necessidades específicas de desenvolvimento das unidades

… O foco em resultados (produtividade) precisa ser reforçado

… Algumas atividades do PSDS são complexas se analisadas no contexto de um projeto

Contexto

Page 5: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Assim, a solução ideal DEVE…

Solução Idealizada

… disponibilizar guias específicos para cada categoria de projeto e para contextos diferenciados.

… garantir uma linguagem comum de comunicação entre desenvolvedores e estabeleça padrões mínimos de qualidade em temas específicos

… agilizar a utilização do processo, tornando-o mais flexível em termos de controle e evidenciação (menos burocrático)

… ser capaz de apoiar a gestão e execução de projetos, considerando a diversidade de clientes e plataformas existentes no Serpro

Page 6: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Trabalhando com ROTEIROS

O desenvolvedor vê e executa apenas atividades da categoria e contexto do seu projeto

Page 7: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Roteiros

Modelos de referência e paradigmas

Modelo de Processo

Exemplosde Processo

Processo Padrão (ativos)

CMMI, Catedral, Bazar, Manifesto ágil...

Sub-Processo (instanciado ou definido para o projeto)

Processo Unificado, Ciclos de Vida,...

Modelo de Ciclo de Vida, Critérios de Adaptação,Tecnologia.

Ref

eren

cial

te

óric

oC

ultu

ra,

Neg

ócio

Adaptação

Critérios de adaptação

Sub-Processos(adaptados)

ReusoBase Histórica

Características geraisTecnologia

Iterativo Componentes Cascata

1

...

Cliente...Equipe

Mét

odos

de

Trab

alho

RUP, XP, Scrum, Open UP, Test Driven Process

PSDS

2

Part

icu

larid

ades Projeto 1 Projeto 2 Projeto 3 Projeto ...

ManutençõesSumárias

3

Roteiro Ágil

Java-Web

Page 8: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Estrutura de um Roteiro

Page 9: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Equipes de desenvolvimento em JAVA necessitam de um processo que…

… seja mais adequado ao ciclo iterativo com entregas parciais

… dê suporte ao atendimento rápido de demandas, com o mínimo de Engenharia e Gestão necessários

… seja mais flexível em termos de controle e evidenciação

… permita uma passagem mais tranquila para o desenvolvedor dos requisitos para a implementação

Métodos Ágeis e o Desenvolvimento JAVA

Page 10: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Então, queremos uma solução que…

… privilegie ciclos de vida iterativos com entregas curtas e úteis

… assegure a disponibilidade e o compatilhamento de informações, dando visibilidade a todos os interessados nos diversos níveis organizacionais

… melhore o suporte arquitetural

… tenha um foco maior em validação do produto gerado, otimizando sua qualidade

… aumente a produtividade do desenvolvimento

Métodos Ágeis e o Desenvolvimento JAVA

Page 11: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Embate de Gigantes

Ágil, Ágil, Ágil !!

[Agile-Driven Team]Modelos, Processo,

Planejamento detalhado!!

[Plan-Driven Team]

Page 12: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Solução Adotada (Bohem)

Win-Win Solution

Plan-Driven Approaches

Agile Methods

Page 13: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Métodos Ágeis de Referência

Roteiro JAVA/WEB

+ =

XP Scrum

OpenUP

Page 14: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Estrutura de Melhoria do PSDS

Malheiros, V.; Paim, F.; Mendonça, M. Continuous Process Improvement at a Large Software Organization. Software Process Improvement and Practice, 13, 1-16, 2008

Page 15: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Fórmula do Crescimento

100kg Sponsor100mg Trabalho Cooperativo200mg Teoria Ágil 50mg Envolvimento de GEs 1 Evento de Fechamento das Idéias 10mg Páginas HTML

Leva-se ao forno por 2 meses e apresenta-se em forma de site. Deixar descansar em Projetos Pilotos.

Page 16: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Expectativa com a adoção de princípios ágeis Agilização do ciclo de desenvolvimento Menor time-to-market (múltiplas entregas) Melhor admin. da complexidade (ciclo iterativo) Maior visibilidade do projeto para o cliente Maior envolvimento da equipe (Whole Team). Menor burocracia: o que pode simplificar no

PSDS? Cuidado com a arquitetura, adoção de padrões

para minimizar riscos. Maior aderência ao ciclo de projetos JAVA.

Práticas Ágeis no Serpro

Page 17: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Fatores de Risco a um Projeto Ágil

Equipes grandes e distribuídas.

Cliente indisponível.

Arquitetura do projeto não claramente definida.

Equipe do projeto não experiente na plataforma.

Integração com muitos sistemas

Quando Utilizar Ágil ?

Page 18: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Desenvolvimento Incremental

Integração Contínua

Planning Game

Simplicidade de Projeto

Testes de Aceitação pelo Cliente

Práticas Ágeis Pré-selecionadas

XP

Page 19: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Backlog de Produto

Backlog do Sprint

Daily Scrum (≅ Stand-Up Meetings)

Planning Poker

Práticas Ágeis Pré-selecionadas

Scrum

Page 20: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Desenvolvimento Iterativo e Incremental

Micro-incremento

Integração Contínua

Foco na Arquitetura ANTES

Balanceamento entre Prioridades

Práticas Ágeis Pré-selecionadas

OpenUP

Page 21: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Ciclo de Vida Ágil no Serpro

Page 22: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Desenvolvimento Iterativo e Incremental O projeto é dividido em Releases de 2 ou 3 meses.

Releases são divididas em Iterações de 2 ou 3 semanas.

Iterações são planejadas em tarefas de 1 ou 2 dias.

Práticas Ágeis Adaptadas

Page 23: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Planning Game Planejamento de um release

O cliente descreve o trabalho a ser feito. Os desenvolvedores então traduzem esse interesse em uma especificação de requisitos de nível inicial.

O cliente prioriza as funcionalidades identificadas.

O cliente escolhe as funcionalidades que serão executadas no próximo release com base nas estimativas realizadas e no tempo disponível, compondo um Plano de Release.

Práticas Ágeis Adaptadas

Page 24: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Planning Game Planejamento de cada iteração

A equipe decompõe cada estória em tarefas de engenharia, estima cada tarefa e faz um ‘sanity check’ para garantir que todas as tarefas ‘cabem’ no tempo disponível, com base em seu desempenho anterior.

Se há tarefas demais, o cliente retira uma ou mais funcionalidades do escopo

Se há tarefas de menos, o LP pode resgatar funcionalidades seguintes

Práticas Ágeis Adaptadas

Page 25: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Planning Poker

Práticas Ágeis Adaptadas

Page 26: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Planning Poker As cartas estão disponíveis no site do Roteiro.

Os times recebem consultoria da área de processo para executarem as sessões.

A equipe é envolvida num grau antes não praticado.

Discrepâncias entre estimativas são discutidas para chegar-se a um termo comum na equipe.

A calibragem da estimativa evolui com a sucessão de jogadas. Equipe desenvolve um senso crítico comum sobre a complexidade de tarefas.

Práticas Ágeis Adaptadas

Page 27: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Exemplo de Planning Poker

Page 28: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Backlog de Produto Os objetivos do cliente são geridos por uma planilha

constantemente atualizada.

A cada iteração, o planejamento é acompanhado em termos de: Custo Esforço Alocação de Recursos Metas de Entrega

O gráfico de Burning-Down auxilia na análise rápida da performance da iteração.

Práticas Ágeis Adaptadas

Page 29: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Backlog de Produto Quando necessário, replanejamentos são realizados

para realocação das atividades.

O Quadro de Atividades ajuda no acompanhamento da execução de tarefas. Equipe é motivada pelo andamento dos Post-it nas colunas.

Práticas Ágeis Adaptadas

Page 30: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Exemplo de Quadro de Atividades

Page 31: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Balanceamento entre Prioridades A priorização é feita pelo Líder de Projeto, buscando

maximizar os benefícios para o Cliente, considerando as restrições impostas ao projeto, como: disponibilidade de recursos e tempo, retorno de testes, riscos manifestados, restrições tecnológicas, etc.

Requer o consenso dos envolvidos sobre: o problema a ser solucionado, as restrições relativas à equipe do projeto e as restrições relativas à solução

Trade-off entre benefícios (requisitos) e custo (solução arquitetural)

Práticas Ágeis Adaptadas

Page 32: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Integração Contínua (IC) À medida que componentes do produto são testados

com sucesso, estes vão sendo integrados ao conjunto de ativos previamente gerados da solução.

Foi criado um Ambiente de integração Contínua (AIC) em suporte às equipes de desenvolvimento. O AIC é gerido por uma estrutura escalar de Arquitetos de Software.

Plataforma altamente automatizada libera desenvolvedores para o trabalho mais específico de design e implementação.

Práticas Ágeis Adaptadas

Page 33: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Integração Contínua (IC) Ferramentas que integram o AIC:

Maven Selenium Continuum CheckStyle Dashboard Archiva

Práticas Ágeis Adaptadas

PMD Cobertura Jdepend Findbugs Ounce Maven CPD

Page 34: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Stand-up Meetings Todos os dias, à mesma hora, o Líder de Projeto tem

uma breve reunião com a equipe. O propósito é eliminar qualquer impedimento à execução do projeto conforme planejado.

Cada participante deve responder a 3 perguntas:

O que você fez desde a última reunião?

O que você fará entre esta e a próxima reunião?

Existe alguma coisa impedindo você de executar o que foi planejado?

Práticas Ágeis Adaptadas

Page 35: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Sprint Review Preparo e realização da apresentação do build final de

cada iteração para os Clientes

Avaliação de resultados Feedback dos clientes (perguntas, comentários, sol. de mudança)

Atualização do Backlog do Produto

Coleta de lições aprendidas

Ajustamento do Plano do Release Itens incluídos/excluídos/re-estimados, mudanças de prioridade, mudança na velocidade da equipe

Práticas Ágeis Adaptadas

Page 36: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Sprint Retrospective Discussão

Cada membro da equipe é convidado a opinar sobre o que foi bom e o que foi ruim na aplicação do processo ao projeto

São coletadas Lições Aprendidas para retroalimentação em próximas iterações

Definição do Plano de Ação A equipe propõe melhorias e define prioridades

O LP adiciona as ações de melhoria ao backlog do produto

Práticas Ágeis Adaptadas

Page 37: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Experimentando a Agilidade

SIF - Sistema de Informações Fiscais

Unidade Fortaleza-CE

Cliente STN

Equipe 08 pessoas

Duração 18 semanas

Iterações 6

Situação Finalizado

Acompanhamento CETEC: acompanhamentos quinzenais, (3 revisões presenciais)

Piloto 01

Page 38: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Avaliação

Resultados alcançados:

Processo menos burocrático – redução de artefatos e informação, sua complexidade e esforço requerido

Time coeso e fortalecido. O conceito Whole team funciona

Diminuição do tempo de gestão em 56% *

A estrutura do roteiro está clara, acessível e simplifica o entendimento

* O planejamento de cada piloto durou 3,5 dias. Outros projetos normalmente demandam 8 dias de planejamento

Page 39: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Avaliação

Resultados alcançados:

A equipe se sente integrada ao projeto e co-responsável pelo seu sucesso

Testes dentro do ambiente são mais robustos => nível quase zero de erros no produto final

LP tem controle total das atividades do projeto

Cliente satisfeito: “entregas constantes”, “validações frequentes”, “atendimento das metas”

Page 40: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Avaliação

Oportunidades de melhoria identificadas:

Iteração de 1 semana separada para planejamento (=Iteração Zero) e de 3 semanas para Construção.

Após algumas iterações, as “stand-up meetings” não precisam ser diárias. 3 por semana são suficientes.

Quadro de Atividades (Kanban) é uma boa prática, pouco burocrático e mantém a equipe motivada.

Planning poker e uma boa prática de estimativa, maior comprometimento da equipe e maior precisão nas estimativas.

Page 41: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Avaliação

Oportunidades de melhoria identificadas:

Melhorar a compatibilidade entre o Framework Serpro e o ambiente de integração contínua (AIC). Somente testes de integração usavam a estrutura do AIC.

Ajustar forma de interação dos desenvolvedores com grupo de arquitetos.

Melhorar descrição de atividades de Gestão de Configuração.

Page 42: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Experimentando a Agilidade

SGC - Sistema de Gestão de Concursos

Unidade Fortaleza-CE

Cliente ESAF

Equipe 10 pessoas

Duração 39 semanas (previsão)

Iterações 13 (previsão)

Situação Elaboração (projeto + plano de testes)

Acompanhamento CETEC: acompanhamentos quinzenais, (2 revisões presenciais)

Piloto 02

Page 43: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

O2C - Operações Oficiais de Crédito

Cliente ESAF

Equipe 06 pessoas

Duração 15 semanas (previsão)

Iterações 05 (previsão)

Situação Planejado

Acompanhamento CETEC: acompanhamentos quinzenais,

(3 revisões presenciais)

Piloto 03

Experimentando a Agilidade

Page 44: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Resultados preliminares

A não interação direta da equipe com o cliente pode comprometer o uso de uma abordagem ágil

A gestão de projetos ágil pode ser interessante para outros projetos, mesmo os que ainda não adotam o Framework Serpro. Intercâmbio com PSDS.

O gráfico “burning down” tem se mostrado um efetivo instrumento de acompanhamento de projetos

Indícios que o planejamento do projeto pode ser ainda mais simplificado (planejamento estratégico)

A antecipação de riscos foi fundamental para o andamento do projeto

Page 45: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

RECEITANET - Consulta a Declarações de Contribuintes

Cliente RFB

Equipe 10 pessoas

Duração 39 semanas (previsão)

Iterações 13 (previsão)

Situação Planejado

Acompanhamento CETEC: acompanhamento inicial,

(1 revisão presencial)

Piloto 04

Prêt-à-Porter na Experimentação

Page 46: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

Resultados preliminares

Gestão de Projeto ainda mais simplificada. Artefatos afetados: Cronograma, Plano de Projeto, GPAG.

O uso de ferramenta ScrumWorks® pode garantir uma gestão mais limpa, eficiente e automatizada do projeto.

Recursos de Documentação em Java auxiliam a reduzir a carga de trabalho em Requisitos

Participação de projetistas de teste em especificação da aplicação reduz o gap entre documentação e Casos de Teste.

Expectativa: Liberação do Roteiro Ágil para uso nacional na release 6.7

Page 47: Roteiro Ágil - Integrando princípios ágeis para a melhoria do desenvolvimento no SERPRO - Fábio Rilston

Maré de Agilidade Bahia 2009 – Case Serpro

[email protected]

Dúvidas ?

Dúv

idas

?

Dúvidas ?

Dúvidas ?