One of the challenge most startups face as they transition into a larger organisations is knowing which technical battles to pick in order to remain a disruptor in their industry space.
It’s important for every development manager, CTO, CEO and even executive board to understand that unfortunately;
There will always be more work to be done than can be completed.
This usually being in the form of a large feature backlog and/or large list of projects the business wants to tackle in a short time-frame.
Enter COTS or Commercial Off The Shelf software.
In a world where moving quickly can mean the difference between being a disruptor or getting disrupted there are a huge array of products that are available and ready to solve the problems you currently face. There are a huge amount of benefits to doing this.
Advantages to COTS
- It solves your problem.
- Can work out cost efficient.
- Can generally be setup in very small timescales.
- Maintenance of the application is not your problem.
- Features and enhancements will come out regularly ( SaaS in this instance ).
- Is an expert in that field.
One of the single greatest rules in software development nowadays is quite simple.
Never reinvent the wheel.
You rely heavily on your team to choose the right programming framework, write as little code as possible and still keep the balance of flexibility and performance so you can respond to change.
So it looks like COTS should always be a contender before going straight to build. Like most things there should always be a balance. Here are some considerations to COTS.
Disadvantages to COTS
- You don’t own the product roadmap, their vision of the product might diverge from yours.
- It might be 90% of what you need right now, but that last 10% may never be delivered and restrict your growth.
- Your business model changes and you can’t respond.
- Once your locked in, its difficult to escape. Its a form of technical debt that grows overtime.
- The commercials might be weighted to penalize you for growth and you have no alternative but to pay for it.
- If your a small client on a large platform, can you be confident your service will be A grade.
How to evaluate COTS vs Build
The best way to evaluate whether you should be buying or building is the following.
What is the length of the life cycle the product will be in production for? 6 months or 6 years? If your planning to remove the product shortly after implementing. Don’t forget to calculate the removal of the product into your projections. If your product will struggle to survive 3 years. The removal of the product will cause a major project that will hinder growth in other areas later down the line.
Determine your timescales for your own build. When scoping your own build be brutally efficient in the features you actually need. Most COTS products provide functionality that add no real benefit to your particular business model.
3. Skill set
Does your team have the knowledge required/skill-set required to implement that product themselves. Although a COTS product might only last 6 months. Your own product may be implemented incorrectly, causing large technical debt that ultimately will need to be paid off. Effectively causing a rebuild.
Linking very closely to product life cycle. Can the product that you implement adapt to what you need going forwards. Before going on the endeavor, make sure you understand your business and where it is going. This avoids you trying to plug a hole and looks at the big picture. If you need to create your own IP. A platform you own, is definitely going to be able to give you that.
Here are some of the rules I follow in order to understand Buy vs Build.
- Never outsource your core. Whatever makes you special. Make sure its your problem. It will make your business if you do it right.
- Commodity software is best bought. Don’t build a financial system if its solving a problem in finance. It also looks good to external investment if your internal process is an accepted standard.
- If your thinking about removing it before you start. Its probably not a good idea.
- COTS or Custom build. Don’t over scope what you need. Focus only on what is going to get you to the next level. Compare Apples with Apples when determining the best course of action.
- Don’t let the board or the bosses push you on unrealistic timescales. Do it right in a reasonable timescale. Make sure your making the right decision, not the one that panders to timescales.