“I thought this feature would be useful to our customer/user”
“We gave them more than they ever asked for”
“They didn’t ask for this, but I already had it built so I just threw it in”
Most people work hard to impress, but the lines above are examples of gold plating. Gold plating is the process of over-delivering during a project by adding additional scope without the users request. It is the silent and deadly assassin of far too many projects.
A feature implemented without proper controls often lacks testing, thus increasing the odds of producing a defect prone product. Have you considered the lifecycle costs of this small feature or enhancement you are throwing-in? Not only do you need to consider the initial time to implement, you must also analyze the impact to all of the following:
– User acceptance effort and duration
– Product documentation (user manuals, solution documents)
– Attack surface of the product. Larger entities have a greater attack surface. More areas/moving parts to fail
– Upgrade complexities and costs
– Support time and frequency of errors
– User adoption percentage. More difficult to understand and adopt.
Most engineers, developers and consultants do not consider the full impact of the feature or enhancement. They often do not bring it to the attention of the project team and all the important project control processes are missed. Gold plating is often committed by the junior resources of a project. They have the most to gain from looking like rockstars and the least likely to feel the consequences. It is the project, product and/or program manager who feels the brunt of the lifecycle costs. As a manager it is therefore imperative that you enforce the values of process and reiterate the importance of scope control.
So then, having considered all of the above. If the customer didn’t explicitly request that feature, are you sure its worth all the risks?
See wikipedia http://en.wikipedia.org/wiki/Gold_plating_(software_engineering) for more information.