Monday, November 1, 2010

Sept 10 project learnings.

I am in Sampark kranti train on my way to New Delhi, There is still some time when we unpack our dinner stuff and this is where I am getting time to pen down some recent stuff that happened in my life.
My current project in office - It stared off real cool and I was getting time to code and go to GYM, spend time at home almost everything was going smooth.
but I was feeling something wrong with the kind of execution that happening during the build phase. before I can explain what was going wrong it is important to give some more details about the project. I have a small good group of friends in office, also the manager and the architect that I've been working with, we have been together since almost two years now, so we have good understanding between each other.
The module that I was assigned this time had a lot of coding and was also dependent on a considerable amount of database work. The other module had relatively less coding and was coded by one of my friend. Also in this project one more friend of mine was introduced as the experienced DBA was involved in some other critical work.
So this new guy who was introduced as for database coding was relatively new to database programming ( He was a Java developer earlier ). Project started and in the build phase I was facing a lot of issues regarding the delay caused by the database developer. I was in a difficult situation as I was not able to continue smoothly and at the same time I was not able to talk about this issue to my manager because how can I speak against someone who is a good friend of mine.
During this time I was also actually thinking that do managers sometimes explicitly do this do avoid blame game situations during the project.
At times when It was becoming extremely difficult I did report about the incidents but nothing actually helped. And believe me or not I said to my self that may be this is a good proving ground where I need to prove myself.
I was also under a doubt that this proving ground could actually cost me a lot. what I started doing was that when ever I got stuck in a DB related issue I wrote him an email (and I was very careful not to keep anyone in loop, as it is not good to point someones faults publicly) and switched to some other task. All this was not so easy as it sounds it is like context switching that CPU does while multitasking :)
But I was thinking that I am now a developer with some eight years of work experience, can I take this challenge.
As things approached testing phase it looked like everything worked as planned and I was very happy about this execution within myself, I didn't blame anyone and everything finished peacefully.
In the testing phase however the on-site coordinator started twisting and turning the requirements itself I then realized that unlike earlier projects we didn't have a communications tracker about all the on-site communication taking an advantage of this the on-site guy didn't agree to certain things that we said were not requirements earlier.
I understood my mistake that I was too focused on one thing that db issue smooth working that I completely overlooked that the possible outcome in case of a missing tracker. A big lesson learned.

No comments: