Jeff Atwood posted some interesting blog posts too:
The Ultimate Software Gold Plating
Gold Plating
Just in case you are not familiar with the concept of YAGNI: You Ain't Gonna Need It!
For the sake of pants, I'll coin a new term developmestruction:
Developmestruction occurs when a lack of details or developer foresight causes development to become a destructive force towards time and money constraints, as well as posing a succinct threat towards project goals and client patience.
In short: Destructive Gold Plating = Develop-Me-StructionAs stated before, the first childhood signs of a developer causing developmestruction is when planning isn't done appropriately.
The simplest example of this would be:
As a company you are running seminars - each of these seminars have their own prerequisites in terms of the target audience and some business logic factors.
Developmestruction approach: Create an entirely dynamic way of adding/creating new seminars via multiple crud and management forms, totally avoiding the problem field at hand.
YAGNI approach: Hard code the majority of the logic and allow only some logic to be configured.