As a product manager, you’re constantly bridging the gap between business and engineering.
If you have a technical background, you’ve attained the Holy Grail in the world of product management. This allows you to make better decisions, make more accurate estimates and communicate with engineers with confidence. What’s more, in the age of AI, understanding the basics seems ever more so needed.
So, this is everything they should have taught you in business schools so you could be the best product manager ever:
1. Application architecture
- The client is your website or app that’s used by the end user.
- The server processes requests from the client.
- The database is your permanent storage of data.

Source: Lenny’s Newsletter
Your client communicates with your server through an application programming interface, or API.
2. APIs
Web APIs facilitate the interaction between a database and a client so they can communicate with one another: the API acts as an intermediary.
For example, let’s say you want to order a ride through Uber. Uber needs to estimate the travel time and give you a means of payment. For that, the application uses services provided by third-parties : Google Maps’ and Apple Pay’s APIs.

Source: Openclassrooms.com
So does that mean the API is a server ? Well kind of. The API is the server’s front door – it’s the set of actions that are available to clients. The API (hosted on a server) will either process the request itself or pass it downstream to be processed.
The API is available through a URL called an endpoint and comes with documentation. Here is the list of the most used APIs on the web:
You should know there are 3 types of APIs:
- SOAP (Simple Object Access Protocol):This is a legacy design, still used mostly in health care and financial services.
- REST (Representational State Transfer):This is the most popular design pattern.
- GraphQL:This is a newer design created at Meta, most commonly used in private APIs within your own application. It uses the same request types but in different ways.
RESTful APIs are the most common ones and they support many requests. We’ll focus on GET and POST requests.
- GET requests
GET requests basically get stuff. Every time you open a web page, your browser sends a GET request to the server at the URL you’ve entered and the server returns some content to be rendered.
- POST requests
POST requests are used to submit new data to the server. For example, when a user uploads a document to the server, the browser sends a POST request and includes the document in the body of the POST message.
3. Software development lifecycle
3.1 Definition
Software engineers use the software development life cycle to plan, design, develop, test, and maintain software applications. There are 7 phases:
a) Planning: Project goals, objectives, and requirements are gathered and documented during this phase.
b) Feasibility Analysis: During this phase, the project team evaluates whether the project is technically and financially viable
c) System Design: It includes creating the software’s architecture and design.
d) Implementation: Where the actual coding takes place based on the design specifications
e) Testing: The goal is to identify and fix bugs, ensuring the software operates as intended before being deployed to users
f) Deployment: Once internal software testing is complete, the solution can be deployed to end users.
g) Maintenance: Even after the software is deployed, ongoing support is necessary to address issues, apply updates, and add new features.
3.2 Models
Different software projects have different needs, and various workflow models exist to accommodate these needs
a) Waterfall model
The Waterfall model is a linear approach to software development in which each phase must be completed before the next one begins. Each phase is based on the assumption that there were no errors in the previous phase.
This model is ideal for smaller projects; however, its inflexibility makes it challenging to adapt to changes.
b) Agile model
The Agile methodology takes a flexible, iterative approach to software development. It emphasizes collaboration, adaptability, and customer feedback, with development occurring in small, incremental cycles called « sprints. » The Scrum framework is the most popular approach to implementing Agile principles.
c) Iterative model
The Iterative model divides the project into small, manageable parts (iterations), and each iteration produces a working version of the software. After each iteration, the software is tested and refined based on feedback until the final product meets all requirements. It’s more rigid than the Agile framework, which combines both iterative and incremental methods during the development phase.
d) V model
The V-Model focuses on testing at each stage of development, emphasizing verification and validation. This model ensures that issues are identified early, but it can be cumbersome if applied to complex projects that require frequent changes.
e) DevOps model
The DevOps model aligns the development process with operations and puts more stress on continuous integration to speed up the process of deploying software delivery. It’s a method for establishing collaboration and cooperation between developers and operations staff so that they can work together in every project phase throughout its lifecycle. Tech giants such as Microsoft, Google and Amazon (AWS) work in Devops.
4. Scaling & System Design
Almost every successful business needs scalable software, meaning it needs to grow with your company.
Scalability refers to a system’s ability to handle increasing workload or demand without compromising performance. It can grow either vertically (more power per server) or horizontally (adding more servers).
Some systems also use diagonal scalability, which combines both

Source: Medium
These are the factors to consider to build a scalable solution:
a) Architecture
A monolithic application is built as a single unified unit while a microservices architecture is a collection of smaller, independently deployable services.
To make a change to the first application, it requires compiling and testing the entire platform.
Microservices, on the other hand, consists of units that run independently, each service can be developed, updated, deployed, and scaled without affecting the other services.
However, they are by no means a silver bullet as they come with their level of complexity.
It can be challenging to determine how different components relate to each other, who owns a particular software component, or how to avoid interfering with dependent components.

Source: Microsoft
b) Tech Stack
Today, almost all modern frameworks, databases, and programming languages support scalability to some degree. When we are talking about scalability in software development, it’s more important to focus on the quality of the code.
Clear and readable code that is easily updated is essential. The fewer the lines, the more scalable it is. This also refers to repeating parts. The code should be re-used, not duplicated.
c) Hosting
The choice of hosting has a greater impact on scaling than the choice of the stack. Hosting, to put it simply, is where your website or your app lives. Generally, you have two options:
- On premises-hosting: A business uses its own computers and servers to store and run software. This type of hosting is less flexible and more expensive, but for some businesses in highly regulated industries it’s a wise choice. On-premises hosting may provide better security and control over servers and backups in some cases, but it may significantly limit scalability.
- Cloud hosting: A business uses third-party services. Having software housed off-site means it’s monitored and maintained by the hosting supplier, which eliminates the need for an in-house team and the purchase of extra hardware. Plus, a cloud offers unlimited scalability since you aren’t held back by bandwidth, storage, or the computing power of on-site servers.

Source: Microsoft