This series of articles demystifies marketing myths and
jargon for software product design and MVPs.
Here is the summary:
After the product design and MVP specifications, our next step is
the design and architecture of the technological Stack.
This is the technical part of a digital product. Even if technical,
it is complementary to the business plan and is an important factor in the
success or failure of a digital product.
Let's start by defining the term Technological Stack. You will often
hear this word used as a shortcut by technicians. It represents the
different technologies used in the development of any digital
What a technological Stack is
In our context, "Stack" is a buzzword that generally means the architecture of software.
In order to understand where this word comes from, let's look at how
digital products have been developed in the past. The "Digital Product" is
also a buzzword that means "software".
I will use the following definition of Bret Victor :
Software is software that operates in a machine and interacts
with humans through a human-machine interface: such as a mouse, keyboard,
monitor or touch screen.
Machines do not understand human language, they only process bits of
0 or 1.
The programmers who developed the software needed to somehow
translate the human requests and interactions into 0 and 1 so that the
machine could process them.
Since speaking in a language of 0 and 1 is very painful, software
developers have simplified it by using an abstraction layer. They use a language closer to
humans when they speak to machines. This layer of abstraction and translation is a layer in the Stack layers.
And that's where the term Stack comes from today.
On the principle that we are developing something useful, everything
that involves software operations should be reused to build even more
interesting things. In the same way as cooking, as soon as you know how to
prepare a sauce, you use it to cook more elaborate recipes.
When a set of features solving the same problem is grouped together,
it creates a layer of software, which can
be used to build more complex software. These software layers are stacked
to form the technological stack of your digital product.
Software architecture is the
activity of searching and choosing the right layers of software to build
When you're looking for a “Full Stack
Developer” you mean a developer who can work on each layer of
In the initial phase of product design, all digital products need
the software architecture. I will try to summarize the different layers
involved in the software stack of an MVP these days.
These parts are managed by the following layers:
Data through the database
Data processing is managed by Back-End or Server programs
Communication with other software programs is done by the
Services and APIs
The back-end stack is located on an
Infrastructure Server or the “Cloud”.
The Front-End presents a
User Interface to the people who use
The work of the software architect, the one who has the CTO position
in the company, is to search, choose and put together the right
technologies for each layer of the Stack.
At each layer, the software architect must evaluate the situation
and make decisions according to the following criteria:
The relevance of the technology
to quickly solve the problem.
What are the prices and how do
they align with the business plan?
What is the size of the company
and the cost of support?
How easy is it to hire
How easy it is to maintain and update.