Companies that produce physical goods and services have been around for a long time. These companies drive our economy. If you're one such company, your core goal is to get your customers to love your primary offering. Your aim is to produce these goods/services at a low cost, sell them at a higher price, and keep increasing your market share.
A company needs many tools to manage its business. Even though the core focus of a company should be its primary offering, people within the company often feel the need to embark on efforts to build those tools internally. One such example is building AI platforms from scratch. If a company needs a tool on a daily basis, they’re tempted to build it in-house and own it.
They can certainly build the tool, but is it a good use of their time? Another group within the company feels that the build-it-yourself path is too long and that they should just buy existing software products from the market to run their business. How do you evaluate if you want to build it yourself or buy an existing software product? How do you ensure that you're positioning the company for success? From our experience, we've seen that there are 6 tradeoffs to consider before making that decision:
#1. Upfront investment
Creating enterprise-grade AI software is a huge undertaking. This software needs to work across thousands of employees and a variety of use cases. Building it in-house would be a multi-million dollar project. In addition to that, there will be ongoing maintenance costs. On the other hand, buying that software from the market would mean the upfront cost would be low and the ongoing maintenance costs would be minimal.
#2. Time sink
Companies that can afford to consider building AI software in-house are usually large. There are many groups and budgets to consider. From what we've seen, it takes 3 years to go from conceptual idea to production-ready software. It means that this asset won't generate any return-on-investment in the first 3 years. In the meantime, your competitors would have already introduced a solution in the market by integrating an existing AI tool into their offering.
#3. Talent churn
A company can attract top talent for areas that drive its core business, but it will face difficulties in attracting top talent for AI software. Even if they hire software talent, the churn will be high. Due to this churn, the software that is built in-house will become clunky over time because nobody has a complete understanding of what's happening. This will render the asset useless because people internally can't (or won't) use it.
#4. Being the integrator vs being the creator
Over the last 10 years, I've seen that successful companies are integrators of software tools. They bring the right software pieces into their architecture to drive their business forward. This is in contrast with being the creator of all the different pieces. For a company whose primary product is not cloud-based software, you'll position yourself for success if you invest your efforts in understanding how to choose the right software as opposed to figuring out how to build everything from scratch.
#5. Core focus vs everything else
Successful companies have a fanatical focus on their core product to the exclusion of everything else. Their expertise in this area enables them to generate high ROI. For everything else, they get other firms to do the work. If the company does the work in these areas, their ROI would be very low. For example, an eCommerce company shouldn't invest time in figuring out how to build their own water treatment plant just because their thousands of employees drink water every day. Not a good use of their time!
#6. Competitive advantage
AI software shouldn't be looked upon as an asset that is external to the business and something that can generate returns that are independent of your core business. This is especially relevant to services companies. AI software gives you a competitive advantage that will have a direct impact on your core business.
Having built AI systems over the years, I've learned that architecting is the hard part when it comes to data and cloud software. Anticipating how the data behaves today as well as in the future is a key component of architecting a solution that can accommodate everything. A simple mistake today will compound over time and will render this asset useless in the face of change. Companies should invest in learning how to identify good architects. This will enable them to identify good partners and get them to do the work across these areas.