Over the past two decades, technology has moved from a “nice-to-have” to a “must-have”. Technology is now a core competency of all businesses, just like finance, marketing, or sales.
Customers expect company’s technology to work and work well. Information about products, prices, supply chain, rewards programs and more must all come together in a seamless experience for the customer. The right information being served up at the right time leads to more sales, revenue, and growth.
Along with the explosion of technology has come the explosion of technology tools. Programming languages, database types, front and back-end frameworks have all massively grown in number. Should your data science team be programming in R or Python? What about Julia or Go? Should you try and build your own CRM system or go with a “tried and true” option like Salesforce?
The answers to these types of questions have far reaching implications for your organization. Let’s split these into two categories:
1. Build vs. Buy
The age old debate.
Technology can be used to solve a lot of things, so when does it make sense to buy a solution rather than committing your own development resources to building it? To design the best tech stack you should only build custom solutions for the core elements of your business. If you’re not a marketing company, you don’t want to commit large amounts of development resources to building highly specific marketing solutions. Use what is out there.
When deciding who to buy from, market research is your friend. Think about the maturity and scale of the organization offering the solution, tap your network to see if your past colleagues have recommendations on tools they like, and consider if prospective applications integrate with any existing apps you’re already using.
2. How to Build
Once you’ve made the decision on what you’re building, there are a few key things to keep in mind on how you should build. The key here is to understand that your tech stack will be ever evolving. Build with change in mind. As you build your set of foundational tools, ensure that they scale and are extensible. Build decisions shouldn’t be so narrow in that they lock you into specific frameworks and ways of thinking. Updating the foundational tools of the tech stack should always be possible without having to fear breaking surface level functionality.
Sure, your business might not have a chat bot to answer customer questions now, but what if it does in the future?
What happens when you add a data science team that wants to put predictive models into production? What happens when you launch that rewards program that racks up points for customers based on which products they buy?
All these additional functionalities should be built on top of your existing tech stack without having to break the foundation. Think about it this way, you don’t have to redo the foundation to your house when refurnishing your living room.
Finally, silos within your organization are a fundamental stopping point when it comes to having a flexible tech stack. If your marketing data is completely separate from your operations data which is completely separate from your supply chain data, it’s going to be hard to create a unified digital experience. Cross functional employees must work together like conductors of an orchestra to make the final end user experience seamless.