Subtractive thinking
Humans tend to favor solutions that add features rather than solutions that remove them, even when removing features is more efficient. And, in business, customers will tell you when you’re missing something they need, but they’re unlikely to explicitly tell you when you’re overwhelming them with unwanted features.
Fortunately, this bias can be reversed with commitment from leaders and managers. Here’s a five-step process to implement rigorously at every level:
Make requirements less dumb. Your requirements are definitely dumb. It doesn’t matter who gave them to you. It’s particularly dangerous if a smart person gave you the requirements, as you might not question them enough. If you don’t know what to do, learn how to ask.
Try very hard to delete the things. This is actually very important. If you’re not occasionally adding things back in, you’re not deleting enough. The bias is strongly toward adding parts or steps “just in case”. So, you need to delete, without hedging. Any requirement or constraint you have, it must come with a name, not a “team”, because you can’t ask the “team”. You have to ask a person, and that person must take responsibility for the requirement.
Simplify or optimize. And then only the third step is to simplify or optimize. The third step, not the first step. The reason it’s the third step is that the most common error of a smart engineer is to optimize a thing that should not exist. Only after deleting you simplify or optimize.
Accelerate cycle-time. You’re moving too slowly—go faster. But don’t increase speed until you’ve worked on the first three steps.
Automate. Finally, automate. Many organizations make the mistake of going backward: they automate first, then accelerate, simplify, and finally delete.