š Rating ā 5 (6 votes)
One of the great debates among programmers is whether a company should write and maintain all their code in the same language. (Another great debate is whether The Bachelor television franchise represents a post-modernist view of romance but weāll get to that in another articleā¦)
Letās start with why this coding question even exists in the first place. As a company grows, itās product invariably adds new features that require new technologies or it may acquire other companies whose products are written in a different language and āvoila!āit suddenly has multiple code stacks.
When this occurs, the first instinct from many of your tech folks will be to rewrite all the code in the same language. But our experience across a huge range of customers shows that this is an opinion based more in aesthetics than in practicality. For example, if your company buys an office building that has wooden desks and wooden chairs but the firmās headquarters has metal desks and chairs, there would be no practical reason to replace the wooden desks. It would just add an expense that doesnāt provide any value to customers. Code stacks are not Starbucks, they donāt need to maintain a visual brand.
Or as a former CTO boss once yelled at us early in our tech career when we argued for a single language, āYou arenāt a supermodel like Heidi Klum! We donāt get paid based on the beauty of our code, we get paid based on how well our code works.ā
Some of your developers will offer a reasonable argument for rewriting the code: it reduces the overhead of maintaining multiple stacks since everyone on the team knows how to read and write it. But it usually takes 6-12 months for a typical engineer to be productive within a new code base even if itās written in the language in which she/he specializes in. So if you arenāt saving much time or energy by rewriting it, why endure the pain and suffering?
But the most expensive part of rewriting the code is the loss of institutional knowledge around the business problem that the code is trying to solve. Every code base is a specialized tool created to solve a particular set of problems for its users and that knowledge takes years to build (and it compounds over time). In other words, the coders who work on it arenāt just great at programming, they are experts in the business problem. Rewrite the code into a single stack and suddenly you wiped out years of deep domain expertise in the name of beautifying your internal code. That is an expensive exercise.
So now that we understand that managing multiple code stacks is actually a smart decision in many cases, what is the best way to go about it?
To effectively manage multiple stacks, start with a modern modular structure where the code base is a collection of micro services which interact with each other through APIs (since APIs are code base agnostic). Next, separate your development organization into teams specializing in different code bases and business problems supporting their own micro services. This will add a little overhead to your overall team, but it will likely save you a ton of time in the short and long run, because you are not constantly redoing something that already works just fine.
And if your team still feels as though they must write on a common language, at least donāt rewrite everything all at once. Simply freeze the actual code base that you seek to rewrite and donāt touch it until it starts to break, canāt effectively scale or your end users demand more features. Then do the upgrade on the new code base from there.
So the next time you find yourself in a holy war between single-stack adherents vs. multiple-stack believers, just remember that in the majority of cases, you are unfortunately not Heidi Klumā¦
Want to learn more about code stack decision-making or discuss a particular challenge you are facing? We are always here to help at info[a]turnkeystaffing.comĀ or 310-699-6884.
TurnKey Staffing provides information for general guidance only and does not offer legal, tax, or accounting advice. We encourage you to consult with professional advisors before making any decision or taking any action that may affect your business or legal rights.
Tailor made solutions built around your needs
Get handpicked, hyper talented developers that are always a perfect fit.
Letās talkPlease rate this article to help our team improve our content.
Here are recent articles about other exciting tech topics!