Over-customisation? Sounds familiar? Surely it’s one of the most common architectural anti-patterns.
I have seen too many smart project teams who start with the notion of “achieve the must-haves and quick-wins first“, only to find themselves falling into the trap of over-customisation in the middle of the project and by the time they realise it it’s probably too late to roll back or course-correct.
In case of an OOTB (Out Of The Box), it’s likely because the product they’ve chosen has not been the “fit for purpose” for the requirements, or even if it was originally, scope-creep and new requirements have led the team to try to over-stretch and “bastardise” it to make it fit for purpose. Most of the times it’s a failed attempt because the product had not originally been designed to address these stretching requirements. It’s like buying a Porche Carrera 911 as you reached your mid-life crisis, and after a month or two your friends try to convince you to join them in an off-road dirt track adventure; it’s too attractive to be turned down but since you have spent most of your capital on your beloved GT car but can’t also miss this adventure, you try to add an extra axle and lift up the suspension to make it more like an SUV!!
Here’s some quick and seemingly obvious things to consider to avoid this pitfall:
- Do your homework before choosing the product. Study market research reports such as Gartner Magic Quadrants, reach out to other clients having the same problem and find out what they ended up choosing, talk to the vendors and draw a matrix to compare different products against your requirements. Ask for a demo and include your end-users to see the product before investing in it.
- It’s unlikely that any given product is 100% fit for purpose. Can you compromise? Does your short-listed product address most of your “must-haves”? If so, stick to the current product features and avoid over-customisation in order to address less important requirements.
- During the implementation, if new emerging requirements, no matter how much they’re related to the existing ones, are not addressed by the product, chances are over customising the product wouldn’t address them either. Look for add-ons and other products by the same or other vendors. If there’s no native add-on, think how you can achieve a seamless user experience by integrating two systems.