Reader small image

You're reading from  Technical Program Manager's Handbook

Product typeBook
Published inDec 2022
PublisherPackt
ISBN-139781804613559
Edition1st Edition
Right arrow
Author (1)
Joshua Alan Teter
Joshua Alan Teter
author image
Joshua Alan Teter

Joshua began his journey in Project Management as a Technical Lead at Hewlett Packard in 2012 by learning the basics of managing a project and working with stakeholders. In July of 2013, he made the career switch to pursue Technical Program Management at Amazon. During that time, He advanced in his career twice from TPM to Sr. TPM in 2017, and then to Principal TPM in 2022.
Read more about Joshua Alan Teter

Right arrow

System Design and Architecture Landscape

In this chapter, we’ll cover two of the most important technical skills that a TPM possesses: system design and architectural landscape design. These are the levers we use to influence the technical direction of our organizations.

We start out in our career focusing on system designs in individual projects and influencing the right design for the requirements and services. As we grow, we start looking at the architectural landscape around our projects and programs to see patterns of opportunity and areas of risk. We start to influence the teams around us and the organization as a whole.

We’ll explore system designs and the architectural landscape through the following:

  • Learning about common system design patterns
  • Seeing the forest and the trees
  • Examining an architecture landscape

Let’s dive in!

Learning about common system design patterns

As a TPM, you split your time between the high-level scope, which spans across multiple systems, and the weeds of a specific feature design. It’s due to this breadth and depth that system design is one of the most important technical skills a TPM can have. It’s important enough that it shows up in most interviews for the bigger tech companies. I’ll cover the aspects of system design that you need to consider to ensure that your design is well thought out.

When we think about system design, we often conjure up a diagram of multiple services, each covering a single function or area of concern. However, system designs come in many different sizes and complexities. On a smaller scale, a feature design, such as a feature to add a new contact to your contact list in the Mercury messenger app, is its own system design. Somewhere in between these is a system design for an entire desktop or mobile application.

As a TPM...

Seeing the forest and the trees

The architectural landscape is not often talked about as a standalone topic outside of specific instances such as migrating from on-premises to the cloud. In many ways, it’s similar to system design in its intention, as well as patterns. In most cases, the design of a single system within a larger ecosystem will match the design patterns of the systems around it. If the trend at your company is to utilize SOA, then you will see SOA at every level. The biggest difference between the architectural landscape and system design is the scope that the design encompasses.

You can’t see the forest for the trees is a proverb that was first published in 1546 in The Proverbs of John Heywood. The idea is that from the middle of a dense forest, you can see every tree that surrounds you in great detail from the trunk all the way to the crown of the tree – but from this vantage point, you literally cannot see the whole forest; you don’...

Examining an architecture landscape

To get a good understanding of what an architecture landscape is, we’ll compare a system design with an architecture landscape. We’ll follow this up with a look into the implementation of the Mercury messaging application on a corporate network.

There is more in common between a system design and an architectural landscape than not. The design patterns between the two are the same and are often referred to as architectural patterns. They also both describe the relationship between components of an ecosystem that share some relationship either in the data they process and handle or the function that they collectively perform.

Where they can differ is the scope and depth of the design. A system design is limited in scope, as it often covers a single feature or limited data flow between highly related systems. The design may dive into API definitions, as well as illustrate the data model and how it flows through the system.

...

Summary

In this chapter, we explored the trees as well as the forest. Just as a forest is made up of trees and therefore trees and forests share a lot in common, so do system designs and architectural landscapes.

We learned about various design patterns that are used in both system designs and architectural landscapes. We discussed the elements of a good design, as well as a bad design. Above all, we discussed the importance of defensible choices, as there is always more than one way to design a system.

Finally, we dove into the differences between a system design and architectural landscape and how this relates to the areas of concern for a TPM throughout their career.

In Chapter 13, we’ll close by discussing how to use your technical background to enhance your project and program management skills.

Further reading

  • Architectural Patterns, by Pethuru Raj, et al.

This book covers all of the system design patterns discussed in this chapter, as well as additional patterns. If this is an area of particular interest to you, this is a good place to start.

https://www.packtpub.com/product/architectural-patterns/9781787287495

  • Solutions Architect’s Handbook – Second Edition, by Saurabh Shrivastava, et al.

The work of a solutions architect is a popular field, as it focuses on moving from on-premises to the cloud. To do this, a full understanding of the current architecture is needed in order to determine the right solution for the cloud. As such, this offers a great view of understanding an entire architecture.

https://www.packtpub.com/product/solutions-architect-s-handbook/9781801816618

  • Hands-On Design Patterns with Java, by Dr. Edward Lavieri

This book gives you a real hands-on approach to learning about a large number of...

lock icon
The rest of the chapter is locked
You have been reading a chapter from
Technical Program Manager's Handbook
Published in: Dec 2022Publisher: PacktISBN-13: 9781804613559
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
undefined
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime

Author (1)

author image
Joshua Alan Teter

Joshua began his journey in Project Management as a Technical Lead at Hewlett Packard in 2012 by learning the basics of managing a project and working with stakeholders. In July of 2013, he made the career switch to pursue Technical Program Management at Amazon. During that time, He advanced in his career twice from TPM to Sr. TPM in 2017, and then to Principal TPM in 2022.
Read more about Joshua Alan Teter