lean software development

25
www.oncast.com.br LEAN SOFTWARE DEVELOPMENT by Samuel Crescêncio Agile Evangelist

Upload: william-g-comnisky

Post on 16-Apr-2017

2.271 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Lean Software Development

www.oncast.com.br

LEAN SOFTWARE DEVELOPMENTby Samuel CrescêncioAgile Evangelist

Page 2: Lean Software Development

www.oncast.com.br

onca

st m

ento

ring

and

con

sulta

ncy

ser

vices

Sumário

• Lean e suas origens• Software & Desenvolvimento• Princípios do Lean

– Vendo o desperdício– Construa com integridade– Crie conhecimento– Reconheça o comprometimento– Entregue rápido– Respeite as pessoas– Otimize o todo

Page 3: Lean Software Development

www.oncast.com.br

onca

st m

ento

ring

and

con

sulta

ncy

ser

vices

Origens do Lean

SupplyChain

Management

Just-in-TimeManufacturing

Lean Software DevelopmentLean

Operations

Lean Product Development

Keiretsu(Virtual Integration)

Precursor of Lean Thinking

ToyotaProduct Development

System

ToyotaProduction

System

LeanLogistics

Page 4: Lean Software Development

www.oncast.com.br

onca

st m

ento

ring

and

con

sulta

ncy

ser

vices

Origens do LeanOs Toyoda’s:Sakichi Toyoda (1867 – 1930)

• Grande inventor: criou o conceito de automação para tecelagem

• Idéia crucial: Stop-the-Line

Kiichiro Toyoda (1894 – 1952)

• Inovador e empreendedor apostou a fortuna da família na fabricação de carros

• Idéia crucial: Just-In-Time

Eiji Toyoda (1913 – presente)

• 50 anos de liderança na Toyota• Liderou o desenvolvimento do The Toyota Production

System

Page 5: Lean Software Development

www.oncast.com.br

onca

st m

ento

ring

and

con

sulta

ncy

ser

vices

Origens do Lean

Fluxo Just-In-Time

• Foco no fluxo de trabalho, não na utilização de máquinas/pessoas• Foco no fluxo de informações, não na completude delas

Cultura Stop-The-Line

• 1920 - Invenção: Teares elétricos detectam automaticamente quando uma linha se rompe e param a máquina imediatamente, evitando a produção de tecidos defeituosos

• 1950 – Invenção: Linhas de montagem de automóveis param completamente sempre que um defeito é identificado

Page 6: Lean Software Development

www.oncast.com.br

onca

st m

ento

ring

and

con

sulta

ncy

ser

vices

Origens do LeanKnowledge-Based-Engineering

(The Lean Development System)

OperationalValue Streamto Customer

System DesignerEntrepreneurial

Leadership

ExpertEngineeringWorkforce

Set-BasedConcurrentEngineering

Responsibility-BasedPlanning & Control

Page 7: Lean Software Development

www.oncast.com.br

onca

st m

ento

ring

and

con

sulta

ncy

ser

vices

Eliminate Waste

Princípio 1:

“Eliminar absolutamente todas as formas de desperdício”

• Desperdício é tudo o que esgota recursos financeiros, de tempo, esforços e de espaço sem adicionar valor ao cliente

• Valor é visto pelos olhos de quem paga, usa e deriva valor dos sistemas que criamos

Ponha os óculos do seu cliente!

Taiichi Ohno: “Tudo o que fazemos é olhar para a linha do tempo desde o momento em que o cliente nos dá uma ordem de compra, até o momento em

que recebemos o dinheiro e eliminamos todo o desperdício que não gera valor”

Page 8: Lean Software Development

www.oncast.com.br

onca

st m

ento

ring

and

con

sulta

ncy

ser

vices

Eliminate Waste

“Lean foca na redução da linha do tempo removendo todo o desperdício”

Value Stream Mapping - Desenvolvimento Tradicional

Value Stream Mapping - Desenvolvimento Ágil

Page 9: Lean Software Development

www.oncast.com.br

onca

st m

ento

ring

and

con

sulta

ncy

ser

vices

Eliminate Waste

7 Desperdícios fatais em desenvolvimento de software:

