
As recently as 5 years ago, when many companies purchased enterprise software there was an expectation that they would need to customize the solution for it to “work” in their organization. If you did not customize the software you were at risk of being categorized as a typical business and no one wanted to think, or more importantly, wanted others to think they were not unique.
The reality is most of these companies needed some sort of customization, not to make the solution work, but rather to maximize the solutions productivity. The problem was when companies customized their solution they did not take into account, or maybe did not realize, the long term costs of customizing a solution. According to some analysts the cost of your enterprise solution is dwarfed by the cost of customizing and maintaining it
On the other extreme there were companies which have attempted not to customize any of their enterprise software and go down the COTS (Commercial Off-The-Shelf) path with a pure OOTB (Out Of The Box) implementation. This strategy may seem to be an optimal on the surface however the additional overhead with working with disconnected systems which do not accurately align with your business can have a very high ongoing cost, mainly in effort.
So where does that put us today, Customize or OOTB?
I really liked and agree with the comment Darren Larkins said on his blog post COTS or COTS Plus?
However the simple truth is that there IS a cost to taking COTS solutions and using them exactly as they are delivered with little or no customization. To assume anything less would be akin to saying that any given shipyard is the same as the one down the street. Generally speaking shipbuilding is shipbuilding, but in an industry with fairly low margins the details are what make one shipyard successful over another
There are many different levels of customization as well as many different ways to implement a customized solution. The thing is, if you are planning on using COTS and want to only do “the right” customizations, you will have to consider how well the COTS product supports customization in your buying decision.
Not all COTS are built equally. For customization to be successful on an environment of COTS products it needs to want to be customized. Since I love analogies I thought I would compare it to Tuxedos. Tuxedos you rent from your local tailor are designed from the ground up to allow for adjustments. Tuxedos can be customized or tailored to fit a wide range of body types more so than other clothing. Just like our enterprise solutions, not all our needs are exactly the same and having a product which was designed to be customizable will allow us to have the tailored fit without that much effort.
How do you know if the COTS product supports customization?
There are many signs but this is where you need to look at the COTS underlying technology and architecture. This may feel uncomfortable for most since this may seem to be getting into the weeds but it is a necessity to determine the natural ability for the COTS product to support customization. I created a brief table below to illustrate a COTS product which does not lend itself to being customized easily vs. a COTS product that does.
COTS
- Does not want to be customized
- Proprietary
- Keeps information hostage in proprietary format
- Access to information always requires user to interact with product
- Does not have easy access to all information within product
- Does not support an API
- Only has a small limiting subset exposed
- Does not support scripting
- No App support
- No community
COTS+
- Wants to be customized
- Uses in part or in whole other common industry COTS products
- All information is accessible in its natural form
- Various ways to search, filter and retrieve information
- No loss of fidelity
- Has an API which is using modern API techniques
- API supports a language (C++, .NET, Javascript, etc.) which is a common skill in your company or you can easily acquire
- Allows reading and writing of data
- Supports scripting of actions which can be to automate nightly routines or streamline tedious, error prone tasks
- Allows Apps from 3rd party partners
- Have a certified 3rd party partner program
- Has an active 3rd party community of developers and/or companies
Closing Remarks
Customization sounds like a dirty word these days, and for good reason. We have wasted enormous amount of $ and time in creating the “ideal solution” by customizing at the cost of sustainability. However, these horror stories do not paint an accurate picture for customizations. The fact is, customizations can be very beneficial, both short and long term, if done right. Starting off by picking the right COTS products which embrace customization as a first class citizen is the first step. This will allow you to extend the products without worrying that you are building a house of cards. The second and just as important step is to properly weight the benefits as well as the total costs of any customized project. With the proper COTS products and the right amount of customization you can attain the optimal solution for your organization.