3 tools you need for Agile virtual colocation
When colocation is impossible, these are the tools you should be using for kick-ass distributed Agile development.
I’ve written before that one of the tenets of Agile development I’ve been happy to bend is the one about colocation.
Colocation is about creating the most productive environment possible by seating everyone on a team together where they can be steeped in and surrounded by artefacts and chatter about the project.
It’s an extremely good idea and if you’re running an Agile team I think you need a very good reason for not doing it – it just so happens that we have one: half of us are in Belfast and the other half are in London!
Running our development team from two sites has been a huge success for a number of reasons but it obviously makes colocation impossible.
Fortunately we’ve found a lot of ways to use technology to mimic colocation and since our Belfast team came on stream we’ve come to rely on a set of tools that help to minimise the effects of distance.
We use a range of tools and we’ve tried many others without much joy, but for virtual colocation, these are my top three:
1. Skype for Business (formerly Microsoft Lync)
One of the reasons that colocation works is that the harder you have to work to ask a colleague a question, the less likely you are to do it, and that can put a real drag on a project’s velocity. It’s an effect that kicks in as soon as team members have to leave their chairs or pick up a phone to get an answer.
We use Skype for Business (formerly known as Microsoft Lync) to minimise the friction that stops distributed team members talking. It gives us instant messaging and presence information but it’s the video calling and screen sharing that really close the distance between us. The “for Business” part is important to us, as it integrates nicely with our other Microsoft Exchange features like email and calendar.
We’ve also discovered it’s an excellent platform for pair programming.
It seems to work best for concentrated bursts of 30 min or so on setups with a couple of monitors, so you can see both the code and the coder.
Just over a year ago our Belfast team was new and we needed to get up and working quickly. We were able to get our new developers up to speed and familiar with our way of working very quickly by pairing Belfast-based developers with team leads in London. Needless to say, this remote pairing works best after some initial face-to-face time to develop the relationship between new team members.
Reflector is a wireless receiver for mirroring and streaming phones or tablets that’s made by the brilliantly named Squirrels.
The software allows us to mirror mobile devices on to a PC or Mac in real time. Although we use a number of different tools for our mobile app development including the iOS Simulator, the emulator in the Android SDK (and Browserstack when we’re looking at web applications) there is no substitute for running software on the target device.
By pairing up Reflector with Skype for Business or our Polycom system we can run our code on a real life smartphone in Belfast and share it with colleagues in London or vice versa.
Skype for Business is our workhorse tool for small, ad-hoc conversations but for the formal Scrum meetings – the planning, daily stand-ups, demos and retrospectives – we use dedicated meeting rooms and Polycom’s People+Content.
It’s an enterprise-grade video conferencing set up that means we can stand, move around and talk more naturally as a group during meetings without having to don headsets and microphones.
Our Sprints are entirely digital so we screencast our whiteboards and burndown charts straight out of JIRA, giving us a virtual meeting space spanning two offices.
We’ve even had good success replicating the stand-up banter between a collocated team, with the local weather a regular ice-breaker on a wet Belfast morning.
The Intellient Environments Secure Development Lifecycle
By making our projects entirely digital we can reduce the distance that separates our two offices and create something close to virtual colocation.
Total digitisation is also a cornerstone of our Secure Development Lifecycle.
When you’re developing software for banks and financial services it’s essential that you produce secure, PCI-compliant software with a process that protects and respects corporate and personal data, and intellectual property.
Being digital in everything we do and using best-in-class software means that everything we do and decide isn’t just Agile, it’s recorded, traceable and accountable.