After a few months now working from a remote location these three things we have come up with might be worth sharing.
At design time.
Engaging into a design session with the BAs, customers or whoever is the subject matter expert is vital. Those sessions are the ones that will set the tone and common vocabulary for the feature in development. But this activity proves itself difficult when each side is in different locations and drawing over a board is not an option.
Here a tool that allows you to work collaboratively on real time with a learning curve no more than a couple of minutes is crucial. For us this tool end up being http://yuml.me/diagram/scruffy/class/draw as it made possible to write the UML we needed to convey our model by having each side to access the same URL with edit privileges.
At pair-coding time.
Another vital activity is to have successful pairing sessions with your coding peer. This is even harder as you will need to code over the same base at the same time through a video conference or a remote-coding IDE. Because of some restrictions in our project we were left with the first option.
As a first approach we took time boxed turns (begun with 5’ and then increased to 10’), which revealed connections and rendering delays to be our most fierceful foes. We ended with a half coded idea which never materialized as code because we were waiting for stuff to be ready so we could type again.
Moving to a “strict” ping – pong was a great relief. By each solving the pair’s just written test and talking about it, and then, writing another test while explaining what the point of it is catalysed a higher quality communication throughput that reduced the amount of code needed to grow the feature.
At stand up time.
All the equipments and tools your team is provided with so you can work remotely have one goal: trick your brain that we are all in the same room. This is so you can ease the growing of a relationship with the people you work all day every and build a safe environment where team members feel encouraged to make and ask questions, ask and provide help, discuss problems, etc., so you reduce the problems due to miscommunication.
So, next time you are sitting in your chair in a remote location and join the stand up conference, turn the camera on! So your peers can put a face to your voice.