Neal Ford  |
  • Software Architect, Author, & Speaker

Training Classes

I offer training classes for organizations who would like a deeper dive into the content I've written and spoken about over the years.

All of my classes are hands-on, with supporting exercises to help turn abstract concepts into concrete results. I also encourage digressions that allow me to apply my years of consulting experience to apply the lessons within a familiar context.

Software Architecture Fundamentals Hands-on Training

The job Software Architect places in the top ten of most annual surveys of best jobs, yet no clear path exists from Developer to Architect. Why aren’t there more books and training materials to fill this demand? First, software architecture is a massive multidisciplinary subject, covering many roles and responsibilities, making it difficult to teach because so much context is required for the interesting subjects. Second, it’s a fast moving discipline, where entire suites of best practices become obsolete overnight. This workshop provides a foundation to build upon to start the journey towards software architect. I offer two different versions of this workshop based on length, either two or three day.

This workshop focuses on the foundational material required for success as a modern software architecture. It touches upon the major design elements of the role and discusses several soft skills such as communication as well.

How to Teach Your Agents About Architecture

How to Teach Your Agents About Architecture


  1. Abstract

    Agentic AI shows new possibilities in software architecture, including the ability to work towards a solution as long as deterministic constraints exist. Suddenly, developers and architects are trying to build ways for agents to determine success, which requires a deterministic method of defining these important constraints: Architecture as Code.

    An increasingly common practice in agentic AI is separating foundational constraints from desired behavior. This class shows how to use the concepts in Architecture as Code to help build foundational constraints to help guide agents to build properly architected code.

    We have been thinking about this problem for several years, even before agents. How is that? A funny thing happened on the way to writing our book Architecture as Code–the entire industry shifted. Generally, we write books iteratively–starting with a seed of an idea, then developing it through workshops, conference presentations, online classes, and so on. That's exactly what we did about a year ago with our Architecture as Code book. We started with the concept of describing all the ways that software architecture intersects with other parts of the software development ecosystem: data, engineering practices, team topologies, and more–nine in total–in code, as a way of creating a fast feedback loop for architects to react to changes in architecture. In other words, we're documenting the architecture through code, defining the structure and constraints we want to guide the implementation through.

  2. Duration
    1. 2-day hands-on workshop
    2. 1-day optional consulting to implement these ideas at your organization
  3. Outline
    1. What
      1. From prompt-to-context engineering
      2. setting foundational rules for agentic code generation
    2. How
      1. Building deterministic guardrails for agentic behavior
        • architectural fitness functions
          • Scope
          • Platforms
        • LLM as an interpolator: generating fitness functions
        • Architecture Definition Language
          • Defined
          • Examples
          • Alternatives
      2. exercise: generating concrete fitness functions
      3. MCP and governance Mesh
      4. Break
      5. Case study: Building implementation constraints
        • code quality
        • code structure
        • code constraints/governance
      6. exercise: Make the Grade guardrails
    3. Where
      1. Engineering practices
        • controlling version control
          • Preventing cheating in mono-repos
          • Preventing code duplication in repo-per-service
        • preventing churn
      2. exercise: how much copy/paste is OK?
      3. Break
      4. Integration
        • architecture quantum coupling
          • static
          • exercise: limiting static coupling
          • dynamic
          • exercise: limiting dynamic coupling
          • contract
          • temporal
      5. Infrastructure
        • Architecture as Code -> Infrastructure as Code
        • Governing generated infrastructure
        • ADL alternatives
      6. exercise: translate CALM to ADL
      7. Break
      8. Data
        • Handing problems in distributed architectures
          • data consistency
          • referenial integrity
          • cascading updates/deletes
        • controlling data coupling
      9. exercise: Math the Grade data integrity
      10. Team topologies
        • How to tell if you have the correct distribution of agents/team members
        • building process feedback loops
      11. Enterprise architecture
        • global governance
        • Governance strategies
          • Centralized
            • Prescriptive
            • Classic alternative
          • Decentralized
            • Distributed
            • Durable interface
        • Adapting governance to the AI age
      12. Summary

Author: Neal Ford

Created: 2026-03-16 Mon 10:59

Validate

ahp.html

Software Architecture: The Hard Parts Workshops

Why do authors write technical books about topics like software architecture? They write them when then have figured something out, a "best practice" that is general enough and has matured enough to tell the rest of the world. In fact, architects rely on the current (but always shifting) notion of "best practices" for guidance in solving tough problems.

But what happens where there are no best practices? What if no one has ever solved this particular problem before? What if there are no good answers, just varying degrees of awfulness?

When you're a software developer, you build outstanding skills in searching online for solutions to your current problem. For example, if you need to figure out how to configure a particular tool in your environment, expert use of Google finds the answer.

But that's not true for architects.

For architects, many problems present unique challenges because they conflate the exact environment and circumstances of your organization--what are the chances that someone has encountered exactly this scenario and blogged it or posted it on Stack Overflow?

Welcome to the Software Architecture: The Hard Parts workshop

When architects encounter novel problems (by the way, they're all novel when you become an architect), how do they make decisions if no "best practices" exist and no one has ever solved this problem before?

The real job of an architect is, when presented with a novel situation, how well can they delineate and understand the tradeoffs on either side of the decision, so that the organization can make the best informed decision.

The material represents both the source and derivative of the book Software Architecture: The Hard Parts: the authors conducted workshops and training classes for several years, refining the material and the narrative, distilling the difficult problems facing modern architects. Because each software architecture is unique, generic advice doesn't help (which is why not many advanced software architecture books exist). However, every architect can benefit from learning how to perform trade-off analysis, which is what this material does, using common problems in microservices architectures.

Each workshop features both exposition and hands-on, group-based (for in-person classes) exercises to apply the concepts to realistic scenarios.

Duration

Two days

Outline

  1. What Happens When There Are No Best Practices?
    • The Importance of Data in Architecture
    • Architecture Fitness Functions
    • Sysops Squad: architecture components
    • Sysops Squad: data model
  2. Discerning Coupling in Software Architecture
    • Architecture Quantum
    • Static Coupling
    • Dynamic Coupling
  3. Architecture Modularity
    • Modularity Drivers
    • Sysops Squad Saga: Creating a business case
  4. Architectural Decomposition
    • Is the Codebase Decomposable?
    • Analysis metrics
    • Component-Based Decomposition
    • Tactical Forking
  5. Component-Based Decomposition Patterns
    • Identify and Size Components Pattern
    • Gather Common Domain Components Pattern
    • Flatten Components Pattern
    • Determine Component Dependencies Pattern
    • Create Component Domains Pattern
    • Create Domain Services Pattern
  6. Pulling Apart Operational Data
    • Data Decomposition Drivers
    • Data Integrators
    • Data Decomposition
    • Step 1: Analyze Database and Create Data Domains
    • Step 2: Assign Tables to Data Domains
    • Step 3: Separate Database Connections to Data Domains
    • Step 4: Move Schemas to Separate Database Servers
    • Step 5: Switch Over to Independent Database Servers
    • Selecting a Database Type
  7. Service Granularity
    • Granularity Disintegrators
    • Granularity Integrators
  8. Reuse Patterns
    • Code Replication
    • Shared Library
    • Shared Service
    • Sidecars and Service Mesh
  9. Data Ownership and Distributed Transactions
    • Assigning Data Ownership
    • Common Ownership Scenario
    • Service Consolidation Technique
    • Distributed Transactions
    • Eventual Consistency Patterns
  10. Distributed Data Access
    • Interservice Communication Pattern
    • Column Schema Replication Pattern
    • Replicated Caching Pattern
    • Data Domain Pattern
  11. Managing Distributed Workflows
    • Orchestration Communication Style
    • Choreography Communication Style
    • Trade-Offs Between Orchestration and Choreography
  12. Transactional Sagas
    • Primal forces in dynamic quantum coupling
    • Eight transaction saga patterns
  13. Contracts
    • Strict Versus Loose Contracts
    • Stamp Coupling
  14. Managing Analytical Data
    • Previous Approaches
    • The Data Warehouse
    • The Data Lake
    • The Data Mesh
    • Definition of Data Mesh
    • Data Product Quantum
    • Data Mesh, Coupling, and Architecture Quantum
    • When to Use Data Mesh
  15. Build Your Own Trade-Off Analysis
    • Qualitative Versus Quantative Analysis
    • MECE Lists
    • The "Out-of-Context" Trap
    • Model Relevant Domain Cases
    • Prefer Bottom Line over Overwhelming Evidence
    • Avoiding Snake Oil and Evangelism



  

Neal Ford  |
  • Software Architect, Author, & Speaker