Sunday, September 28, 2008

Farewell by Adnan and Affan

I'd be leaving for Seattle, USA inshaAllah on 3rd October's night- a day before my birthday. I have been a bit busy with a lot of related stuff and I hope everything turns out to be good.

I have been given farewell by Adnan and Affan yesterday night. It was an Aftar at YenHui- it was scheduled to be at HsinKuan (Hassan Khan) though. Nevertheless, food didn't matter at all. it was the occasion that was important. I am quite happy that everything has turned out to be good.

A nice black wallet by Adnan and lightblue Tshirt by Affan were the presents. These were accepted wholeheartedly with great enthusiasm.. :D.

I thank Adnan and Affan for the really nice farewell party and hope to see them soon.

Thursday, September 4, 2008

What to do when you miss a deadline - guide for team leads and project managers

It is 10:12pm. Your QA team is working hard to test the fresh 'nightly-build'. Your developers are right on the edge of their seats to fix any bug that comes up. Few of your developers are actually fixing a few 'leftovers'. Bugzilla says that there are only 10 bugs are left with 2 being highly critical show stoppers. Your lead developer has assured you that the show stopper will be fixed by midnight.
'Midnight he says', you think, 'he'll probably get it done by 1. QA guys will test it by 4. and IF there is no other bug that comes up in that testing I just may be able to send the build to client by 5. Bandwidth isn't enough.. It takes 2 hours to upload with everyone online. Right, so i may just get things ready by 6. DAMN... I AM ALREADY 2 HOURS 13 MINUTES LATE AND THE LEAD DEVELOPER IS GIVING ANOTHER 8 HOURS OF WAIT... 8 hours..eh...'

"8 HOURS IS ONE COMPLETE DAY!!!!" you shout at the lead developer

'Sir i said it will take only 2 hours to fix the showstoppers' dev-lead replies innocently.

'What about these 2 features that you have marked as deferred?'

'The first pagination feature will take another 6 months. The second feature is related to first and should take a long time to implement'

You want to laugh your heart out on your leads response. he just doesn't understands it-does he...?

Now what should you do...? Should you as a project manager:
i. Start pulling your hair
ii. Start pulling hair of your dev lead
iii. Start playing blame-game with each other
iv. Call a team meeting. Tell dev lead that he is of no use. he lacks ability to give proper estimates. he is responsible for delayed delivery. CEO might get really crossed if this client is lost and he shouldn't be surprised if he is fired.
v. Think of a rational solution and try to rationalize why is the project one complete work day behind despite constant work. Think of how to make client feel okay if not great.

If you have chosen an option from i to iv, you are precisely the type of audience this paper has been written for !! Feel free to read further. If you chose iv then you already know what to do in case of failed projects.

WELCOME to the world of failed projects..

As the first thing to ponder, always remember that projects sometimes tend to get quite late. Sometimes they are even a year late. Thing to realize is that projects don't a year late at once. They get late one day at a time. (reference dr fakhar lodhi). I would even say that project get late on an hourly basis. One hour at one time. So how to prevent projects getting 1 hour late at one time.

CONSTANT VIGILENCE
Don’t rely on the estimates your dev lead gives you. Make your known estimates. Let your dev lead give you heroic Hollywood style estimates. Prepare realistic estimates for yourself. Always remember that in movie of software development, it is not always the dev team rescuing the damsel in distress. So always have a plan B. let your dev team work on their estimates. Set short measurable/accountable goals. Granular level of such goals should be 1 day for large projects-projects which have timeframe of more than one month. For smaller projects go for sessions as your touch-base granularity level. Meet with your dev lead for a quick 2 minute meeting to see what has been achieved in last slot and needs to be done in next (session or day). Let your devlead worry about each slot's development; you should concentrate on overall progress. You should ponder if/how last slot's development has contributed to the final delivery. is everything on track. Have we lost any hour today? How many hour (or days) are we behind.

Bottom line is that let your dev lead be hero of your movie. You should play the part of his father-father who has more white hair than his son, yet have the same yet more mature thinking pattern.


SETTING EXPECTATIONS RIGHT
If you experience a feeling that there is something wrong then you should immediately go back to the drawing board to see what actually is wrong. Don’t overlook any gut feeling. Always remember/practice Murphy’s Law. It is always better to inform everyone involved including the most important party-client that you will be a week late a month before actually being late rather than telling them that it will take another day to complete right when the client had everything else prepared.

Apologize
This perhaps is the most important part. You have missed the deadline and now you have to break this not-so-great news. You MUST apologize.
I heard in one of lectures that there are three parts of a good apology:
i. say that you are sorry
ii. Accept that it is your fault
iii. Offer what you can do to make it up for what has happened.

As i said, it is the most important part. Be creative while apologizing and offering anything to make up for losing deadline. Having said that, make sure that you don't 'over-promise' anything- never promise something that you can't deliver. As mentioned before, leave all heroics to those others. Be creative but not stupid. Two wrongs never make a right.