• PodcastThe Hidden Weight of Rank: How Well-Intended Improvement Sessions can Drive Teammates Away
    Dec 23 2025

    In this episode of Stories on Facilitating Software Design and Architecture, we are joined by Paul Rayner, a seasoned consultant and expert in Domain-Driven Design and EventStorming. Paul shares a candid "war story" from his time as a tech lead that completely changed how he views leadership and influence. He recounts a well-intentioned refactoring session where he publicly critiqued a team member's code, aiming to teach better practices. The result was unexpected and severe: the developer felt shamed by the experience and quit shortly after.

    This experience served as a harsh wake-up call about the "unseen authority" leaders wield and how easily the "blast radius" of our actions can damage team psychological safety, even when our motives are pure. Paul opens up about the "dominant blindness" that often affects technical leaders—where we fail to see how our rank amplifies our words, turning a simple suggestion into a crushing directive.

    We dive deep into the power dynamics of technical leadership, exploring why simply having the "right" technical solution isn't enough. The conversation covers how to move from "fixing" people's work to facilitating their growth, why resistance should be treated as a valuable resource rather than an obstacle, and how methods like EventStorming can help externalize conflict.

    Key Learning Points:

    1. The Gap Between Intent and Impact: Why "I meant well" is never a sufficient excuse when a team member feels alienated or embarrassed by your actions.
    2. Dominant Blindness: How leaders often underestimate the heavy weight of their rank and the pressure it puts on colleagues, especially when navigating contractor-employee dynamics.
    3. Resistance is a Resource: Instead of pushing harder against pushback, view it as a signal to understand the underlying fears, threats, or misunderstandings driving the resistance.
    4. Challenging Mental Models: Recognizing that when you criticize code, you are often challenging the deep-seated mental models and hard work of the person who wrote it.
    5. Externalizing the Problem: How using visual tools like sticky notes (e.g., in EventStorming) can shift the focus from "me vs. you" to a collaborative discussion about the problem on the wall.

    Show More Show Less
    24 mins
  • The true cost of "The simplest thing to do"
    Dec 9 2025

    In software architecture, there is often a difficult tension between enforcing best practices and allowing teams the autonomy to learn through experience. One of the most common pitfalls in Event-Driven Architecture is the confusion between meaningful Domain Events and mere technical noise. When a team insists on the "easy way," is it better for an architect to block them or let them proceed into a potential disaster?.

    In this episode, we are joined by Krisztina Hirth, Staff Engineer at PayFit and a longtime Virtual DDD co-organizer. Krisztina shares a candid story about a high-throughput team that insisted on publishing technical JSON logs rather than proper domain events because they didn't want to "mess up" their clean repository. Rather than forcing her will in a one-hour meeting, Krisztina made the calculated decision to let the tigers roam: she allowed the team to fail so they could learn the lesson empirically.

    This conversation dives deep into the patience required for true socio-technical change. We explore why "going fast is often just wrong" and how a failure that generated 90% useless noise eventually led to a robust RFC process and a company-wide understanding of Domain-Driven Design. As Krisztina puts it, sometimes what looks like a mistake is actually just an "asynchronous domain modeling session" that takes eight months to complete.

    3. Key Discussion Points

    [00:01:00] The Trap of Technical Events: Krisztina recounts a debate with a team that viewed events as "technical JSON" sent to messaging, ignoring the business importance required for a true Domain Event.

    [00:02:00] The "Clean Code" Fallacy: The team's resistance stemmed from a belief that adding domain logic would "mess up" their clean repository—an argument that left the architect speechless.

    [00:03:00] Tigers vs. Mice: Utilizing a quote from George Box, Krisztina explains her decision to prioritize the long-term learning opportunity over the immediate technical correctness of a single service.

    [00:04:00] The Cost of Noise: The team's implementation resulted in 90% of their published messages being filtered out as noise by other teams, highlighting the waste of "easy" implementation.

    [00:06:00] From Failure to Process: How the team owned their mistake, presented their learnings to the company, and helped establish a standardized LFC (RFC) process for defining future events.

    [00:17:00] Asynchronous Domain Modeling: Reframing a long-term failure and recovery period as a necessary, extended modeling session that aligns the team with the architecture.

    [00:15:00] The Goal isn't "Being Right": A heuristic for architects—if your primary goal is to prove you are right, you are likely wrong. The goal must be shared understanding and doability.

    Show More Show Less
    22 mins
  • The Architect's Dilemma: What to Do When You Disagree With a Team's Decision
    Nov 25 2025

    In this episode of "Stories of Software Architecture and Design," hosts Kenny (Baas) Schwegler and Andrea Magnorsky welcome back guests Elena and Pete to discuss the challenges of managing team autonomy when an architect disagrees with a decision.

    Pete, who discussed this topic at QCon, shares his perspective on dealing with decisions made by teams that he felt were incorrect.

    Key Discussion Points
    • Architect's Dilemma and Self-Reflection: Pete shared his challenge when teams made decisions he disagreed with, stressing the need for the architect to first reflect on whether their own feedback was persuasive and to remove emotional attachment from the outcome.
    • Building Accountability and Skills: The discussion covered the difficulty when teams lack the "harder skills" for questioning , emphasizing that Architecture Principles are key for guidance, especially regarding cost , and that the architects' role is critical for supporting teams to build accountability and trust.
    • Decisions Across Boundaries: The team tackled the issue of decisions affecting multiple teams (i.e., "context wars") , confirming that a key tool is the Context Map (from DDD) to promote autonomy and that dealing with this requires facilitating communication.
    • Granularity of ADRs: A challenge was the differing frequency and size of Architecture Decision Records (ADRs) across teams. The consensus was to encourage teams to write ADRs, even small ones that don't need the formal advice forum , as long as they find their right flow and document impactful decisions.

    Show More Show Less
    17 mins
  • The Path to Team-Led Architecture: From Opinions to Advice
    Nov 11 2025

    Welcome to a new episode where we share stories from the field. For the first time, we're thrilled to welcome guests to the show!

    This week, we're joined by Elena Stojmilova, Technical Lead at Open GI, and Peter Hunter, Technical Architect at Open GI, alongside our Hosts Andrea Magnorsky and Kenny (baas) Schwegler. Elena shares her personal journey and lessons learned from implementing a decentralised decision-making process within her team at Open GI, including the shift to autonomous teams and the introduction of Architectural Decision Records (ADRs).

    Elena provides a candid look at the challenges and triumphs of moving from a software engineering focus to taking on full architectural decision-making authority.

    Key Discussion Points
    • Decentralised Decision-Making: The necessary move to create independent, autonomous teams and empower Technical Leads to make architectural decisions.
    • The Mindset Shift: Moving from a coding focus to considering the broader impact of decisions, including cost and system-wide effects.
    • The Power of Support: The crucial importance of technical and soft skills guidance when transitioning into a new leadership role.
    • Architectural Decision Records (ADRs): The process introduced to formalise decisions, helping guide the team and ensuring accountability.
    • Navigating the Advisory Forum: The challenge of managing many strong opinions initially, and the evolution toward receiving more constructive advice.
    • Facilitating Advice: The techniques used to manage opinionated discussions, including asking questions to uncover the reasoning behind feedback.
    • Cultural Change: How the process promoted a culture of knowledge sharing between teams and the need for architects to adapt their role from "broadcasting" to facilitating.

    Show More Show Less
    23 mins
  • Decision, Reversal, Frustration: Navigating Governance After an Incident
    Oct 28 2025

    The episode explores the tension between necessary on-the-spot decision-making during a software incident and subsequent organizational governance. Andrea’s story sets the scene: a colleague makes a critical, correct decision under pressure, only to have a later, higher-level investigation reverse it without adequately addressing the systemic issue that caused the incident, leading to frustration and burnout. We then further discuss how organizations—whether centralized or decentralized—often struggle with decision paralysis and the human consequences of chronic underinvestment in long-term fixes. The conversation emphasizes that true decentralized architecture requires not only empowering individuals to act but also leadership allyship and robust, non-weaponized processes to support and record their actions.

    The core of the governance solution lies in documenting decisions effectively and creating a culture of learning over blame. To avoid "decision paralysis" and preserve the historical context, the hosts advocate for recording critical choices using Architectural Decision Records (ADRs). A key principle is that these records should be immutable; any subsequent change must be documented as a new, superseding decision rather than reopening the original. Furthermore, decision-making health can be assessed both quantitatively (by measuring flow and reversal rates) and qualitatively, by including sense-making questions about team readiness and feelings toward the decision, drawing on insights from practitioners like Rebecca Wirfs-Brock. This approach transforms governance from a bureaucratic bottleneck into a feedback loop that highlights deeper systemic failures.

    Key Takeaways for Architectural Governance
    • Immutable Decisions: Decisions recorded in ADRs must be treated as read-only history. Reversals or changes should always be documented as new, superseding decisions to prevent "decision paralysis."
    • Leadership Allyship: Managers should use their political capital to support and empower the team's expert decisions, acting as facilitators and advocates rather than simply taking over.
    • Systemic Focus: Governance must move beyond validating individual actions to addressing the root causes of repeated incidents and failures to prevent team burnout.
    • Decision Metrics: Measure the health of the decision-making process both quantitatively (number of decisions, time to decide, rate of reversals) and qualitatively (team's emotional readiness/frustration).

    Show More Show Less
    20 mins
  • Navigating Architectural Indecision: What to do when teams stay silent
    Oct 14 2025

    In this episode Andrew Harmel-Law, Kenny (Baas) Schwegler, and Andrea Magnorsky discussed the difficulties of facilitating software architecture decisions, particularly when teams are hesitant to take responsibility. Kenny shared his experience at a growing company that needed to choose a new front-end framework (Vue or React) to scale from 8 to 115 developers. His goal was to empower the team to make a democratic decision, but they were mostly junior to mid-level developers who were uncomfortable with the accountability of a major choice.

    Key Strategies for Facilitation

    The discussion highlighted several methods for navigating this kind of indecision:

    • Ask for consent: When the team felt too uncomfortable to decide, Kenny asked for their consent to make the decision himself. This approach still involved them in the process, and he ultimately chose React.
    • Support the decision: After making the decision, Kenny asked the team what they needed to get on board with it. The developers requested training, which was then arranged. This practice, also known as "disagree and commit," ensures that even if people don't agree with a decision, they are given the necessary resources to follow through with it.
    • Create a safe environment: People are often afraid to make decisions because of the potential for future negative consequences. Andrew pointed out that an architect can act as a "proxy" for the team, taking on the accountability to protect them.
    • Understand Governance and Accountability: Andrea emphasized the importance of clarifying who is responsible for a decision. A good governance framework provides checks and balances to prevent bad decisions

    Show More Show Less
    20 mins
  • Uncovering the Ghost Decisions in Your Architecture
    Sep 30 2025

    In this episode, Andrew Harmel-Law, joined by Andrea Magnorsky and Kenny (Baas) Schwegler, discusses "ghost decisions," which are fundamental architectural choices that are often undocumented, implicit, or even forgotten. These decisions can cast a long shadow, influencing everything from technology choices to team structures.

    Key Takeaways
    • Implicit Decisions: Andrew shares his experience with projects where he found that the most fundamental architectural decisions had already been made, often implicitly or as a result of legacy choices. These are often not explicitly architectural decisions, but rather things like the product being built or the team structure, which have a significant architectural impact.
    • Reverse-Engineering ADRs: To address these "ghost decisions," one team Andrew worked with began reverse-engineering Architecture Decision Records (ADRs). They documented historical decisions, including the three different options they selected and the reasons why they were rejected at the time. This provided clarity on the original constraints and allowed the team to revisit decisions when the context had changed, such as a startup growing into a large scale-up.
    • Documenting Disagreements: The episode also touches on the challenge of documenting the human factors behind decisions, such as conflicts and power imbalances. Andrew suggests using phrases like "
    • adopted despite" or "rejected despite" in ADRs to acknowledge opposing viewpoints and ensure all perspectives are represented in the official documentation. This approach can help people feel acknowledged and provides valuable context for new team members.
    • The "Telephone Game": Kenny highlights the dangers of relying on undocumented decisions, which can lead to a "telephone game" where information is distorted or lost as people join and leave the team. Without a clear record, it becomes difficult to understand why certain choices were made, making it harder to evolve the codebase.

    Show More Show Less
    19 mins
  • The Reality of Systems Change: Facilitating Architecture with Transparency
    Sep 16 2025

    In this episode, Kenny and Andrea discuss how to move from a blocking, "ivory tower" or hands-on architect role to a more facilitating one. They explore the importance of transparency as a first step in improving an organisation's approach to software architecture and design. The goal is to shift decision-making to the people who have the most information—the ones actually writing the software.

    Key Takeaways:
    • Transparency is Key: It’s a great way to start improving things in any organisation. Documenting the decision-making process helps everyone understand why confident choices were made.
    • The Problem with After-the-Fact Decisions: Writing down decisions only after they've been made is like writing unit tests after the code is finished. It’s more effective to document the process as it happens.
    • Start Small with ADRs: Begin by writing Architectural Decision Records (ADRs) as a team or even with just one other person. You can start with a simple question like, "Should we use ADRs?".

    Benefits of ADRs:

    • Shared Mental Model: ADRs provide a clear, shared understanding of what was said and decided, reducing confusion and "hallway conversations".
    • More Focused Meetings: Reviewing ADRs ensures everyone is on the same page, leading to more productive and less repetitive meetings.
    • Explicit Decisions: ADRs make it clear who is responsible for a decision and its potential side effects.

    How to Start:

    Find a partner and begin writing ADRs for tough decisions in your project. Do it out in the open so others can see the benefits of the practice. This small, disciplined start can encourage others to follow suit, leading to broader adoption across the organisation.

    Show More Show Less
    17 mins