Skip to content
O'Reilly home
Learning Path

Software Architecture Fundamentals—Architectural Thinking

Start
Time to complete: 2h 16m

Published byO'Reilly Media, Inc.

CreatedJanuary 2020

Like their brick-and-mortar counterparts, software architects need to take a holistic view of the solutions they design and build, thoughtfully combining programming elements, patterns, and styles with refined leadership and communication skills to create complete and effective software architectures. The role and responsibilities of the software architect is a challenging one, spanning the gamut of software disciplines, but it’s also satisfying and rewarding. Indeed, CNN recently rated software architect as the number one job in America. Yet, no clear path exists for moving from developer to architect.

In this learning path, the first in a series of six on software architecture fundamentals, your hosts, Neal Ford and Mark Richards, introduce the essential skills that you need to possess to be an effective architect. In the broad scope, you’ll learn how to “think like an architect.” But you also take a closer look at specific concepts such as architectural quantum as well as understanding the core characteristics (the "-ilities") of software architecture and how to analyze trade-offs. Finally, you will learn how to identify and create components, the building blocks, and the foundation of any system. Throughout this series, you’ll use actual real-world problems, called “katas” (exercises), to assess your progress as you work through each learning path. They give you a quick insight into how you're doing and take the guesswork out of learning.

What you’ll learn—and how you can apply it

  • What software architecture is and what the difference is between architecture decisions and technology decisions
  • Understand the primary aspects of being a software architect—how to “think like an architect”
  • Acquire crucial soft skills, such as how to communicate effectively as a team leader and how to match methodology with architecture to ensure a successful implementation
  • Discover various techniques and patterns for integrating multiple applications and databases
  • The meaning of modularity and architectural quantum
  • How to identify architecture characteristics and analyze trade-offs
  • How to make your architecture more adaptable to changes in business and technology
  • Understand application, integration, and enterprise architecture frameworks
  • Understand the effect of modern engineering practices and the pros and cons of different approaches

Exercises included

  • Guided Exercise: Identifying Architecture Characteristics
  • Self-Paced Exercise: Identifying Architecture Characteristics
  • Self-Paced Exercise: Identify Major Components

This learning path is for you because…

  • You're a senior-level developer who wants to become a software architect
  • You're a junior architect new to the role who wants to delve deeper

Prerequisites:

  • You should have knowledge of development workflows and programming experience

Materials or downloads needed in advance: None

Other learning paths in this series: