Sunday, 15 June 2014

Agile has become like religion in the dark ages

Agile vs… Waterfall – the wrong debate

I have always been not-so-sold on Agile. The reason is that I remember my textbook in Software Engineering Project Management (http://www.amazon.com/Software-Engineering-Project-Management-Edition/dp/0818680008/) that what people call agile is actually the Evolutionary Development Model. (p.108). So, essentially – nothing new - we are using small versions of the waterfall model. We just decreased the time frames.
The problem though is that Agile has become like religion in the middle centuries. Even to express some doubts about it equates to calling the Earth not flat in the 1600s. It’s like heresy. One day I ventured to a colleague who sits far from me and we spoke about software development methodologies. I expressed some of the thoughts I am expressing here. He said “what then, doing waterfall?”. I said that the whole “debate” has become Agile vs Waterfall which is so wrong.
Googling "Agile software" I have found that one of the first websites states: "The Agile movement proposes alternatives to traditional project management.”. Traditional? I guess, yes, again it’s Agile vs Waterfall – a model that is not responsible for the software crisis. It’s all about a disciplined approach. Things were programmed and done excellently before all the Agile talk. Simply by following a plan and applying discipline (and desire).
I maintain that Agile is just a buzzword to sell consulting. Essentially 17 developers gathered at a winter resort in 2001 and started calling an existing methodology "agile".

We all know what happened next - almost the whole industry takes it on, spends millions on consulting with some success stories and some not so. It's not the silver bullet to the software crisis and it is unlikely to become. It’s ok for shorter and not so complex projects but try to create the GSM (cellphone) system (created in Europe in the 1980s) on that! So first we'll say - we need a controller - voila - version 1. Then oh, no, version 2 - let's add SIM (subscriber identity module). Developers go rework, refactor, redesign and add SIM. Then they add security, then interoperability. It’s clear that all these aspects should have been though about upfront.

Agile Waste

Since all those builds and testing are done at each iteration there is so much in-built waste. Yes, there is an inherent waste built-in. Doing a build every 2 weeks (takes 1+ day of activities at the place I currently work at) means that a team member has to do the same over and over again. So much work, so little gain, but well we can say “we delivered”.
Yes, I work in a company where we practice Scrum and we play this game – the “answer what you did yesterday, what you're going to do today”. We often don't even work on the same things and still talk and answer those inane questions. It's like kindergarten for adults. The success of scrum seems to me is due to the fact that everything is very visible and controllable by management. It’s not about quality, engineering or creativity or innovation. It’s about control.

Creativity Killer

Agile can produce good results but often they also kill creativity. (Nobody, being constantly under the projector, is going to be creative. Creativity comes from mode B of our brain - when we relax or think about other things for a change or when we’re allowed to “play” with things.).

Consulting, consulting…

I got into a 1-day Scrum training. The guy was not from the software field, yet he stated: for hardware (bridges) we can use waterfall, but for everything else agile is the way. If only those people stop and read some textbooks!