Schedule and Events



March 26-29, 2012, Software Test Professionals Conference, New Orleans
July, 14-15, 2012 - Test Coach Camp, San Jose, California
July, 16-18, 2012 - Conference for the Association for Software Testing (CAST 2012), San Jose, California
August 2012+ - At Liberty; available. Contact me by email: Matt.Heusser@gmail.com

Thursday, November 01, 2007

Technical Debt - IV

Last Time I talked about how to avoid technical debt as a contributor. I am convinced that by un-training management you can both restore a sane life and decrease the debt.

So your manager, Timmy, doesn't come to you anymore. The problem is, he's got two other people who are (very) willing to take unprofessional shortcuts, so he goes to them instead.

How can you influence that behavior?

So, you overheard the conversation from yesterday – Timmy is hinting to a dev that he needs to take some shorts. The dev, John, hasn't given up yet, but you know he will.

Let's play this conversation:

You: Hey, John, how's it going?
John: Not good. Tim needs this function by Friday.
You: Really? Or what?
John: Oh. Wow. You know – I don't know. He just said we need it.
You: Will we go out of business?
John: Well, no, but we promised it to the customer.
You: Oh, you promised it the customer? Yeah, I understand. You've got to meet that commitment.
John: Uh, no. I never promised anything. I think the sales guy promised it or something.
You: Still, if Tim gave a qualified estimate to sales ...
John: No, dude. Tim didn't promise anything. They threw a date at us.
You: So ... what's the problem?
John: I've got to work every evening and do a crappy job to meet this unreasonable deadline, that's what!
You: Why?
John: Because TIM SAID SO!
You: Oh. Okay. What if you just don't?

(Silence
...
Crickets Chirp)

John: Well, Tim asked me to.
You: Okay. But the important thing is that it is your choice. You are talking like it is not your choice – like you are the victim of fate or something.
John: Well, I don't have a choice.
You: Sure you do. Go home at five. Do it right. That's what I did about the foo feature last month.
John: Yeah, I heard about that. Tim was pi-iised.
You: Yes, but I still have a job, don't I?
John: True, true. But you're not the go-to guy anymore, are you?
You: You mean the clever hack guy that gets more stress injected to his life in trade for being a 'team player'? No, that's not me anymore. Now it's you. Congratulations.

(Silence
...
More Crickets)

John: Well, I get a certain pride in being the go-to guy. Besides, I want to get promoted.
You: Oh. Oh. Okay. Promotions. Right. Does being the go to guy get you promoted? Who was the last go to guy that got promoted for that?

Silence.

John: Hey, nobody.

You: Riiight. So being the hero gets you more work, more stress, and keeps you pigeonholed in one specific sweet spot. So ...
John: But I LIKE being the go to guy!
You: Ok. That's fine. The important thing is to recongize that you are making a choice, and it's yours to make. I can respect that - just don't complain about it later.

(Later that day ... )

John:So, I'm going to tell Tim it'll take two weeks.
You: Make sure you give him options. He could assign me or Bob to help.
John: No way. You're working on that multi-million dollar bank thing. And Bob is working on that memory corruption thing.
You: So ' everyone else on the team is working on something more important and can't be spared?
John: Yes, I asked.
You: In that case, than the project is the LEAST important project in the department. That's not worth losing any sleep over.

Summary: There are three keys here.

A) You have to be successful personally in eliminating technical debt. You must have street cred; you've said no, kept your job, and restored sanity to your life.

B) You have to make it clear to the other person that adding technical debt, like working overtime, is a conscious choice. Don't let them play the victim "I have no choice" card. That is absconding responsibility. Making compromises happens every day - and it is a conscious choice we need to take responsibility for.

C) Don't let it turn into a Us Vs. Them conflict. The key is to have the contributor present an entire series of options to management. Perhaps one of them is to cut quality – in which case the manager is assuming debt, and, likely, risk. In that case, just ask for a statement of assent by email.

Your colleague might just get that email, and you might too – but overall, if you just follow my quick plan, you can vastly decrease the cruft and drag on your codebase, thus increasing your overall velocity.

That's not stealing from the company – it's investing in the company. And it's certainly not rude or insulting to management. Instead, it is honor management by asking them to, well, you know ... manage.

In the past posts, I've been tough on management. I'll close by turning the tip of the spear the other way – what enlightened management can do to prevent and pay off technical debt. (Those darn contributors with their clever hacks! That's right folks – no one is coming out of this unscathed ...)

No comments: