Blog

Ensemble Testing and Ensemble Programming - Richard Seidl

Written by Richard Seidl | Jul 24, 2023 10:00:00 PM

Ensemble programming and testing has evolved from the pair method. Thomas coaches teams that embark on this special and effective way of working together. The ensemble method brings developers and testers together, a basic understanding of the work of the other team develops, and this in turn leads to software being produced and tested even more effectively. Thomas explains to us what the basic framework of this method looks like and what freedoms it offers. He also gives arguments for the boss, who may not be willing to give the teams the time they need.

“Those supposedly ‘stupid’ questions that you wouldn’t dare to ask in one-to-one situations are asked much more quickly in such a safe ensemble space!” - Thomas Much

Thomas originally wanted to become a space gardener. Both gardening and space have remained hobbies since the computer intervened almost 40 years ago and captivated him. Over the years, he has taken on numerous roles, including developer, coding architect and programming trainer. With a degree in computer science, Thomas is now a Technical Agile Coach for Die Techniker (TK) in Hamburg. Together with his coaching colleagues, he supports teams in improving their collaboration and agile programming practices - by promoting pair and team programming, TDD and test automation, among other things.

Highlights of this episode:

  • Ensemble coding/testing is like peer programming, but more intensive and promotes teamwork
  • It is important that developers and testers learn from each other to work better as a team
  • Ensemble sessions allow testers and developers to better understand what each other is doing
  • There are certain structures for ensemble testing, such as separating execution and thinking
  • Ensemble sessions are ideally 4-6 people in size and last 2-3 hours
  • It is important that management recognizes and supports the benefits of ensemble sessions
  • Architecture should be seen as a team sport and integrated into ensemble testing/programming
  • Preparation and the right mindset are critical to the success of an ensemble session

Ensemble Testing & Programming: Team dynamics rethought

Ensemble Testing and Ensemble Programming are innovative methods that bring developers and testers together to work on solutions to problems and learn from each other. This method promotes the exchange of knowledge, improves team dynamics and increases efficiency in agile projects.

What is Ensemble Testing and Programming?

Ensemble testing and programming is an innovative method of collaboration within development teams. It builds on the basic idea of peer programming, but goes far beyond this. By working together on code or tests, this method not only promotes the exchange of knowledge between developers and testers, but also creates a space for shared learning. As Thomas so aptly explained: ‘It’s like peer programming on steroids’. This technique enables teams to solve complex problems more effectively while encouraging communication between everyone involved.

The advantages of this method

The use of ensemble techniques offers several advantages. Firstly, it strengthens the testing knowledge within the development teams, which is particularly essential in environments with continuous delivery. Secondly, testers gain a better understanding of the challenges of development. This mutual exchange of knowledge not only helps teams to work more efficiently, but also to develop a stronger bond with each other. The result is improved testability of the developed software and increased satisfaction within the team.

How do you implement these techniques?

The introduction of Ensemble Testing and Programming requires more than just a willingness to work together; it requires a structured approach. One key to success is breaking down existing barriers between developers and testers and creating an environment that encourages open communication. Another important factor is the willingness of everyone involved to embrace new ways of working. Thomas shared his experience of how teams can experience a natural exchange that is both fun and productive through regular collaborative sessions - or ‘ensembles’.

Practical tips for implementation

For teams who would like to try out this methodology, there are some practical tips for successful implementation. These include careful preparation of the sessions and clear separation of roles during the work. Another interesting aspect is the concept of the ‘typist’, a person in the team who acts according to the instructions of the entire ensemble. This encourages thinking out loud and discourse within the team. It is also advisable to start with a small group of four to six people and allow enough time for each session.

More than just a method

To summarize, ensemble testing and programming are more than just methods for increasing efficiency; they pave the way for profound changes in a team’s working culture. Bringing together different perspectives creates fertile ground for innovation and creativity.