First Came IID
At the dawn of the IT era, a handful of software engineers started developing and implementing a set of practices that they called “Iterative and Incremental Development”. The IID concept was based on a very simple idea: develop a system through repeated cycles (iterative) and in smaller portions at a time (incremental). The process had three steps: initialization step, the iteration step, and the Project Control List.
IIDs in the 50s differed widely in details and applicability, but they were united by a few common threads: avoiding single-pass development routes, stepping away from document-driven processes and discarding gated-step approaches.
Some of the noteworthy projects that made use of IIDs were the development of the X-15 hypersonic jet and NASA’s Mercury Project (1960s).
The early days of “responding to change”
In 1970, Winston Royce (head of Lockheed’s Software Technology Center) published an article titled “Managing the Development of Large Software Systems”. This paper went on to become what is considered by many “the mother of all waterfall methodologies”.
However, Royce was not a supporter of waterfall. Quite the contrary: he describes the shortcomings of the waterfall method, as an example of a process that is not working properly.
What he proposes is the “do-it-twice” approach: “If the computer program in question is being developed for the first time, arrange matters so that the version finally delivered to the customer for operational deployment is actually the second version”. He also suggests that a pilot model for a project could be beneficial, “when the project contains novel elements and unknown factors”.
It is in these ideas that we see the very first seeds of piloting and validating new solutions, as well as adaptation.
The Booming 90s
As PCs were taking over offices and homes, the software industry was facing a serious crisis, which was referred to as the “application development crisis” or “application delivery lag”. Businesses grew and moved faster than in the previous decades, and software development could not keep up: it took roughly three years to develop a business need into an actual application (in aerospace or defense, that lag was close to 20 years).
The reality of long lead times and unchangeable decision made early in the project frustrated a lot of software development professional. And the rebellion against the status quo came in the form of lightweight software development methods.
It started with RAD (rapid application deployment) in 1991. Then came Scrum (1993), RUP (rational unified process) and DSDM (dynamic systems development method) in 1994. From there on, everything took off; more and more lightweight methods appeared: Crystal and XP (extreme programming) – 1996, FDD (feature-driven development) and ASD (adaptive software development) – 1997.
The Agile Manifesto is born
The most widely known legend of Agile is the meeting held in the spring of 2001. In February that year, seventeen self-appointed representatives of the lightweight development methods, got together at a ski lodge in Snowbird, Utah. This group of independent software thinkers named themselves The Agile Alliance and, over the course of 3 days, developed the now-famous Manifesto for Agile Software Development. Everything that followed is, as they say, history.
Agile today
Over the last few years, software teams have adopted Agile in higher and higher numbers, bringing the adoption rate from 37% in 2020, to a whooping 86% just one year later (Source: Digital.ai). At the same time, 91% of organizations state that it is a strategic priority to adopt Agile. (Source: KPMG).
The results of mass Agile adoption are more and more visible. For example, business units that fully adopted agile before the Covid-19 pandemic outperformed units that hadn’t on customer satisfaction (93% agreed), employee engagement (76% agreed), and operational performance (93% agreed). (Source: McKinsey)
In the future, the positive statistics that we see today will probably drive higher Agile adoption rates and more Agile frameworks development, in order to keep up with requirements in the ever-changing environment of It & Tech industries.