1. Trabalho parcialmente feito, ex.:i. Documentação não codificadaii. Código não sincronizadoiii. Código não testadoiv. Código não documentadov. Código sem deployment

2. Funcionalidades extras3. Processos extras4. Troca constante de tarefas5. Atrasos nas entregas 6. Defeitos nas entregas7. Complexidade

Page 10: Lean Software Development

www.oncast.com.br

onca

st m

ento

ring

and

con

sulta

ncy

ser

vices

Eliminate Waste

Standish Group Study Reported at XP2002

A maior oportunidade para aumentar a produtividade em Desenvolvimento de Software: Escreva Menos Código!

Page 11: Lean Software Development

www.oncast.com.br

onca

st m

ento

ring

and

con

sulta

ncy

ser

vices

Build Integrity In

Princípio 2“Construa com Integridade”

Integridade Percebida

“A totalidade do produto alcança um equilíbrio de funcionamento, usabilidade, confiabilidade e economia que dá prazer

ao cliente final.”

Integridade Conceitual

“O sistema funciona de forma coesa como um todo, alcançando um balanço efetivo entre

flexibilidade, manutenibilidade, eficiência e responsividade.”

Page 12: Lean Software Development

www.oncast.com.br

onca

st m

ento

ring

and

con

sulta

ncy

ser

vices

Build Integrity In

“Integridade é alcançada com um excelente e detalhado fluxo de informações entre cliente, usuários e desenvolvedores”

Page 13: Lean Software Development

www.oncast.com.br

onca

st m

ento

ring

and

con

sulta

ncy

ser

vices

Build Integrity In

Verdades

- Se você tem ciclos de teste ao final de um ciclo de desenvolvimento você está testando muito tarde

- Debug é uma boa maneira de desperdiçar tempo- BugTracking Systems são sistemas para empilhar desperdício

Estratégias para Construir com Integridade

- Compartilhe a visão integridade percebida constantemente- Inspecione antes e depois com TDD (Test Driven Development)- O melhor design emerge durante o desenvolvimento- Faça o trabalho e entregue em lotes pequenos (diariamente)- Mantenha simples e faça refactoring

Page 14: Lean Software Development

www.oncast.com.br

onca

st m

ento

ring

and

con

sulta

ncy

ser

vices

Amplify Learning

Princípio 3“Crie Conhecimento”

- A natureza do desenvolvimento de software exige conhecimento- Ou pagamos o preço para ter o conhecimento ou ficamos em

débito

Estratégias para Criar Conhecimento

- Proporcione feedback constante através de iterações curtas- Execute a suite completa de testes diariamente- Sincronize o código diariamente- Utilize documentação embarcada- Crie um repositório de informações dinâmico

(knowledge-base sharing systems)

Page 15: Lean Software Development

www.oncast.com.br

onca

st m

ento

ring

and

con

sulta

ncy

ser

vices

Amplify Learning

Estratégias para Criar Conhecimento

- Sugestão Lean para resolução de problemas com o ciclo PDCA

Atividade Etapa

Identifique o problemaProcure a causa pela raizProponha uma solução

Especifique os resultados esperados

Plan

Implemente a solução Do

Verifique os resultados Check

SigaInstitucionalize

Pepertue o conhecimentoAct

Page 16: Lean Software Development

www.oncast.com.br

onca

st m

ento

ring

and

con

sulta

ncy

ser

vices

Amplify Learning

Estratégias para Criar Conhecimento

Use o método científico- Observe e descreva um fenômeno ou grupo de fenômenos- Formule uma hipótese que explique os fenômenos- Use a hipótese para prever algo como a existência de outro

fenômeno ou os resultados de novas observações- Execute experimentos para ver se as previsões se mantém- Se os experimentos confirmarem a hipótese, então isto pode

ser considerado uma teoria ou regra- Se não, rejeite ou modifique

Page 17: Lean Software Development

www.oncast.com.br

onca

st m

ento

ring

and

con

sulta

ncy

ser

vices

Defer Commitment

Princípio 4

“Reconheça o Comprometimento”

Previsibilidade de resultados ou resultados emergentes?

“Dê à sua equipe o que eles precisam, o melhor espaço, os melhores equipamentos e ferramentas, confie neles e eles lhe

entregarão o melhor trabalho!”

Page 18: Lean Software Development

www.oncast.com.br

