Jason 04 Mar 2006 — What’s the most ignored paradox in software development? Every time you add something you take something away.

Screen real estate. Interface clarity. Simplified testing. Shorter development time. Certainty. Agility. Managability. Familiarity. Adding anything dilutes everything else. That’s not always a bad thing, just be aware of it. Be aware of the trade-offs.

The dilution effect is why maintaining a clear vision for your product is so important. Without a clear understanding of the limits and boundaries of your product, the product will morph into something you no longer recognize. Or worse, something you can no longer manage or control.

A product people loved can turn into a product people liked. Then the product people liked can turn into the product people can live with. Then the product people can live with can turn into the product people can live without.

Of course the reverse can also happen. A product people can live without can become a product people love, but once you’re at the love stage it can turn around on you just as fast.

This reality reveals itself on release day. The first thing you’ll hear from customers that love your product is how they’d love it even more if it did this or that also. How you handle the “also” is what separates greatness from mediocrity from failure.