A week ago, I wrote on Twitter: “A bit harsh, but: CxOs tend to fantasize, salespeople to lie, developers to underestimate. Poor project managers (and customers).”
This wasn’t intended as a rant: These are common pitfalls which contribute to software projects not being finished on time (or not at all).
It’s a well-known fact that software developers are bad at estimating how much time they need to implement some functionality. There’s an abundance of articles written about estimation (examples: Liz Keogh, Joey Shipley, Anders Abel).
Salespeople have a difficult job; sometimes they’ve got to sell something that doesn’t actually exist but they think can be delivered. And many requested features leave room for interpretation – they get into the habit of saying yes. It’s tempting to remain vague or bend the truth a little just to close the deal.
The CxO’s job is strategic long-term thinking. The potential trap is to become detached from day-to-day business operation. Then she might confuse yesterday’s strategic plans with what little of them development actually managed to implement until today.
There’s traps for everyone to fall into (including project managers and customers). Just because the problems and failures of developers are more widely and openly discussed doesn’t mean others have less responsibility for a successful project. (My theory: As engineers, developers are more likely to look for problems, honestly analyze them and publish their solutions.) If we want to do dramatically better, we need to improve on everyone’s role!