Design by kiss

Good software design, unlike for instance good industrial design, isn't easily noticed and thereby seldom appropriately rewarded. Similarly, bad software design isn't easily discovered, and the guilty often get away without the proper punishment.

This is allowed to happen because software designers are not evaluated based on their work, i.e. the design they have come up with. The people who review designers normally have a weak understanding of what makes a good software design, and instead use something they can measure, such as the overall success of the project. The possibility that the project succeeded despite the quality of the design simply doesn't occur to them.

Bad design is often driven by a desire to anticipate every future requirement. Too much functionality is crammed into the system in the first iteration, just to allow the designers to triumphantly announce to their managers that they have already thought of one particular requirement before it is put forward to them.

Antoine de Saint-Exupéry once wrote, La perfection est atteinte, non quand il ne reste rien à ajouter, mais quand il ne reste rien à enlever. If only more people knew enough French to understand this*.