Thursday, July 12, 2007

Where do things go wrong in Software

A while back I posted this in reply to somebody's really negative time at their office. It was serious reply to a "fellow programmer" wh0 was having some work-world issues.

Now just today I came across this piece by Frank Carr.
http://vbnotebookfor.net/vbnb_softdev_7Steps_1.htm

Which brought up a lot of the same stuff, he's asked for comments, so here's my reply. It's a good reminder of what we go through.

But I'm going to say something that may be wildly unpopular, but hear me out: Joe (our "hero") deserved to be fired .

Obviously, so did Brian (the evil manager), but Joe failed to do his job from the very beginning. When you are the team lead, your job is the protection of your staff and the protection of the project that's assigned to you.

Joe just failed this thing multiple ways, starting very early. In Chapter 3 he asks for help getting a meeting with Mary and Brian gives him a verbal reprimand. Good Leads don't let this happen, you don't just "ask Brian" for help, you forward him copies of all of the other failed meeting requests and tell him that your stake-holder meetings are being canceled. You tell him that you have no specifications or timelines and that you either need Brian to book the meeting and/or you need a new stakeholder and you put Red Exclamation Mark on the e-mail. If you don't get a reply in 2 days, you e-mail Brian's superior and you forward him all previous e-mails.

Already, this mitigates the big problem in Chapter 4. Joe agrees to work, but he still doesn't have a stakeholder, he's agreed to work that he simply cannot deliver. If I'm working for Joe, I'm probably already off looking for new work. Joe has failed his role as project lead, he's accepted work that he cannot delegate to a finish. He has failed to protect his team and his project.

The rest of the story is a funny read in personalities (could make for a movie), but all stems from the one fundamental flaw. It's all just more downhill b/c Joe couldn't even get the first thing right.

Now following that, Joe demonstrates his fundamental personal flaw. Joe cannot defend himself. He accepts not only Brian's reprimands but also the official HR reprimands. By accepting these reprimands he has not defended his own career or well-being. Brian is clearly a work bully and (in this story) Joe makes no effort to defend himself. Bullying is not just bad practice, it's illegal. Any office with an HR department knows this. Rather than accept an HR reprimand, Joe should be printing out e-mails and gathering documents for his case. He should be talking to HR and telling them that Brian is engaging in Bullying behavior and that the incident is not isolated. Joe should have phone numbers on hand for all government-related agencies and for his lawyer and he needs to walk into the HR office and tell them that the bullying ends as of his visit.

Joe needs enough spine to say that he will not be fired over Brian's behavior and he needs to follow up with a lawyer if he is let go. Why? B/c he's a team lead and that's his job. If Joe can't even protect himself, there's no way he can protect his project and his team. I don't want to be with Joe or follow Joe, I have very little respect for Joe. Joe's not a hero, he's a loser with a protagonist role, just like Brian is a loser with an antagonist role.

The story rings very true but all of the major players are losers. So I guess it's a great example of what not to do.

1 comment:

bgmacaw said...

Thanks for posting your response to my story. I've posted a 'revisited' article at http://vbnotebookfor.net/2007/07/13/the-7-steps-of-software-development-revisited/
where I respond to some of your points.

- Frank