Practical Applications of System Design

Overview

There are two core benefits as your technical knowledge around system design grows:

  1. Enhanced partnerships: Your ability to partner with cross-functional teams effectively will exponentially increase as you plan and manage risks with them.

  2. Driving trade-off decisions: when design problems arise, you will be well-equipped to facilitate technical and challenging trade-off decisions.

Enhanced partnerships

Your knowledge of system design principles will amplify your ability to partner effectively with engineering and product managers. By understanding the technical requirements and constraints of a system, you can:

  • Work with engineering managers and software engineers to ensure that the system is designed in a way that considers the many system design principles we previously covered.

  • Work with product managers and designers to ensure that the system is designed to meet the business and user requirements.

  • Work with legal or security to ensure the solution is designed to consider nuanced details around user safety and consent.

  • Work with many other domain experts where their contributions are necessary to create a viable solution.

Planning and risk management

There are two primary areas where your technical depth will enable you to be a high-performing technical program manager through partnering with others:

  1. Planning: You can identify the many cross-functional teams beyond engineering and product that need to be involved, such as legal and security. Doing this gives you the right inputs for a more realistic path forward.

  2. Risk management: you can anticipate potential issues and plan for them ahead of time, reducing the likelihood of costly delays or failures.

For example, let's consider the principle of scalability.

Knowing how to design a system to scale effectively allows you to plan for future growth and ensure the system can handle increasing demands. By anticipating growth and designing for scalability, you can minimize the risk of the system becoming overwhelmed and crashing due to high traffic or data volumes.

Similarly, understanding the principle of fault tolerance can help you plan for potential system failures.

By designing a system with redundancy and failover mechanisms, you can ensure that the system remains operational even in the event of hardware or software failures. This helps reduce the risk of data loss, downtime, and other costly issues.

Security is also crucial for effective risk management and planning.

Understanding how to design a secure system can help prevent data breaches and other security vulnerabilities. By implementing encryption, access controls, and other security measures, you can minimize the risk of data loss, theft, and other security threats.

Example

As a technical program manager at a large tech company, Sarah knew that partnering effectively with engineering managers was crucial to the success of her program. She had just completed the system design lesson and was eager to apply her new knowledge.

One day, Sarah received an urgent request from the product team to add a new feature to the program. She knew that this feature would have significant implications for the program's system design, and it would require the buy-in of the engineering manager, Tom, who was responsible for the relevant engineering team.

It was the weekly program review meeting, and Sarah discussed their project's progress with John, an engineering manager. As they were going over the system design, Sarah noticed a potential issue with the system's scalability.

Sarah pointed out to John that the current design may not be able to handle the expected user load as the system scales up. John listened carefully to Sarah's concerns and was initially taken aback that he hadn't considered this aspect of the system design. But he appreciated Sarah bringing this to his attention.

Together, Sarah and John discussed possible solutions to address this issue. They agreed that some of the next sprint's engineering tasks should focus on investigating and addressing the scalability concern.

As the meeting ended, John thanked Sarah for bringing this to his attention and acknowledged the value of having someone like her with a strong understanding of system design on the team. Sarah was pleased with the outcome and felt that she had made a valuable contribution to the project.

From that day forward, John made a point to include Sarah in more engineering design discussions, recognizing her unique perspective and expertise. They continued to work together to ensure that the system was designed to be both performant and scalable, ultimately leading to a successful launch.

Driving trade-off decisions

When designing any system, trade-offs are inevitable. No system in the world is able to handle every scenario and meet all requirements.

The way you can think about trade-offs is with the classic trade-off triangle.

Get hands-on with 1200+ tech skills courses.