- The TPM Craft
- Posts
- How System Design complexity shapes the TPM role
How System Design complexity shapes the TPM role
Could the role of a TPM exist without complex system design?
(4 minute read)
👋 Hey TPM Craftsman, let’s get crafting.
This newsletter edition is focused on the Technical Versatility
What’s inside?
👨🏫 Learn: What you should know about system design evolution and why it matters to you as a TPM.
🤝 People: Abhishek Dey. He is a technical leader at AWS. Not only is a software magician, but he’s also an educator at heart.
📚 Resource: 50% off Distributed System Design annual subscription — gain deep wisdom and knowledge of designing scalable systems. (Don’t let your company learning budget go to waste!)
Learn
👨🏫 System Design Evolution and its impact on the TPM role
When you ask “how technical should I be as a TPM?”, you should remember that your role’s origin story is rooted in technical system complexity.
What do Air Traffic Controllers and TPMs have in common?
Prior to the 1960’s, there were very few air traffic controllers.
But then throughout the 1960’s, the need for air traffic controllers began to grow and the career field was formalized.
Why?
The increasing complexity of air traffic and communication systems necessitated more skilled people to manage this complexity.
Increased complexity leads to increased risk for things to go south.
Your role as a Technical Program Manager isn’t that different, except we live in the digital world. Instead of coordinating planes through the skies, we coordinate teams working in the digital realm.
This context is huge for you to understand as a TPM!
The role of a TPM has grown in prominence, in parallel with system architecture evolving from single-tier architecture to today’s large-scale distributed systems.
Where did system design start?
Rewind to before the age of the internet.
Shrink-wrapped applications were purchased at a store. You would take it home, install it on your desktop computer (which weighed about 50 lbs), and every layer of the software would be hosted on your machine.
It was simple.
This is called Single-Tier Architecture: the presentation layer, logic layer, and data layer hosted together. It is uncommon for a software-centric TPM to be involved here.
At this point, its fairly easy for a single engineer, or a few engineers, to manage the development of the software.
With the introduction of the internet, a new system design became possible: 3-Tier Architecture.
Everyone is familiar with this model: You log into a web browser or download an app, the logic and data can be hosted separately.
Initiatives within the context of 3-tiered architecture can be executed by an engineering manager, product manager, or TPM. It largely depends on the situation.
Still fairly manageable, the number of teams is limited.
It is not uncommon for a Technical Project Manager or a Junior/Mid Technical Program Manager to be working on products with some variation of a three-tier-architecture.
Fast forward to the present day: Distributed Systems are now common-place for most tech companies.
Buckle up.
To keep the theme of “tiered” systems, you can think of distributed systems as N-Tier Architecture (there can be multiple instances of each layer).
Components of distributed systems are spread across multiple machines, often in different physical locations, working together as a single system.
This is where TPM’s really add massive value. The scale and complexity is beyond a single Engineering Manager or Product Manager.
TPM’s become the glue across this complex web of dependencies.
This evolution has significantly increased the complexity of building, designing, and maintaining software applications, leading to the growing prominence the Technical Program Manager.
Why should you care and what can you do?
Why care? Grasping the intricacies of system design empowers you to:
Collaborate Effectively with Engineering
Craft Robust Implementation Plans
Excel in Dependency Management
Enhance Risk Management
Remember, your influence as a TPM in the realm of software isn’t just about overseeing tasks; it’s about understanding the context in which these tasks operate.
What can you do? Learn system design.
While it's unlikely that you'll be in the trenches of designing the systems yourself, as a TPM, you play a critical role in steering initiatives that span across complex systems.
In this journey, your focus should be on understanding and considering key attributes of system design (along with questions you can ask your engineer partners):
Scalability: Can handle more data, users, and transactions without a hitch. Ready for future growth. | How does our system architecture handle scaling, both up and down? Are there any components that might not scale well with increased load? |
Reliability and Availability: Always up and running, with a solid plan for when things go wrong. | What disaster recovery plans do we have in place, and when were they last tested? How are we monitoring system health, and what are our protocols for addressing downtime? |
Performance: Quick and efficient, handling user requests and data smoothly. | How is the system's performance under peak load conditions? Are there any performance bottlenecks identified, and what are the plans to address them? |
Security: Keeps the bad guys out and user data safe with strong protections. | When was our last security audit, and were there any vulnerabilities identified? How robust are our authentication and authorization mechanisms? |
Cost-effectiveness: Gets the best performance and quality for the budget. Smart choices in building or buying and choosing between cloud or on-premises solutions | Are we optimizing our resources for cost without compromising performance? How cost-effective are our choices between cloud-based and on-premises solutions? |
But the question remains: How technical should a TPM be?
The answer also remains: It depends.
In a future newsletter, I will share my personal view on a technical leveling guide for TPMs.
Stay tuned! See you next time!
If you think someone else might enjoy this content, please share!
Resources
📚 System Design — from Beginner to Senior.
Meet Abhishek Dey. He is a technical leader at AWS. Not only is a software magician, but he’s also an educator at heart.
His Distributed Systems course is one of many he has created, but the most relevant to you as a Technical Program Manager.
This course is not a shortcut to prepare for interviews. This course is, in fact, the long route to success where you ace interviews by actually gaining deep wisdom and knowledge of designing scalable systems and Distributed Computing.
Go through practical problems by designing: Amazon, Real-Time Chat Apps, Notification System, Uber, and more.
The TPM Craft Subscribers get 50% off an annual subscription! That takes the cost down from $67/year to $33/year. Holy smokes.
👇 See the discount code and check-out below!