Fundamentals of Software Architecture

The job “Software Architect” was rated as the number one job by a recent CNN survey. Yet no clear path exists for moving from developer to architect. Why? Because software architecture is massive multidisciplinary subject with no clear definition or job description, making it difficult to chart a course for undertaking all of the learning required to become an effective software architect.

Click here to register

This intensive, hands-on class is designed to provide you with the knowledge, skills, and roadmap necessary to become an effective software architect. Being a software architect is much more than just drawing boxes and lines. It’s about thinking like an architect, being a leader, and understanding the architectural elements, patterns, and styles necessary to create effective software architectures. Through interactive course materials and architecture exercises, this course will teach you both the technical aspects of software architecture as well as the soft skills of architecture.

Knowing what architecture pattern best fit your situation is critical to the success of your architecture. In this course you will gain an in-depth understanding of many different architecture styles and patterns, including event-driven, microkernel, space-based, microservices, and service-based architectures. You will learn how each pattern works, the major characteristics of each pattern, and how to use each architecture style to create an effective software architecture that matches your business needs and requirements.

From a soft skills perspective you will learn how important leadership, communication, facilitation, and negotiation skills are to a software architect, as well as some of the techniques for acquiring these skills. You will also learn many other soft skills techniques, such as how to think like an architect, make effective architecture decisions, and how to make development teams effective.

Whether you are on the path of developer to architect or already an architect, this class will provide you with the necessary practical hands-on, real-world technical and soft-skills knowledge to quickly become an effective software architect.

Sample Video

If you'd like to see Mark Richards in action, you can view the full video of the following session at our main conference held in May 2019.

(1 hour 29 mins)

Day 1

  • Introduction
    • Expectations of a software architect
    • What is Software Architecture?
  • Architectural Thinking
    • Technical depth vs. breadth
    • Architecture vs. design
    • Hands-on exercises: Distinguishing architecture from design
    • Understanding tradeoff analysis
  • Architecture Characteristics
    • Defining types of characteristics
    • Translating business needs to architecture characteristics
    • Cart before the horse anti-pattern
    • Balancing requirements and characteristics
    • Hands-on exercises: Identifying characteristics

Day 2

  • Component-Based Thinking
    • Identifying components and services
    • Component granularity
    • Component coupling
    • Component cohesion
    • Hands-on exercises: Identifying components
  • Architecture Styles
    • Architecture style taxonomy
    • Fallacies of distributed computing
    • Microservices architecture
    • Service-based architecture
    • Event-driven architecture
    • Microkernel architecture
    • Space-based architecture
    • Hands-on exercises: Identifying architecture style(s)
  • Diagramming Software Architecture
    • Diagramming techniques
    • Representational consistency
    • Diagramming tools
    • Hands-on exercises: Diagramming architecture

Day 3

  • Making Architecture Decisions
    • Architecture decision anti-patterns
    • Justifying decisions
    • Communicating decisions
    • Using architecture decision records
    • Hands-on exercises: Documenting architecture decisions
  • Architecture Soft Skills
    • Architect personalities
    • Leading and guiding development teams
    • Elastic leadership
    • Team warning signs
    • Negotiation skills
    • Hands-on exercises: negotiation scenarios
    • Core architecture leadership skills
  • Summary and Wrap-up
    • Developing your career path
    • Architecture certification
    • Architecture resources
    • Next steps

Mark Richards

Mark Richards

Mark is an experienced, hands-on software architect involved in the architecture, design, and implementation of microservices architectures, service-oriented architectures, and distributed systems in a variety of technologies. He has been in the software industry since 1983 and has significant experience and expertise in application, integration, and enterprise architecture. Mark is the founder of, a free website devoted to helping developers in the journey to becoming a software architect.

In addition to hands-on consulting, Mark has authored numerous technical books and videos, including his two latest books Fundamentals of Software Architecture and Software Architecture: The Hard Parts. Mark has spoken at hundreds of conferences and user groups around the world on a variety of enterprise-related technical topics.

Follow Mark on Twitter

Click here to register

Interested in registering for this workshop?
Click here for details of the current price, which includes a substantial early-bird discount.