February 13, 2008

Psychology Matters in the Workplace

Posted in Excellence, Software tagged , , , at 10:26 pm by mj

Listen up. Yes, you. My future somewhat disgruntled-or-maybe-just-frustrated co-worker or subordinate. (Subordinate? Did I just use that word? WTF?)

Did I just tell you to “reign in the schedule” and reiterate how important it is to the Powers That Be that we hit some arbitrary deadline?


Here’s why.

As developers, we’re all tempted to give optimistic schedules. We like to believe in our own powers. And sometimes “two weeks” just sounds like a really, really long time for a task.

And the less real information we have about how long similar tasks took, the more we second-guess our estimates.

Then there’s the fact we like to sound agreeable in front of our bosses or business people.

And the more people–good, honest people, who themselves are feeling pressured–tell you how great it would be to get done earlier, the more we’re likely to cave.

And if we’re really inexperienced, or uncomfortable, or insecure? We stand no chance.

So what happens when a team has a culture of VIPs telling everybody how important it is to “reign in the schedule” every chance they get? Well, a couple of things.

First, people lie to your face. “Yeah, three and a half days. Yup. And by the way, can I just tell you how frigging awesome your voice is, sir? You should try out for American Idol.”

Second, people work 18 hour days and weekends.

The ones who value some semblance of being accurate estimators will hide this. They won’t tell you how much they’ve worked, and they’ll lie to themselves about it too.

These are the ones who burn out quickly.

Others will gloat about how much they’ve worked. And, yes, you give them some extra time off, or a token 4% raise, or maybe even a promotion, and they might not even mind it so much. Consciously.

But still, they’ll burn out. And, in the meantime, they’ll be so busy scrambling around working 3 jobs for the price of one that they won’t have a chance to improve processes, improve estimates, measure code quality, and all the other great things that pay off in the long term.

Oh, and the ones who stick to their guns because they’re experienced enough and confident enough and willing to walk out the door to uphold their professional reputation? Well, they become alienated. And they will walk.

Here’s what I suggest for any team leader, manager, or Big Wig presented with an estimate that doesn’t mesh with what we euphemistically call “business expectations” (the more accurate phrase is something I don’t think I can print).

Ask intelligent questions.

Such as:

  • Was a date set by business requirement before any work estimates were made? If yes, bzzt, the schedule can’t be trusted.
  • Were the initial estimates and dates set by the developers who will do the work, or by an architect or manager? If the latter, something’s fishy.
  • How many times did somebody say “we need to reign in this schedule”? Add one day to the schedule for each time somebody–anybody–said that. In some cases, yes, this means tripling the schedule.
  • Did the estimates increase or decrease as the schedule was revisted and revised? Any schedule that doesn’t grow as developers break down the tasks, mentally, is suspect, unless requirements are eliminated.
  • Does the schedule take into account average number of meetings in a week per developer? Better question: ask each person on the team how many hours they spend per week in meeting. For each person who doesn’t know, add 20% to the schedule.
  • Does the schedule take into account fire drills and other emergencies?
  • Does the schedule take into account context switches, down time, warm up time, etc.?
  • Are the estimates based on previous schedules involving similar work by the same developers? If nobody’s been keeping track, this project should be the pilot. Which means no expectations. Oh, and increase the schedule by 30%.
  • Are the efficiency constraints based on previous schedules? In other words, do we even know how much actual work people get done in a week? (Answer: it’s rarely 40 hours.) If not, add 25% to your schedule.
  • Does the schedule include working long days, weekends, or holidays? If yes, bzzt, in the immortal words of Donny the Dingdong, YOU’RE FIRED!

Woops. So your “business expectation” was next Tuesday, and the original schedule said a week and a half after that…and now that we’ve delved into it, we’re looking at four months!

That’s what you get for developing such a nasty, unprofessional culture. Live with it.

OK, I’m feeling a bit snarky today. But everything I wrote is true.



Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: