When software doesn’t do exactly what you need it to do, you’re faced with a choice of buying something that’s not exactly what you want, building your own custom system, or buying something you can customize. There are a lot of dangers in either of those custom options. You need to think long and hard about what you’re getting into before you take that route. In this article, I’ll explain some of the common pitfalls, and provide a checklist to help you through the decision.
Off the Shelf Doesn’t Always Work
Many industries and businesses have unique requirements that don’t fit into a standard model. For example, many online stores don’t have all the variables necessary to manage subscriptions. And there are lots of other potential complications for other types of products. Your industry might require special reporting, have unique identification requirements, or be subject to special auditing rules that the makers of ABC software have never heard of, or don’t consider it a large enough part of the market to worry about.
That might suggest you need a custom solution.
Building a custom solution has a lot of benefits. The most obvious is that it allows you to build exactly what you need, and nothing more. It gives you more control. But that control brings additional costs and liabilities you should bear in mind.
The danger of “build your own”
After you’ve been through 14 demos of products that simply don’t accommodate your business model and your requirements, it’s very tempting to say “let’s build our own!”
Before you do, consider these potential pitfalls.
- Congratulations, you’re now in the technology business. Now you need to worry about changes to operating systems, security threats, new devices and protocols, emerging technologies and trends, and you need to retain the staff to stay on top of all those things. Also, IT is not one discipline. You’ll need to maintain competency in many different areas.
- You have two options. Hire your own developers, or outsource the work to a development shop. In either case, developers are expensive, and if you don’t understand the technology you want to build, it can be very difficult to find the right developers (or the right shop) at a fair price.
- “Hiring staff” doesn’t solve the problem. A new team needs to learn your development process, business strategy, and systems.
- How to build this new wonder is just as important as what it is you want to build. Is learning that new discipline worth the cost?
- It’s not only staff. If you choose to do the work in-house, you’ll need development and staging servers. You’ll need test workstations. The hardware and hosting requirements can add up.
- Being in the IT business means you’ll have to budget your IT expenses against unknown technology changes or problems. Apple may issue an update that breaks your system. Colorado may pass a new privacy law. Paying a monthly fee to have someone else worry about that can free your staff to stick to your business.
- The type of developer you need to design a custom system is not necessarily the same person who’ll want to maintain it. The first is a creative thinker who likes challenges. The second is a manager who resists change and likes order and consistency.
- Even if you build your own custom software, you will likely need to integrate with one or more external systems, like a payment gateway, or an ESP. These integrations will require periodic updates as well.
The additional dangers of “buy and customize”
Some of the problems above apply when you buy and customize a third-party solution, but you can also run into some new problems.
- Does your customization void your warranty or your service agreement? Will the provider still give technical support after you’ve customized their system?
- When the app you purchased does an upgrade, they won’t have your customization in mind, and your add-ons might not work anymore, or they may require substantial re-engineering. It might not even be clear why your customization doesn’t work with the new version.
I remember when one of my developers spent a day to discover that our script didn’t work because one piece of software changed the way it managed line feeds in an XML document. - The app you purchased probably integrates with other systems. Will your customizations work with those integrations?
- What do you do when the 3rd-party tech goes out of business? What are your options to acquire and maintain it yourself, and how expensive is that?
A “Build Your Own” Checklist
Before you build your own, or buy and customize, go through each of these carefully as a gut check.
- Explain the problem and why and how your current solution is not meeting expectations
A company I knew used to run two different fulfillment account systems because one of their 50+ titles had to have distinct reporting. Or so they thought.
Then one day, while reviewing company operations, the fulfillment division said “it would so much easier if we didn’t have to do this,” and the president of the company said, “I always thought this was your requirement.”
Writing out the why of a customization can expose whether it’s truly required. Also, whatever operational requirement suggests a customized solution in 2022 might not apply in 2024. Make sure you keep a record of these things.
- Research other solutions
Surely you’re not the only company with this problem. How are your competitors dealing with it? Can you license their solution?
- Distinguish Necessary and Whimsical Customizations
The “customers” for your new technology are both external and internal. Make sure you understand the internal processes that are affected by this new technology.
However, it’s one thing to accommodate a business requirement. It’s another thing to try to make all your staff happy. As my friend Wade says, computers are very good at doing one thing a million times. Marketers want to do a million things one time.
Every customization comes with cost and risk. Keep them in check, and consider the ROI on every proposed customization. Realize that the investment in your customization includes the upfront cost and the ongoing maintenance and update costs.
Be very specific about the cost of the customization and the reasonably expected benefit. As my friend Frank used to say, “we’ll do all this work, and all this setup, and we’ll get one order.”
Finally, don’t confuse “customization” with a wish list. Each customization has to justify itself.
- Reflect on the virtue of simplicity
Apple and Kindle radically reduced the complexity of magazine fulfillment. Their systems don’t account for many of the functions that a standard fulfillment house would consider table stakes.
Was this arrogance on the part of Apple and Kindle? Or did they decide that all those bells and whistles weren’t worth the trouble?
When you’re considering a “nice to have” function or feature, be sure to compare that with the elegance of simplicity.
- Document your customizations
You’re very likely to lose the developers who created your custom system, and the people who come afterward need to know how things work. Make sure everything is well documented.
Also, to the extent you need to integrate your customizations with another system, good documentation will be key – for your developers and your partners’ developers.