The History of Agile


The timeline above contains some key moments in the history of agile, and some other interesting events taking place at that same time for reference.

  • 1970 – Waterfall Model was created (by Winston W Royce.) Interestingly enough some of the risks he called out have been realized and are much of the reason we saw agile come into existence.
    • “I believe in this concept, but the implementation described is risky”.
    • “The required design changes are likely to be so disruptive that the software requirements upon which the design is based and which provides the rationale for everything…. are violated. Either the requirements must be modified, or a substantial change in the design is required. In effect the development process has returned to the origin and one can expect up to a 100-percent overrun in schedule and/or costs.”
  • 1970 – Also, Gas is 36 cents per gallon. Wut?!
  • 1990 – Jeff Sutherland and Ken Schwaber conceived the Scrum process in the early 90’s.
  • 1991 – Also, the release of Nirvana’s Nevermind signified the start of the Grunge era that would dominate the music scene up to the mid-90’s.
  • 1995 – Scrum is codified in 1995 in order to present it at a conference in Austin, Texas (US) and published the paper “SCRUM Software Development Process”.
    • Scrum was first tried and refined at Individual, Inc., Fidelity Investments, and IDX (now GE Medical). These weren’t simply startups with greenfield development efforts.
  • 1995 – Also,  OJ Simpson was found NOT GUILTY!
  • 2001 – In February 2001, Jeff and Ken were amongst 17 software development leaders creating the Manifesto for Agile Software Development. – Their goal was to take all the good things they’ve learned and create a “charter” for others to use. By this time there had been many variations of agility that evolved.  The manifesto was taking the best of the best and boiling it down to principles rather than a framework or methodology.
  • 2001 – Also, Lord of the Rings comes out in Theaters

Key Takeaway: Agile is not a flash in the pan, and is something that has been evolving for 20+ years. I believe we are even starting to see Agile become more of the “norm” in Software development. Agile as a mindset opens up the door for so much more than just SW Development.  What do you think will be the key points in time for agile 20 years from now?

The Great Delivery Debate


Dr. Winston Royce first described a model for working with large software systems in 1970, which we’ve grown to know as “Waterfall”.  Interestingly enough what many never read in his writings on SW development, is the following quote: “I believe in this concept, but the implementation described above is risky and invites failure.” (Source: Dr. Winston Royce. Proceedings, IEEE WESCON, August 1970)  Why could he have said this? Could it be that many times requirements are emergent? Perhaps it’s that estimating large and complex bodies of work based on a requirements document can be incredibly inaccurate?

While I have a large bias towards Agile methodologies, as a consultant it’s my responsibility to evaluate what truly is the best solution for a client.  I was recently on a project in a marketing organization, and while there certainly were some opportunities for Agile principles to be utilized, a framework like Scrum or Kanban just would not have been possible. I’ve heard some waterfall purists sum agile up to a bunch of people who want to get out of documentation and commitments to timelines.  Ouch.  But I also hear a lot of criticism from agile truthers about anyone who leverages waterfall as being clueless and archaic. Can’t we all just get along?  Yeah, we can actually.  But we have to start to recognize that Agile and Waterfall have value in different ways.

I’d love to have some discussion about what is seemingly a great divide between Agile and Waterfall methodologies. To help those in each “camp” understand why a specific method has value towards solving their business problems. What are some examples where you think a Waterfall process was truly the best solution for a project?  What were some of the identifiers you had to come to that conclusion? Have you had success with using a “ScrumerFall” model where the Requirements, and design is all done up front, but Execution is done in sprints?