The science and art of choosing the right tech stack. | Fission Labs
Technology

The science and art of choosing the right tech stack.

What is more difficult than building a new product? We believe it’s choosing the right technology stack to build it on. A Technology Stack can be defined as the layers of components, languages, tools, or services that are used to build software solution or product. Choosing the correct technology stack is work of art as […]

Fission Labs • April 15, 2019

What is more difficult than building a new product? We believe it’s choosing the right technology stack to build it on. A Technology Stack can be defined as the layers of components, languages, tools, or services that are used to build software solution or product.

Choosing the correct technology stack is work of art as well as science. It is influenced by many factors such as the client’s business context, client’s budget, GTM (Go to Market) strategy, the current technology trends and the skills (Manpower) available.
Here are some of the levers which influence the decision of selecting a technology stack for any product company.

Culture:

While introducing a technology, it’s critical to understand and analyse the way in which the constituent or existing technology components are interlinked to each other. What are the tools, languages, and accelerators that the team is already adept in? Whether bringing in a new programming language or tool would jeopardise the existing coherence among the team’s skills and choice of tools? All these questions not only point to the technical cohesion but also the cultural adhesion. For instance, a recent study shows that a .Net developers way of working is different to that of JavaScript developers. Similarly, Scala developers work differently than Ruby on Rails developers. All these factors need to be considered before bringing on a new technology into the mix.

Skill:

A lot of technology adoption happens smoothly if the underlying core is not incongruent to the person adopting the new skill. So, if your team is already adept in using Java, then ramping them up in Scala will not be a problem as the languages are a natural extension of each other. Technology adoption is therefore seamless when it is gradual and sequential instead of jumping across unrelated frameworks.

Technical Currency:

Technology in today’s world is backed by business. Gone are the days when the currency of a programming language was its ease of use or ability to integrate with other applications. Now programming languages are backed by technology and business houses. So, there is Microsoft backing .Net while Apple promotes Objective-C. Here the important thing to note is the long term commitment of the business house backing the technology. If the backup goes kaput in the future, your investment in the same technology may need to be relooked at. Hence choosing the tech stack has to factor in the technology ecosystem, infrastructure, clients as well as the product’s long term growth plans.

Maturity of framework:

One thing that goes hand in hand with technical currency is the product/tool/technology maturity. Any investment done on the tech stack has to have a long-term return on investment. The technology that you are endorsing today needs to have a considerable shelf life and should be in use for quite foreseeable future. Else, the entire effort, time and money that goes into adopting the same is wasted. Not only the core technology but all the components that come along with it (build tools, IDE’s, CI pipelines etc.) need to be relevant for a better adoption. The uptake in these components have to be considered while adopting the technology.

Scale:

Proliferation of the technology, the user community size and overall adoption gives an indication to the scale at which a particular technology has penetrated the market. While choosing a right stack, this information is vital since it complements the developers ability to scale. Great suite of pre-built programming functions available with a technology will make its adoption quite easy as programmers can use and reuse the ready-made technical solutions.

Costs:

When you are calculating the cost to Implement a technology, a big factor that is often missed out is the long term maintenance costs. Factors such as patch updates, program increments to address OS security, hotfixes for program vulnerability etc. All these implicit and explicit cost need to be factored in before making the decision to adopt a technology.

The factors influencing your choice of technology stack are umpteen and it helps to have any expert by your side to help you navigate the complex decision. Reach out to us today at https://www.fissionlabs.com/