Linha do Tempo das Práticas Ágeis

Pedro Luiz M. Cruz - 01/07/2020

compartilhar no facebook compartilhar no twitter compartilhar no linkedin compartilhar no whatsapp


A agilidade está difundida nas empresas e virou tendência em todos os setores, não se restringindo apenas a TI. Iniciada por desenvolvedores de softwares, que praticavam modos não convencionais para a época, resolveram criar um manifesto para dizer ao mundo os valores que mais apreciavam. Com o manifesto, os holofotes cresceram sobre as práticas ágeis e novas técnicas surgiram.

Ou seja, as práticas envolvidas nos métodos ágeis são datadas de antes do manifesto. Na linha do tempo aparecem formas de fazer gestão, técnicas de automação e ferramentas que trazem mais produtividade. Nessa linha histórica fica transparente a melhoria contínua que aconteceu e vai continuar acontecendo.

Foram escolhidos do início ao fim da linha do tempo as principais práticas que conectam a agilidade no tempo. Apesar de muitos outros acontecimentos não serem citados, é possível entender a essência da sua história.

 

1947 até 1975

Sistema Toyota de Produção criado por Taiichi Ohno usando como base Just-in-Time e automação com um toque humano. Muitas práticas ágeis são baseadas nos ensinamentos do Sistema Toyota, por exemplo: gestão visual com kanban (primeiro como cartão, depois como quadro), melhoria contínua (kaizen), sistema puxado, fluxo contínuo, redução de desperdícios, entre outros. [1]
Sistema Toyota de Produção

1976

Uma série de artigos do D. Panzi descrevendo ferramentas com funcionalidades que lembram muito as utilizadas no JUnit, mostram uma longa história da automação de testes. No futuro se tornou uma prática do método ágil Extreme Programming. [2]

1980

Com as peregrinações americanas às plantas japonesas da Toyota, fica cada vez mais difundido o controle visual originado no Sistema Toyota de Produção. A prática de gestão visual vai ganhando notoriedade. [3]

1984

Experimentos e publicações de Barry Boehm sobre prototipagem e com isso a simplificação de especificações de requisitos mostram um caminho mais leve na documentação de software. [4][5]

1985

Talvez um dos primeiros a mostrar a ideia de desenvolvimento evolutivo como uma alternativa ao “modelo cascata”, então muito utilizado. Tom Gilb nomea como “Evolutionary Delivery” e reporta um histórico da prática mas ainda mostra a necessidade de aprender mais e amadurecer a prática. [6]

1986

No artigo de Barry Boehm: “A spiral model of software development and enhancement”, mostra a tendência dos modelos iterativos e incrementais. [7]
Modelo Espiral de Boehm

1986

Para muitos, o artigo de Takeuchi e Nonaka ”The New New Product Development Game” representa um marco para a criação dos métodos ágeis e principalmente para o método Scrum. O artigo descreve um time coeso e multidisciplinar como um time de rugby, mas fazendo a analogia para desenvolvimento de produtos. O termo Scrum é usado no rugby para reinício de jogo, onde os jogadores dos dois times se empurram na disputa da bola. [8]
Scrum do Rugby

1990

Bill Opdyke apresenta o termo “Refactoring” (Refatoração) em um artigo da ACM SIGPLAN com Ralph Johnson, “Refactoring: An aid in designing application frameworks and evolving object-oriented systems”. A refatoração aprimora o design do software e reduz a deteriorização. Esse cuidado com a qualidade impulsionou a visão de simplicidade em software, um dos princípios da agilidade. [9]

1991

”Rapid Application Development” ou apenas RAD. Termo lançado por James Martin em seu livro de mesmo nome, juntando iterações em espiral com ciclos curtos. Redução do tamanho do ciclo (ou redução do tamanho do lote como exposto no Sistema Toyota de Produção) é uma das práticas mais importantes da agilidade. [10]

1993

Jim Coplien escreve o pattern original “StandUpMeeting” (Reunião em Pé). Reuniões curtas que incentivam a colaboração em prol do objetivo do time. Essa é provavelmente a cerimônia mais utilizada dos métodos ágeis. [11]
StandUpMeeting

1993

Jeff Sutherland inventa o Scrum como um processo na Easel Corporation. [12]

1994

Kent Beck escreve o framework the testes SUnit para Smalltalk. Foi para muitos a materialização dos conceitos de automação de testes. [13]

1995/97

Ken Schwaber e Jeff Sutherland apresentam Scrum na conferência OOPSLA, então Ken Schwaber publica o artigo “SCRUM Development Process”. [14]

1999

Kent Beck publica a primeira versão do livro Programação Extrema (XP) Explicada, como ele mesmo cita em apresentações, talvez como uma piada: “estava cansado de explicar XP, então publiquei o livro XP Explicada”. [15]

2000

Enquanto trabalhava para a Fidelity Investments, Ken Shwaber inventa o gráfico de burndown, essa técnica passa a ser muito utilizada no Scrum para mostrar o progresso da Sprint (ciclo curto). [16]
Gráfico de Burndown

2000

Martin Fowler escreve o artigo “Continuous Integration”, um precursor para práticas ágeis e de Devops. [17]

Fevereiro de 2001

