How Technical should you be as a Product or Program Manager?

How deep will you dive? Whether you are a PM (product/program/project/release manager), a question that always comes up is how deep into the technical details of a software solution do you have to dive to be useful.

How technical should you be?

One of Amazon’s 14 leadership principles is to dive deep. And when I was at Amazon, a common refrain I would hear from teams was that, as a technical program manager, I need to dive deep into how the software systems we own operates. But how deep is deep? Should I write code? Understand happy path sequence diagrams? In fact, if you generalize this question, it becomes a variant of the popular question: how technical should you be to become an xM (where xM could be release manager or project manager or program manager or technical program manager or product manager or technical product manager)?

The answer: It depends.

Your technical depth of understanding depends on the role you take and the needs of your team. The table shows a 6-level taxonomy of the technical depth you have to achieve for each of these roles. Level 1 is the least technical and level 6 is the most technical. And every job family to which you belong must also understand the levels above it. For example, if you’re a Product Manager, you have to be at a level 2 understanding but must also have a level 1 understanding. But if you’re a Product Manager – Technical, you’re at level 3 but must also understand the technical details at levels 1 and 2.

Level Technical Skills Release Manager (PM) Project Manager (PjM) Program Manager (PgM) Product Manager (PM) Product Manager – Technical (PM-T) Technical Program Manager (TPM) Super-TPMs Software Development Manager (SDM) Software Engineer (SE)
1 Ask basic questions: who, what, where, when, why and how
2 Understand the happy path scenario
3 Understand the unhappy path scenarios and edge cases
4 Understand the data that is being exchanged between services
5 Read code to understand where to locate system responses
6 Write and review code

Note that this is my personal taxonomy that I developed based on other people’s experiences and my experiences having spent two decades in the IT industry as both a telco engineer and a PxM (project/product/release/program manager). By the time you’re done with this post, you’ll be able to do two things:

  1. Audit the depth of your technical expertise on one specific software system with 16 universal questions so you’ll know your technical depth
  2. Ramp up quickly to achieve a technical understanding within a matter of days for the level you need to achieve. By searching for answers to these 16 universal questions, you’ll quickly ramp up to the level of understanding you need.

The philosophy behind the 6-level deep dive framework

When I first joined Microsoft Azure a long time ago, I asked my manager the usual question: how much time will you give me to deeply understand the end-to-end software systems owned by his engineers. My manager’s answer was intriguing: “If you were a principal technical program manager (TPM), I’ll give you one month. But since you’re only a senior TPM, I’ll give you three months.”

When I asked him what principal TPMs do that allow them to achieve a deep technical understanding 3x faster than senior TPMs, his answer was just a general “They have more experience in this field.”

And this was a deeply dissatisfying answer.

We have all worked with principal PMs or TPMs. Yes. They do have a MUCH deeper insight and are technically more knowledgeable. And yes, they ramp up MUCH faster on new systems. But I didn’t find their memory to be spectacular or that they had more years of experience than me. In many cases, I found principal PMs and TPMs to be younger than me. More often than not, I had more years of experience in the field. So what was the reason for the difference?

Found the answer in a Netflix documentary titled “Inside Bill’s Brain.” Yes, this is a documentary on Bill Gates, the Microsoft founder and, once upon a time, the world’s richest man. What was extremely interesting was a point that Gates made on how he reads 50 books a year. He doesn’t just read a book. But rather he has a mental model or framework of questions that he asks as he reads the book and then makes notes on the side. Similarly, when talking to principal PMs and TPMs, I find a similar pattern. They have a mental model, essentially a set of questions and rules they follow on how they think. In other words, it’s a software upgrade of how they think rather than a hardware difference (super-memory, high IQ, years of experience). This is my summary of the 6-level mental model to follow if you too want to think like a principal and not a junior or senior PM to learn rapidly.

