Software technology companies innovate by creating applications for the web, mobile and automation services for the B2B economy. A piece of software is developed by writing computer code that makes the computer perform certain functions. This computer code is usually managed by a team of people. They usually store this code central location called a codebase which they can share access to in order to collaborate.

Codebases come in different sizes, operability and types – all depending upon the purpose for which they are made. A codebase for a website will differ that from a mobile application and both of them will differ greatly from a codebase for a search engine like Google.

Like all businesses, technology companies also go through acquisitions and mergers. They join operations and work towards a united goal. Unlike other businesses, technology companies face the additional challenge of managing the software that both merging companies have built. At most times, the codebases are engineered with completely different software technologies – even if both companies specialize in making the same type of software such as websites.

Current State Of The Tech-Stack Spectrum

When it comes to software, there’s no one size fits all. It all depends upon the type of software you want to build and mostly on what the preferences of the development team are. Let’s explore how some of these technologies are built with entirely different standards that give rise to challenges when it comes to managing their codebases during mergers and acquisitions.

Web-Technologies

The browser is only capable of understanding a handful of tecnologies which are: HTML, CSS & Javascript. However, with the increase in computation power, web applications that run in the browser have become more interactive and in turn, more complex. To solve for their complexity, software developers have now developed different frameworks and libraries to manage the complexity of modern web applications.

React, a front-end library, took the industry by storm when it was open-sourced by Facebook in 2013 and has been the unofficial standard for making highly interactive web applications. However, there’s a large community behind both VueJS & AngularJS to make front-ends that require high functionality. Even though end-users can never tell which technology is used to build a certain website, there’s a huge debate on what to use giving rise to highly opinionated narratives within the developer community.

Similarly, to build back-end services for websites, developers again find themselves divided. Some resort to building backends with technologies like ASP.NET, while others use PHP or Python based frameworks like Laravel or Django, while the Javascript advocates remain stern on using the relatively newer tech: NodeJS for everything backend related.

Phone App Development Technologies

With the rise of global phone usage and the rapid disruption of the technology industry with the invention of the iPhone, interactive software development experienced another war front when it came to choosing tech stacks.

Companies usually go for both iOS and Android platforms when it comes to developing applications. Until recently, making an iOS app and an Android app meant that you needed two different teams with speciality in developing apps for these two operating systems. These days, technologies like React Native and Flutter allow developers to generate mobile applications for both these platforms from a single codebase. Which in turn gives rise to another divide among the developer community as to which technology they should use.

Business Intelligence & Analytics

Even in technology companies who don’t specialize in making web or mobile applications and products such as business intelligence and data analytic companies, find a lot of different options for their operations. BI software engineers find themselves dviided between Segment, Stitch, Amazon Redshift, Snowflake, Mood, Looker, and more.

The Unique Challenges Of A Tech Merger

With varying technology stacks, merger and acquisitions bring unique challenges for CTOs and tech leads alike.

Monolithic Hell

Most startups are founded by a handful of developers and senior members. These founders usually start off small (like they should) and design the application in a way that allows them to have every feature of an application in one place called a monolith. The architecture makes it hard to adjust to other pieces of software that are built with other differently-opinionated tech stacks.

Highly opinionated code is quite prevalant in monolithic codebases. Developers code with certain standards that stem from their own personal preferences that makes it very difficult to make the codebase programmable when the company undergoes a merger with another technology company following different coding conventions.

Low Decoupling

Even though it is considered an anti-pattern (something you shouldn’t do) in software development, startup codebases that are built as MVPs usually have low decoupling. This means that if you have to replace a certain piece of software component, for example a package that persists data to a database, a lowly decoupled codebase will bring about new challenges for developers who will have to rewrite most of the functionality just to adjust the new package.

Low decoupling doesn’t allow new MVPs to be integrated into larger codebases – something that is often seen when large corporations acquire small-scale tech startups.

Inherited Development Teams

When acquisitions and mergers happen, it also gets quite difficult to understand which tech talent to keep and which to let go. This creates a conundrum of additional responsibilities for the acquiring company or for the leadership of the two companies that merge.

If the company that emerges from an M&A decides to go with a certain technology stack, they have to handle the severance packages of employees that they no longer need adding financial strain to their liquidity. If they decide to train these development teams, the learning curve hinders growth which is not ideal.

The Ultimate War Front: GIT Histories

By far one of the most challenges aspects of managing codebases after M&A’s is the maintenance of Git histories. Git is a version-control software for keeping track of code that different developers contribute to a shared codebase. When two different companies merge, the Git histories have to be managed appropriately to avoid running into catastrophic failures like losing parts of the code.

Different companies use different conventions for Git branches and commit messages. After mergers they have to train all teams on how to conform to the standards of either codebase when any contribution is required.

Development Of Performant APIs

One of the main challenges of tech mergers is that startups have to resort to building APIs (application programming interfaces) in order to overcome the challenges of having different codebases and tech stacks. This hinders their ability to develop public APIs as they have to resort to a lot of code refactoring just to maintain the current functionality which eventually drains capital and exhausts work hours.

Unique Challenges Require Unique Solutions

Microservices

Microservices are an architectural pattern in which different services are joined together to present a public-facing API. These services can be entire codebases of that perform a single function. Microservices aren’t entirely unique. Large scale systems such as Google have been using the architecture eversince the dotcom boom. Recently, however, they have gained a lot of traction in the development community where they are now readily considered.

This architectural was mostly suited for backend systems. With the usage of front-end technologies like React, micro-frontends have all the hype too. So instead of having a single codebase for the entire app, developers can make highly decoupled micro-frontends in order to cater to reduce complexity when it comes to M&A’s.

Monorepos

Mono repositories are a way to store every incoming codebase in a single Git repository in order to have a clearly guided coding convention for the whole team. The approach allows for a strict following of a company’s development standards and reduces the number of development induced problems in the future.

Separation Of DevOps From Development

Companies that undergo merger and acquisition should invest in the effort of creating a separation of DevOps from their development processes. The benefit is, that it makes developers write code with absolute agnosticism towards the running environment. The approach leads to high decoupling and opinionation during the software development cycles.

Automation

With automation, a lof of the hassle of managing codebases originating from different startups can be mitigated. Automating things like testing and code formatting can really help developers conform to certain standards and reduce the hassle as far as technical challenges after mergers.

Technology has only begin to revolutionize our lives. With hundreds of different companies operating at different levels, mergers and acquisitions are part of the game. Sure, they present their own challenges that are both technical and non-technical in nature. But the innovation that is born out of an M&A is nothing less of a spectacular supernova.