Lean para potencializar a qualidade no software

79
Lean para Potencializar a Lean para Potencializar a Qualidade no Software Qualidade no Software Trilha de Testes #TDC2014 Trilha de Testes #TDC2014 Dionatan Moura Dionatan Moura www.about.me/dionatanmoura www.about.me/dionatanmoura http://topwalls.net

description

Lean tem foco total na qualidade. Essa palestra explora os conceitos do Lean e fazer uma relação com testes de software, trazendo os conceitos fundamentais do Lean: Qualidade total, redução de desperdícios, melhoria contínua, produção puxada, variabilidade, autonomação, nivelamento de carga, just-in-time, fluxo de produção, kanban e gestão visual.

Transcript of Lean para potencializar a qualidade no software

Page 1: Lean para potencializar a qualidade no software

Lean para Potencializar a Lean para Potencializar a Qualidade no SoftwareQualidade no Software

Trilha de Testes #TDC2014Trilha de Testes #TDC2014Dionatan MouraDionatan Mourawww.about.me/dionatanmourawww.about.me/dionatanmourahttp://topwalls.net

Page 2: Lean para potencializar a qualidade no software

Sobre o Palestrante.● Trabalho como coach ágil nas equipes de desenvolvimento de

software na PROCERGS, buscando a melhor entrega de valor ao cidadão gaúcho. Mestre em Engenharia de Software na UFRGS, graduado em Ciência da Computação na UFRGS. Sou generalista especialista. Trabalho com Java desde 2006, sou coordenador do RSJUG e da trilha Java do TDC Porto Alegre. Ministro palestras e facilito Coding Dojos em eventos de métodos ágeis, tais como do TDC, GUMA-RS e GUTS-RS. Possuo as certificações SAFe Agilist SA, Scrum Master PSM I, Product Owner CSPO, Certified Scrum Developer CSD, Java Programmer OCPJP, testes de software CTFL, gestão de TI ITILv3 e melhoria de processos de software MPS-BR.

Page 3: Lean para potencializar a qualidade no software

Lean é tãoLean é tãopoderoso assim?poderoso assim?

Page 4: Lean para potencializar a qualidade no software

http://auto-carsmag.blogspot.com.br

Sakichi ToyodaSakichi Toyoda

Page 5: Lean para potencializar a qualidade no software

http://phys.org

Mãe do Sakichi ToyodaMãe do Sakichi Toyoda(Final do século XIX)(Final do século XIX)

Page 6: Lean para potencializar a qualidade no software

Model G (1924)Model G (1924)Sem produzir defeitos (Jidoka e Poka-Ioke)Sem produzir defeitos (Jidoka e Poka-Ioke)

http://www.makingthemodernworld.org.uk

Page 7: Lean para potencializar a qualidade no software

Kiichiro ToyodaKiichiro Toyoda

JITJIT(Just-In-Time)(Just-In-Time)

Fundou o departamento automobilístico no Toyoda Automatic Loom Works, Ltd (1933).

Introduziu o método de fluxo de produção na fábrica têxtil de seu pai Sakichi (1938).

Page 8: Lean para potencializar a qualidade no software

Eiji Eiji ToyodaToyoda

TPSTPS (Sistema Toyota de (Sistema Toyota de Produção)Produção)

KaizenKaizen

Page 9: Lean para potencializar a qualidade no software

Taiichi Taiichi OhnoOhno

Fortaleceu Fortaleceu o TPSo TPS

Sete Desperdícios Sete Desperdícios (Muda)(Muda)

http://sesiondecontrol.com

Page 10: Lean para potencializar a qualidade no software

Popularização do TPS

Page 11: Lean para potencializar a qualidade no software