onca

st m

ento

ring

and

con

sulta

ncy

ser

vices

Defer Commitment

Estratégias com base em comprometimento

- Tome decisões com base em um conjunto de opções (option-thinking & set-based approach & concurrent development)

- Decida no último momento responsável, não antes, nem depois(The last responsible moment)

- Forme equipes capazes e multi-disciplinares- Delegue responsabilidade e autonomia à sua equipe- Quebre dependências- Deixe os resultados emergirem

Page 19: Lean Software Development

www.oncast.com.br

onca

st m

ento

ring

and

con

sulta

ncy

ser

vices

Deliver as Fast as Possible

Princípio 5“Entregue Rápido”

Entregas rápidas possibilitam

- Maximizar o feedback e diminuir a incerteza- Diminuir o time-to-market - Aumentar e antecipar o ROI- Desenvolver produtos mais assertivos- Adicionar vantagem competitiva aos clientes- Aumentar a visibilidade do processo de desenvolvimento- Postergar decisões para o último momento responsável

Page 20: Lean Software Development

www.oncast.com.br

onca

st m

ento

ring

and

con

sulta

ncy

ser

vices

Deliver as Fast as Possible

Estratégias para entregar mais rápido

Reduza o ciclo de tempo

- Equalize a chegada de trabalho- Minimize o número de estórias em processo- Minimize o tamanho das estórias em processo- Estabeleça uma cadência regular- Limite a quantidade de trabalho à capacidade- Use o POOL SYSTEM (originário do Kan Ban)

Page 21: Lean Software Development

www.oncast.com.br

onca

st m

ento

ring

and

con

sulta

ncy

ser

vices

Respect People

Princípio 6“Respeite as Pessoas”

“Use todos os princípios do Lean menos este, e você conseguirá alcançar apenas a sombra do que poderia alcançar!”

- Pessoas são movidas por motivação- Pessoas são movidas por realizações- Pessoas são movidas por amor- Pessoas são movidas por desejo

“Em tratando-se de pessoas, os números não fazem a diferença, mas sim as habilidades, o orgulho, a perícia a confiança e a

cooperação!”

Page 22: Lean Software Development

www.oncast.com.br

onca

st m

ento

ring

and

con

sulta

ncy

ser

vices

Respect People

Institua as seguintes estratégias de Respeito para sua Equipe

- Compartilhe antes, compartilhe sempre- Teste antes e falhe rápido- Troque gerentes por líderes- Treine continuamente - líderes e liderados- Fora com o medo - institua segurança- Quebre as barreiras - crie equipes multi-disciplinares- Não meça performance de pessoas, não premie isoladamente- Problemas não são criados por pessoas mas pelo “Sistema de

Produção”- Motive a edução e o auto-aprendizado - desenvolva pessoas- Mova responsabilidade e tomada de decisão para os níveis mais baixos- Faça, não dê apenas apoio

Page 23: Lean Software Development

www.oncast.com.br

onca

st m

ento

ring

and

con

sulta

ncy

ser

vices

See the Whole

Princípio 7 “Veja o Todo”

“Para aprimorar o processo você precisa ver de ponta a ponta - do usuário ao desenvolvedor - do banco de dados à tela, e NENHUM

detalhe pode ser esquecido nesta jornada!”

Ver o todo significa

- Ver a equipe não o fulano- Ver o problema não o culpado- Ver o modelo de colaboração não as penalidades- Ver a longo prazo- Ver todos vendo o todo

Page 24: Lean Software Development

www.oncast.com.br

onca

st m

ento

ring

and

con

sulta

ncy

ser

vices

See the Whole

Estratégias para ver o todo

- Defina um Value Stream Leader que assuma responsabilidade em ver de uma ponta a outra da empresa

- Foque no produto como um todo não apenas no software- Implemente Lean por todo o Value Stream da sua empresa- Re-estruture as métricas, esqueça os métodos convencionais e

foque no Value Stream- Reduza os pontos de desperdício e foque no valor

Page 25: Lean Software Development

www.oncast.com.br

onca

st m

ento

ring

and

con

sulta

ncy

ser

vices

Lean Software Development

“Uma jornada de mil milhas começa com um simples passo!”

Samuel CrescêncioObrigado!

[email protected]