Remote Mob Programming on appear.in

After the INNOQ team reached out to us to describe how they use appear.in in their daily work, I took some time to ask more about how their development team collaborates remotely and is pushing the boundaries of what remote development can be

1. What does INNOQ do, and why does a remote development team make sense for you?

INNOQ is an IT consulting company based in Germany and Switzerland. We do software architecture consulting and digital product development for our customers. That comes down to designing the architecture, writing the code, talking to users, figuring out a great UX, and delivering the software. We have 7 offices in Germany and Switzerland, but many of us work from home regularly. For some of us “home” can be quite far away from the nearest office or customer, and traveling requires significant time and money. This is what led us to try and find a system that thrives in a remote environment. 

2. How do you work together in your distributed team?

Simon, Jochen, and Martin are using Remote Mob Programming. This is built off of the Mob Programming concept, but with a focus on distributed, remote teams. The main goal of Mob Programming is that "all the brilliant people in a team work on the same thing, at the same time, in the same space, and on the same computer" (Woody Zuill), so we have been using appear.in to remove the location requirement. We work in a virtual space, but we can still work on the same shared screen, at the same time, and on the same thing with the whole team thanks to appear.in. We love working like this, which is why we've written up our experiences at https://www.remotemobprogramming.org.

A Remote mob session in action

A Remote mob session in action

As you can see in the photo above, one person shares their screen and all the other members of the team work off of the shared screen. 

3. What challenges did you face as you were trying out Remote Mob Programming?

Trying out a new way of working is hard at first. Not everybody was on fire right from the start, but the whole team had the courage to "just do it" and try it out in an attempt to get used to it. The customer was understandably skeptical, because it seems so counter intuitive to have a whole team working at the same thing at the same time. We were lucky that they trusted us nonetheless. 

The test period wasn’t entirely flawless, and we did face some technical issues. When working remote with the entire team on video, a reliable wifi and internet connection is simply a requirement. It took some time to find a good wifi setup that was consistently reliable. High audio quality is also paramount for the long term, which is why everybody in the team bought a microphone suited for recording.

4. How has Remote Mob Programming changed your development flow? 

First and foremost, we noticed that the software we produce had outstanding code quality, because any code that was written is immediately reviewed by all team members. This immediate review makes waiting for code reviews and merging of pull requests superfluous, which leads to an incredible development speed (which of course the customer loves).

Last month, another developer joined our team, and on-boarding them has been astonishingly fast. Through working as a mob, our collective knowledge is shared all the time. Anybody that’s a part of the mob can go on leave anytime, because everybody knows everything about the project. 

5. Where is your team working from?

The whole team in our project is distributed across Germany, as you can see in the picture below. The customer is in Stuttgart, and the product owner lives in Hamburg. We're all living near Nürnberg. Simon's living quite remotely in a small town named Gerolzhofen, which is a 30 minute drive to the closest train station. Jochen lives in Ansbach, and Martin lives next to the Playmobil-Funpark in Zirndorf, 15km southwest of Nürnberg.

remote_mob_map.png

6. What makes appear.in so suited for Remote Mob Programming?

Our customer had already been using appear.in with their own team, so we were initially exposed to it through them. After using it, it turned out that appear.in was perfectly suited for us doing Remote Mob Programming. We love the ability to share the screen and still show our camera feed with the Pro plan, which is a critical part of our process (see the "Camera Always On" section of our post). The concept of virtual rooms is also great, because at the start of every day, the room just fills up until we can start with our Remote Mob Programming, giving us the opportunity to do a little small talk before starting with coding. Last but not least, appear.in has a really low barrier to entry, requiring only a browser and the room address to join. This makes it very easy to also have nontechnical people join our mob for a short time.

We sometimes fall back to Slack, but it lacks the ability to share the screen and the camera feed at the same time. In rare cases we have even used our phones, because it just works anytime. :-)

7. Anything else cool that you want to share?

Simon has written a book on clean code in Java. If you're into that, just have a look at Java by Comparison.

8. How can people reach you to learn more about Remote Mob Programming?

If you've become curious about Remote Mob Programming, have a look at https://www.remotemobprogramming.org. If you have any questions, just reach any of us on Twitter. We're happy to answer all your questions about Remote Mob Programming.

https://twitter.com/simonharrer

https://twitter.com/jochen_christ

https://twitter.com/Waterback