Rebecca Wirfs-Brock speaking on stage

Heuristics

We all use heuristics (even if we haven't articulated them to others) to discover, understand, explore, create, modify, or extend complex software systems. Billy Vaughn Koen, in Discussion of the Method: Conducting the Engineer's Approach to Problem Solving, defines a heuristic as, "anything that provides a plausible aid or direction in the solution of a problem but is in the final analysis unjustified, incapable of justification, and potentially fallible."

— Rebecca Wirfs-Brock —
More info →

Browse the collection

Design

How can we lower coupling from between bounded contexts or systems

A bounded context should keep its internal details private

More info →
Guiding

When is an architectural decision considered final and effective?

A Decision Is What Gets Implemented

More info →
Design

How should you approach defining team boundaries when migrating a legacy monolith?

Accept Imperfect Boundaries in Legacy Decomposition

More info →
Guiding

How can we document a decision while acknowledging disagreement or known trade-offs?

Acknowledge Downsides and Dissent in Decisions

More info →
Guiding

How can a senior team member critique code publicly without causing shame or demotivation?

Acknowledge Power Dynamics in Public Code Critique

More info →
Guiding

How should we document decisions influenced by interpersonal or inter-team conflict?

Acknowledge Significant Conflict in Decision Rationale

More info →
Guiding

How should you handle someone whose behavior is disrupting a session without making things worse?

Address destructive behavior in private conversations

More info →
Guiding

How do you move forward when team members disagree with a decision but must commit to it?

Address Dissent by Enabling Commitment

More info →
Guiding

What do you do when you detect a fundamental disagreement on the workshop's goal during the session?

Address Goal Misalignment Mid-Session

More info →
Design

How do I design Bounded Contexts?

Align bounded context with the value stream

More info →
Guiding

How should our approach to quality evolve as a product or feature matures?

Align Quality Strategy with Product Lifecycle Phase

More info →
Design

How do I design Bounded Contexts?

Align with domain experts

More info →
Design

How do I design a bounded context?

Align with evolutionary stage (the Simon Wardley heuristic)

More info →
Design

How do I design a bounded context?

Align with growth strategy

More info →
Design

How do I design a bounded context?

Align with historical domain boundaries

More info →
Design

How do I design a bounded context?

Align with investment strategy

More info →
Design

How do I design a bounded context?

Align with key revenue streams

More info →
Design

How do I design a bounded context?

Align with rate of change

More info →
Design

How do I design a bounded context?

Align with source of change

More info →
Design

How do I design a bounded context?

Align with transactional boundaries

More info →
Guiding

How should one manage expectations regarding the speed at which individuals adopt new perspectives or accept change?

Allow Time for Perspective Shifts

More info →
Guiding

When should I formalise with the Gherkin script?

Always write Gherkin

More info →
Guiding

As a leader, how can I support a team's decision without taking ownership of it?

Amplify Team Decisions with Organisational Capital

More info →
Guiding

What is the role of an architect in a decentralized decision-making model?

Architects as Enablers, Not Gatekeepers

More info →
Guiding

How do you ensure a decision is successfully adopted by the team after it has been made?

Ask What Does It Take To Go Along with a Decision

More info →
Guiding

How should a newly autonomous team approach its first major decisions?

Autonomy Requires a System-Wide Perspective

More info →
Guiding

How can we avoid the frustration of performative collaboration when a decision has already been made?

Be Explicit About Decision-Making Authority

More info →
Guiding

How do you create the conditions where people feel safe enough to contribute honestly?

Build connection before diving into content

More info →
Guiding

How do you create an environment where people will speak up during a crisis?

Build psychological safety through how you handle small failures

More info →
Design

When should I build software myself, or buy it off the shelve?

Build software for disruptive generic subdomains yourself

More info →
Guiding

How should one approach potentially confrontational or emotionally charged conversations with key stakeholders?

Calculated Interpersonal Risk-Taking

More info →
Design

How can we make our decision records more holistic and context-rich?

Capture Both Logic and Sentiment in Decisions

More info →
Guiding

How do you know if participants actually agree with the workshop's purpose before you start?

Challenge the workshop premise before diving in

More info →
Guiding

How do you know if something you find problematic is actually blocking the group's progress?

Check if the problem hinders you or the group

More info →
Guiding

How do you avoid creating problems for teams that deploy and test your software?

Consider downstream teams when choosing architectural patterns

More info →
Value-based

How do we ensure that recorded decisions are actually implemented?

Cultivate Ownership for Decision Accountability

More info →
Guiding

How can we prevent a single disagreement from blocking a large, complex decision?

Decompose Large Decisions into Smaller Ones

More info →
Value-based

How can we make it safe for people to speak up?

Deep Democracy: No one has the monopoly to the truth

More info →
Design

When a deployment causes an outage, should you revert or try to fix it in production?

Default to rollback rather than fix-forward

More info →
Value-based

How should we define and measure quality when it is inherently subjective and context-dependent?

Define Quality as Value to a Prioritised Persona

More info →
Guiding

How do you communicate critical, potentially uncomfortable insights to absent or misaligned stakeholders after a workshop?

Deliver Ground Truth Post-Session

More info →
Design

How can I distil bounded context after an EventStorming session?

Design Bounded Contexts around EventStorming Policies

More info →
Design

How can I distil bounded context after an EventStorming session?

Design bounded contexts by looking at the humans during a big picture EventStorming

More info →
Design

How can I distil bounded context after an EventStorming session?

Design bounded contexts by looking at the one-way flow of orange sticky notes during a big picture EventStorming

More info →
Guiding

How do you help people understand complex system changes when explanations and models aren't landing?

Design experiences instead of explaining more

More info →
Design

What non-functional attributes are critical for maintaining quality in complex, modern systems?

Design for Modern Quality Attributes

More info →
Design

How can I make projection more adaptable?

Design for replayability

More info →
Guiding

How should you handle decisions that replace your own previous work?

Detach Personal Emotion from Technical Decisions

More info →
Guiding

How can one foster objective discussion and collaboration without personalizing design or change initiatives?

Detach Self from Ideas

More info →
Value-based

How do we prioritize which design battles to fight and which to concede?

Distinguish Between Tigers and Mice in Design

More info →
Guiding

How do you structure incident response when no single team has all the answers?

Distribute debugging authority beyond the war room

More info →
Design

How can we determine if an event is a valuable Domain Event or just technical noise?

Domain Events Must Carry Their Own Context

More info →
Guiding

How do you know when your facilitation technique is preventing rather than enabling collaboration?

Drop the methodology when it becomes the barrier

More info →
Guiding

How can we create a collaborative advising culture instead of criticism?

Engage Advisors During, Not After, Deliberation

More info →
Design

How do you know if an architectural change will actually improve the team's situation?

Evaluate architectural options against actual team pain points

More info →
Design

How do you know if a technical modernization will actually improve the team's situation?

Evaluate architectural options against team frustrations

More info →
Guiding

How do we wrap up a dot voting at a big picture EventStorming?

EventStorming: Add minority wisdom to decision

More info →
Guiding

When do we have enough details in an EventStorming?

EventStorming: Add more details with invisible conversations.

More info →
Guiding

How can we discover more edge cases during an EventStorming session?

EventStorming: Ask is this always the case on policy

More info →
Guiding

How many people can we have during an EventStorming?

EventStorming: Do big picture EventStorming on a single paper roll

More info →
Guiding

When running EventStorming workshops, duplication is not evil.

EventStorming: Don't be shy on duplicating stickies

More info →
Guiding

How can we get new insight during an EventStorming session?

EventStorming: Don't fill in the gaps

More info →
Guiding

How can we start structuring a Big Picture Eventstorming after a chaotic exploration?

EventStorming: Emerging pivotal events for a Big Picture

More info →
Guiding

Explore all the edge cases and what happens when things go wrong.

EventStorming: Explore what-if scenarios

More info →
Guiding

How do we introduce new colours during an EventStorming?

EventStorming: Introduce new colours iteratively

More info →
Guiding

Who removes stickies during an EventStorming?

EventStorming: Lead by example and remove stickies as facilitator

More info →
Guiding

How can we lower political play and let everyone feel heard with dotvoting in a big picture EventStorming?

EventStorming: Let everyone pitch there biggest constraint or opportunity

More info →
Guiding

If only the domain experts has the knowledge, how can we transfer that knowledge the most effectivly and also challenge their assumption of the knowledge?

EventStorming: Let the domain expert talk and the rest write down domain events

More info →
Guiding

How do we make people comfortable with iterative modelling?

EventStorming: Make a ceremony of throwing things away

More info →
Guiding

How many conversations can a single facilitator keep track of?

EventStorming: One (co-)facilitator for every 15 participants

More info →
Guiding

When to remove stickies?

EventStorming: Only remove stickies when discussed with the writer

More info →
Guiding

How do we introduce new colours during an EventStorming?

EventStorming: Play by the colour coding pattern

More info →
Guiding

How many people can we have during an EventStorming?

EventStorming: Split and merge above 7 people on process and design level

More info →
Guiding

How do we visualise competing ideas during an EventStorming?

EventStorming: Split and merge during converging discussions

More info →
Guiding

When do we start to structure the EventStorming by enforcing the timeline

EventStorming: Start enforcing the timeline when everyone added their domain events

More info →
Guiding

When do we switch to example mapping from EventStorming?

EventStorming: Switch to Example Mapping when discussing examples of business rules

More info →
Guiding

When shall I use process modelling eventstorming for as-is discovery of my problem space?

EventStorming: Use as-is process modelling when exploring a brown field problem space

More info →
Guiding

How can we foster collaboration during design?

EventStorming: Use standing table

More info →
Guiding

When shall I use process modelling eventstorming for to-be discovery of my problem space?

EventStorming: Use to-be process modelling when exploring a green field problem space

More info →
Guiding

When should I use EventStorming?

EventStorming: When there is a story to tell, start with EventStorming

More info →
Guiding

How do you facilitate decisions when conflicting priorities or user needs emerge?

Explicitly Navigate Trade-offs

More info →
Guiding

How should you handle architectural decisions that impact multiple team boundaries?

Facilitate Communication to Resolve Boundary Conflicts

More info →
Guiding

What is the most effective stance for an architect when driving significant architectural change?

Facilitate, Don't Dictate, Architectural Change

More info →
Guiding

How do you gain organizational support for uncertain architectural experiments?

Focus on outcomes the organization values most

More info →
Guiding

How can we break down knowledge silos between autonomous teams?

Formalize Architectural Advice Forums for Cross-Context Awareness

More info →
Guiding

How do you get teams to buy into and maintain strategic models like a context map?

Frame Boundary Models for Autonomy and Flow

More info →
Value-based

How do you deliver challenging feedback or uncomfortable truths to stakeholders without alienating them?

Frame Difficult Truths with Mutual Success

More info →
Guiding

How should we evaluate the purpose and effectiveness of our testing efforts?

Frame Testing as an Information-Gathering Activity

More info →
Guiding

How can we prevent design discussions from becoming a personal conflict between two competing ideas?

Generate at Least Three Options to Depersonalise Design Debates

More info →
Guiding

How do we enable a team to make an informed decision when they lack direct experience with the options?

Generate Experience Through Practical Experimentation

More info →
Value-based

How should participants approach a facilitator who appears to be struggling or has made a mistake?

Grant Grace to Facilitators

More info →
Guiding

How should senior architects support newly empowered teams?

Guide Decisions, Do Not Dictate Solutions

More info →
Guiding

How do you guide people toward different architectural approaches without simply imposing your solution?

Interrupt thinking patterns while staying with the flock

More info →
Guiding

How can we introduce new ideas that conflict with a team member's deeply held beliefs?

Introduce Change as an Evolution, Not Revolution

More info →
Design

How do I design a bounded context?

Isolate high-leverage shared capabilities

More info →
Design

How can I let my domain model be decoupled from technical complexity?

Keep your domain model decoupled from frameworks

More info →
Guiding

What role should leadership play during a major incident?

Let executives provide resources without applying pressure

More info →
Guiding

How do you steer a workshop back on track when discussions diverge from the intended outcome?

Leverage Aligned Goals for Direction

More info →
Guiding

Where should an organization begin its journey toward systems change and more effective decision-making?

Make decisions transparent

More info →
Guiding

How do you help a group move forward when everyone seems frozen or unable to participate?

Make explicit feelings when the group is stuck

More info →
Guiding

How do we align teams who have different, unstated assumptions about what quality means?

Make Implicit Quality Perspectives Explicit

More info →
Guiding

How can a team effectively challenge and align their different internal understandings of a problem?

Make the Implicit Mental Models, Explicit for Objective Collaboration

More info →
Design

How can we detect if our decision-making process has become dysfunctional or is being weaponised?

Measure the Flow of Decision Making

More info →
Guiding

How should we evaluate a design solution that seems deceptively simple or easy?

Mistrust Simplicity Achieved Without Thought

More info →
Design

How do we allocate our limited quality and testing budget across a large, complex system?

Modulate Quality Investment by Domain Importance

More info →
Guiding

How do you recognize when your own anxiety is preventing you from addressing what the group needs?

Notice anxiety as signal you're missing something

More info →
Guiding

How do you know when something beneath the surface is blocking a session?

Notice when you work too hard as facilitator

More info →
Design

How do I design a bounded context?

Optimise for future potential

More info →
Design

How do I design a bounded context?

Organise for responsiveness in differentiator capabilities

More info →
Design

When should I build software myself, or buy it off the shelve?

Outsource generic subdomains

More info →
Value-based

When a design or leadership decision inadvertently harms a team member, what is the correct response?

Own Mistakes and Repair the Social Fabric

More info →
Guiding

How can a participant constructively help an unprepared or misdirected facilitator without overstepping boundaries?

Participant-Led Course Correction

More info →
Guiding

How do you create regular opportunities for people to voice doubts without disrupting flow?

Pause every ten minutes to invite dissent

More info →
Guiding

What should you do when you do not agree with a team’s decision?

Permit Contained Failure to Foster Learning

More info →
Guiding

How do you ensure all key stakeholders share a common understanding of a workshop's purpose and desired outcome?

Pre-Align on Workshop Intent

More info →
Guiding

How should you handle varying levels of adoption for decision recording across teams?

Prioritise Documenting Impact Over Process Consistency

More info →
Value-based

When faced with a conflict between hierarchical directives and the team's judgment, where should loyalty lie?

Prioritise Foundational Trust in the Team

More info →
Design

In modern distributed systems, where should we focus our efforts: defect prevention or incident recovery?

Prioritise Recoverability Over Flawless Deployment

More info →
Value-based

How should architects justify and prioritize time spent on stakeholder communication and understanding?

Prioritise Stakeholder Engagement as Core Work

More info →
Design

How do we resolve conflicts between a team's desire for local implementation convenience and broader architectural principles?

Prioritise System Integrity Over Local Convenience

More info →
Guiding

Where should a team focus its initial energy when tackling a new design problem?

Prioritize Shared Context Before Exploring Solutions

More info →
Guiding

What should a facilitator do when a team member is too uncomfortable or fearful to make a required decision?

Proxy Accountability to Unblock Decisions

More info →
Design

How do you limit the blast radius of canary deployments and experiments?

Recognize that global metadata creates global risk

More info →
Design

How do you shift focus from existing technical constraints to core business problems in a design discussion?

Reframe Problem Context

More info →
Guiding

How do we keep the interaction going in a remote EventStorming?

Remote EventStorming: Switch driver every 5 minutes during enforcing the timeline

More info →
Value-based

How should we handle team members who consistently remain silent or disengaged during decision-making processes?

Respect Apathy in Decision-Making

More info →
Guiding

How should one approach existing legacy systems during modernization efforts?

Respect Legacy Systems' History

More info →
Guiding

How do we handle critical, undocumented decisions made in the project's past?

Retroactively Document Foundational Decisions

More info →
Guiding

How do we know if a long-standing architectural constraint is still valid?

Revisit Decisions When Context Changes

More info →
Design

How do I design a bounded context?

Separate engagement and revenue

More info →
Guiding

How do you introduce collaborative modeling when leadership sees it as wasted time?

Start small when leadership resists collaborative sessions

More info →
Guiding

What should you do when you feel overwhelmed or triggered during a facilitation session?

Step back and observe when losing control

More info →
Guiding

How do you understand a model deeply enough to know if it fits your context?

Study models by extracting their building blocks and values

More info →
Value-based

How do you prevent technical preferences from dominating architectural decisions?

Surface value-based preferences before choosing technical solutions

More info →
Design

How should architects effectively communicate complex design and architectural concepts to diverse stakeholder groups?

Tailor Communication to Stakeholder Context

More info →
Value-based

What should be the primary goal when facilitating a design discussion, especially during a disagreement?

The Goal Is the Right Outcome, Not Being Right

More info →
Guiding

How should we manage the evolution of a decision over time, especially when it is reversed?

Treat Decisions as Immutable Historical Records

More info →
Value-based

How do you prevent architectural decisions from becoming unmaintainable haunted graveyards?

Treat design as living conversation, not frozen artifact

More info →
Design

How can we build quality in, rather than inspecting for it at the end of the process?

Treat Quality as an Emergent Property

More info →
Guiding

How should we react when team members push back against a proposed design or practice change?

Treat Resistance as a Valuable Signal

More info →
Guiding

How should we handle strong, potentially biased opinions in an advisory forum?

Treat Strong Opinions as Inquiry Signals

More info →
Guiding

How should one address strong resistance from key stakeholders during significant change initiatives?

Understand the cause of Resistance

More info →
Guiding

When is the right time to write an Architecture Decision Record?

Use ADRs for Thinking, Not Just Recording

More info →
Design

How can you guide autonomous teams to make sound decisions without direct command?

Use Architecture Principles as Decision Guardrails

More info →
Guiding

How can we refine and create an ubiquitous language?

Use consistent language between visual collaboration tools

More info →
Design

When can it be appropriate to use ORM mapping in my domain model?

Use ORM in your domain model when rate of change is low

More info →
Value-based

Why do teams sometimes resist adopting established architectural principles or patterns?

Value Lived Experience Over Theoretical Principles

More info →
Value-based

What is the role of leadership when a team is struggling with a decision?

Value Team Autonomy over Rescuing

More info →
Guiding

How can you tell if hierarchy is preventing honest collaboration in a modeling session?

Watch for approval-seeking as a safety signal

More info →
Guiding

What should an architect do when they disagree with a team's decision?

When Disagreeing, First Reflect on Your Feedback

More info →
Design

When and how should teams document their architectural decisions?

Write Down Decisions Early and Often

More info →