Here’s a detailed list of technical terms for new product managers. Things to know to work with engineers with confidence.
I am aware that fresh PMs with non-engineering backgrounds may find the use of technical jargon to be a little intimidating. I believe that this should cover “80/20” of the information a software PM has to be aware of. Please leave a comment below if I’ve missed anything so I can update this list.
API:
Think of a power outlet. It’s an “interface” that lets you draw power from the electrical system. An API (application programming interface) is an interface that allows user interfaces to fetch/save data and process commands for an application. E.g. The Gmail API allows you to send an email on behalf of an account so different email clients can use this functionality.
build pipeline:
a digital conveyor belt where code gets built into an application and tested for quality assurance before publishing it and making it live for users
architecture:
the technical design behind a system that uses a specific set of technologies and trade-offs to achieve a particular user experience
backend:
The set of technologies of an application that are non-user facing. It processes commands and queries for a user interface.
Branches:
Allow engineers to work on different areas of application code without impacting the main branch.
bug:
An instance where the code is not working as expected
client side:
Any code that runs on the browser. All user interface code like buttons and screens run “client side” on a browser. Client side code will have limited processing power depending on the user’s laptop specs.
cloud service provider:
They provide engineers technologies to build applications like servers and databases. Engineers use them because running and maintaining physical hardware for these technologies is costly and tedious. Popular ones are Amazon Web Services (AWS) Google Cloud (GPC) and Microsoft Azure (Azure).
deployment:
When a new version of the application/code gets published.
environment:
Separate versions of the same app that get published to different URLs. A production environment is the version that’s available for users. A staging or test environment is where the app gets tested before being published to users. Local or development environment is the version of the app that an engineer tests on their computer before publishing it to staging and production.
feature flag
:a switch in a code base that allows a product team to turn access for a feature on or off for a selected number of users. E.g. features are published “behind” a feature flag for a group of users for beta testing.
framework:
A common collection of code that engineers will use to build an application quickly. If engineers didn’t use frameworks, they would have to build tools from scratch. It would be a bit like a house builder manufacturing hammers and nails from scratch every time before building a house.
front end:
The part of the app that is user facing that the user directly interacts containing screens and buttons.
Git:
A version control tool engineers use to save and merge different version of the same codebase. It’s a bit like if a group of PMs were editing the same doc at the same time. You would need a tool to reconcile the conflicts and differences.
Github:
Google docs for engineers. Where the team commonly publishes and download their code.
infrastructure:
the lego blocks for building products like severs, databases, storage etc.
logs (logging):
Information that your app generates about its behaviour like how many bugs it’s experiencing or how fast or slow the app is
Pull request (PR):
A way for your developers to submit code to a repository for review before merging it.
refactoring:
When some messy or incoherent code gets tidied up so it’s more comprehensible without changing the app’s core functionality
release:
when a deployment (a new version of the app) is made available to users
repository:
A folder in github containing code for an application. E.g a “repo” for front end and backend
server:
A computer that will contain the code for a website or application and process requests for users using browsers
technical debt:
When there is a bunch of code that is janky in functionality or has a sub optimal design or messy to read and comprehend. Engineers “pay down” tech debt otherwise the code becomes too unruly to make changes easily without inadvertently breaking things
unit testing:
Automated tests that engineers write to verify the app works as expected. This allows you to know something isn’t broken quickly without manually testing the interactions yourself
Was there any tech jargon early in your PM career that you felt too awkward or scared to ask about?