Back in 2013 when I left my career as a VC behind and wore my entrepreneurial hat, I was the idea guy and didn’t understand code. I even once had developers code an API for days all the while telling me thats how it works when now I understand it could be done way faster. I think going through a phase like the that is almost a right of passage for a non-tech founder.
I of-course chose to learn how to code to get on top of things.
I’m not saying you must code as well but it helps to speak the language and know some basic functionality of how things are working in the tech team so you can be part of the decision making there and understand what limitations are “truly” limitations.
When we’re starting out new, we founders often dont think of scale, agility, server loads etc. when we start, but we must. Immediately.
When you as a founder are set on turning your idea into a money making machine, you’ve got to cross the technology bridge sooner than you can spell “SOON” in the startup life.
The technology stack, popularly called the tech stack is an important factor of your success and customer experience. Can your website/app load in less than 3 seconds, does it optimize for mobile, can it handle thousands of users in parallel etc. are just the beginning of your worries here.
All this without burning a hole in your pocket and paying through your nose.
What is a Tech stack?
Tech stack is the foundation for your business’s web development. It comprises of stacking of basic elements or tools that aid in web development like platforms, programming languages, framework, etc. that are used to build your web or mobile application.
Please note that Tech stack is not the same as tool stack. Tool stack is teh set of software tools that you can use to solve specific needs and are created with programming languages themselves. eg CRM systems like Alore, Hubspot, Blog sites like WordPress. More on the tool stack next week ! )
In short the tech stack is similar to fundamental building blocks that build an application using software tools.
Tech stack technologies include the softwares and technologies used from development to the deployment of an application.
While developing a web application, the two important things are:
- Client-side programming
- Server-side programming
1. Client-side programming
The client-side programming consists of things happening in front end i.e. the activities visible on the screen ranging from User Interface to the functions the application does. It comprises of front end technology, style sheets and a scripting language mostly. Some of the front-end languages include
2. Server-Side Programming
The server-side programming comprises of the database programming of the application. The database has to be fast and accurate to render the information to the client side and hence it is very important in a web application.
Some of the popular back end frameworks include PHP, JAVA, RubyOn rails ROR etc and popular databases include Microsoft SQL Server, IBM DB2, and SAP Sybase ASE
Now that we know what tech stack is, let us move on to how to choose the right technology stack for your business website.
Here are some points that you need to consider seriously when choosing a tech stack:
1. Assess the software you have chosen
While choosing software for your web application, it is necessary to assess the software that you have chosen and determine if it would suit your requirements. A technology that is best for a social media platform might not be the best for your marketing website or blog. So know your requirements and choose the technology that will best suit your model. Say you plan to go for a web application then it would be better to go for ruby on rails, in case you want to accelerate the development process and deliver your app faster to the market then you can go for Python-Django, large amount of data can be handled by Hadoop. So at the end of the day, it is the requirement that plays the key role in deciding the technology for you.
Think twice about the security aspects about the technology you choose as it is crucial for any business. Any web application that is hacked once loses customer trust eventually losing the customers as well. Security leaks and database injection has always earned bad names to organizations. Hence it is always best to layout the foundation strongly.
3. Future scalability
Undoubtedly any organisation dreams of growing. Hence it is necessary to plan a solid road-map to growth. Your technology should be scalable and fast while you expand the business and be able to take the traffic. If your technology doesn’t grow along with you, then you might end up spending more on changing the technology and starting from scratch all over again. This will lead to loss of valuable time and money. Hence it is always better that a stitch in time saves nine aka choosing a scalable technology according to the goals of your business.
4. Choose an agile technology
We all know that development is a lengthy process and evolving one too. Waiting for the complete development of whole product will lead to waste of time and also delay in reaching the market. This is where agile methodology comes to your rescue. A small working portion of tour application can be developed and released to the market and updates can be pushed later on to it. That ways the time to reach the market will be reduced considerably. This will drastically reduce the possibility that you receive the product after the technology becomes outdated or after your competitors have gained a better customer base.
5. Long term technology support
Choose the technologies that are in the market to stay. Choosing a technology that isn’t long term will lead to unavailability of that particular technology support for you in the future that will hinder the growth of your application. Vendor support is a massive issue over the years when newer versions of software roll out or external environment changes e.g. data security laws etc.
6. Availability of skill
While choosing a tech stack it is necessary to consider a technology that has developers for it. A technology that is rare will end up in you paying more for the developer and also hunting for skillset as it gets difficult to find developers of a particular rarely used technology.
E.g. in e-commerce Magento is massively popular as an e-commerce platform with over 250,000 websites. Spree on the other hand is much smaller but as good. Now if you were to choose Spree, you need to ensure the availability of skilled professionals in your area who can work on the technology or are willing to learn.
7. Community Support
As a startup, technical support is necessary to fix the application. Your developers need to find the technology’s documentation and support online in order to successfully develop your application. And also a technology with larger community support has a lot of pre-developed coding thereby making it easier for them to develop the functionality and also deliver your product faster. Solving a problem in code and also adding new functionalities are lot more easily if you have a good community support.
Thankfully most of the open source technologies have great community support hence it will not affect the cost.
While you are evaluating a technology for a tech stack, it is necessary to check the maintenance areas of the technology, compatibility with other technologies and security considerations of the technology to avoid any mistakes while choosing the tech stacks.
Cost of technology is something that you need to think about as well. Eg. As a startup if you’re looking for a database you have the option of using Oracle which has decades of experience or the newer Mongo DB which is probably as good, newer and costs half the price. It depends on you what you want to choose and what fits your budget to need ratio.
The modern reality is that you might be selling software online or peanuts, if you don’t have a web-page(read technology footing) you will be a sort of headless chicken. You just have to know some basics right.
Would love to hear from other non-tech founders on what problems they encountered in their startup journey.