Wednesday, February 7

A Tale of an Under-Resourced Project

Myrmidon Inc Part 1

A dam was feeling the pressure. 12 months ago he was given a large project (Project Beowulf) and it was still no where near being complete. Carla his manager once removed had made a nasty remark about the time taken making it sound like Project Beowulf was the only project he was working on. Adam had repeatedly been pulled off Beowulf to work on higher priority projects.

In response to pressure from Carla (the product manager) , David (Adam's manager) assigned Ethan (a more experienced programmer) to help him. Ethan was told to complete some of the features that were part of Project Beowulf. Ethan reviewed Adam's work and made some design suggestions that he thought if implemented would make it easier for Adam to complete the project. He also identified several sections of duplicate code that if extracted into their own classes could be used for some of the uncompleted features.
Then Ethan found the real problem. Beowulf was supposed to work with Module Grendel. Grendel not have a well designed API. In fact it did not have a API at all. You just found a section of code that did something similar and copied that. Grendel was written by David under intense time pressure and David was considered a Hero for finishing Grendel.

Even though the Interface with Grendel was only a small part of the project, 90% of Beowulf related problems identified by QA where from Beowulf related additions to Grendel. Written with no thought to extensibility or maintainability anyone was going to have a hard time working with Grendel. Worse Grendel had no Unit Tests. Only some of the members of the team used Unit Tests and David was not one of them.
With pressure to complete the features that he had been explicitly assigned to, Ethan started  to give less help and time to Adam. Adam started to fall behind again. David started to question Adam lack of progress. Adam exploded claiming it was unfair that he was singled out. He started attacking Ethan claiming that Ethan's Project Icarus also overran its budget. He did this in Ethan's hearing and in the hearing of the rest of the team.

Ethan stopped helping Adam. He wrapped up the Beowulf features he was assigned to and they passed QA. Beowulf continued to ping pong between QA and Adams desk.
If you were interested in honesty there was plenty of blame to go around. However people interested in assigning blame are rarely interested in being honest. Adam was blamed for the overrun.
Adam was not a new employee, his strengths and weaknesses were well known. Project Beowulf was an order of magnitude larger than anything he had been asked to do before.
Shouldn't responsibility given to :-
  • Carla and David for assigning a weak programmer to a task that was obviously beyond his abilities.
  • David for the poor design of Grendel.
  • Carla for demanding speed of completion of Grendel above all else.
  • Carla and David for continually pulling Adam on and off the project.
  • Ethan for not giving the help Adam needed.
  • Adam for attacking a team member that was trying to help him.
This team had died and no one had noticed. Somewhere along the line they had become only a group of people who worked together.

I was Ethan in this scenario and I regret getting offended and pulling back when Adam verbally abused me. It wasn't his fault. The team was playing a game of hot potato and everybody knows that when you get the hot potato (blame) you pass it on as quickly as you can.

No comments: