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

Ensemble Working: The ultimate in collaboration...

Avatar for Clare Sudbery Clare Sudbery
April 25, 2025
4

Ensemble Working: The ultimate in collaboration (DevLin '23)

(These slides are from the keynote version of this talk at DevLin 2023)

When teams work well together, this can have a considerable impact on the quality of the software they deliver. But how can we help this to happen? Ensemble working – aka “mob programming” - is a powerful technique where, as Woody Zuill puts it, “All the brilliant minds [are] working together on the same thing, at the same time, in the same space, and at the same computer.”

Ensemble work maximises learning and collaboration, obliterates context switching and is particularly useful when onboarding new team members or embarking on a new project. Some teams work like this all the time, others only as the need arises. Like most powerful techniques, it’s a skill you need to learn. There are many things you can do to enhance its effectivity, and until you’ve experienced a well performing ensemble you might struggle to understand just how much impact it can have.

This talk examines the benefits in detail. Clare explains how she teaches the technique to new teams, and describes why it is her approach of choice in many different situations.

Takeaways
* Why ensemble working is such a powerful technique
* How to convince stakeholders who worry about budgets
* How to introduce ensemble working to new people
* How to maximise the effectiveness of an ensemble

Avatar for Clare Sudbery

Clare Sudbery

April 25, 2025
Tweet

Transcript

  1. @ClareSudbery Software Teaming All the brilliant minds working together on

    the same thing, at the same time, in the same space, and at the same computer. Woody Zuill
  2. @ClareSudbery Wrong assumptions about software development • Software development is

    a reducible activity • Software development is primarily about coding Daniel Terhorst-North
  3. @ClareSudbery Software development is not a reducible activity Daniel Terhorst-North

    “It is a fallacy that software development is reducible, like building a wall, where you can measure who lays the most bricks, or whose work is the neatest or needs the fewest corrections.”
  4. @ClareSudbery The worst programmer I know “The reason that Tim

    [Mackinnon]’s productivity score was zero, was that he never signed up for any stories. Instead he would spend his day pairing with different teammates.” Daniel Terhorst-North
  5. @ClareSudbery Making developers productive “Your highest-value developers are 10x by

    enabling other developers! Often the least useful thing they can be doing is producing code themselves.” Daniel Terhorst-North
  6. @ClareSudbery Wrong assumptions about software development • Software development is

    a reducible activity • Software development is primarily about coding Daniel Terhorst-North
  7. @ClareSudbery Most of programming is… • learning the business domain

    • understanding the problem • assessing possible solutions • validating assumptions through feedback and experimentation • ensuring consistency at scale Daniel Terhorst-North
  8. @ClareSudbery Most of programming is… • identifying, assessing and meeting

    cross-functional needs • … such as compliance, security, availability, resilience, accessibility, usability, etc; • anticipating likely vectors of change without over- engineering; • assessing and choosing suitable technologies; • identifying and leveraging pre-existing solutions Daniel Terhorst-North
  9. @ClareSudbery Measures become targets “Measuring leads to behavior change –

    behaviour change including coming up with creative ways to improve those measurement scores even at the expense of results that everyone agrees matter.” Kent Beck and Gergely Orosz
  10. @ClareSudbery Goodhart’s Law “When a measure becomes a target, it

    ceases to be a good measure.” Kent Beck and Gergely Orosz
  11. @ClareSudbery Ensemble work maximises learning • Onboarding new team members

    • Starting a new project • Learning together as a team • Engagement and job satisfaction
  12. @ClareSudbery Ensemble work maximises collaboration • Good collaboration => increased

    quality • Obliterates context switching • Minimises bottlenecks • Getting the best out of everyone...
  13. • We treat everyone with kindness, consideration and respect All

    roles are enhanced by a working agreement "Creative Commons Share-alike license with attribution Emily Bache, ProAgile" @ClareSudbery
  14. Ensemble Roles • Facilitator • Typist • Navigator • Supporter

    • Rotate all except facilitator often Typist Navigator Facilitator Supporters "Creative Commons Share-alike license with attribution Emily Bache, ProAgile" @ClareSudbery
  15. Typist role • Enters code into the computer • Expert

    use of IDE, shortcuts, code navigation, searching • Listens to the team Typist Navigator Facilitator Supporters "Creative Commons Share-alike license with attribution Emily Bache, ProAgile" @ClareSudbery
  16. Navigator role • Leads the work • Makes decisions •

    Communicates clearly about direction and intent • Explains details if needed Typist Navigator Facilitator Supporters "Creative Commons Share-alike license with attribution Emily Bache, ProAgile" @ClareSudbery
  17. Supporter role • Help the navigator (when they ask) •

    Raise concerns (at the right time) • Ask questions so you understand what’s going on Typist Navigator Facilitator Supporters "Creative Commons Share-alike license with attribution Emily Bache, ProAgile" @ClareSudbery
  18. Facilitator role • Provides meta-guidance • Moderates dysfunction • Highlights

    excellence • Can be part time • Aims to become redundant Typist Navigator Facilitator Supporters "Creative Commons Share-alike license with attribution Emily Bache, ProAgile" @ClareSudbery
  19. @ClareSudbery Summary – Part 1 • Start small – try

    it out! • You don’t need permission if you’re getting results • Focus on team metrics • Pay attention to long term quality – bugs and tech debt • Use the opportunity to remove unnecessary ceremonies • Regular retros
  20. @ClareSudbery Summary – Part 2 • Make your own rules

    – change as you go • Start with a strong structure • Keep people engaged • Agree on rules of engagement and keep reviewing • Let people opt out • Pay attention to enablers and blockers • Get help!
  21. @ClareSudbery “In order to be successful in modern development organizations,

    software developers need new skills. These skills are not easily learnt on a short training course or at a university. Practices like Continuous Integration and Test-Driven Development require developers to change their minute-by- minute habits and ways of working.” Emily Bache Samman Technical Coaching Society
  22. Sudbery Software Engineering Ltd Does your team want help to

    improve their software delivery? Coaching, keynotes & workshops Events and info: tinyurl.com/csudbery Mastodon: mastodon.social/@ClareSudbery Twitter: @ClareSudbery LinkedIn: tinyurl.com/lin-csudbery Podcast: tinyurl.com/tech-better-pod
  23. @ClareSudbery The Stupidity Manifesto LET’S STOP MAKING EACH OTHER FEEL

    STUPID. INSTEAD, LET’S… • ENCOURAGE EVERYONE TO ASK QUESTIONS • Lead by example: Be honest when we’re confused • Value curiosity over knowledge • Prioritise clarity over jargon • Remember we all forget stuff • Get excited about teaching and learning • Acknowledge the broad range of knowledge in our industry, and avoid judging someone if their knowledge doesn’t match ours • LET’S STOP MAKING EACH OTHER FEEL STUPID. Sign the manifesto:
  24. Ilianna: Terraform Kirsty: Hadoop Mircea: iOS Native Esra: SonarQube Georgia:

    Golang Rob: AWS Scott: AiOps Andy: Encryption Anik: PySpark Jon: CentOS 7 THE WHEEL OF CONFUSION
  25. Terraform CentOS 7 Hadoop iOS Native SonarQube Golang AWS AiOps

    PySpark Recursion THE WHEEL OF CONFUSION
  26. Terraform CentOS 7 Hadoop iOS Native SonarQube Golang AWS AiOps

    Recursion Encryption THE WHEEL OF CONFUSION
  27. Terraform CentOS 7 Hadoop iOS Native Golang AWS AiOps 398373

    Encryption PySpark THE WHEEL OF CONFUSION