Em Utah, 17 desenvolvedores de software se reúnem e após um brainstorm chegam aos valores que mais admiravam no desenvolvimento de software. Nos dias seguintes acrescentam os princípios e publicam o Manifesto para Desenvolvimento Ágil de Software. [18]
Manifesto para Desenvolvimento Ágil de Software

2001

O artigo de Mary Poppendieck ”Lean Programming”, trás atenção para o paralelo existente entre agilidade e as ideias conhecidas como Lean originadas no Sistema Toyota de Produção. [19]

2003

Mary e Tom Poppendieck publicam o livro ”Lean Software Development” descrevendo o “software kanban system” como uma ferramenta da agilidade. [20]

2003

Mike Cohn descreve o quadro de cinco colunas como uma ferramenta do Scrum e chama de “Scrum task board”. [21]
Quadro Kanban de 5 colunas

2007

A versão simplificada do quadro de tarefas com apenas 3 colunas (“To do”, “Doing”, “Done”) passa a se popularizar por praticantes do Scrum. [22]
Quadro kanban de 3 colunas

2007

Os primeiros relatos de equipes usando um conjunto de práticas com o nome “kanban” (sem iterações, sem estimativas, painéis de tarefas contínuos com limites de WIP) são publicados, incluindo relatos de David Anderson na Corbis (empresa de Bill Gates) e por Arlo Belshee na BueTech. [23]

2010

Publicado o livro "Kanban Successful Evolutionary Change for Your Technology Business" por David Anderson formalizando o método Kanban e suas práticas. [24]

compartilhar no facebook compartilhar no twitter compartilhar no linkedin compartilhar no whatsapp

Referências

 

[1] Ohno, Taiichi. O Sistema Toyota de Produção Além da Produção em Larga Escala, Bookman, 1997, página 3.
https://www.amazon.com.br/dp/B00DFGTIYA/ref=cm_sw_r_tw_dp_x_YXn-EbBDMWMVD

[2] Test procedures: A new approach to software verification
https://dl.acm.org/doi/10.5555/800253.807721

[3] Liker, Jeffrey K.. O Modelo Toyota: 14 princípios de gestão do maior fabricante do mundo, Bookman, 2005, página 155
https://www.amazon.com.br/Modelo-Toyota-Princ%C3%ADpios-Gest%C3%A3o-Fabricante/dp/8536304952/ref=sr_1_1

[4] Prototyping vs. specifying: A multi-project experiment
https://dl.acm.org/doi/10.5555/800054.802007

[5] Prototyping as a tool in the specification of user requirements
https://dl.acm.org/doi/10.5555/800078.802546

[6] Evolutionary Delivery versus the "waterfall model"
https://dl.acm.org/doi/10.1145/1012483.1012490

[7] A spiral model of software development and enhancement
https://dl.acm.org/doi/10.1145/12944.12948

[8] The New New Product Development Game
http://www.enterprisescrum.com/publications/The%20New%20New%20Product%20Development%20Game%20-%20Nonaka%20and%20Takeuchi.pdf

[9] William F. Opdyke and Ralph E. Johnson. Refactoring: An aid in designing application frameworks and evolving object-oriented systems. In SOOPPA Conference Proceedings, páginas 145-161, Marist College, Poughkeepsie, NY, Setembro 1990. ACM Press.

[10] Amazon - Rapid Application Development
http://www.amazon.com/dp/0023767758

[11] Agile Alliance - Daily Meeting
https://www.agilealliance.org/glossary/daily-meeting

[12] Wikipedia - Scrum (desenvolvimento de software)
https://pt.wikipedia.org/wiki/Scrum_(desenvolvimento_de_software)

[13] Simple Smalltalk testing (página 16)
http://www.macqueen.us/smalltalkReport/ST/91_95/SMAL0402.PDF

[14] The Scrum Development Process
https://www.scrum.org/resources/scrum-development-process

[15] Youtube - Extreme Programming 20 years later by Kent Beck
https://www.youtube.com/watch?v=cGuTmOUdFbo

[16] Calculating Sprint Burndown and Velocity of Work
http://web.archive.org/web/20010503112119/www.controlchaos.com/sburndown.htm

[17] Continuous Integration (original version)
https://www.martinfowler.com/articles/originalContinuousIntegration.html

[18] Manifesto para Desenvolvimento Ágil de Software
https://agilemanifesto.org/iso/ptbr/manifesto.html

[19] Lean Programming
https://www.drdobbs.com/lean-programming/184414734

[20] Amazon - Lean Software Development: An Agile Toolkit
https://www.amazon.com.br/Lean-Software-Development-Toolkit-English-ebook/dp/B00HEL13HW

[21] Scrum Task Board
https://www.mountaingoatsoftware.com/agile/scrum/scrum-tools/task-boards

[22] Agile Alliance - Task Board
https://www.agilealliance.org/glossary/taskboard/

[23] Anderson, David. Kanban Successful Evolutionary Change for Your Technology Business, Blue Hole Press, 2010, pag. 7
https://www.amazon.com.br/Kanban-English-David-J-Anderson-ebook/dp/B0057H2M70/

[24] Amazon - Kanban (English Edition)
https://www.amazon.com.br/Kanban-English-David-J-Anderson-ebook/dp/B0057H2M70/