Lean para potencializar a qualidade no software

Post on 27-Jun-2015

480 views 1 download

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

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

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.

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

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

Sakichi ToyodaSakichi Toyoda

http://phys.org

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

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

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).

Eiji Eiji ToyodaToyoda

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

KaizenKaizen

Taiichi Taiichi OhnoOhno

Fortaleceu Fortaleceu o TPSo TPS

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

http://sesiondecontrol.com

Popularização do TPS

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

O poder do Lean está no foco na

Qualidade!

http://www.kalsi.com.au

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

http://www.startribune.com

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

Desperdício é tudoque não agrega Valor!

http://www.cliffkule.com/

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

http://www.hashslush.com

ATENÇÃO!

Procurar defeitos/bugs é desperdício!

http://www.dan-dare.org

EntãoXGH (eXtreme Go Horse)

é Lean?

http://s89.photobucket.com

“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

É claro que não!

Porque.

http://s89.photobucket.com

No Lean, prevenir defeitos/bugsé essencial!

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

http://theclearblue.com

Iceberg dos

problemas

http://theclearblue.com

http://www.theaustin.com

Melhorias adiante!

SejaLean!

Combate aos 3 Mu's

http://www.nortegubisian.com.br

Muda(Desperdícios)

Três tipos de trabalho

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

● O que possui desperdício oculto

http://pastormattblog.com

Sete Desperdícios (Muda)

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

http://placaspredial.com.br

Mura(Desbalanceamento)

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

Muri(Sobrecarga)

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

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

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

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

Produção Puxada

Fonte: Porsche Consulting

Kanban

blogs.mulesoft.org

Takt Takt TimeTime

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

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

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!

Muda,Mura e Muri

Mapeamento de Fluxo de Valor (Value Stream Mapping)

courses.washington.edu

courses.washington.edu

HanseiHansei

http://matthewemay.com

Kaizen para sempre!

http://gophoto.us

Melhoria Contínua

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

SDCA (Standardization)

PDCAPDCA

5 whys5 whys5 porquês

http://www.qualitydigest.com

http://designechimarrao.com.br

Visual FactoryVisual Factory

http://www.aleanjourney.com

VariabilidadeVariabilidade

http://blog.toyota.co.uk

Uhuuuuu! E no Desenvolvimento de

Software?

Lean Software Development

● 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

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

Lean Software Development

Como incluir a qualidade no processo?

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

O Segredo:

FeedbackConstante!

http://www.samatters.com

Como?

<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>

BDD

Documentação Viva

Clean Code

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

TFDTestFirstDevelopment (code)

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

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

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

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

http://www.phd2published.com

Dívidas Técnicas(Techinal Debt)

http://www.andrejkoelewijn.com/

Integração Contínua e Frequente

http://www.in2it.be

Automatização de Testes

http://martinfowler.com

Agile Testing

http://lisacrispin.com

Feedback é a chave!

Lean é Qualidade Total!

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

Obrigado!

photobucket.com

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