In 2011, Marc Andreessen famously proclaimed that “Software is eating the world.” Today, I cannot think of a single industry where technology and software, in particular, are not heavily used. In fact, in terms of leveraging licensed or cloud software, or even building their own, companies typically have a plethora of choices when it comes making their businesses automated and digitized. Many of these businesses think about technology in very strategic terms where digital solutions can transform their business models, change the way they deliver value to their customers or improve the way they collaborate. While digital technologies can certainly transform organizations, the dilemma these organizations typically face is whether to buy or build technology.
Buy Vs. Build
In general, buying software means that the overall solution:
- Is typically less expensive.
- Is mature without the customer having to fund all of it directly.
- Almost never perfectly fits all the organizational use cases and business models.
- May not evolve as quickly as the business.
- Keeps the organization at a mercy of the software vendor.
On the other hand, building software typically translates to:
- Complete control over the features and timing.
- A perfect fit for use cases and business models.
- The ability to adapt when requirements change or the business evolves.
- Higher overall cost of ownership and continued need to maintain the solution.
Like with everything in life, there are trade-offs. In my view, before organizations decide on a direction, they should be honest with themselves about their needs and their technology vision. If a solution is not central to their business and gets them 80% of what they need, they should simply buy.
However, if a business is constantly evolving at a rapid pace, if the solution is core to what they do or perhaps it even creates a differentiation in the marketplace, that company may want to consider building it. Before it does, there needs to be a significant executive buy-in. In fact, it’s not enough that the CIO or CTO buys in. The CEO will need to as well if the solution is truly a core part of the business that creates differentiation. Assuming the organization decides to build, it needs to determine how exactly it will go about it. Will the company build all of it internally, outsource it all or use a hybrid of the two?
The benefit of building software internally is the ability to retain a complete control over the process and the product. Internal teams can also sit closely with the end users to ensure they are creating the right features at the right time. In addition, the company has a higher chance of retaining the experts who built the solution. Unfortunately, non-technology organizations may have a difficult time recruiting top talent to begin with. The best developers typically want to work for technology companies where the code they write is not just used by the business — it is the business. At the same time, there may be lingering questions about what will happen to these developers when the project is over. Will they still have a meaningful job?
Building software internally is not easy. That’s why many companies choose to outsource entire development projects to agencies. These agencies build software professionally and typically employ top-level coders. As a result, organizations don’t have to hire their own resources and can simply guide an agency when it comes to requirements. Life is good.
Except, the agency probably does not understand their client’s business — certainly not as well as the client does. Also, now that the agency was hired to deliver the value, company executives likely shift their focus on other, more pressing issues. This may work for small projects, but it could create a problem for large-scale solutions that are core to an organization’s business — precisely the reason the company decided to build the software to begin with. Without the right management involvement and focus, many solutions created by agencies miss the mark when it comes to delivering the originally perceived value. Because of that, companies should ensure that agencies truly understand their business and that the company management remains actively involved throughout the project.
A Hybrid Solution (Via Staff Augmentation)
As the CEO of a technology consulting firm, I’ve seen the benefits of having a hybrid development team firsthand. Some of the most complex and long-term projects I have been involved with were in close collaboration with customers. In most cases, the customer would leverage their own full-time resources to manage the software development road map, create designs and work with the end users. They often also leveraged their own developers but augmented that team with coders from a software development agency. The model worked well and essentially solved all the problems that are plagued by either doing everything internally or completely outsourcing it. At the same time, this kind of team dynamic lowered the costs and maintained a high product quality because the customer was highly involved, highly invested and ultimately owned the success of the product.
To summarize, organizations have choices when it comes to digitally transforming themselves. They can buy or build solutions; however, they should understand the tradeoffs of each option. While buying often means lower total cost of ownership, it also often translates to an incomplete solution that does not fit the business and operational models completely. Alternatively, custom-built solutions should completely fit these models but at a higher total cost of ownership. Furthermore, organizations have various options when it comes to building solutions. They can build internally, outsource completely or employ a hybrid model where they use an agency to augment their internal staff. As with buy vs. build, these feature pros and cons. However, this also allows organizations to select the most suitable path forward.