Technical skills to break into product management
You don’t need a background in engineering to be a product manager. You also don’t need to know how to code to be a product manager. But there are certain technical skills that can help you succeed as a product manager. Fortunately, these are easy enough to learn.
I was a product manager before I got an MBA, and continued in product management after my MBA, so that’s the lens I’m coming from. Based on my 3+ years of being a product manager for both consumer and enterprise tech companies, here are the skills I find most useful and relevant
Understanding the building blocks of an application
Familiarity with APIs and API structure
Understanding the software development process
Understanding common developer terminology
Learning how to collect and analyze data
Understanding the building blocks of an application
Applications have gone through various evolutions over the years. We’ve had web-based apps, mobile apps, hybrid apps; however architecturally, the foundation remains largely the same.
I found this diagram of a typical software stack that I think encapsulates most of what you need to know for software product management. This might vary slightly from app to app, but going into interviews or starting a new role with this basic knowledge will certainly help. I’ve used StackShare in the past to see what software tools and technologies popular applications are using today.
Image credit: https://www.upwork.com/hiring/development/choosing-the-right-software-stack-for-your-website/
The main components are
Client (frontend): the interface through which the software is consumed
Web server: the layer in between that handles all the requests going back and forth from the client to the application server (or backend)
Application server (backend): where the magic happens to take user inputs from the client and generate useful outputs to send back to the client (or frontend)
Database: the backbone of every application where data is stored
Familiarity with APIs and API structure
An API or application programming interface is basically a framework used to communicate with an application. Each application has its own set of APIs, the skeleton of which tends to be common across applications. You can think of it as different languages with a common grammatical structure.
APIs run on web servers and help send and retrieve information between the frontend and backend.
Each API request uses an HTTP method. The most common methods are GET
, POST
, PATCH
, PUT
, and DELETE
.
GET
methods retrieve data from an API.POST
sends new data to an API.PATCH
andPUT
methods update existing data.DELETE
removes existing data.
You also need to authenticate to an API by passing an authentication token or key. This is to control who gets access to the APIs and limit requests being made.
All of this starts to make sense when you actually play around with an API. Most applications you use and love likely have simple APIs you can play around with (Twitter, Goodreads, Instagram). Postman is a my favorite tool to try APIs and look at outputs.
Understanding the software development process
There’s many styles of software development like waterfall, agile and scrum. Waterfall is a sequential method of building software that is typical in industries that have long development cycles (two years or more), like semiconductors for instance. Most other software companies typically follow an agile workflow releasing new features every day or every month. There’s resources you can find online to learn more if you look up software development methodologies.
Understanding common developer terminology
If you know how the software stack backing an application works, are familiar with APIs, and understand the software development process, over half the battle here is done. There’s other terms you pick up as you work with developers, but if you want to get a headstart, here’s a glossary of terms from The Software Guild I see and use a lot.
Learning how to collect and analyze data
Every application generates data, and companies today won’t let any data go to waste. Depending on what you’re looking to measure, user and system generated data gets collected and visualized by tools like Google Analytics and Mixpanel. Some companies have their own proprietary systems as well. For example, Zynga, a gaming company, is truly data-driven with the most robust analytics system I have seen till date.
I would suggest playing around with Google Analytics (free, easy to use) to understand how data gets collected and what metrics are displayed. Terms like retention, engagement, active users, conversion are all metrics you will constantly refer to as a product manager.
For proprietary/internal systems, learning basic SQL commands can be a godsend when you don’t want to bug an analyst for something quick you could pull up yourself. I learnt SQL on the job as a software engineer after hours spent on w3schools.com but it has served me well and I have no regrets.
Experimentation is an extremely valuable tool for product managers. When different stakeholders like engineering, marketing, sales, and product have different opinions about a feature – an experiment is the surest way to prove who is right and who is wrong. A/B tests are commonly used for this. What is an A/B test? How do you design a good experiment by choosing the right control and treatment groups? How do you decide if an experiment you’ve run has produced statistically significant results? Optimizely, a platform used for A/B testing has some good material about this.
Finally, surveys are a great source of qualitative data, however designing a good survey is actually an acquired skill. Asking the right questions, in the right order can make a huge difference to the quality of the results. There are a ton of resources about how to design effective user surveys out there so I don’t have a specific recommendation here.
Things you don’t need
Coding bootcamps
Certifications
Like what you just read? Subscribe for more.