A company's tech stack is the fundamental infrastructure for the implementation of a tech product.
The Chief Technology Officer (or similar function) is the primary owner of the tech stack. She or he needs to find the right balance between innovation and rapid movement on one hand and stability and reliability on the other hand.
Best Practices for Tech Stacks
Considerations when picking stack elements:
- Suitability to the problem. For example, Java might not be the best choice for an e-commerce shop these days, but it still might be the best language for a fintech with banking interfaces.
- Availability of expertise and experienced talent. CTOs should avoid picking their favorite tech elements just because they like them, but it is essential to pick building blocks that the team can handle and for which talent is readily available. More exotic stack elements often make hiring even more demanding.
- Reliability. Even products by early-stage startups have to be reliable. Users expect the same kind of quality they know from major tech brands, so compromising in this dimension is not a good idea. Furthermore, building the tech stack on bleeding-edge alpha or beta software often increases resource use for problem fixing, which is very unproductive.
- Innovation and coolness effect. Less mature tech elements that can improve the speed of development significantly or provide valuable functionality can be part of the mix. CTOs should also consider that the best engineering talent wants to learn new things, so having a few elements that are considered to be cool and interesting often helps with hiring.
Generally speaking, using 80% of tried-and-true stack elements with 20% of cutting-edge element is a good mix.
Framework (examples are opinionated, YMMV)