Wednesday, August 12, 2015

Agile for the Remote Team

Over the years, I've witnessed companies engage offshore teams with varying degrees of dissatisfaction. Here's a common scenario:

  • Domestic company hires foreign company for contract workers.
  • Work is divided between domestic and foreign teams, with the foreign team doing work that is boring, repetitive, or safely disconnected and treated as a distinct entity from the "real" system.
  • A project manager is assigned and is the primary point of contact between the two teams.
  • A specification is crafted, emailed to the remote team, and off they go.
  • Some time later, perhaps after cursory review by the domestic team, the finished product is delivered. And it is the wrong thing. Rinse, repeat.

By and large the software industry has adopted "Agile" methodologies over "Waterfall". In a nutshell, Waterfall follows the model of physical architecture and construction. An architect, in full knowledge of constraints and requirements, crafts a blueprint. The blueprint is followed with little deviation by construction professionals and the building goes up.

Agile begins with the recognition that we don't fully understand the requirements and constraints of the project at the outset. Furthermore it assumes that these will change throughout the life of the project. The value of a "blueprint" is really just in performing a planning exercise -- the artifact itself is obsolete before the coffee stains dry.

Agile therefore is focused on enhancing the quality of communication that takes place between stakeholders and developers as the project winds its course forward. (See the Agile Manifesto for more).

Back to the offshore situation. Even as our industry has adopted a methodology that fits the realities of software better than building construction, waterfall is still the dominant means by which offshore teams are managed. And the same painful lessons we learned before are learned again.

Here are some guidelines for working with an offshore team that will result in great software and limit bad surprises.

  1. You don't have an offshore team. You have a single team and some of those members sleep during the day.
  2. Embrace this is as a new efficiency, not a cost. Going into the office and finding that work was completed while you slept is magical. It's the closest thing to elves that you'll ever get. Return the favor to them.
  3. Compromise on your own schedule. This is the hardest one, but if you can't do it just stop reading now. There will be days when you have to get up early or stay up late in order to talk to the overseas devs. Work out a trade with your developers so it's not always burdensome to one side. Share the load.
  4. Conduct retrospectives. Invite your geographically dispersed colleagues to voice their concerns and participate in shaping how the team operates to maximum efficiency.
  5. Get cameras. Human communication relies heavily on non-verbal cues. You've already got a language barrier to overcome, and you're talking about complex matters. Don't make it even harder by relying on written or verbal communication.
  6. Do story writing and estimation together as a team. You will lose all efficiency and velocity prediction if you start handing functional requirement documents to unsuspecting developers. You need them involved in the definition of the work if you want them to build the right thing in a predictable amount of time.
  7. Write automated tests. An executable specification is one of the most powerful communication tools developers have. It can enable developers separated by 12 hours to collaborate on the same piece of code and hand work back and forth even when the chat room is quiet.

Finally, and this is a big ask, but find a way to get shoulder to shoulder and do some pair programming. Go there, bring them to you, make it happen. Your ability to communicate will skyrocket and you'll see benefits for months after.

Here at PlaceProps Analytics, we have a small but closely knit team split between Seattle and Sofia. We deliver features that people like, on the timelines we announce, with a very low rate of defects. And we have fun doing it.





PlaceProps Analytics publishes proprietary, GPS-based consumer movement data for commercial real estate site selection, out of home audience measurement, retail trade area definition, and urban planning.  Available online. 

© 2015 Avenace Incorporated.  All rights reserved.

® "PlaceProps" is a registered trademark of Avenace Incorporated, Seattle, WA.

No comments:

Post a Comment