New projects are always exciting. The first engineers on the project usually get to make the important design decisions, the ones that will have the most impact on the project through to the end. There is always the promise that this is going to be the Perfect Design, a chance to make a new start and erase the mistakes of the past.

At some point in the project that euphoria wears off. The flaws in the design begin to become apparent. An attempt to repair those flaws only expose more damage. If you are lucky the damage is not fatal and the system limps to life. If not, it fades away into the limbo of flawed implementations of good ideas that will never see the light of day.

What is there about the process of systems design that so often leads to flawed implementations or outright failure? Are the flaws only in the eyes of a perfectionist designer or do they truly represent significant shortcomings in the product? Ultimately, is it possible to create and implement a Perfect Design?