There is a human tendency, albeit a bad one, to stereotype. Take for instance the words traffic and chaos. In many cases, you can imagine a chaotic crossroad in India or China, with people and cars crossing in all directions. It’s not because there aren’t traffic jams anywhere else in the World, it’s because of stereotyping. We are constantly sent links and funny videos of horrendous traffic jams in certain countries, and that is why these images come to mind.
(Picture by http://flickr.com/photos/joiseyshowaa/ under CC 2.0)
Take for example the above image. I found it by typing in the words "traffic jam" in Flickr. It was the first one that popped up. Do the same in Google or any other search engine for images. You’re bound to get a large proportion of similar images. I didn’t even have to use the word chaos.
Consider a Project Manager, could be of any type of project, but for the sake of this post, and seeing that not only myself but many of my readers are somehow involved in software development (except those that find my blog because of this post or this post), we’ll consider the project is software. John, the Project Manager has been accustomed for many years to the Waterfall Methodology. There is a clear and precise line of what a project should consist of and a diagram of how it should be performed.
One fine morning, Bill, the CEO, calls John into his office and says
John, I read this thing on CEO High Flyers’ magazine on the plane yesterday, called Agile. I want us to do it too. I’m not sure what it is, but I’m hearing good things about it. Let’s become Agile.
So John goes back to his desk and starts to look up this whole Agile thing. He reads a little bit about XP, some things on Scrum and goes back to Bill the next day.
Bill, this Agile thing is insane. It’s pretty much anyone does whatever they want and there is no control at all. Take this: they’ve got this "methodology" called Scrum, where people don’t even get tasks assigned. You believe that? And there is absolutely no clear design phase, no testing, it’s completely and utterly absurd. It’s just chaotic.
Bill wasn’t too amused. No tasks assigned? No control over who does what? Anyone can do as he or she pleases? Nonsense. He’d have none of that.
John at this point felt relieved. He’d been running projects using Waterfall for years, and albeit, yes they did run a little late, yes, sometimes the customer didn’t really get what he wanted, yes many times the actual design had to be thought out again, but there was control. As long as there was control, it was ok. Agile on the other hand just seemed chaotic.
Stereotyping is also caused by lack of understanding, by being prejudice.
Is John to blame? Not at all. John was a developer himself once and he’s been "brought up" one way. He’d constantly been shown that the only way for a project to succeed was to have a clear definition of what each person’s role in the project was, what the exact phases were and what he had to work on at any given moment. To now throw that all away and take on an approach such as SCRUM where there is no task assignment, there are no clear boundaries between requirements, design and implementation, seemed too chaotic.
But is it really chaos? Is Agile about disorganization? Is Agile about no up-front design or testing? Here is where it gets difficult. Agile is like SOA, depends who you ask, at what time, at which location and you get a different answer. All of them are similar, but each person gives his or her definition of the word.
To define Agile in one sentence, Agile is about adapting to change. Agile is not SCRUM. Agile is not XP. Agile is not about throwing design or testing out the windows. Agile is about being flexible, about being adaptable. How you go about doing that is another matter.
Waterfall does not fit in with Agile because it is rigid. There is a clear distinction about the different phases in which a project should be executed. By stepping outside of those phases, or going back, you are essentially breaking the methodology.
SCRUM is an alternative to Waterfall that fits in with Agile methodologies. Why SCRUM works and how it improves over traditional software management methodologies has largely to do with the people behind the project. I’ve covered two essential qualities that a team should have previously in a post about multi-disciplinary and confident and reliable team members.
However, the path to adopting SCRUM or any agile methodology is not easy. It takes time and discipline. The benefit though is that the ROI is very high.
What SCRUM is and the advantages it has over Waterfall, both for the team and ultimately and more importantly for the outcome of the project is best left to a future post. What is important to understand though is that Agile is not chaos, nor is it about doing away with practices. Try and not stereotype it.