May 5, 2011

...Learn TDD with Codemanship

Why Are There More Job Openings On Overstaffed Teams And Behind-Schedule Projects? It's Just Statistical.

Think on this. Why do so many of us end up working in large teams on projects that fall behind schedule?

One theory might be that more projects are overstaffed than not, and more run over schedule than don't.

But I have another theory...

Imagine a bus service that stops near your home. The company that runs the service advertises that buses should run every 15 minutes from that stop. But more often than not, when you catch a bus from there, the bus is a few minutes later than advertised.

So it's safe to assume that, more often than not, buses are running more than 15 minutes apart, right?

Well, not necessarily, as it happens.

Try this thought experiment: divide the day up into 15 minutes slices, and then randomly vary the width of the slices such that some are longer and some are shorter than 15 minutes, but it's still the same number of slices and the average width is still 15 minutes.

So now each slice represents the gap between between buses showing up at your bus stop. Some gaps are maybe 10 minutes, some are 20. And so on. Now if you picked a time of day to show up at the bus stop - say 10:03 to catch the 10:05 - would that be equally likely to be during a shorter gap as a longer gap? No. You're twice as likely to show up during a 20-minute gap as during a 10-minute gap between buses.

So, even though the same number of buses are running, and the average wait between busses is 15 minutes, you're more likely to experience a longer wait if the gaps aren't evenly spaced.

Now apply that to software projects. You're twice as likely to be hired for a team of 10 programmers as for a team of 5. And you're twice as likely to work on a 2 year project as on a 1 year project. So we shouldn't be surprised that we end up working on teams that are overstaffed and behind schedule more often than we don't, even if there are just as many small teams out there who are delivering on time as are not.

Unlike with bus services, though, we can choose to avoid those teams because it's usually self-evident which ones they are.

But that leaves us with a dilemna. If there are more openings on overstaffed teams working on late projects, our choices will be diminished. There are just as many small teams who are doing just fine, but they're less likely to be hiring.

Posted 9 years, 7 months ago on May 5, 2011