liveBook · Manning

What you will learn in Collaborative Software Design: How to facilitate domain modeling decisions

How to facilitate domain modeling decisions

by Evelyn van Kelle, Gien Verschatse Kenny Baas-Schwegler

Chapter by chapter

Chapter 1: The need for collaborative software design

1.1 Design decisions gone wrong at BigScreen · 1.1.1 Understanding the landscape · 1.1.2 BigScreen’s attempt at refactoring · 1.2 BigScreen: How collaborative modeling helped to improve design decisions · 1.2.1 Our approach for BigScreen · 1.2.2 The new architecture · 1.2.3 A brief history of software design · 1.2.4 The Agile theater · 1.2.5 Enabling teams to do collaborative software design · 1.3 Collaborative software design as a catalyst for better design decisions · 1.3.1 Collaborative modeling, design, and architecture · 1.3.2 Collaborative modeling ingredients and potential benefits of facilitation · 1.3.3 The effect of social dynamics on collaborative modeling sessions · 1.3.4 Collaborative decision-making · 1.4 Summary

What you learn in chapter 1 →

Chapter 2: What is collaborative modeling?

2.1 Understanding the business problems · 2.1.1 What problems are we trying to solve? · 2.1.2 What is collaborative modeling? · 2.1.3 Exploring business problems using collaborative modeling · 2.2 Domain-Driven Design and collaborative modeling · 2.2.1 What is Domain-Driven Design? · 2.2.2 Who are the stakeholders? · 2.2.3 Why DDD and collaborative modeling go hand in hand · 2.3 Different collaborative modeling tools · 2.3.1 Collaborative modeling in the problem and solution space · 2.3.2 EventStorming · 2.3.3 Example Mapping · 2.3.4 Domain Storytelling · 2.3.5 When to use what tool · 2.4 Collaborative software design catalysts · 2.5 Further reading · 2.6 Summary

What you learn in chapter 2 →

Chapter 3: Using collaborative modeling for design and architecture

3.1 What is software design and architecture? · 3.1.1 The importance of meaning and definitions · 3.1.2 What is software architecture? · 3.1.3 What is software design? · 3.1.4 What are sociotechnical systems? · 3.1.5 Design decisions and collaborative modeling · 3.2 Heuristics for collaborative modeling · 3.2.1 What are heuristics? · 3.2.2 Competing heuristics · 3.2.3 How to use heuristics · 3.3 Driving the design by understanding the business · 3.3.1 Designing boundaries · 3.3.2 Why boundaries are designed through collaboration · 3.3.3 From design to architecture · 3.4 Collaborative software design catalysts · 3.5 Chapter heuristics · 3.6 Further reading · 3.7 Summary

What you learn in chapter 3 →

Chapter 4: The ingredients of collaborative modeling

4.1 The collaborative modeling stages · 4.1.1 Why use our stages? · 4.1.2 The stages · 4.2 Preparing for a session · 4.2.1 Preparing the content · 4.2.2 Preparing the space · 4.3 Sensemaking · 4.3.1 Conscious and unconscious minds · 4.3.2 Opening up conversations · 4.3.3 What is sensemaking? · 4.3.4 Why would you do sensemaking? · 4.3.5 In-person or remote? · 4.3.6 Premortem · 4.4 Check-in and check-out · 4.4.1 What is a check-in and check-out? · 4.4.2 Characteristics of a check-in and check-out · 4.4.3 Why would you do a check-in and check-out? · 4.4.4 Capturing feedback through check-outs · 4.5 Different collaboration styles for modeling with tools · 4.5.1 Together, Alone · 4.5.2 Split and Merge · 4.5.3 Small Group Diverge and Converge · 4.5.4 Liberating structures: 1-2-4-All · 4.5.5 Ensemble · 4.5.6 Fishbowl · 4.5.7 Anarchy! · 4.5.8 Guerilla · 4.5.9 The secret modeler · 4.5.10 How to use the styles · 4.6 Retrospective · 4.6.1 Evaluating the outcome of the session · 4.6.2 When we don’t do a retrospective · 4.7 Collaborative software design catalysts · 4.8 Chapter heuristics · 4.9 Further reading · 4.10 Summary

What you learn in chapter 4 →

Chapter 5: Facilitating collaborative modeling

5.1 The role of a facilitator · 5.1.1 The facilitator as an observer · 5.1.2 Other stances of a facilitator · 5.2 The core competencies of a facilitator · 5.2.1 Neutrality · 5.2.2 Observing · 5.2.3 Compassion · 5.2.4 Using and learning the core competencies · 5.3 Skill set of a facilitator · 5.3.1 Clear communication · 5.3.2 Active listening · 5.3.3 Holding space · 5.4 Facilitating sensemaking and collaborative styles · 5.4.1 Why do you need a facilitator? · 5.4.2 The role of a facilitator during sensemaking · 5.4.3 Facilitating check-ins and check-outs · 5.4.4 Preparing to facilitate sensemaking · 5.4.5 Facilitating collaborative styles · 5.4.6 What if you’re not the facilitator? · 5.5 Dealing with remote facilitation · 5.5.1 Benefits and potential downsides of the different forms · 5.5.2 Preparing a remote facilitation · 5.6 Collaborative software design catalysts · 5.7 Chapter heuristics · 5.8 Further reading · 5.9 Summary