This deep-dive framework proposes a systematic way for understanding software systems (end-to-end) by asking questions that apply universally to all systems. BUT, these questions do NOT apply to stand-alone components such as services or AI models (both machine and deep learning). A separate deep-dive framework, also using a five-level structure, will be presented in a future blog post for specifically understanding and improving deep learning models.

How to rapidly understand software systems

TPMs have different methods for ramping up on new software systems i.e., the technology circle that forms the trinity of process-people-technology. Some take the machine learning algorithm equivalent of lazy learning: i.e., rather than drowning in documentation details, they wait for a problem to occur in a system and then learn everything needed to solve that problem. However, this just-in-time learning method is slow and takes months to fully understand a system and leaves knowledge gaps.

Others, usually principal TPMs, use the eager learning algorithm: i.e., pre-emptively learning about a system by asking general questions to rapidly understand a system.

The framework proposed here is the latter mental model for quickly ramping up on understanding the technology circle of the people-process-technology trinity. And within this tech circle, the focus is on understanding end-to-end systems rather than focusing on stand-alone components. Success metrics – understanding calculations, metrics dictionary, etc. – is part of the process circle which is why they’re covered in very little detail in this framework.

The goal is to provide a systematic way  for TPMs to understand new software systems in hours or days. And it also provides a systematic way of identifying gaps in understanding instead of discovering it weeks or even months later. Admittedly, there will always be details discovered later. But the hope is that those countless details will won’t be buried in a mental junk drawer. But rather will be neatly hung on six mental hooks.

If half of knowledge is to ask a good question, then this framework implements this proverb to achieve a deep, end-to-end understanding by asking general questions to the responsible engineering and science teams. While answers to some of these questions may be available in documents, most answers will be found in the heads of the scientists and engineers. Typically, answers to questions in levels 1, 4 and 5 are readily available. But answers to questions in levels 2 and 3 are still in the heads of the stakeholders (scientists and engineers). Which means that you will have to conduct multiple interviews with them to extract answers.

No software systems framework will be comprehensive enough to cover all possible use cases. Moreover, this taxonomy is a simplified model of messy reality. I’m sure there are more realistic but complicated frameworks. But a simple, useful framework is more helpful than a complicated, realistic framework. Take the example of the simplified model like the 24-hour solar day. An accurate model of a day is actually the sidereal day which is 23 hours and 56 minutes but try splitting up a day into 24 equal chunks! It’s more useful to use the simpler solar day of 24 hours and let the missing four daily minutes be added to a leap day, Feb 29, every four years.

Similarly, this six-level taxonomy doesn’t have to be perfect for it to be useful. This framework provides enough principles, in the form of 16 questions, to quickly flesh-out details for most systems. Given this useful model, a TPM should be able to write a 2-pager documenting the answers to all these questions and present it to his peers in less than a week after being introduced to a new system.

This DDF-S (Deep Dive Framework for Systems), when presented to your peers, will act as a forcing function to ensure that you truly understand the system you are supporting. And when systems change, as they always do, the DDF-S will serve as a living doc or a map for TPMs to reference.

What are the questions to ask at each level?

Which is what ties the question we started with – how technical should I be – to the second question of how do I ramp up as quickly as a principal PM or TPM. The depth of understanding you choose to dive to depends on your strategy on where and how you’ll compete. Where will you choose to add value to the teams you support? What will you choose to do and what will you not do as a TPM, for example, to create more value for your team?

I’ve tested this framework multiple times on both myself and others to see how quickly I can ramp up on a new software system. I’ve filled the table with sample checks to give you an idea. But remember, learning by reading and doing is more powerful than reading alone. Test this framework by seeing how many questions you can answer for the system you support and thus identify your technical depth.

Table 1: Deep Dive Framework  to Audit TPM’s End-to-End Understanding of Software Systems

