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?
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?
This is mostly meant to give you a chuckle, but there is some validity to it as well. In my last blog post I talked about how we need to challenge the limits of what we understand agile to be. Can you be agile and waterfall at the same time? Probably not if you look through the lenses of what we typically view as a waterfall process. But it’s possible.
One thing I’ve noticed as an agile coach is that people like to gravitate towards what they know and are more comfortable with. One way this can play out is when helping a team adopt agile, you can get a strong pull to keeping things in the box of a waterfall process. This happens both at the individual contributor level and management level. Management can sometimes want waterfall type metrics but without the changes needed to realize the true benefits of agile. It’s ok though. Be patient, and see if you can find a way to meet somewhere in the middle. Waterfall isn’t bad. In fact it has tremendous value in the right context. So, as an agile enthusiast make sure you aren’t always negative about waterfall especially when it could be used to your advantage. However, what you don’t want to do is fall into the trap of using the buzz words from agile/scrum but keeping things pretty much the same.
I’ve found it is helpful to ask people questions about why they want to do something a certain way. “What do you think will be the benefits of trying it this way?” “What are you hoping to accomplish by doing it this way vs. that way?” If you say things like “You are just stuck in old thinking.” or “That’s not agile.” you can build walls instead of creating bridges. If they are pushing for trying something, maybe just go with it for 1-2 sprints. Then evaluate the impact it is having. After all, I’ve always found that I am continually learning from the teams I work with, and surprise-surprise I DON’T KNOW EVERYTHING! 😉