Architectural Thinking

Format: Live Virtual or In-Person Training
Duration: 1-Day Class
Instructor: Mark Richards
Students: Up to 50

Architectural thinking is seeing things with a “software architect’s eye”, similar to how a meteorologists, artists, and mariners see clouds with a different point of view and with different meaning. Architectural thinking isn’t just for architects - senior developers and tech leads can apply architectural thinking into their daily activities as well to better understand the architectural implications of decisions they make. 

In this hands-on class you’ll learn what architectural thinking is and how to apply this kind of thinking to your daily work and activities, regardless of your role or title. In the first part of the class you’ll learn how to identify and define various architecture characteristics and learn why they are so important, how to expand your technical breadth to help think architecturally, lean how source code translates to architectural components, and also learn techniques for doing modern tradeoff analysis.

Understanding about various architecture styles is a critical part of thinking architecturally, particularly when either selecting an architecture for a new system or validating an architecture for existing systems. In the second part of the class you’ll learn about various architecture styles, including monolithic architectures, microservices, space-based architecture, event-driven architecture, and service-based architecture. You’ll gain an understanding of how they work, when to use them, and when to not use them. 

This class is an abbreviated version of the full 3-day class Fundamentals of Software Architecture. It can be taught as a full 1-day class or as 2 half-day classes.

For more information about the pricing and availability of this course for private (corporate) training, please contact Mark Richards at

Course Agenda

Part One: Elements of Architectural Thinking

  • What is software architecture?
  • Architecture vs. design
  • Hands-on exercises: Distinguishing architecture from design
  • Understanding technical depth vs. breadth
  • Identifying architecture characteristics
  • Hands-on exercises: Identifying architecture characteristics
  • Understanding architectural components
  • Techniques for modern tradeoff analysis

Part Two: Architecture Styles

  • Architecture styles vs. patterns
  • Domain to architecture isomorphism
  • Domain vs. technical partitioning 
  • Classifying architecture styles
  • Layered n-tiered architecture
  • Modular monolith
  • Microkernel architecture
  • Microservices architecture
  • Service-based architecture
  • Service-oriented architecture
  • Event-driven architecture
  • Space-based architecture
  • Hands-on exercises: Choosing the right architecture

©2018-2024 DeveloperToArchitect