History
1890
Principles of Scientific Management
Early in the 1890s, the father of scientific management, Frederick Taylor investigated closely in the work methods and workers at the factory level. After his supervision, he propounded the concepts like standardization of work, time studies and motion studies, in order to achieve efficiency in the work methods, processes and operations. However, he ignored the behavioral aspect of the work, which invited many criticisms against him.
1910
Manufacturing Strategy
Starting in 1910, Henry Ford pioneered the famous manufacturing strategy, in which all the resources used at the manufacturing site- people, machines, equipment, tools and products were arranged in such a manner that a continuous flow of production is facilitated.
1930
Lean
The push towards lean manufacturing originates from the Toyota Production System which is often referred to as Just In Time (JIT) Production. The roots of this system were clearly linked to the Ford’s system. Actually, all the managers in Toyota said to learn the Ford’s system. Fortunately, though, they did not simply copy the Ford’s system. Instead they clearly understood strengths and weaknesses of the system and impart the pluses to their system, while eliminating the problems.
1950
Kaizen
A quality circle is a group of workers performing the same or similar work, who meet regularly to identify, analyze and solve work-related problems. In 1950 Toyota implemented quality circles leading to the development of Toyota’s unique “Toyota Production System”. Toyota System is a system of continuous improvement in quality, technology, processes, company culture, productivity, safety and leadership.
These continual small improvements (Kaizen) add up to major benefits. They result, for example, in: faster delivery, lower costs, and greater customer satisfaction.
1960
Iterative & Incremental Development (IID)
Iterative and Incremental development is any combination of both iterative design or iterative method and incremental build model for software development. The combination is of long standing and has been widely suggested for large development efforts. During software development, more than one iteration of the software development cycle may be in progress at the same time and This process may be described as an 'evolutionary acquisition' or 'incremental build' approach.
Later in their famous paper “Iterative and Incremental Development: A Brief History”, Larman and Basili mentioned that iterative and incremental development was in use as early as 1957. In addition, they described projects that used iterative and incremental approaches in the 1970, but there are documents that show that NASA & IBM Federal Systems Divisions were using these iterative and incremental development since 1950s.
1985
Evo
Agile ideas appeared in old development processes as well. In 1985, Tom Gilb wrote “Evolutionary Delivery versus the ‘Waterfall model’”. In this paper Gilb introduce the EVO method as an alternative of the waterfall which he considered as “unrealistic and dangerous to the primary objectives of any software project”. Gilb based EVO on three simple principles: Deliver something to the real end-user, Measure the added-value to the user in all critical dimensions, Adjust both design and objectives based on observed realities
1986
Scrum
Hirotaka Takeuchi and Ikujiro Nonaka introduced the term scrum in the context of product development in their 1986 Harvard Business Review article, "New New Product Development Game". Takeuchi and Nonaka later argued in The Knowledge Creating Company that it is a form of "organizational knowledge creation, ... especially good at bringing about innovation continuously, incrementally and spirally".
The authors described a new approach to commercial product development that would increase speed and flexibility, based on case studies from manufacturing firms in the automotive, photocopier and printer industries. They called this the holistic or rugby approach, as the whole process is performed by one cross-functional team across multiple overlapping phases, where the team "tries to go the distance as a unit, passing the ball back and forth". (In rugby football, a scrum is used to restart play, as the forwards of each team interlock with their heads down and attempt to gain possession of the ball.)
1988
RIPP
After Gilb’s EVO, in 1988, the DuPont Company presented a methodology called Rapid Iterative Production Prototyping (RIPP). The main goal was to build working prototypes that could be presented to customers regularly to ensure that the finished product is what they wanted. The company guaranteed “Software in 90 days… or your money back”.
1991
RAD
James Martin expanded the RIPP methodology into a large formalized one which became the Rapid Application Development (RAD). The RAD lifecycle has four phases: requirements planning, user design, construction and implementation (Martin 1991). What distinguishes RAD from traditional lifecycles is that in RAD construction phase we do the detailed design and code generation of one transaction after another. Each transaction can be shown to the end users to make adjustments. In addition, the “timebox” applies to the construction phase. The team will be given a fixed timebox within which the system must be constructed. The timebox inputs are the functions and the design framework of the system. The output is the system which will be evaluated to decide whether to put it in production or not. Within the timebox, “continuous iterative development is done” in order to produce a working system by the end of the timebox. Martin recommended 60 days length for the timebox, with a 1-5 person team. The term “timebox” was created by Scott Shultz and was first used in DuPont. Shultz stated that the timebox methodology was successful as all the applications were complete in less time than it would have taken just to write the specification for a COBOL or FORTRAN application
1992
Crystal methods
Crystal was the starting point of the evolution of software development methodologies which ultimately resulted in what we know as agile movement. The honor of creating Crystal goes to Alistair Cockburn. The methodology was named “Crystal” only in 1997.Crystal can be applied to teams of up to 6 or 8 co-located developers working on systems that are not life-critical. You can see the seeds of agile manifesto in Crystal because it focuses on – (1) Frequent delivery of usable code to users, (2) Reflective improvement and (3) Osmotic communication preferably by being co-located.
1993
Refactoring
Refactoring was coined by Bill Opdyke in a paper titled “Creating Abstract Superclasses by Refactoring”. Code refactoring is “disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior”, undertaken in order to improve some of the nonfunctional attributes of the software.
1995
Scrum for IT Development & Pair Development Method
SCRUM for IT Development projects was jointly created by Jeff Sutherland and Ken Schwaberwho presented a paper describing it at OOPSLA ’95 in Austin, Texas. Mike Beedle has been one of the very early adopter on Scrum and has introduced Scrum to many organizations since the mid-90’s.As you know Scrum has practically been the de facto standard for agile.
1996
Extreme Programming (XP)
While Kent Beck was working at Chrysler he developed the concept of Extreme Programming. He published the method in 1999 as a book – Extreme Programming Explained. As a part of Extreme Programming, he also introduced the concept of User Stories and Release Planning. The methodology specifies best practices for planning, managing, designing, coding and testing.
1997
Feature Driven Development (FDD)
Feature Driver Development was initially devised by Jeff De Luca. The best practices of FDD are, (1) Domain Object Modeling, (2) Developing by Feature, (3) Individual Class (Code) Ownership, (4) Feature Teams, (5) Inspections, (6) Configuration Management, (7) Regular Builds and (8) Visibility of progress and results. Interestingly, “Individual Class (Code) Ownership” goes against the concept joint code ownership which is considered a key practice today.
1999
Adaptative Software Development (ASD)
Jim Highsmith formalized the Concept of Adaptive System Development and published a book with the same name.The idea grew out of his work on Rapid Application Development methodologies.He proposed a three phase lifecycle of – (1) Speculation, (2) Collaboration and (3) Learning.
2001
Agile Manifesto
Software managers sought opportunities to quickly build working software and it into the hands of end users with good practices. Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Bob Martin, Stephen Mellor, Ken Schwaber, Jeff Sutherland, and Dave Thomas created the agile manifesto.
2002
Test Driven Development (TDD)
For TDD the credit goes to Kent Beck. The concept of Test Driven Development also originated from XP test-first approach. It was given a shape later by Kent Beck through the book Test Driven Development: By Example.
2003
Test Driven Development (TDD)
Is Lean Software Development an extension to agile methodology? Should we look at it as something distinct from agile? Should it find a place in this post? I have included it for the primary reason that many agilists consider it to be one of the future directions of agile movement. Anyway; term was coined by Mary Poppendieck and Tom Poppendieckin 2003. It is an adaptation of lean manufacturing principles and practices to the software development. There are seven principles – (1) Eliminate waste, (2) Amplify learning, (3) Decide as late as possible, (4) Deliver as fast as possible, (5) Empower the team, (6) Build integrity in and (7) See the whole. Amplify learning, deliver as fast as possible, empower the team etc. goes very well with agile principles.