24/10/2011

Gold plating - YAGNI

Here is the short definition of Gold plating per wikipedia: Gold plating in software engineering (or time management in general) refers to continuing to work on a project or task well past the point where the extra effort is worth the value it adds (if any). After having met the requirements, the developer works on further enhancing the product, thinking the customer would be delighted to see additional or more polished features, rather than what was asked for or expected. The customer might be disappointed in the results, and the extra effort by the developer might be futile.

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-Struction
As 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.


Sometimes we as developers need to stop what we are doing and sit back, relax and consider for a moment what we are trying to accomplish.

I believe it's quite wonderful how many accronyms there are in software development (one day, perhaps soon I'll write a reference post).

In reality, gold plating can be avoided if we can GRASP the concepts in play. Laziness just leads to more work!

And remember KIS - Keep It Simple!

No comments:

Post a Comment