The “T” in TPM is very crucial and differentiates TPMs from other types of program managers. TPM is a technical role where individuals work with multiple technical teams.The technical skills form the foundation of the TPM core skills.
If you come from an engineering background, it is often easier to transition into a TPM role. The audience for this article are primarily folks who are coming from non-technical backgrounds, hold non-technical roles in the tech industry or haven’t utilized their tech education in their past experience. Many of you requested me to post about this topic.
How Technical Should A TPM Be?
This is a common question that comes up. The answer depends a lot of the definition of the role within a team or company. Big "T' vs little "t" is often used to differentiate the strength of technical skills required in a role. TPM's work with technical subject matter experts on a daily basis. While most TPMs are not required to code or do programming if they are in the softwware industry, it is important to understand the technical architecture and system in order converse with technical folks easily. Being technical adept also helps build credibility with engineering teams. TPMs drive technical execution, which will suffer if a TPM is lacking on the technical axis. So, focusing on TPM Skills Development is crucial for success in this role. Of course, there are more skills required to become a successful TPM.
Here are some ways aspiring or rookie TPMs can strengthen their technical skills and expertise. Keep in mind that you have to put in a lot of hard work building the “T”. I can assure you that it will pay off in the long run. The TPM salary bands are usually higher than a non-technical program manager and there are more opportunities for career growth.
I have mentored many aspiring TPMs who navigated the path to technical program management successfully by developing technical expertise.
Take Relevant TPM Training Courses
There are many online sources like LinkedIn where you can learn some basics about new technical skills. If you are in the software industry, take a programming course like Python to understand the fundamentals or learn about SQL. You can also take specialized courses on AI or Machine Learning. Some courses can be good for building conceptual knowledge without having to learn programming. If you intend to stay in your current field, get advice on which courses are best from your technical peers. Some other resources that you can take advantage of are Programming Interviews Exposed, Decode and Conquer, Cracking the PM career, Machine Learning by Andrew Ng, Designing Data Intensive Applications.
Learn From Technical Peers
Sometimes, learning can happen best by connecting 1:1 with a peer. Engineers are often excited to share their technical knowledge with someone who is willing to learn. Ask them to explain/draw the system workflow or architecture. Ask questions if you don’t understand something. Talk to multiple folks such as engineers, TPMs or architects so that you get a different perspective from each.
Understand System Design
It is important to understand the end to end system design as it is a key part of TPM interviews. Furthermore, as you TPM an engineering program, having the knowledge of how the system works will help you do your job better and enhance your technical skills.
What is System Design?
Systems design is the process of defining the architecture, product design, modules, interfaces, and data for a system to satisfy specified requirements. Systems design could be seen as the application of systems theory to product development [1].
There are a couple of ways you can strengthen your technical judgement on designing good systems.
Dig into the systems in your existing company even if you are not in a technical role. For example, if you are a business analyst in a financial institution, learn about how the different components work together to form the end to end system to enable 1000s of parallel transactions. Or if you are a design program manager in Ads technology, explore more about the Ads ecosystem, where does your company fall into it, how does ad bidding happen etc. Starting in an area with which you have some familiarity will help you connect the dots.
Practice system design problems that are outside of your domain. Here’s a good System Design 101 article on how to structure your system design thinking. You will find many questions on Glassdoor that you can use as a way to build your muscle. Generally with any system design, you have to make sure you have thought through all the different use cases, edge cases, privacy, security, data flow etc. Practice these top 10 system design interview questions
Check out Grokking the System Design Interview course. It is one of the most comprehensive courses out there.
Practice Mock Tests/Interview Questions For TPMs
Once you have done taking courses or practicing design questions, seek help from a technical peer/friend and ask them to conduct a mock interview with you. Doing this will help you formulate your answers verbally, demonstrate your thought process and even practice drawing things out on a whiteboard. System design questions are generally open ended, so there isn’t a wrong answer. But it is important that you get comfortable in breaking down any design question and building a solution that is robust.
Building on your technical expertise is a continuous process. Even after you transition into a TPM role or have been a TPM (Technical Program Manager) for some years, there will always be times when you change industry and need to learn new domains. I hope this writeup can serve as a starting point for you to enhance your technical skills. The above is by no means 100% complete and I will share more resources/ideas as I come across them. I hope to bring on guest writers who can share their journey and tactical steps with you as well.
Check out more Tips for TPMs.
Interviewing for TPM role soon? Check out the Cracking the TPM Interview Course.
Frequently Asked Questions (FAQs)
What technical skills does a technical program manager need?
Technical Program Managers (TPMs) in the software industry need to understand basic System Design which is the process of defining the architecture, product design, modules, interfaces, and data for a system to satisfy specified requirements. Systems design could be seen as the application of systems theory to product development [1].
In addition to System Design, basic understanding of programming languages, databases, algorithms, data structures is expected.
It is important to build an understanding of the domain you will be working in. For example, understanding AI and machine learning fundamentals is crucial if managing programs in the AI field.