Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ensemble Programming Guidebook

Ensemble Programming Guidebook

Ten years ago I started a journey of facing one of my personal demons: I was convinced I did not like programming. Out of social software engineering approaches, I experimented with ensemble programming with my team, convinced I would hate it while others may need it. Little did I know - it rewired my brain and rewrote my history. I have been programming since I was 14, in at least 16 languages. While I needed the social setting and cognitive dissonance to change my mind, I have learned so much in the last 10 years working hands-on with other developers on the same work at the same time.

Ensemble programming - a group activity utilizing one computer - creates mindshare by giving voice of the knowledge in the group of individuals on a shared task. It makes a great mechanism not just for passing knowledge but also for building habits and transferring skills. Working on the same thing, at the same time, in the same space and at the same computer allows unusual contributions.

I wrote a book on what I learned and taught forward. So in this talk, we look at what are the pieces I collected as advice from now 10 years of ensemble programming.

Avatar for Maaret Pyhäjärvi

Maaret Pyhäjärvi

September 10, 2025
Tweet

More Decks by Maaret Pyhäjärvi

Other Decks in Programming

Transcript

  1. © 2025 CGI Inc. 2 Timeline ‘13 Origin story Created

    at Hunter Industries with Woody Zuill, Chris Lucian et al. '14 Experience mindset From a conference talk to years of practice and adapting to contemporary exploratory testing. ‘20 Terminology change The term ‘ensemble programming’ was co-created by Maaret Pyhäjärvi and Denise Yu. Popularized by Lisi Hocke, Lisa Crispin, and Emily Bache. Many names Woody Zuill: Software teaming. Chris Lucian: Mob programming. All names in Wikipedia. Toolbox essentials While teams did not work like this full-time, we come to it with learning.
  2. © 2025 CGI Inc. 5 5 Designated Navigator Driver Navigator(s)

    No decisions on the keyboard Navigate on highest level of abstraction Navigate the navigator Rotate 3-15 minutes Roles and rules
  3. © 2025 CGI Inc. 6 Comparison Strong Style Traditional I

    have an idea… Please take the keyboard I have an idea… Give me the keyboard
  4. © 2025 CGI Inc. 8 Becoming polyglot programmer / contemporary

    exploratory tester 8 I had great ideas even when I did not know how to turn them into code – removing the distance is worth the struggle. Cognitive dissonance
  5. © 2025 CGI Inc. 9 Heuristics of keep going 9

    Learning Hard tasks by sourcing best of everyone Contributing Easy tasks by automating to oblivion Holding space
  6. © 2025 CGI Inc. 10 10 The Nose The Rear

    Admiral The Archivist The Automationist The Driver The Mobber The Navigator The Researcher The Sponsor The Traffic Cop
  7. © 2025 CGI Inc. 11 Ensemble Working - Examples Ensemble

    Programming Refactor code with ‘extract method’ and ‘rename’ Make reports feature testable Implement a feature Test-Driven Development Ensembling Ensemble Testing Create Selenium tests Explore a feature Explore an application with a mindmap Explore an application with programmatic tests
  8. © 2025 CGI Inc. 12 Social software development approaches are

    great for… • Larger organizations where functional silos continue to exist (People get together to work) • Agile teams where we need to share specialist skills (Teams get together to do X) • Teaching skills to a group (Training group gets together to learn) • Introducing missing perspectives to programming activities (Non-programmers joining ensemble programming)
  9. © 2025 CGI Inc. 13 Social Software Development with Testing

    Emphasis Approaches on Tour From healing my loneliness To Lisi Hocke’s testing tours To many people on tour To social media driven community learning None of this new style of deep, serendipitous learning would be possible without the social software development approaches
  10. © 2025 CGI Inc. 14 Why? Co-generate options Choose to

    try, choose through doing Practice (doing) over theory (plan) Avoid ping-pong Timely feedback Build more skilled empathetic colleagues 14
  11. © 2025 CGI Inc. 15 15 Accidental Learning by being

    intentional about learning. Fooled by the unknown unknowns. You cannot know what you don’t know but you recognize it when you see it.
  12. © 2025 CGI Inc. 16 Key Lessons Correcting mistakes without

    egos in play Do both! Holding space for what is relevant Slow allows for thoughtful thinking Opportunities to inject exploration Moving from technical debt to technical assets Best face forward in a group Best ideas win when you care about work over credit 16
  13. © 2025 CGI Inc. 17 Insights you can act on

    Founded in 1976, CGI is among the largest IT and business consulting services firms in the world. We are insights-driven and outcomes-focused to help accelerate returns on your investments. Across hundreds of locations worldwide, we provide comprehensive, scalable and sustainable IT and business consulting services that are informed globally and delivered locally. cgi.com