Coding Tour – Stop Four – Refactoring at Unruly

Anyone who has heard of Unruly will already know this but they have far and away the most epic office I have ever seen.

From the climbing wall at the entrance to the Nerf gun wall; the themed, secret “Narnia” meeting room that you enter via a Smeg fridge; the Star Wars meeting rooms, complete with rare memorabilia to the fully kitted out “Future home”, it really is geek heaven. One thing I hadn’t realized until this visit though, was that tucked away there is also a do not disturb room called Retreat, kitted out with gentle lighting, where you can set the timer, leave your shoes outside and no-one will disturb you for half an hour.

unRulyLayout
Map of the first floor at the London office

I’m greeted by the wonderful Steve Hayes, who has been involved in XP since it’s very inception, and has recently become CTO at Unruly. As a company that has fully embraced XP since it’s outset (many of whom coached by the equally fabulous Rachel Davies) it seems like a perfect fit.

I realize that I don’t really know very much at all about the domain of online ads. Of course, I see them pop up on my feed but I have never really thought about how they get there, and it’s fascinating: When you open a page, an ad slot may be present, and if so it is sent out for advertisers to bid on. The winning bid gets the slot and the ad is displayed. Simple, right? Well apart from the fact that there is a window of between 500ms and 2 seconds to get that done. The folks at Unruly can talk about numbers like 70 million transactions an hour without batting an eyelid. Not bad for an XP shop with only 50 or so developers.

It does look like classic XP in many ways. Folks are collaborating everywhere I look. One of the attributes of all Unruly code is that nothing goes into production unless it has had more than one pair of eyes on it. This allows them to deploy changes to 10% of interactions in live and then, if all is well overnight (which it invariably is), deploy to the remaining 90% in the morning. Almost exclusively people are pairing or mobbing, although everyone gets a “gold card” day (for self study or to work on something they are passionate about) and one “lone ranger” (support) day per week where they work alone.

There are even some ‘old school’ XP touches, like a physical deployment token (A Paddington Bear toy) without possession of which you may not deploy.

One more cutting edge aspect is very much in evidence here – mobbing – in fact I join a mob of three for my whole two days. The workspaces are set up to make mobbing easy. There are a mixture of different screen sizes and keyboards.

We are refactoring the build server. We set up an automated timer app that one of the mob (Jahed Ahmed) created, not only entering each person’s name, but also adding a slot for taking a break so that we don’t forget. On occasions where one of the mob is doing something else for a bit we revert back to ping pong pairing – one person writing a failing test, the other writing just enough code to make it pass.

unRulyCoding
Ping-pong pairing with David Al-Kanani

The teams have protected coding hours from 10.30-12.30 and 2.30-5 and aim to keep any other business they need to attend to (meetings etc) outside these hours. I really like how focused this makes us. I’m amazed how easy it is to slot in, and it’s fun to be able to use the new ability to check code into Git as a group. I don’t know whether it’s because I have done this a few times now, but joining a mob as a noob seems much less daunting than it did before. The mob I am working with are very kind and work at a great, thoughtful pace.

I also notice one of the benefits of collocation – peripheral awareness. At one point we are discussing where we are up to and I say “well it works, but it’s not very pretty”, whereupon a member of a neighbouring team sticks their head up and asks if we would like a hand. When we say yes please, he comes over and helps refactor our code a little until it is truly beautiful.

I like this a lot, this shared focus on crafting. If I didn’t already have the best job in the world, I would definitely want to work here. In fact, I hear they are recruiting…

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s