- We Fail Too Much
- Definitions of Success
- The Standish Group
- Doing the Wrong Things
- Doing the Things Wrong
- Time Goes By, Things Improve
- One Reason: The Civil Engineering Analogy
- Giving Up Hope
- Ignoring Your Mother
- Bridges Are Hard, Software Is Soft
- We Swim in an Ocean of Change
- Accept Change
- Embrace Change
- Capitalize on Change
- A Better Analogy: Evolving Systems
Doing the Wrong Things
Another rather stunning figure from The Standish Group study concerned the number of features in the average piece of software that actually end up getting used. Figure 3.1 summarizes the findings.
Figure 3.1 Breakdown of features by usage
Yes, you are reading that correctly. It says that 45% of the features we, as an industry, put into software are never used by anyone. Never.
If that does not bother you overly, think of it this way: That 45% represents our time—time to analyze, design, code, test, debug, redesign, re-code, re-test, and then finally deploy features that no one wants, no one needs, and no one will use. How much better could you do your job if you had 45% of your time back? Furthermore, this means that 45% of the code we are writing represents needless complexity. We are adding classes, tests, relationships, and so on that are never needed and are almost certainly in our way when we are maintaining the rest of the system.
Also, take note: The percentage of use is consistently smaller as features are used more often. Rarely is 19%, which is less than Sometimes, which is 16%, and so on down to Always, which is a mere 7%.
We get this wrong, not only at the extremes of Never and Always, but at every point in between.
Why? What is it about our process that drives us to make the wrong things, more often than not? If we could figure out a way to stop doing that, or even just a portion of that, this alone could improve our lot significantly.