Sunday, November 25, 2012

Losing the Flesh

Who likes the flabby flesh now? In the age of the ultra book, every thing needs to be razor thin. That is the ‘in’ thing now. I don’t think many will have a different take on Kareena’s size zero ;)

It was thus a pleasant change for me when I was introduced to the concept of razor thin software development – Lean/Agile methodology. Now the concept itself as I am learning is nothing new. Not influenced by the pretty actresses :P but borrowed heavily from manufacturing principles. The now widespread Toyota way of manufacturing seems to have been the start of all this.

Coming from a background of traditional waterfall model, where its judiciously taught that the key to a successful software is in following a rigorous plan of design/analysis/code/test/build (one at a time in a sequential manner), I was obviously not prepared to fully accept a system which did not believe in detailed planning, worse one which seemed to advocate a policy of ‘not’ thinking too much into the future. To accept that Agile is the best way to build software, was, or perhaps is still a little difficult for me. But to acknowledge that there is some merit to the fundamental shift in focus that Agile thinking tries to evoke is easy.

The Agile manifesto is perhaps the formal starting point of it all. Ever since I got into my new organization - champions of agile, I find myself repeatedly asking one question – By laying emphasis on interactions rather than moribund documentation, Agile seems to eliminate all needs of documentation which is in stark contrast to the near religious zeal on documentation that you’ll find elsewhere in the software development world. In my previous avatars, I was told documentation is the key. If there’s a requirement, it better be documented clearly; the RTM – document it. If there’s a best practice, it needs to be documented; if there’s a learning it needs to be documented; Now obviously I didn’t know if we had any measure of the benefits of all such documentation; whether all of this chunks of paperwork (physical or electronic) really made any sense or added any business value.

As a business analyst my role usually starts with gathering requirements and documentation is a critical part of it all. The Requirement doc (whether BRD, FS or in whichever form) running into a good number of pages is considered the bible, which once signed off becomes the basis for change control.  From there to noting down requirements in tiny bits of real paper is to travel to a completely different world for me. Now, looking back I seem to concur with the thought process that if the business users have to freeze their requirements before the development begins, then they make every effort possible to cramp as many requirements as possible often leading to a long and excruciating requirement gathering and freezing process.

It is not uncommon for the requirements phase to run into few months or even for a good part of a year because of this fear psychosis that drives them to spill everything possible which to their mind is like extracting every ounce of their money’s worth from the software development company! Little surprise then that the bulk of their requirements may never bring any business value to the organization.

The idea of producing working software in an incremental fashion is indeed profound. The moment the business users see a part of what they will eventually get, everything changes. It is also to the relief of all the stakeholders that there is no need to freeze the requirements early on – quite simply coz there is no way of knowing all the requirements unless the users really get a feel of what the new system they are going to use is going to be like. I also think there won’t exist a scenario where the users know exactly what they want. Even if they say so, it is only based on their assumption of the existing system and not based on a clear and rational understanding of the new system.

In summary, I find that the concept of churning out quick workable software extremely beneficial and an idea that makes great business sense and value - especially in these times of ever changing economic realities. The idea of minimal documentation is appealing but will be interesting to see how many of the big bucket I.T clients agree to frugal paperwork. The biggest challenge however will be in getting the people out there to truly understand the philosophy - as with the case of this case study of the failure of Agile. Quick viewing of piecemeal functionality is all nice but it will be intriguing to see how they see the big picture and agree to do away with unnecessary features as time passes which is also one of the things Agile propounds.