Level Category # Questions to Ask System (e.g., Netflix)
xM = your name here
1 OVERVIEW 1 What is the purpose of this system?
2 Why is this system important (i.e., what’s the vision)?
3 Who is responsible for this system (i.e., which team)?
4 Where does it exist in the ecosystem (i.e., architecture)?
5 When was this system launched?
6 How do you measure success?
2 HAPPY PATH 7 What are the goals for this year for this system?
8 What is the happy path call-flow for this system?
9 Where are these services hosted?
10 What is the RTT (round-trip time)?
11 What configuration is currently used?
3 SCENARIOS 12 What are the different scenarios that could occur?
13 Who are all the customers?
4 DATA 14 What data is exchanged during transactions?
15 What infrastructure is used for each service?
5 CODE 16 Where is the code located for the system?

Legend:

  xM (PM or TPM) can answer question and has documented it in the DDF (Deep Drive Framwork) doc

 xM can partially answer question or still needs to document it

  xM can not answer question

What are the levels of the deep dive framework for systems?

A typical question asked is how deep should they dive into the details of a system. An xM typically drowns in the details of a system when learning about a new system and these six levels should provide the hooks where all other details can hang. Note that you will only care about the first four to five of these six levels if you belong to any of the xM job families. The sixth level is provided just as a reference to complete the entire framework.

Level 1: Overview (Wading Pool)


This level of understanding is good enough for a program manager but not a TPM

  • Ask basic questions: who, what, where, when, why and how
  • Understand high-level architecture

Engineers typically have answers documented for most of the level 1 questions and all of the level 4 and 5 questions. However, parts of level 1 and all of level 2-3 questions tend to be in the minds of engineers or documented only partially. Project managers, release managers and program managers typically stop at this level because of the vast number of projects they have to juggle. They really don’t have time to dive any deeper than level 1.

Level 2: Happy Path (Fun Pool)

Now you’re proving that you deserve the “T” in your  TPM title

  • Understand the happy path scenario
  • Understand hosting info for services (platform name, location, latency)

Note that levels 2 and 3 focus on call-flows (aka UML sequence diagrams) rather than architecture diagrams of systems because there is a LOT of info that is packed into architecture diagrams. For a level 1 understanding, architecture diagrams are good enough. But for a level 2 understanding, they need to be unpacked into flow-charts and call-flows as happy path and unhappy path scenarios.

Level 3: Scenarios (Lap Pool)

You are now swimming with engineers 

  • Understand the unhappy path scenarios and edge cases
  • Learn who uses these services
  • Identify tools to troubleshoot issues

At this level, engineers will probably trust you to represent them in meeting without their presence.

Level 4: Data (Diving Pool)

You really deserve to be a TPM if you can dive into this level of detail with engineers

  • Understand the data that is being exchanged between services
  • Understand the physical infrastructure that hosts these services
  • Execute scripts & code snippets (non-prod or customer facing) to extract user level data

TPMs usually only have to dive as deep as level 4. TPMs should stop where engineers start i.e., engineers operate from level 4 to 6. At this level, you are able to bring value to engineering discussions on system changes as well as troubleshooting issues with little or no support from engineers.

Level 5: Code (Scuba Diving)

Some groups need TPMs to dive deeper by getting into code but this is rare (out of scope for most TPMs)

  • Identify where code is located
  • Read code or skim through it to understand where to locate expected responses

Diving to this level is now reaching a point of diminishing returns for TPMs: with some groups this may be useful but in most cases, you don’t increase anyone’s confidence by stating that you read the code for a service to troubleshoot issues.

Level 6: Engineering (Deep Sea Diving)

You’ve dove too deep if you’re writing and reviewing code with engineers (out of scope for all TPMs)

  • Write code for services
  • Review code

At this level, you definitely are no longer adding any value as a TPM or any xM job family. You have limited time every week to keep up with everyone and becoming a software engineer is not what you were hired to do.

Please do leave your feedback on whether this framework helps to both audit your technical depth of understanding and to identify gaps in understanding. I would also be interested in hearing of whether there are universal questions that you ask that is missing in this model.