Malcolm Gladwell’s talk on Norden Bombsight shows how anyone can get obsessed with technology and accuracy but miss achieving the objective. The bombsight was invented to accurately drop the bomb on target so that lesser amount of people are killed and war comes to end quicker. The military spent a lot of money to develop and use it, and went to the extent of using the technology even to bomb hiroshima where accuracy was not necessary due to the destructive power. Wars lasted longer and the objective (bring the war to end with less loss of life) of bombsight was never achieved even though billions were spent on its development.

Software technology choices are similar, there are lots of new tools and many platforms that help us rapidly develop applications. The obsession to use the latest, cutting edge technology is so great that people take pride in showcasing their tool list once the project is delivered. The illusion created by the power of the tools is such that it gives a sense of great ability that we will be able to translate any requirement from the client into software in no time. Someone somewhere said that the computer can speed up the errors committed by humans, it is true especially when we concentrate on technology and automation more and more into every day’s work with less and less effort to question the requirements.
Subconsciously every one is concentrating on getting things done. Definition of done is often not put in the right way, if success of the software project in every one’s mind is to release before New year then people the actions and choices will be purely on getting out before New year. The emphasis on getting the project out faster would have eventually masked why the software was needed in the first place. Information technology which is supposed to help process information might merely be helpful in creating data capture tools because no technology can effectively capture requirements, anything which is captured often end up being lost in the translation.
Getting the definition of done right involves people in every discipline to work closely together. A project’s definition of done would be to help each individual get more work done with less exertion through the new software but instead of defining that the business owner might give a laundry list of things for the developers. A wannabe marathon runner training for strong legs is different from training for marathon runs. Training for strong legs alone will not help in running a marathon but it is one of the by-product of marathon training. Often requirements are just by-products or snapshots of a what an end product is going to be in a complex system. As far as I have observed successful developers are the ones who get as much information as possible about the system and put in an equal effort in getting a working software out without translation loss.
A helpful link given to me by one of the peers http://taotwit.posterous.com/vpec-t-a-thinking-framework-presented-to-scio
When I finished the first blog I realized that it is not going to be easy, hence started putting up my thoughts whenever they occur in a sticky or draft it in wordpress blog. The thought of writing something had been lingering in my mind from the school days, so it was fairly easy for me to find the first few topics.
I had second thoughts to discontinue my writing as I grew tired of the new cycle I got into. At this point I thought the best way to keep me going was to advertise out to the world that I am writing and expect me to write once in a week and publicized my blogs through twitter, facebook, linkedin, thoughtworks etc. This part worked wonders by introducing me to many new people from all over the world and people started pointing out to more reading material, provided feedback and sometimes critical feedback. The amount of exposure received provided an enjoyable tension to keep on writing. My writing improved to point that I was able to write the first draft in 30 minutes and it occupied less and less of my time every week.