# Essential Technical Knowledge for Product Managers
Written on
Chapter 1: Introduction to Technical Skills for PMs
When it comes to technology, many Product Managers (PMs) often feel overwhelmed by complex jargon and concepts that seem distant from their everyday responsibilities. This article aims to clarify the key technical topics that PMs should grasp, including:
- Code Base Fundamentals
- Software Architecture
- Version Control and Releases
- Internet Basics
- APIs
- Webhooks
- Cloud Computing
- Non-Functional Requirements
Understanding the Code Base
The code base can be dissected into four main components: Front End (FE), Back End (BE), Database (DB), and Gateway (public APIs).
The Front End represents the user interface of an application—everything users see and interact with, including web pages and mobile apps. It encompasses aspects such as layout, style, and responsiveness across various devices. User experience hinges on both responsiveness (how well the interface adapts to different screen sizes) and performance (the speed at which the application responds to user inputs).
Conversely, the Back End is the behind-the-scenes part of the application, where validations, logic, and algorithms operate to deliver the desired results to the user. It is responsible for fetching data from various sources, and its quality is judged by its code clarity and maintainability.
The Database Management System (DBMS) is where all data resides, including user information and stored procedures. Stored procedures are predefined queries that manage data manipulation and retrieval, ideally devoid of any business logic to maintain separation of concerns. The effectiveness of a DB is evaluated based on its availability and throughput.
The Gateway, or public APIs, facilitates interaction with external systems. Companies provide these APIs to allow third-party integration with their offerings. The quality of an API is often assessed through its security and performance.
To illustrate how these components work together, consider the Google Search engine. When a user enters a search query, the request is processed by the backend, which interacts with the database to retrieve relevant results. The frontend then formats this data for user consumption.
Software Architecture
Software architecture refers to the structural design of a system, detailing its components, interactions, and operational environment. The design plays a crucial role in various aspects, including cost efficiency, user experience, security management, readability, and maintenance.
There are two prevalent architectural styles:
Layered Architecture: This style organizes components in hierarchical layers, allowing interaction only with adjacent layers, enhancing testability and maintenance.
Microservice Architecture: This approach breaks applications into independently deployable services, making it easier to add new functionalities without disrupting existing services.
For a comprehensive understanding, consider exploring other architectural styles like event-driven and peer-to-peer architectures.
Version Control and Releases
Version control is essential for tracking changes in software code, ensuring all team members work with the latest version and enabling simultaneous collaboration on the same project. Releases refer to the distribution of the latest software version, which can be either public or private.
Internet Fundamentals
The internet connects various devices, from computers to smart appliances, through an Internet Service Provider (ISP). All devices fall into two categories: Servers, which store data, and Clients, which access that data. Each device has a unique identifier, such as a URL or IP Address, enabling seamless communication.
For instance, when you watch a video on YouTube, your mobile device sends a request through the ISP to the DNS server, which translates the URL into an IP address to locate the YouTube servers.
APIs
APIs act as intermediaries that facilitate communication between two systems. For example, in the Google Search scenario, internal APIs enable communication between the frontend and backend, while external APIs allow integration with other services.
REST is the most commonly used API standard, providing guidelines for universal understanding and supporting various data formats.
The key components of an API request include:
- Endpoint: The URL to access the API.
- Method: Defines the action (e.g., GET, POST).
- Headers: Contains metadata about the request.
- Body: Carries additional data.
API quality is often determined by its authentication, throughput, and latency.
Webhooks
Unlike APIs, which require requests, webhooks are event-driven, sending data from the server to the client automatically when specific events occur. They exemplify one-way communication.
Cloud Services
Cloud services simplify access to technology over the internet, eliminating the need for traditional hardware installations. They can encompass infrastructure, platforms, and software, enhancing flexibility and accessibility.
Three major players in the cloud services arena are Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP).
Non-Functional Requirements
Non-functional requirements (NFRs) specify criteria to evaluate system performance, distinct from functional requirements. Key NFRs include:
- Performance: How efficiently a system performs tasks.
- Security: Protecting data both at rest and in transit.
- Scalability and Load Balancing: Managing traffic effectively during peak times.
- Routing: Ensuring data travels the optimal path.
- Monitoring and Alerting: Keeping track of system status and notifying stakeholders of issues.
For deeper insights into any of these topics or to discuss additional essential tech skills for PMs, feel free to share your thoughts in the comments.
If you found this article informative, consider supporting my work or connecting with me on LinkedIn for more insights on Product Management.
Chapter 2: Key Technical Skills for Product Management
In this video, we delve into the essential technical skills that every product manager should be familiar with to excel in their role.
This video outlines the critical technical skills necessary for effective product management, providing valuable insights for both new and experienced PMs.