Continuação do Trabalhodo MIT (90's)

Page 12: Lean para potencializar a qualidade no software

O poder do Lean está no foco na

Qualidade!

http://www.kalsi.com.au

Page 13: Lean para potencializar a qualidade no software

Definir Definir Valor é o Valor é o pontapépontapé

http://www.startribune.com

Page 14: Lean para potencializar a qualidade no software

O ValorO Valoré definido pelo cliente!é definido pelo cliente!

Page 15: Lean para potencializar a qualidade no software

Desperdício é tudoque não agrega Valor!

http://www.cliffkule.com/

Page 16: Lean para potencializar a qualidade no software

Reduzir desperdícios:- Aumenta a qualidade- Reduz o tempo de produção- Reduz custos

http://www.hashslush.com

Page 17: Lean para potencializar a qualidade no software

ATENÇÃO!

Page 18: Lean para potencializar a qualidade no software

Procurar defeitos/bugs é desperdício!

http://www.dan-dare.org

Page 19: Lean para potencializar a qualidade no software

EntãoXGH (eXtreme Go Horse)

é Lean?

http://s89.photobucket.com

Page 20: Lean para potencializar a qualidade no software

“Cláusula 20 - Teste é para os fracos.Se você meteu a mão num sistema XGH, é melhor saber o que

está fazendo. E se você sabe o que está fazendo, vai testar pra que? Testes são desperdício de tempo, se o código compilar, é o suficiente.”

eXtreme Go Horsehttp://www.gohorseprocess.com.br

Page 21: Lean para potencializar a qualidade no software

É claro que não!

Porque.

http://s89.photobucket.com

Page 22: Lean para potencializar a qualidade no software

No Lean, prevenir defeitos/bugsé essencial!

http://www.build-the-body.com

Page 23: Lean para potencializar a qualidade no software

http://theclearblue.com

Iceberg dos

problemas

http://theclearblue.com

Page 24: Lean para potencializar a qualidade no software

http://www.theaustin.com

Melhorias adiante!

Page 25: Lean para potencializar a qualidade no software

SejaLean!

Page 26: Lean para potencializar a qualidade no software

Combate aos 3 Mu's

http://www.nortegubisian.com.br

Page 27: Lean para potencializar a qualidade no software

Muda(Desperdícios)

Page 28: Lean para potencializar a qualidade no software

Três tipos de trabalho

● O que agrega valor● O que possui desperdício evidente

● O que possui desperdício oculto

http://pastormattblog.com

Page 29: Lean para potencializar a qualidade no software

Sete Desperdícios (Muda)

Page 30: Lean para potencializar a qualidade no software

Má Má utilização utilização do capital do capital humanohumano

http://placaspredial.com.br

Page 31: Lean para potencializar a qualidade no software

Mura(Desbalanceamento)

Page 32: Lean para potencializar a qualidade no software

JIT (Just-In-Time)● Fluxo Contínuo + Tempo Takt + Sistema Puxado

● 5A:– A peça/informação adequada– na qualidade adequada (zero defeito)– no momento adequado (agora)– nas quantidades adequadas (uma peça)– no lugar adequado (aqui)

www.staffinfotech.com

Page 33: Lean para potencializar a qualidade no software

Muri(Sobrecarga)

Page 34: Lean para potencializar a qualidade no software

Poka-YokePoka-Yoke

● Elementos e Elementos e processos à prova de processos à prova de falhasfalhas● Duas formas:Duas formas:

– Método de Controle Método de Controle (stop the line)(stop the line)

– Método de advertência Método de advertência (alarme)(alarme)

http://qualidadeonline.wordpress.com

Page 35: Lean para potencializar a qualidade no software

JidokaAutonomação

– Automação com um toque humano● Não é puramente automação● Atenção humana apenas em situações anormais● Interrompe imediatamente o trabalho● Um operador para diversas máquinas

– Taylor defendia um homem em um posto com uma tarefa

Page 36: Lean para potencializar a qualidade no software

JidokaJidoka(Autonomação)(Autonomação) http://www.aleanjourney.com

Page 37: Lean para potencializar a qualidade no software

Zero Defeito● Detecção e solução dos problemas em sua origem

● Prevenção de erros● Identificação de erros● Retorno / aviso de erros● Eliminação de erros

Page 38: Lean para potencializar a qualidade no software

Produção Puxada

Fonte: Porsche Consulting

Page 39: Lean para potencializar a qualidade no software

Kanban

blogs.mulesoft.org

Page 40: Lean para potencializar a qualidade no software

Takt Takt TimeTime

Ritmo de produção =Ritmo de produção =

Trabalho / DemandaTrabalho / Demandahttp://emsb-solutions.co.uk

Page 41: Lean para potencializar a qualidade no software

HeijunkaHeijunkaProdução NiveladaProdução Nivelada

● Volume de produção constante Volume de produção constante (takt time)(takt time)

● Estoque para pico de demandaEstoque para pico de demanda● Sem gargalos!Sem gargalos!

Page 42: Lean para potencializar a qualidade no software

Muda,Mura e Muri

Page 43: Lean para potencializar a qualidade no software

Mapeamento de Fluxo de Valor (Value Stream Mapping)

courses.washington.edu

courses.washington.edu

Page 44: Lean para potencializar a qualidade no software

HanseiHansei

http://matthewemay.com

Page 45: Lean para potencializar a qualidade no software

Kaizen para sempre!

http://gophoto.us

Melhoria Contínua

Page 46: Lean para potencializar a qualidade no software

http://marcelojusta.blogspot.com.br/

SDCA (Standardization)

PDCAPDCA

Page 47: Lean para potencializar a qualidade no software

5 whys5 whys5 porquês

http://www.qualitydigest.com

Page 48: Lean para potencializar a qualidade no software

http://designechimarrao.com.br

Page 49: Lean para potencializar a qualidade no software

Visual FactoryVisual Factory

http://www.aleanjourney.com

Page 50: Lean para potencializar a qualidade no software

VariabilidadeVariabilidade

http://blog.toyota.co.uk

Page 51: Lean para potencializar a qualidade no software

Uhuuuuu! E no Desenvolvimento de

Software?

Page 52: Lean para potencializar a qualidade no software

Lean Software Development

Page 53: Lean para potencializar a qualidade no software

● Sete Princípios– Eliminar desperdícios– Inclua a qualidade no processo– Amplificar aprendizado– Decidir tão tarde quanto possível– Entregue rápido– Empoderar o time– Veja o todo

Lean Software Development

Page 54: Lean para potencializar a qualidade no software

● Eliminar Desperdícios– Trabalho incompleto (estoque)– Funcionalidades extras (superprodução)– Reaprendizado– Processos extras (superprocessamento)– Troca de Tarefas– Espera (espera)– Defeito (defeito)

Lean Software Development

Page 55: Lean para potencializar a qualidade no software

Como incluir a qualidade no processo?

Page 56: Lean para potencializar a qualidade no software

Potencialize seu processo!• Feedback constante!• ATDD• BDD• Documentação Viva• Programação em Pares• Teste em Pares• Refatoração• Clean Code• Peer Review• Dívidas técnicas• TFD - Test First Development• TDD - Test Driven Development• Integração frequente• Automatização de testes• Integração Contínua

Page 57: Lean para potencializar a qualidade no software

O Segredo:

Page 58: Lean para potencializar a qualidade no software

FeedbackConstante!

http://www.samatters.com

Page 59: Lean para potencializar a qualidade no software

Como?

Page 60: Lean para potencializar a qualidade no software

<Título>Como um <papel de usuário>Eu quero <objetivo> Para que <razão>

ATDDAcceptance Test-Driven

Development Critério de Aceitação Dado que <pré-condição> Quando <ação> Então <resultado>

Page 61: Lean para potencializar a qualidade no software

BDD

Page 62: Lean para potencializar a qualidade no software

Documentação Viva

Page 63: Lean para potencializar a qualidade no software

Clean Code

http://programmer.97things.oreilly.com/wiki/index.php/Uncle_Bob

Page 64: Lean para potencializar a qualidade no software
Page 65: Lean para potencializar a qualidade no software

TFDTestFirstDevelopment (code)

Page 66: Lean para potencializar a qualidade no software

Refatoração“Uma mudança feita na estrutura interna do software para deixá-lo

mais fácil de entender e barato de modificar sem

mudar seu comportamento

observável.”

Martin Fowler

http://martinfowler.com

Page 67: Lean para potencializar a qualidade no software

TDD - Test Driven DevelopmentTDD = TFD + Refatoração;

Page 68: Lean para potencializar a qualidade no software

Trabalho em ParesTrabalho em Pareshttp://en.wikipedia.org

Page 69: Lean para potencializar a qualidade no software

Peer ReviewPeer Review(Revisão por Pares)(Revisão por Pares)

http://www.phd2published.com

Page 70: Lean para potencializar a qualidade no software

Dívidas Técnicas(Techinal Debt)

http://www.andrejkoelewijn.com/

Page 71: Lean para potencializar a qualidade no software

Integração Contínua e Frequente

http://www.in2it.be

Page 72: Lean para potencializar a qualidade no software

Automatização de Testes

http://martinfowler.com

Page 73: Lean para potencializar a qualidade no software

Agile Testing

http://lisacrispin.com

Page 74: Lean para potencializar a qualidade no software
Page 75: Lean para potencializar a qualidade no software

Feedback é a chave!

Page 76: Lean para potencializar a qualidade no software

Lean é Qualidade Total!

Page 77: Lean para potencializar a qualidade no software

E não se esqueçam:

“Ambiente limpo não é o que mais se limpa,e sim o que menos se suja.” Chico Xavier

photobucket.com

Page 78: Lean para potencializar a qualidade no software

Obrigado!

photobucket.com

Page 79: Lean para potencializar a qualidade no software

Lean para Potencializar a Lean para Potencializar a Qualidade no SoftwareQualidade no Software

Trilha de Testes #TDC2014Trilha de Testes #TDC2014Dionatan MouraDionatan Mourawww.about.me/dionatanmourawww.about.me/dionatanmourahttp://topwalls.net