What's the Deliverable you expect? What's are the deliverables of this process? Should I document this in some form of deliverable? These have been some the questions that others have asked me or I have asked myself for as long as I have worked. The common theme across these questions is the word deliverable.
Software development process has come to a state where more and more professionals are now starting to appreciate that it is the end product (working software) that matters the most. The tools we use to get there are definitely important but the documentation is only valuable as long it is reflects the the current state of understanding and is used during software development by the people who are actually developing the software. This realization has prompted the industry to start using practices that are lightweight and produce working software in smaller and frequent cycles. Companies like ThoughtWorks (www.thoughtworks.com) are leaders in this space and are busy innovating the methodologies of business analysis and software development to fundamentally shorten the lifecycle of value delivery using software.
As a big fan of these lightweight but agile practices that ThoughtWorks has been a pioneer of, I try to follow them as much as possible and have been very successful at it. It's a mindset that's a little revolutionary because of its simplicity but sometimes makes people a little uncomfortable in the beginning due to its pace, flexibility, discipline, and decentralization. This approach has crafted out a set of practices and methods that are collectively, and quite aptly, know as the Agile methods.
As eluded to earlier, one of the characteristics of these Agile methods is to be lightweight - do only what is necessary. This is a hard thing to do, or at least at the start. As an Analyst my instincts tell me to transfer all I know about the client, processes, and problems in as much detail as I can. They also tell me to document these so that it's not just in my head and other people can have access to it at their leisure. This is, however, an activity that is not as productive as it may seem to for very many reasons. Top three of these are:
- Time/Effort - It takes a lot of time and effort to document it all out,
- Life Span - In today's world, things change at a fast pace and hence the docs may become obsolete very quickly, and
- Attention - Very few people have time to read the docs. The attitude generally is, "Why don't you tell it to me, rather than have me read all this."