What you learn in chapter 5 →

Chapter 6: The influence of ranking

6.1 Ranking explained · 6.1.1 What is ranking? · 6.1.2 Implicit versus explicit ranking · 6.1.3 Symbolic violence · 6.1.4 Epistemic injustice · 6.2 Becoming aware of ranking during collaboration and software design · 6.2.1 Group ranking · 6.2.2 People · 6.3 Facilitating ranking · 6.3.1 Analyzing the group rank · 6.3.2 Own, play, and share your rank · 6.3.3 Making the group aware of their rank · 6.4 Collaborative software design catalysts · 6.5 Chapter heuristics · 6.6 Further reading · 6.7 Summary

What you learn in chapter 6 →

Chapter 7: The effect and opportunities of cognitive bias

7.1 Cognitive bias explained · 7.1.1 What is cognitive bias? · 7.1.2 What does cognitive bias look like? · 7.1.3 System 1 and System 2: A crash course · 7.1.4 Embracing cognitive bias · 7.2 Cognitive bias during collaboration and software design · 7.2.1 Confirmation bias · 7.2.2 The law of triviality · 7.2.3 False-consensus effect · 7.2.4 Availability bias · 7.2.5 Loss aversion · 7.2.6 Additive bias · 7.3 Facilitating cognitive bias · 7.3.1 Self-fulfilling prophecy · 7.3.2 Altering behavior through nudges · 7.3.3 The different dimensions of nudges · 7.3.4 Becoming a choice architect · 7.4 Collaborative software design catalysts · 7.5 Chapter heuristics · 7.6 Further reading · 7.7 Summary

What you learn in chapter 7 →

Chapter 8: Resistance and conflict resolution

8.1 Why people show resistance and have conflicts · 8.1.1 What conflict is all about · 8.1.2 Edge behavior · 8.1.3 What is resistance? · 8.2 Resistance and conflict during collaboration · 8.2.1 Recognizing resistance and conflict in collaborative modeling · 8.2.2 The effect of resistance and conflict on software design · 8.2.3 Resistance and conflict as learning opportunities · 8.3 Facilitating toward a resolution · 8.3.1 Resistance and conflict in practice · 8.3.2 Kissing the group over the edge · 8.3.3 Creating role fluidity · 8.4 Collaborative software design catalysts · 8.5 Chapter heuristics · 8.6 Further reading · 8.7 Summary

What you learn in chapter 8 →

Chapter 9: Making sustainable design decisions

9.1 Decisions, decisions, decisions · 9.1.1 What is a decision anyway? · 9.1.2 Decision vs. outcome · 9.1.3 What you need to make a decision · 9.1.4 Reactive vs. proactive decisions · 9.1.5 Sustainability in software design · 9.2 Decision-making styles and levels of buy-in · 9.2.1 Autocracy vs. democracy · 9.2.2 Creating buy-in on decisions · 9.2.3 Buy-in on software design decisions · 9.3 Facilitating sustainable design decisions · 9.3.1 Moving toward a majority vote · 9.3.2 Go fishing! · 9.4 Collaborative software design catalysts · 9.5 Chapter heuristics · 9.6 Further reading · 9.7 Summary

What you learn in chapter 9 →

Chapter 10: Managing unsolvable problems

10.1 Polarities: Some problems can’t be solved · 10.1.1 What are polarities? · 10.1.2 Recognizing polarities · 10.1.3 Common polarities in collaborative modeling · 10.1.4 Crusaders and tradition bearers · 10.2 Visualizing a polarity · 10.2.1 Creating a shared understanding of a polarity · 10.2.2 Managing the polarity · 10.3 Managing polarities during collaborative modeling · 10.3.1 Getting stuck in a polarity · 10.3.2 Managing a polarity as facilitator · 10.3.3 Letting the group manage the polarity · 10.4 Collaborative software design catalysts · 10.5 Chapter heuristics · 10.6 Further reading · 10.7 Summary

What you learn in chapter 10 →

Chapter 11: Communicating and documenting decisions

11.1 Formalizing a decision · 11.1.1 Finding the consequences · 11.1.2 Capturing the decision · 11.2 Spreading the knowledge through the company · 11.2.1 Communicating decisions · 11.3 Keeping the decision alive · 11.3.1 The modeling process as a whirlpool · 11.3.2 Don’t fall in love with your model · 11.4 Collaborative software design catalysts · 11.5 Chapter heuristics · 11.6 Further reading · 11.7 Summary

What you learn in chapter 11 →

Chapter 12: Collaborative modeling beyond software design

12.1 Moving toward understanding the context · 12.1.1 Focusing on customer needs · 12.1.2 Connecting business strategy, product, and software architecture · 12.2 Collaborative modeling beyond software design · 12.2.1 Different roles, different modeling needs · 12.2.2 Customer journeys and EventStorming: A love story · 12.2.3 Aligning capabilities with your strategy · 12.3 Moving toward implementation · 12.3.1 When to go from collaborative modeling to coding · 12.3.2 From collaborative modeling to code · 12.4 Collaborative software design catalysts · 12.5 Chapter heuristics · 12.6 Further reading · 12.7 Summary

What you learn in chapter 12 →

Concepts explained in this book

These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.