
Mike Lyons traces Agile's roots from Kanban in the 1940s through NASA's iterative work in the 1950s, Waterfall's dominance in the 1960s-70s, and Scrum and Extreme Programming in the 1990s, ending with the 2001 Agile Manifesto and scaling trends that followed.
Chapters
So if this Agile thing's been around for a while and it's all about, you know, staying current and being sort of at the front edge of using technology, why do we need to look back at the origins? It's a fair question. Let's unpack that a bit together. For many of you in the industry today, you might have been sort of, you know, brought up on technology and don't know that there was a different way or is a different way of developing software. And so it's worth looking back and sort of seeing where we came from to sort of understand how we can actually move to the next state after, you know, whatever the next thing in Agile is. This is a constantly moving, constantly growing field. We never really like arrive anyway. Let's look back. So as far back as like the 1940s, a man by the name of Taiichi Ono introduced this concept of Kanban. You know, Kanban was used in the manufacturing industry and really was meant to focus on how work flows through a manufacturing plant. And what Kanban does is sort of give us a signal, a signal board or signal for work, that it's, that it's time to pull work through the system, through the next phase of the system, next stage of the system. But it was so much more than that. It wasn't just like a signal for work, it was improving quality at the work workstation. Any worker on the assembly line could stop the assembly line if there was a quality problem, fix it before firing up the assembly line. We didn't let problems move to the sort of quality assurance group to fix. So this idea of Kanban comes about again in the 1940s. Did you know that Agile was used in the 1950s by NASA? Listen to this quote. Project Mercury ran with very short half day iterations that were time boxed. The development team conducted a technical review of all changes and interestingly applied extreme programming techniques such as test first development. This was written in 1957, iterative development on NASA's Project Mercury. Who knew, kind of just fast forward a bit into the 60s and 70s and really this, the software development world is coming about and projects had been run for quite some time using what's called the waterfall method. Winston Royce introduced this construct of waterfall and since that's how projects were run and organizations were good at running projects, we applied that to software development. Now the waterfall method is an interesting approach. When you can plan things out when, when there's a lot of predictability and repeatability and not much will change and you can sort of know the Future will look a lot like today then waterfall and predictive sort of delivery is great. Unfortunately that doesn't describe software development at all. In fact, take all the opposite of what I just said, that's like software development, you know. And so waterfall came about in the 70s and was applied to just sort of how we built things. I mean I remember in the 80s when I got my first computer. 80s by the way, best decade for music ever. I remember in the 80s, you know, getting a chance to get to look at a personal computer and building my, with my first software application at the time. Well, along comes Ken, Ken Schwaber and Jeff Sutherland and they, they bring us this idea of scrum right about 1995 or so. And XP is introduced right around that same time too from Kent Beck. So this is pre 2000s, right? Computers are just taking off, the speed of change is really improving. And then in the 2000s we get the Agile Manifesto and Scrum is really starting to take off and be adopted as the method for agile, method for delivering software. Sure, XP is happening and Kanban is even being used for software development. And then the Lean principles sort of get codified in this book by Mary and Tom Poppendeck called Lean Software Engineering and we see that we can apply Lean principles to software development. Well, keep moving forward through 2000 and into 2010 and we're introduced to scaling. This idea of Agile, we've sort of bought in that Agile is the method for delivering software and now we're going to scale it and we see things like safe come onto the marketplace and large scale Scrum and sort of then continuing to advance from there to where we are today, where we've got like automated test driven development, where test driven development was great. In extreme programming we're automating those things. We're using machine learning to help us understand and build software faster. We're still based on interestingly a lot of the techniques that Taichi Ono introduced in the 1940s. So again it's important to sort of understand where we came from so that we can keep, keep looking at where we can go a little bit there about the origins of Agile.










