Preface
Acknowledgments
About the Author
- Why I wrote this book
Navigation by Interest
- Audience Groups Navigation
- Thematic Coverage Across Chapters
- Conceptual Timeline Through Chapters
- Core Principles Across Chapters
Chapter 1 – Agile Software Development
- Agile
- A Brief History of Agile
- Ticket or User Story?
- What Real User Stories look like
- Scope creep
- Practices and values of Agile software development
- Why “the Right Side” Still Matters
- What is the Agile Fluency Model?
- From Estimation to Understanding: User Stories, and ATDD
- Estimation Without Understanding
- ATDD: Shifting from Guessing to Knowing
- ATDD, and Estimation
- Ethics and Responsibility
- Diagnosing Agile Dysfunctions
- Top Management Dysfunctions
- Middle Management Dysfunctions
- Software Development Team Dysfunctions
- Using This Diagnostic
- Agile maturity checklist
Chapter 2 – 79 years of software development
- The Origins of Code
- Cornerstones in the History of Software
- What is Object Orientation?
- The Illusion of Change in Software
- What Did Change Then?
- The Burden of Misinformation
- A Call for Responsibility
- The Forgotten Craft
- Bridging the Knowledge Gap
- Dysfunction Maps: Staying Grounded in Software History
- Top Management
- Middle Management
- Software Development Team
Chapter 3 – Ethics, practices, and good habits of programmers
- The Programmer’s Oath (Robert C. Martin, 2015)
- The Foundation of Good Code (Dave Farley’s Criteria)
- The Code Works
- The Code Is Easy to Change
- Good Habits for Software Developers
- Stakeholder Awareness
- The Relevance of Patterns, and Refactoring
- Technical debt
- Dysfunction Maps: Ethics, Craft, and Responsibility
- Top Management
- Middle Management
- Software Development Team
- The rational conclusion
- Why Ethics Matters - A Personal Reflection
- Ethical Responsibility Is Personal
- Process vs. Principle: The Trunk-Based Development Paradox
- The Real Root of Ethical Failure
- The Way Forward: Mastery and Communication
- Clarifying SOLID: SRP, OCP, and DIP (the ones we argue about most)
- SRP - Single Responsibility Principle
- OCP - Open/Closed Principle
- DIP - Dependency Inversion Principle
- How the three interact (and how tests keep you honest)
- A Personal Success Story: How Practice Changed My Mindset and My Team
- First, I had to change my own perspective.
- TDD: From Practice to Habit
- Architecture Principles and Object Orientation
- Coupling and Cohesion: Old Wisdom, Fresh Understanding
- Know What You Want
- Bringing It All Together
Chapter 4 – Test driven development
- The Mechanics of TDD
- The Purpose of TDD
- The Role of AI in TDD
- AI in Software Development
- TDD, and Continuous Integration (CI)
- Pair Programming vs. Asynchronous Code Review
- Dysfunction Maps: Practicing TDD in the Real World
- Top Management
- Middle Management
- Software Development Team
- Results of Test Driven Development
- Training, and Mastery
- Consequences of TDD
- Behavior Driven Development (BDD)
- Explanation
- What vs. How
- Consequences
- Acceptance Test Driven Development (ATDD)
- Explanation
- Consequences
- Who Owns the Tests?
- A Shared Responsibility, Not a Silo
- Test Ownership Across Roles
- Ownership by Layer (in 4-Layer Architecture)
- Why Shared Ownership Matters
- Final Thought
- Getting TDD Wrong: The Myth of “Just Write the Test First”
- The Real Mechanics: Writing in the Test First
- TDD as a Conversation, Not a Command
- Why Algorithmic Problems Aren’t a Special Case
- TDD Is About Clarity, Not Coverage
- A More Accurate Practice
- Summary: Don’t Write the Test First - Write with the Test
- How to Structure a Test
- Executive Summaries & Cheat Sheets
- For Managers: What To Know About TDD
- For Developers: Daily Habit Checklist
Chapter 5 – Useful goals in software development teams
- What is Value?
- Three Primary Forms of Value
- The Danger of Proxy Metrics
- Experimentation and Prototyping: The Right Way to Explore
- The Role of Prototypes in Learning
- The Myth of the Throwaway Prototype
- A Prototype Is Still Software
- Fail Fast ≠ Build Sloppy
- A Prototype Is an Experiment in Value, Not an Experiment in Sloppiness
- The Minimal Reliable Slice
- In Short
- Work Breakdown & User Stories, Plan for Outcomes, Not Output
- Value-Oriented Work Breakdown
- Vertical vs. Horizontal Slices
- Slicing Heuristics
- Defining User Stories: Clarify the What, Delay the How
- Build the Right Thing
- Executable Requirements
- ATDD as Truth
- Flow Efficiency vs Resource Efficiency
- How Process Hurts Flow
- Adding People: Scale Decisions, Not Headcount
- Flow Instead of Process: Optimize for Value, Not Activity
- Continuous Integration
- Why CI Matters
- CI as Architectural Pressure
- Easy Changes: Optimize for Changeability
- Organizational responsiveness
- Developer Morale: The Human Core of Software
- Why Morale Matters
- Sustainable Pace
- Psychological Safety and Trust
- Dysfunction Maps: Useful Goals and Flow
- Top Management
- Middle Management
- Software Development Team
- Conclusion: Useful Goals Are User-Centric, Change-Ready, and Team-Aligned
Chapter 6 – Curiosity as a Catalyst for Innovation
- The Curiosity Deficit in Organizations
- Why Curiosity Matters in Tech
- Curiosity in Tools and Frameworks
- Leadership Practices to Encourage Curiosity
- Practices, and Rituals to Support Curiosity
- Dysfunction Maps: Curiosity and Learning
- Top Management
- Middle Management
- Software Development Team
- WOOP
- Following a Plan: From Rigidity to Adaptive Planning with WOOP
- WOOP for Plan People on the Agile Fluency Journey
Chapter 7: Adaptive Intelligence, and the Courage to Change
- Understanding AQ in a Technical Context
- Courage: The Enabler of Adaptation
- A Brief History and Importance of DORA
- Adaptive Intelligence Meets DORA, and XP: Embodied Agility vs. Dysfunction
- Practices That Develop Adaptive Intelligence
- Adaptive Intelligence in Planning and Predictability
- Leading with AQ in Mind
- The Strategic Advantage of AQ
Chapter 8: Psychological Safety as a Strategic Asset
- What Psychological Safety Is, and What It Isn’t
- The Cost of Silence
- Creating Psychological Safety in Tech Teams
- Team Rituals That Reinforce Safety
- Psychological Safety, and DORA Metrics
- Leading with Safety in Mind
- Psychological Safety and Legacy Systems
- Have you ever thought about?
- Dysfunction Maps: Psychological Safety in Practice
- Top Management
- Middle Management
- Software Development Team
- Safety First - Not Last
Chapter 9: Metrics That Matter: From DORA to Morale
- The Power, and Limits of DORA Metrics
- Morale as an Early Indicator
- Triangulating Metrics, and Culture
- Anti-Patterns to Avoid
- Practices That Encourage Healthy Use of Metrics
- Leading with Curiosity, Not Control
- The Rugged Manifesto, and Sustainable Effectiveness
- Metrics as Mirrors, Not Weapons
- Dysfunction Maps: Metrics and Morale
- Top Management
- Middle Management
- Software Development Team
Chapter 10: From Silos to Synergy: Leading Beyond Department Walls
- The Hidden Cost of Silos
- Conway’s Law, and the Architecture of Communication
- From Cross-Functional to Truly Integrated
- Team Topologies, and Stream-Aligned Teams
- Collaboration Rituals That Drive Synergy
- Leadership Practices for Integration
- Beyond Structure: Toward a Culture of We
- Dysfunction Maps: Breaking Silos
- Top Management
- Middle Management
- Software Development Team
Chapter 11: Empowerment Is a Design Problem
- Why Empowerment Fails
- Designing for Empowerment
- Practices That Enable Real Autonomy
- Leadership Behaviors That Support Empowerment
- Empowerment, and Organizational Effectiveness
- Empowerment Is a Loop, Not a Lever
- Dysfunction Maps: Designing for Empowerment
- Top Management
- Middle Management
- Software Development Team
Chapter 12: Co-Located Teams Across Company Boundaries – Challenges, and Recommendations
- The Illusion of Virtual Co-Location
- Language as a Barrier to Shared Understanding
- Strategic Work Requires Strategic Proximity
- The Role of Internal Ambassadors
- The True Cost of Misunderstanding
- Risk Assessment Matrix
- Conclusion
- Dysfunction Maps: Cross-Company Collaboration
- Top Management
- Middle Management
- Software Development Team
Chapter 13: Conclusion - Principles Over Process
- What We’ve Learned
- The Path Forward
- The Effective Engineer, the Empowered Team
- Dysfunction Maps: Sustaining Principles
- Top Management
- Middle Management
- Software Development Team
References
- Agile Foundations, and Values
- Software Craftsmanship, and Professionalism
- Testing, TDD, and BDD
- Continuous Delivery, and DevOps
- Design, and Architecture
- Team Topologies, Flow, and Culture
- Human Dynamics, Leadership, and Motivation
- Other Notable Influences
Appendix A – Tools
- Diagnosing Agile Dysfunctions from Chapter 1
- Top Management Dysfunctions
- Middle Management Dysfunctions
- Software Development Team Dysfunctions
- Agile maturity checklist
- Dysfunction Maps: Staying Grounded in History from Chapter 2
- Top Management
- Middle Management
- Software Development Team
- Dysfunction Maps: Ethics, Craft, and Responsibility from Chapter 3
- Top Management
- Middle Management
- Software Development Team
- Why pairing always wins from Chapter 4
- 4 Layer test archictecture and owners from Chapter 4
- Dysfunction Maps: Practicing TDD in the Real World from Chapter 4
- Top Management
- Middle Management
- Software Development Team
- Dysfunction Maps: Useful Goals and Flow from Chapter 5
- Top Management
- Middle Management
- Software Development Team
- Dysfunction Maps: Curiosity and Learning from Chapter 6
- Top Management
- Middle Management
- Software Development Team
- DORA vs. Traditional Metrics from Chapter 7
- Embodied agile vs. agile dysfunctions from Chapter 7
- Adaptive Intelligence, XP Principles & DORA Outcomes
- Top Management Dysfunctions
- Middle Management Dysfunctions
- Team Dysfunctions
- Dysfunction Maps: Psychological Safety in Practice from Chapter 8
- Top Management
- Middle Management
- Software Development Team
- Dysfunction Maps: Metrics and Morale from Chapter 9
- Top Management
- Middle Management
- Software Development Team
- Dysfunction Maps: Breaking Silos from Chapter 10
- Top Management
- Middle Management
- Software Development Team
- Dysfunction Maps: Designing for Empowerment from Chapter 11
- Top Management
- Middle Management
- Software Development Team
- Chapter 12 - Risk Assessment Matrix for Outsourcing
- Dysfunction Maps: Cross-Company Collaboration from Chapter 12
- Top Management
- Middle Management
- Software Development Team
- Dysfunction Maps: Sustaining Principles from Chapter 13
- Top Management
- Middle Management
- Software Development Team
Appendix B – ATDD Example
- Repository Root — Orientation
- Domain Module — Business Rules First
- Purpose
- Location
- Tests
- Application Module — Delivery, Not Business Logic
- Purpose
- Location
- Tests
- System Architecture
- Acceptance Module — Executable Specifications
- Layer 1 - The executable specification
- Layer 2 - DSL - domain specific language
- Layer 3 - The protocol drivers
- Layer 4 - The system under test
- Purpose
- Location
- AbstractAssetAcceptanceTest
- DSL
- UI Acceptance Module — End-to-End Confidence
- Purpose
- Location
- Frontend (
ng-frontend) — Independent, Testable, Replaceable - Location
- Continuous Integration Pipeline
- Location
- Commit Stage
- Acceptance Stage
- Why These Artifacts Matter Together
- Closing Note
- Evidence-Driven Progress, Metrics, and Organizational Impact
- Acceptance Tests as the Foundation of Meaningful Metrics
- Alignment with DORA Metrics
- Lead Time for Changes
- Deployment Frequency
- Change Failure Rate
- Mean Time to Restore (MTTR)
- Example: Acceptance-Test–Based Progress Report
- Table: Acceptance Summary per Build
- Transparency Without Blame — Reinforced by Evidence
- Long-Term System Resilience
- Opportunities by Organizational Level
- Software Development Teams
- Middle Management
- Top Management
- No Heroes Required
- Agile Development as Risk Management
- Quality Enables Speed — Never the Other Way Around
- The Habits That Actually Matter
- Sustainability Over Heroics
Appendix C - Glossary of Key Terms
Appendix D – FAQ and Role-Specific Guidance
- Frequently Asked Questions – FAQ
- For Managers
- For Developers
- Role-Specific Guidance (Appendix D)
- Advice for New Managers
- Advice for Senior Engineers
- Diversity & Inclusion: The Foundation of Resilient Teams
Appendix E – Alignment Matrix
- Behaviors, Principles, Value – Cheat sheet
- Detailed cheat sheets
- Curiosity
- Courage
- Humility
- Ethical Responsibility
- Code That Works
- Code That Is Easy to Change
- Stakeholder Awareness
- Continuous Integration (CI) & Trunk-Based Development
- Test-Driven Development (TDD)
- Shared Ownership
- Psychological Safety
- Flow Over Process
- User-Centric Goal Setting
- Adaptive Intelligence (AQ)
- Empowerment & Autonomy
- Cross-Functional Collaboration
- Healthy Use of Metrics
Appendix F - How to break Learned Helplessness in Big, Mixed Teams
- Shrink the surface of change
- Rebuild local agency (the antidote to helplessness)
- Use visible experiments instead of principles
- Normalize speaking up (micro safety rituals)
- Show progress with dual mirrors
- Anchor back to professional identity
- How to break Learned Helplessness in Big, Mixed Teams