We’ve discussed many times the importance of a thorough design process, but once you’ve designed your product, how do you choose the best technologies to build it?
A technology stack is a term used to cover the collective programming languages, frameworks and tools used by developers to create mobile and web applications.
We often think of an application as being split into two main components: The front end and back end (or sometimes the client-side and server-side). A stack is built from layering one application on top of another. This is built using a combination of code, generic and specific modules.
Get our free book
Design strategy for business leaders: an executive guide to commercially successful designLearn more →
A technology stack can contain many different layers of elements that allow developers to create software solutions.
Tech stacks are usually managed and built using many tools. It is important to choose a tech stack with tools that work with you and that you don’t have to fight with while building your project.
Sometimes there isn’t a right or wrong answer from a technical point of view, so if you don’t like a particular tool, then choose a tech stack with a reasonable alternative that performs the same function but that you are more comfortable with.
Making the right choice
With such a choice of technology stacks available, it can be easy to become confused when choosing the right one.
More often than not, someone will choose a stack simply because it is either the newest or it is the easiest to learn for their development project, but they cannot be sure it is the best choice.
Sometimes the criteria for selection will be a tech stack that developers are already familiar with because they would have worked before with the tools and languages it contains.
As time has moved on, new tools and technologies have been created, meaning it is really important that you choose the right technologies for building your project.
Some of the factors you should consider when reviewing your technology options are:
- ease of use
- features and limitations
- cross-platform compatibility
- ability to integrate with your other technologies and processes
- security and maintenance required
- performance and speed
- availability of support and problem-solving
Project developers these days have to build something more. The need to create something that has flexibility, scalability and security that meets the requirements of the project but is also future-proof.
It’s also important to remember that your choice would also impact other aspects of your business, including finance, marketing and HR.
The anatomy of your technology stack
Before choosing your technology stack, you should carefully consider all the factors you need for your web or app project. Your decisions should be tied into your overall digital strategy.
You will need to understand all of your requirements to be able to make the right choice. It can help to look at different tech stacks in use by others today to give you an idea of which tools and elements would work for you.
While it may feel safer to stick with time-proven and familiar technologies, don’t close off your mind to new developments that might better enable to create a stack with more scalability and higher functionality to give you an edge over your competition.
Here is a list of some of the available tools and frameworks currently combined and used in a tech stack:
The front end is the client-side of your application where the interaction with your user happens. Interactions will happen through the website or web app or mobile app, depending on what is being used.
The three main technologies used in the front end are:
- HTML (the markup language)
- CSS (the style sheet)
So, as one possible example, your front end might consist of these elements:
Middleware consists of web servers, application servers, content management systems, and other tools that act to support app development and delivery.
Your middleware is your sandwich filling or the glue that holds the front end and the back end together. Sometimes written in Java and C#, middleware manages the communications and data between the layers of the stack and acts as the translator layer that connects the two applications together. Middleware technologies include TIBCO, CICS, Virtia and MQ.
An example of your middleware could be:
The server-side or backend often consists of a server, an application – OS, Web server, Programming language, Web framework – and a database.
It is the backend that responds to user requests and actions simple operations such as accessing the database, read, update, create and delete etc.
So your backend could consist of:
- MongoDB – if PostgreSQL is not used
- Solr – if search is needed
- Some message bus – RabbitMQ, ZeroMQ, or Redis
Consider your type of project
The type of project you are working on will also determine which stack to use. For example, a small project with a short deadline would only need the simplest of technologies, such as CMS or WordPress. Whereas a mid-range project would need a more involved approach using a combination of programming languages such as Java and C# to provide the developers with a variety of functionalities and better integration across different platforms.
More complex projects may involve developers in creating web apps with several functions. Here they would choose to work with different web technologies and several programming languages. You would also need to pick technologies that are easily testable as your project may call for Test Driven Development (TDD) to ensure the highest quality and speed.
While it is always important to keep quality front and centre to ensure you do everything properly, the technology you use isn’t the only thing that matters. Before you go ahead with your project, make sure that you have the right design in place that perfectly meets with the requirements of your target audience.