Preface
- Why a book on decision-making for developers?
- Who is this book for?
- What does this book cover?
- Bonus: My growth as a decision-maker
- The Frameworkless Movement
- Consultancy
Chapter 1: Decision-making anti-patterns
- 1.1 Hype-driven development
- 1.1.1 Exploiting Hype
- 1.2 The usual path
- 1.3 The expert
- 1.4 Rage-driven decisions
- 1.5 The role of company culture
- Summary
Chapter 2: A decision-making process
- 2.1 Ingredients for a better technical decision-making
- 2.2 My basic decision-making process
- 2.3 How to design your own process
- Summary
Chapter 3: Involve the right people
- 3.1 The software development team
- 3.1.1 Meet your neighbours
- 3.2 Explore power structures
- 3.3 Whom to involve?
- 3.3.1 Impact
- 3.3.2 Reversibility
- 3.3.3 Classify decisions
- Summary
Chapter 4: Gather data - Business needs
- 4.1 Know the reason why
- 4.2 Business Model Canvas
- 4.3 Value Proposition Canvas
- 4.4 Elevator pitch
- Summary
Chapter 5: Gather Data - Users
- 5.1 The UX data journey
- 5.1.1 Design thinking
- 5.1.1.1 Discover
- 5.1.1.2 Define
- 5.1.1.3 Ideate
- 5.1.1.4 Prototype
- 5.1.1.5 Test
- 5.2 In which ways can UX design contribute to the development process?
- 5.2.1 A rich context for decisions
- 5.2.2 Identify waste
- 5.2.3 Design System
- 5.3 UX designers and developers collaboration
- Summary
Chapter 6: Gather Data - Context
- 6.1 Knowing the “Age”
- 6.1.1 The 3X Model
- 6.2 Knowing the team
- 6.2.1 Skill Matrix
- 6.3 Express Constraints
- 6.3.1 Trade-off slider
- 6.3.2 SWOT analysis
- Summary
Chapter 7: Choose non-functional requirements
- 7.1 Introducing non-functional requirements
- 7.2 Select NFRs
- 7.2.1 Ubiquitous Language
- 7.2.2 Validity of the NFRs
- 7.2.3 How many NFRs?
- 7.3 Visualizing NFRs
- 7.3.1 Architecture Compasss Chart
- 7.4 Output Vs Outcome
- Summary
Chapter 8: Comparing solutions
- 8.1 The Last Responsible Moment
- 8.1.1 Case Study: The Startup
- 8.2 The fishbowl
- 8.2.1 Case Study: The New Team
- 8.3 Pros/Cons/Fixes
- 8.3.1 Case Study: The Mobile application
- 8.4 Visual Comparison
- 8.4.1 Case Study: The Big Rewrite
- 8.5 Weighted Ranking
- 8.5.1 Fitness Functions
- 8.5.2 Case Study: The Pivot
- 8.6 Mixing Tools
- Summary
Chapter 9: A decision-making meeting: a use case
- 9.1 The Setting
- 9.2 Preparatory calls
- 9.3 Check-in
- 9.4 Involve the right people
- 9.5 Gather Data
- 9.6 Choose non-functional requirements
- 9.7 My Comments
- 9.8 Comparing solutions
- Summary
Chapter 10: Deciding how to decide
- 10.1 Classify decisions: The Impact/Reversibility map
- 10.2 Choosing the right tool for the right job
- 10.3 Who should decide?
- 10.3.1 The delegation board
- 10.3.2 Delegation map
- 10.4 Transforming Decisions
- 10.5 Other methods to classify decisions
- 10.5.1 Strategic, Tactical, and Operational
- 10.5.2 Complex/Complicated
- Summary
Appendix A: Interviews
- Alessandro Calzavara: Decision-making in a greenfield project
- Antonio Dell’Ava: A UX designer’s point of view
- Erin Casali: Psychological Safety
- Marco Calzolari: Talent Canvas
- Lorenzo Massacci: Collaborative decision-making
- Francesco Tassi: Technical decision-making in a fintech company
Appendix B: Cynefin Framework
- Obvious
- Complicated
- Complex
- Chaotic
- Disorder
