Logo

Join Tom on his adevntures across the Salesforce ecosystem

About Tom

View my LinkedIn

The Battle of Perfect vs Good Enough

The Battle of Perfect vs Good Enough

Tom Rook - 13 Aug 2025

I feel like over the past few years I have been locked in a personal and professional struggle with perfection. (Though personally it has been a lot longer than the past few years. But I’ll save the therapy sessions for another time…) I often find myself in conversation about a feature or a story and the idea of ‘just a little bit more’, ‘can we just…’ or ‘what about…’ creeps in. When these ideas aren’t tackled there and then it usually involves a review, a rebuild or going back to stakeholders for more requirements and clarifications, whilst this is sometimes valuable I often find it serves to impede the velocity of the project, bog it down in what-ifery and ultimately this type of conversation usually occurs out of sight of the people actually requesting the feature.

What is Gold Plating?

To address this issue I would like to use the term Gold Plating - a term borrowed from project management - this is the process of going beyond the original scope of the requirement and trying to deliver something extra, a feature or some more polish.

At first glance, gold plating might seem like a sign of dedication—enhancing the features, polishing the build and making a product shine. However, in software development, it can be harmful. A gold plated feature is crafted before it even reaches the user. It’s extra work, often outside the original scope, that makes our software more brittle and harder to maintain.

What if users don’t like the extra features? What if the additional work introduces bugs or technical debt? In that case, we’ve sunk extra time into something that might not add value, and our project suffers as a result.

Why do we Gold Plate?

How do we end up gold plating? In my opinion the most gold plating is rooted in two places: poorly written requirements and anxiety.

Poorly Written Requirements can leave room for interpretation, leading to unnecessary enhancements and protracted development times. Anxiety, on the other hand, drives us to seek perfection. Usually out of fear that what we are doing to deliver won’t be accepted or up to standard.

Of these the only issue ever really dealt with is poorly written requirements, either adding stricter acceptance criteria, more information up front, definitions of ready and tighter definitions of done through training. Whilst initially beneficial it can often add an onerous process to the front end of development and can often exacerbate anxiety if deadlines are missed and velocity drops off.

Anxiety is a broad and far reaching topic that I won’t even pretend to be qualified enough in but in the context of Gold Plating I would like to add some things that have helped me: Communicate Early and Often Speaking with users, showing what is going. Not only does this keep you grounded it also stops you from building in isolation. Break features into manageable chunks Small lightweight features are easy to deliver, it is easy to change direction off the back of them as they are only small and lightweight!

How do we avoid it?

The best remedy is to get it out! Instead of spending ages perfecting something in isolation to the requirements and getting people hands on, early. Get people hands on and get real feedback, the sooner the better! Writing small focused user stories, delivering them early and often, braking the isolation cycle and utilising the people your feature is made for! Not only will users appreciate being hands on with something, the fact you have given it to them with the express purpose of getting their feedback will build trust and rapport like nothing else. Giving your team features champions and allies across the business.

tags: technology - Change Management


back