The image shows a panoramic view of a harbour with a train on an elevated railway bridge in the foreground. On the left is a modern building with a striking glass façade, which is the Elbphilharmonie concert hall in Hamburg. In the background, several ships and cranes can be seen, indicating port activity. The weather is cloudy but bright, suggesting late afternoon or early evening. The scene appears both calm and industrial.

Last week, the PHPUnit project held its first code sprint since 2019. In the years in between, something always got in the way.

This was the third time that celebrate company (die kartenmacherei) hosted a PHPUnit Code Sprint. I would like to take this opportunity to thank them, especially Sebastian Heuer, for their hospitality. Having a company not just financially support the sprint but open its doors and make everyone feel at home makes all the difference.

A new format

In previous code sprints, participants typically worked alone or in pairs on issues they had either selected from the issue tracker or brought along themselves. I would move from person to person, pair to pair, coaching and helping where needed. While this worked, it always created a somewhat fragmented environment: multiple small groups talking over each other, each focused on their own corner of the project.

This time, we naturally fell into software teaming, also known as ensemble programming or mob programming, and worked together as a group on one topic at a time. Everyone contributed, everyone was heard, and everyone learned something. The room felt different: more focused, more collaborative, and more fun. This is the format I want to keep for future code sprints.

Who was there

The "we" above were Arne Blankerts, Andreas Möller, Sebastian Heuer, Frank Sons, Fabian Blechschmidt, and myself.

Unfortunately, Théo Fidry and Ewout Pieter den Ouden, as well as some others who had signed up, were unable to attend. I missed them, and I am still not sure how we could have included remote participants without losing the atmosphere we had on site. That remains an open question for the next sprint.

What we did

Over the two days, we had rich discussions about PHPUnit’s architecture and internals, and about the challenges of maintaining an open source project for 25 years. Not just the technical challenges, but the human and organisational ones as well.

And we got things done: we fixed bugs, implemented new features, and worked on release automation.

I am grateful that Arne, Andreas, Sebastian, Frank, and Fabian gave two days of their time to work on PHPUnit together with me. I am already looking forward to the next code sprint.