All Software Architecture, All the Time
June 10-13, 2019
San Jose, CA

Fundamentals of software architecture (Day 2)

Location: 212 A / 212 B
Average rating: *****
(5.00, 1 rating)

Who is this presentation for?

  • You're a senior-level developer who wants to become a software architect.
  • You're a junior architect who wants to become more effective in your role.

What you'll learn

By the end of this two-day training course, you'll understand:

  • The role of an architect
  • How to think like an architect
  • How to be an effective leader as an architect

And you'll be able to:

  • Select the right architecture pattern for their application
  • Identify and design software architecture components
  • Make well-informed architecture decisions

Description

Being a software architect involves more than just drawing boxes and lines. It requires thinking like an architect, being a leader, and understanding the elements, patterns, and styles necessary to create effective software architectures. Leveraging many of the topics found in his Software Architecture Fundamentals videos from O’Reilly, Mark Richards blends lecture and hands-on real-world group exercises to explore the many aspects of software architecture.

Knowing what styles and patterns best fit your situation is critical to the success of your architecture. You’ll learn various integration styles—including event-driven architecture, microservices architecture, microkernel architecture, and service-oriented architecture—and when to use each. You’ll then apply your knowledge in real-world small-team exercises, making decisions about which patterns best fit various business needs and requirements.

Along the way, Mark emphasizes how important soft skills such as leadership, communication, facilitation, and negotiation are to a software architect and demonstrates related techniques, including some core leadership best practices and how to make development teams effective. Mark also shares tips for developing a career as a software architect.

Outline

Day 1

Introduction

  • Course logistics and introductions
  • Roles and expectations of an architect
  • Architecture knowledge and technical breadth
  • Architecture versus design
  • Balancing hands-on coding and architecture

Architecture characteristics

  • Identifying architecture characteristics
  • Translating requirements into architecture
  • Team exercises: Identifying architecture characteristics

Architecture patterns

  • Microservices architecture pattern
  • Service-oriented architecture pattern
  • Service-based architecture pattern
  • Layered architecture pattern

Day 2

Architecture patterns (continued)

  • Event-driven architecture pattern
  • Pipeline architecture pattern
  • Microkernel architecture pattern
  • Space-based architecture pattern
  • Team exercises: Identifying patterns and styles

Component-based thinking

  • Identifying components and services
  • Component granularity
  • Component coupling
  • Component cohesion
  • Team exercises: Identifying architectural components
  • Team architecture presentations

Architecture techniques and soft skills

  • Leadership skills: Making development teams effective
  • Tips for developing an architecture career path
  • Additional architecture resources