The Lazy Blogger

Coder as a Project Manager - destined to fail?

2008-7-18

By Sumit

Project Management as seen by an 'Accidental Project Manager'.

A little Background to start off with - I've been a 'software guy' since the past 15+ years, ever since my Dad got a 8086 based PC way back in 1991-92. Since then the sole aim in life had been to 'master' Computer Science. It's something I took to heart. Scrambled through a Bachelor's Degree in the year 2000 and since then have been a 'programmer'.

Eight years on I still prefer to write code. Much to the disconcertion of all my bosses, I staunchly refused to wear the dreaded 'Project Manager' hat. Why? Some of the reasons are:

1. As a die hard coder I believe it is my religion to write near perfect code in absolute impossible timelines. 2. 'Project Management' only seems like an overhead with host of things that seemingly have NOTHING to do with final outcome - Clean pristine code for an application that works like a charm. 3. All project managers seem to have absolutely infalliable ability to frustrate 'real' coders with incessant requests for updates, process compliance so on and so forth. 4. Project Managers main job seems to start off projects invariably on the wrong footing and struggle the rest of time to set the wrong right but ending up in many more goof-ups. 5. Real Project Managers never seem to get blamed for anything. It's always the coder who screws up.

Such were my impression about project managers when finally one fine day my Boss called me and said, 'Sumit, time's up. Now is when you get to see the other side of the pasture. Here is a project for you - Go Manage it. Do whatever it takes, get it successful.'

The Coder vs The Project Manager A coder is an eternal optimist. Everything is doable in a software engineering world for a coder. For a project manager nothing is doable unless justified with a proof of concept and 80% accurate estimation of time (every company has a 20% margin of error in time estimations).

Coding output is never a linear function. Someday you do spend 20% of time doing 80% of the work and on other days you spend 80% of time doing 20% of the task. For a project manager everything has be moulded into a linear function of progress. Unless tracked on a daily basis progress becomes unpredictable and unmanageable leading to failures invariably. The more paranoid ones try to manage it on an hourly or half-hourly basis.

Coding is all about passion, bonding, camaraderie and the love of doing it. Project management is the cold world of facts, figures and numbers. Only criteria of measurement is if the project is green/amber or red. Do whatever it takes to keep things in green; plan to the minutest details, be compassionate, be brute, be reasonable, be un-reasonable, coax, cajole, threaten, whatever it takes...

Coder as a Project Manager Given the above differences when a coder is first given chance to manage projects their approach is a hotch-potch, mish-mash of above that results in an optimistic guy who overlooks estimation because he (or she) 'feels' that the 'finish' is just-round-the-corner; contingency management is all about one 'nightout' with unlimited supply of coffee; for larger issues - like a week's offset can be easily restored by spending 24 hours over the weekend; and broken functionality can be 'fixed easily'.

Coder as a Project Manager is a special breed, let me call them C-PMs for easy reference.

Life of a C-PM C-PMs are almost always Accidental PMs. They just happen to be the 'reasonably equipped' person at the wrong place at the wrong time (right place at the right time?). Hence most common characteristics of these people are: 1. They are good at what they are supposed to do. So for a C-PM he/she is definitely a good coder. 2. They communicate well (speak 60-70% grammatically correct English). 3. They are confident and willing to take up challenges. 4. They are reasonably popular among their peers (at least till they are coders).

Things however start to change rapidly as their first project starts off and gathers momentum. Minor issues pile up and slippages increase from days to weeks. Suddenly deadlines are tomorrow and the world seems to fall apart.

Where does a C-PM bungle If we go back to the characteristics of a C-PM it is obvious why they fail as Project Managers:

1. Optimisim always clouds reality. Much as they would like to blow the whistile, that lingering hope it will be fixed/done pretty much shoots down realistic tracking of progress.

2. Non lineraity of development activity almost always results in estimations that consider the 20% of time needed to do 80% of the stuff but misses out on the 80% time needed to do 20% of the stuff. In the end that 20% of remaining stuff becomes the deciding factor between a successful and an unsuccessful project.

3. Camraderie often prevent hard decisions like reprimands for missing timelines or quality of work. That combined with Optimism results in a cocktail that leads to disaster.

Will the C-PM ever manage a project successfully? Not unless he imbibes qualities of a project manger and consciously suppresses the urges that result out of 'addiction to coding'.

Watch this space as a C-PM struggles to get to terms with the world of Project Management and like every other C-PM worth his salt, try to come up with a model that combines Project Management with Good Coding...