Inquiries

Think, Code, and Solve Together: The Art of Ensemble Programming

Summary

This hands-on workshop introduces participants to ensemble programming, a collaborative approach to software development where the whole team works together on the same code, at the same time. Through sessions with changing constraints, and retrospectives, participants will first learn the mechanics of ensemble programming—how to effectively rotate roles, communicate ideas, and maintain shared ownership. A role-playing game will explore the dynamics of ensemble programming, revealing how different behaviors influence team productivity and collaboration. By experimenting with both constructive and destructive actions, participants will gain a deeper understanding of teamwork, communication, and decision-making in an ensemble setting. By the end of the day, attendees will have the skills and confidence to apply ensemble programming in their teams, improving collaboration, code quality, and overall team efficiency.

Language icon
English, German
Location Icon
Full-day, in-person, on-site workshop
Target Group
Developers, Testers, Site Reliability Engineers, Product Owners, Scrum Masters, and anyone involved in software development.
Course duration:
1 day
Max participants:
3-12

You will learn

Check bullet point icon

Understanding the Mechanics of Ensemble Programming

Check bullet point icon

Recognizing and Influencing Team Dynamics

Check bullet point icon

Effective Communication & Shared Ownership

Check bullet point icon

Experimenting with Team Roles & Behaviors

Check bullet point icon

Iterative Improvement

Check bullet point icon

Applying Ensemble Programming Beyond the Workshop

Your Guide

Pablo is a software engineer with extensive experience in Python and JavaScript, as well as a strong background in various other programming languages. As the president of Coders Only, he is passionate about fostering communities where developers can grow their skills through collaboration and hands-on learning. He enjoys organizing events that emphasize clean code, maintainability, and craftsmanship. When he's not coding, you'll find him bouldering, refining his Nix setup, or planning his next outdoor adventure.

Pablo Vergés

Course content

This workshop is designed as a full-day, hands-on experience exploring the mechanics and dynamics of ensemble programming. Through coding sessions and an interactive role-playing game, participants will gain a deep understanding of how to collaborate effectively as an ensemble while improving communication, problem-solving, and decision-making skills.

Setting the Stage

  • What is ensemble programming, and why does it work?
  • Key roles in an ensemble: Driver, Navigator, the Ensemble and the Facilitator

Hands-on: Solving a Simple Problem Together

  • Implementing FizzBuzz as an ensemble
  • Practicing rotation of roles and learning to think out loud
  • Encouraging inclusive collaboration and shared ownership

Three Guided Ensemble Programming Sessions

  • Each session introduces new constraints to reinforce best practices
  • Short retrospectives after each session to discuss insights and challenges
  • By the end, participants will have internalized the mechanics of ensemble programming

Interactive Role-Playing Game: Understanding Team Dynamics

  • Participants take on different roles with action points
  • Actions earn game points, but not all actions are beneficial to the team
  • Encourages experimentation with both constructive and destructive behaviors
  • After each session, a retrospective focuses on the dynamics of ensemble programming
  • Participants reflect on communication patterns, decision-making, and team cohesion
  • The game helps reveal hidden teamwork challenges and opportunities for growth

Final Reflection & Takeaways

  • Key lessons on effective collaboration in an ensemble
  • How to apply ensemble programming in real-world software development
  • Identifying team behaviors that improve or hinder productivity

This workshop provides a hands-on, engaging, and fun way to learn ensemble programming beyond just the mechanics. Participants will leave with practical techniques to collaborate better, solve problems faster, and create a more inclusive and productive team environment.

Participants needs to bring:

Nothing, everything is provided by the facilitator.

Room Requirements

Large Room that allows people to move around Projector Wi-Fi 1 Flipchart or Whiteboard One table with 1 chair, one screen, one mouse and a keyboard Chairs

Explore more courses

Think, Code, and Solve Together: The Art of Ensemble Programming

Pablo Vergés

Git Demystified: Seeing Git Like Never Before

Pablo Vergés

It Takes More Than One

Simon Berner

Code. Pair. Reflect. A Day of Deliberate Practice

Pablo Vergés

A Tester’s Toolkit

Florian Sommerfeldt

Risk-based Testing Workshop

Florian Sommerfeldt

Requirement engineering

Alexandre Bauduin

Ilari’s Spectacular Testing Circus

Ilari Henrik Aegerter

Would you like to know more?

Fill out the form and we will get back to you as soon as possible.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Ask for details and price