Custom Software is a Bad Idea

If you were to ask me to build custom word processing software, I would very quickly respond that you should just go out and buy Microsoft Word. You might respond with, “Word has too many features that make it complicated to use,” or maybe just, “I don’t want to give Microsoft any more money.” Whatever your reason, I’d be hard pressed to go along with your idea. Even if there was some major feature that you thought would be the next Microsoft Word market bandit, I’d probably suggest you find a way to build an add-on for Word. This might seem like a very simple, and maybe silly, example, but these are the types of conversations I’ve had my entire career. While there are some very good reasons to build custom software, you might be surprised that, as a custom software developer, odds are I’m going to work hard to talk you out of building custom software!

One of the most common reasons people are convinced that they need custom software is due to unique processes in a business. The old “I’m different, just like everyone else” idea. The reality is usually that the off the shelf (or SaaS, Software-as-a-Service) solution is probably addressing that business process better than you are in your business. “Off-the-shelf” software has been tested by the market and gone through often years of iterations with the main intent of being a best-practices platform for business processes. So, rather than getting frustrated trying to find software that matches your business processes exactly, consider that software might have better processes than you have today. That software might only achieve 80 percent of your goals, but it’s going to do those really well. And it might have a different take on the missing 20 percent that would be worth you considering. Bottom line, purchased software is getting used by a lot of companies and is validated to work for those companies.

Probably the biggest concern with custom software is that it will never be tested and validated at the level that commercially available software has been, including for security holes, which crop up frequently. Off-the-shelf software, in most cases, has been around for years, getting regular updates with changes, new features, bug fixes, security patches, regulatory and compliance updates, etc. Market forces are ensuring that it’s keeping up with trends in business too, ensuring that if there is a new methodology, process, or way of looking at things you should probably be considering in your business, that it will provide a great path to that methodology. It’s a benefit of many many users working in the software every day instead of just users at your company. Your custom software will likely take years to be “done.” (I always say that software is never done.) But it will never benefit from product managers, dedicated engineering teams (think how hard it is to keep skilled people around), large user base, and market adoption to keeping it current, fully tested, and validated.

One of the great things about software today is the notion of configuration. Back in the day, we would customize ERP (Enterprise Resource Planning) platforms to the hilt such that they really were almost custom software themselves and couldn’t even be updated because patches couldn’t be reconciled with customizations. I’ve been on ERP projects that took years to go live, at which point they were several versions behind the platform. Yuck. Now, with SaaS platforms such as HubSpot.com, an Inbound Marketing, Customer Relationship Management (CRM), Website Hosting platform where users can configure everything from contact fields to landing pages, implementation time reduces from years to weeks. One of my biggest challenges with development teams has, for years, been to keep them from building custom user management (along with authentication and authorization). I have yet to have a project where it made sense to roll your own solution. To this point, Auth0 tells me their typical implementation (95% of projects) takes less than a week. And oh, don’t forget any customer in the know is going to be 100% confident that an Auth0 implementation is robust, secure, and well maintained. I won’t get into it here, but there are many great business process automation platforms (like ProcessMaker based here in North Carolina) that can automate most complex business processes without a single line of code via configuration. So, before you customize, consider finding a platform that you can configure.

So, you’re probably wondering, what’s left for a custom software developer like you to do. The answer is simple: focus on custom software for business processes that are part of the key value proposition of the business and that are the differentiator for your business in the market. If there is something that your business is doing that’s unique in the marketplace–the reasons customers are coming to you–and software is part of that, then yep, it might need to be custom software. If there is intellectual property that drives you business and there is a software component–yep, you should consider custom software.

So yes, there are great reasons to build custom software, but I’d encourage you to exhaust your research before hiring a development team. Consider the Pareto principle and think long and hard about whether the 20 percent of your requirements are worth taking on the risk and long-term commitment that is custom software. After all, these days there’s a decent chance even the 20 percent will get reeled in with some configuration with many of today’s SaaS platforms. If the software that you’re considering having custom built isn’t a key part of your business, providing a proprietary advantage for you in the market, then it probably isn’t worth building custom software.