One of the best agile experiences I’ve had recently was with a fully remote Kainos development team based in Gdansk, Poland. I was in London as the Technical Business Analyst facing off to the (also London-based) Product Owner.
The team and I saw each other in person usually once per month, and shared the plane trips back and forth. Along with plenty of Skype calls every day (which a decent headset made very easy, even in a noisy office).
Overall, we collaborated much better than some co-located teams I’ve worked in previously. That’s because we all put a lot of effort into the Definition of Ready and Definition of Done, and also ensured that we conducted frequent backlog refinement sessions (usually several times per week) in advance of each sprint planning session.
The Result – user stories were really well understood by the time any developer picked them up.
In the past, I’ve found one of the drawbacks of working in a local team is the temptation to ‘gloss over’ writing good user stories and not hold backlog refinement sessions (‘we are too busy developing’ is often thrown around). What then effectively happens is several 3-amigo sessions are held, in sprint, as stories are picked up… all the while hoping no absolute show stoppers emerge to break the sprint goal and trigger the need to down tools and re-plan.
Working effectively in a distributed team is certainly possible, and I learnt a heap of valuable practices which I will take forward into a similar remote situation or a face-to-face setup later on.
And best of all, the product we built was totally fantastic.