The problem is sales! (well, inheritance, but it’s not as catchy, so I’ll say sales. See this post for more.) Is this because sales people are a bunch of greedy, selfish, blood sucking leeches? Occasionally, but mostly not. Most salespeople worth their frequent flier miles do have some regard for the organizations they work for and the people who will ultimately deliver what they have sold.
I think there are two primary issues. The first is explained by the old adage, “you get what you measure,” which could be modified for salespeople as, “you get what you pay for.” How are these people typically compensated? Usually, their pay is tied to a percentage of the selling price. So they are incented to sell as much work as possible for as high a price as possible. Nothing in there about project success. There are a few places that do compensate based on customer satisfaction, but few look at the long term success of the project. No one hangs around that long. Can you imagine how things would change if a person’s commission was based on client satisfaction, on-time delivery, the final margin, and whether the project met the long term business goals set out in the beginning of the project?
That leads us to the second cause, which I believe is historically long delivery cycles. People are used to long waits in between releases. If it will be a year or more before changes can be made, you better believe I’m going to try and get every feature I can into this release. The irony is that most of these features aren’t used. Jim Johnson of the Standish Group noted that 64 percent of the features in a typical system are rarely or never used. (1) On the one hand, that boggles my mind, but on the other, I’m not surprised. Just think of how much faster the next release would come if you didn’t have to design and build that 64% of features that will hardly see the gentle click of the mouse.
Here’s the rub. Given a fixed time and budget, the more features I want, the less time I have to spend VERIFYING THAT THESE ARE THE RIGHT FEATURES TO BUILD! Let’s follow the logic. The longer it is between releases, the more I need done now. The more I need done now, the less time I have to validate that what I’m doing really solves my users’ problems. I’m starting to wonder if it’s much more than 64% that goes unused. We know intuitively that less is more, but now we attach a business value to it.
The latter is one of those problems that agile/iterative/lean/etc. development is intended to solve. You get less, but at regular intervals.
That begs the question of how can exert influence when we are fighting a poorly conceived compensation structure and the weight of years of experience? Thoughts?
(1) Johnson, “ROI, It’s Your Job.”