AGILE 101

Agile Practices Timeline

Trace the history and evolution of Agile from its roots in 1968, and learn how it has evolved through the years.

Agile Practices from 1968-1999

1968
Conway’s Law
“Conway’s Law” is coined and summarized as follows: “Any organization that designs a system (defined more broadly here than just information systems) will inevitably produce a design whose structure is a copy of the organization’s communication structure.” It has long had the status of folklore rather than of well-supported scientific result, though recent studies have lent it some academic support. (The social aspects of software development remained largely ignored by academic software engineering until the mid-90’s.)
1968
1970s
Wideband Delphi
Barry Boehm proposes “Wideband Delphi”, a forerunner of Planning Poker
1970s
1976
Automated Unit Testing
A series of articles by D. Panzl describing tools with features closely resembling those of JUnit attest to the long history of automated unit testing.
1976
1976
Software Reliability
Publication of Software Reliability by Glenford Myers, which states as an “axiom” that “a developer should never test their own code” (Dark Ages of Developer Testing).
1976
1977
Automating Software Builds
Creation of the “make” tool for Unix systems – the principle of automating software builds is not a new idea.
1977
1980
Principles of software engineering
Substantial discussion of incremental development in IBM’s Federal Systems Division can be found in a volume edited by Harlan Mills, ”Principles of software engineering”, specifically an article by Dyer, which recommends organizing “each increment to maximize the separation of its function(s) from function(s) in other increments”; however, the idea is still very much that of a scheduled, phased approach rather than one responsive to change.
1980
1980
Visual Control
The notion of “visual control” originating in the Toyota Production System is an anticipation of “information radiators”.
1980
1983
Human Factors Testing
A wide range of “human factors testing” techniques foreshadowing usability testing, used at the Xerox PARC during the design of the Xerox Star, are described in the CHI conference proceedings.
1983
1984
Prototyping vs. specifying
An early empirical study by Barry Boehm of projects using prototyping, by essence an iterative strategy, suggests that iterative approaches first started receiving serious attention around that time, most probably driven by factors such as the rise of personal computers and graphical user interfaces.
1984
1984
Thinking forth
The notion of “factoring”, an anticipation of refactoring, is described in Brodie’s “Thinking Forth”, where it is presented as “organizing code into useful fragments” which “occurs during detailed design and implementation”.
1984
1984
Knowledge-based communication processes in software engineering”
While criticisms of the “waterfall” sequential approach have started much earlier, formulations of alternative incremental approaches are becoming more pointed; a good example is an early paper on ”Knowledge-based communication processes in software engineering” advocating incremental development for the specific reason that “complete and stable specifications are not available”.
1984
1985
Evolutionary Delivery Model
Perhaps the first explicitly named, incremental alternative to the “waterfall” approach is Tom Gilb’s Evolutionary Delivery Model, nicknamed “Evo”.
1985
1986
A Spiral model of software development and enhancement
In a well-known paper, Barry Boehm presents ”A Spiral model of software development and enhancement”, an iterative model geared to identifying and reducing risks through any appropriate approaches (though the “typical” example presented is based on prototyping).
1986
1986
Scrum Framework Inspiration
Takeuchi and Nonaka publish their article ”The New New Product Development Game” in Harvard Business Review. The article describes a rugby approach where “the product development process emerges from the constant interaction of a hand-picked, multidisciplinary team whose members work together from start to finish.” This article is often cited as the inspiration for the Scrum framework.
1986
1988-1990
“Capture and Replay” test automation
The rise of event-driven GUI software and their specific testing challenges create an opportunity for “capture and replay” test automation tools provided by companies such as Segue or Mercury; this type of tool dominates the market for the next decade.
1988-1990
1988
Rapid Iterative Production Prototyping
The “timebox” is described as a cornerstone of Scott Schultz’s “Rapid Iterative Production Prototyping” approach in use at a Du Pont spin-off, Information Engineering Associates.
1988
1988
Anthropomorphic metaphors
Though the idea of reasoning through design issues by anthropomorphizing objects, as in the CRC technique, may seem quite natural, it has had some formidable detractors, for instance this artlce by Dijsktra ”On the cruelty of really teaching computing science”, which appears just as object-oriented is hitting the mainstream: “in computing science the anthropomorphic metaphor should be banned”.
1988
1989
Object-Oriented Thinking
Ward Cunningham describes the CRC technique in a joint article with Kent Beck; the specific format used for the cards derives from an application designed by Cunningham to store design documentation as a Hypercard stack.
1989
1990
Refactoring
Bill Opdyke coins the term “refactoring” in an ACM SIGPLAN paper with Ralph Johnson, “Refactoring: An aid in designing application frameworks and evolving object-oriented systems”
1990
1990
Black Box Testing
Testing discipline dominated by “black box” techniques, in particular in the form of “capture and replay” testing tools
1990
1990s
“make” tools lose favor
Owing to the rise in popularity of RAD tools and IDEs, “make” type tools acquire a mixed reputation
1990s
1991
Rapid Application Development
RAD, possibly the first approach in which timeboxing and “iterations” in the looser sense of “one repetition of the entire software development process” are closely combined, is described by James Martin in his ”Rapid Application Development”. This book also describes the details of the timebox in one of its chapters.
1991
1991
Testing Frameworks
Independent creation of a testing framework at Taligent with striking similarities to SUnit (source)
1991
1991
Testing Frameworks
Independent creation of a testing framework at Taligent with striking similarities to SUnit (source)
1991
1992
Dynamic Duo Coding
“Dynamic Duo” is the term coined by Larry Constantine, reporting on a visit to Whitesmiths Inc., a compiler vendor started by P.J. Plauger, one of the implementors of C: “At each terminal were two programmers! Of course, only one programmer was actually cutting code at each keyboard, but the others were peering over their shoulders.” Whitesmiths existed from 1978 to 1988.
1992
1992
Refactoring object-oriented frameworks
A comprehensive description of “refactoring” is presented in Opdyke’s thesis, “Refactoring object-oriented frameworks”
1992
1993
The benefits of collaboration for student programmers
“The benefits of collaboration for student programmers” by Wilson et al. is one early empirical study indicating benefits of pairing for programming tasks specifically. Posterior studies are more abundant and driven by the desire to “validate” pair programming after it had already gained popularity through Extreme Programming.
1993
1993
Stand-Up Meeting pattern.
Jim Coplien writes the original Stand-Up Meeting pattern.
1993
1993
Continuous Integration
The phrase “continuous integration” is already in use and thus predates what will later be known as Agile processes, for instance an article written this year contrasts it with “scheduled” integration, and recommends the latter, citing “lack of thorough testing” as one issue with continuous integration; this helps explain why the automated testing favored by Agile teams is an enabler for continuous integration.
1993
1993
Invention of Scrum
Jeff Sutherland invents Scrum as a process at Easel Corporation.
1993
1993
Daily Meetings
Jim Coplien, describing his observations of the “hyperproductive” Borland Quattro Pro team, notes their reliance on almost daily meetings: “the project was made more of meetings than anything else”; this article is also cited as a strong influence on Scrum
1993
1994
SUnit testing framework for Smalltalk
Kent Beck writes the SUnit testing framework for Smalltalk.
1994
1995
Organizational Patterns
Coplien names the “Code Ownership” pattern in Pattern Languages of Program Design, in an early version of his “Organizational Patterns”, a work influential in the later development of Agile discourse. However, he endorses exclusive individual code ownership, and cautions against collective ownership which he equates to no ownership at all. Coplien admits that objections against individual ownership exist, but argues that other of his patterns mitigate those problems.
1995
1995
Growth of human factors in application development
An article by Alistair Cockburn, ”Growth of human factors in application development”, suggests one major reason why iterative approaches gradually gain acceptance: the bottleneck in software development is shifting to (individual and organizational) learning, and human learning is intrinsically an iterative, trial and error process.
1995
1995
Invention of Wikis
Based on the same inspiration as CRC cards, Ward Cunningham develops the concept of a Wiki, which will later become the ancestor of Wikipedia and undoubtedly one of the most influential ideas in the history of the World Wide Web.
1995
1995
Sprint as iteration
The earliest writings on Scrum introduce the notion of the “sprint” as iteration, although its duration is variable.
1995
1995
Alexandrian Form
The pattern “Developing in Pairs” is given a brief description, in Alexandrian pattern form, in Jim Coplien’s chapter “A Generative Development-Process Pattern Language” from the first patterns book, “Pattern Languages of Program Design”.
1995
1995
Antipatterns
Andrew Koenig originally coined the term antipattern in the March – April 1995 edition of the Journal of Object Oriented Program: “An antipattern is just like a pattern, except that instead of a solution it gives something that looks superficially like a solution, but isn’t one.”
1995
1995
Antipatterns
Andrew Koenig originally coined the term antipattern in the March – April 1995 edition of the Journal of Object Oriented Program: “An antipattern is just like a pattern, except that instead of a solution it gives something that looks superficially like a solution, but isn’t one.”
1995
1995
Formal Introduction of Scrum
Ken Schwaber and Jeff Sutherland co-present Scrum at the OOPSLA Conference.
1995
1996
Daily Build and Smoke Test
Steve McConnell describes the “Daily Build and Smoke Test” technique, used at Microsoft for Windows NT 3.0 during the 1990’s; the emphasis is not so much on the automation as on the frequency, the daily cycle being at that time considered “extreme”.
1996
1996
Acceptance Testing
Automated tests are a practice of Extreme Programming, without much emphasis on the distinction between unit and acceptance testing, and with no particular notation or tool recommended.
1996
1997
Daily Scrum
Ken Schwaber describes the “daily scrum” (which does not appear in his earlier writings, such as the 1995 article “SCRUM Development Process”), this is later recast in pattern form by Mike Beedle.
1997
1997
Working in Increments
In ”Surviving Object-Oriented Projects”, Alistair Cockburn describes several projects (dating as far back as 1993) informally using the practice, but does not give it a label; he summarizes it as “Work in increments, focus after each”.
1997
1997
JUnit Testing Tool
The testing tool JUnit is written by Beck and Gamma, inspired by Beck’s earlier work on SUnit; its growing popularity over the next few years marks the end of the “capture and replay” era.
1997
1998 – 2002
Test First becomes Test Driven
“Test First” is elaborated into “Test Driven”, in particular on the C2.com Wiki.
1998 – 2002
1998
Continuous Integration
Continuous integration and the “daily stand-up” are listed among the core practices of Extreme Programming.
1998
1998
The Patterns Handbook
Linda Rising reprints Keonig’s definition of antipattern in the "The Patterns Handbook: Techniques, Strategies, and Applications".
1998
1998
Antipatterns term Popularized
The book "AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis" popularized the term antipattern.
1998
1998
Extreme Programming
The earliest article about Extreme Programming, “Chrysler goes to Extremes”, describes several XP practices such as self-chosen tasks, test first, three week iterations, collective code ownership, and pair programming.
1998
1999
System Metaphor
Early on in the elaboration of Extreme Programming, the “System Metaphor” practice is proposed to address the issues of business-technical translation and cognitive friction, however the practice is poorly understood and fails to catch on.
1999
1999
iterative and incremental
In an article for the C++ Report, Robert C. Martin gives what is perhaps the earliest description of the Agile sense of the terms “iterative” and “incremental”.
1999
1999
Personas
Personas are first described in one chapter of Alan Cooper’s “The Inmates are Running the Asylum”, building on prior work in “Goal-Directed design”.
1999
1999
Simple Design
The “rules of simple design” are described for the first time in an IEEE Computer article by Kent Beck, “Embracing Change with Extreme Programming”, summarizing earlier discussions on the OTUG mailing list.
1999
1999
Refactoring Popularized
The practice of “refactoring”, incorporated a few years earlier into Extreme Programming, is popularized by Martin Fowler’s book of the same name.
1999
1999
Big Visible Chart
The term “Big Visible Chart” is coined by Kent Beck in “Extreme Programming Explained”, though later attributed by Beck to Martin Fowler.
1999
1999
Gummi Bears
The unit “Gummi Bears”, an alternative to “story points” for estimating user stories, is first mentioned by Ron Jeffries (later attributed to an XP project led by Joseph Pelrine).
1999

Agile Practices from 2000-Present

This part of the Agile Practices timeline is coming soon!

Discover the many benefits of membership

Your membership enables Agile Alliance to offer a wealth of first-rate resources, present renowned international events, support global community groups, and more — all geared toward helping Agile practitioners reach their full potential and deliver innovative, Agile solutions.

Not yet a member? Sign up now