Over the years developing web sites and web applications, we’ve noticed a couple things about our development process. We’re very passionate about the work we do and we love to go that extra mile for our clients. As such, there is a great temptation to investigate and utilize new, cool technologies and deliver snazzy features to enhance our projects. At the same time, we must be very aware of our clients’ budget and ensure they are receiving the features they need before the features they (or we) want (as described in our Requirement Engineering article). Furthermore, there are features that can creep into projects that are nice to have, but mostly unnecessary. The term gold plating describes this collective set of features.
Gold plating is the addition of features that may be nice to have, but are unnecessary. During the initial requirements engineering phase, we work with clients to identify and prioritize all features. Then, we determine which features are considered gold plating by asking a couple of questions. First, is the feature in question going to save the client time and money? How often will the feature be used? Will the feature impress the website viewer, and entice them to respond favourably (perhaps by making a purchase, or filling out a contact form)? Is the estimated benefit of the feature worth its implementation cost? In regards to visual features, is there a way we can implement the same functionality in a more cost-effective manner (i.e. AJAX compared to a page refresh)? Do we have enough information to ensure the feature is completely necessary? Sometimes it is best to identify, develop and deliver the must-have features first, and then determine if a feature is necessary after it the system has been put to use for some time. As we go through these questions, we get a better idea of how each feature should be prioritized so we can steer away from gold plating, and save the client development time and cost.
The key to developing a cost effective custom solution lies in the analysis of the requirements - specific to this article, the identification and elimination of gold plating. Sometimes the client wants things they don’t need, and sometimes the client needs features they aren’t aware of. As software development consultants, we have a responsibility to understand the issues that need to be addressed with the software solution. This way, the client receives a great custom solution in the most time and cost effective manner possible.








