13

I'm trying to determine if there's a way to use Agile with a team of developers that telecommute. Imagine you have a team of 6 to 12 developers working often from home via VPN. How can they organize their work efficiently without meeting very often (let's say, every two weeks)?

For a counter-example, Scrum isn't compatible with telecommuting, because every day you should do a daily scrum, where the developers meet and tell what they have done, what they do and what are current problems. One way perhaps could be to use something like Skype for every meeting, but it's not the same as if you meet personally.

Could FDD be an alternative? Or is there some other procedure model that could be used?

10

Try to keep in mind that Agile is all about values and communication, not specific implementations of specific practices.

Conducting a daily standup in person does not make a team Agile. What makes a team Agile is embracing the Agile values, and doing whatever it takes to live up to them. Commonly, this results in a daily standup meeting. Maybe, for another team, it won't.

Once the importance of communication is understood, one must accept that fact that face-to-face communications will be more effective than any alternative. But does that mean that alternatives won't work at all? Of course not.

According to the Scrum Guide:

Daily Scrums improve communications, eliminate other meetings, identify and remove impediments to development, highlight and promote quick decision-making, and improve the Development Team’s level of project knowledge. This is a key inspect and adapt meeting.

Can that be accomplished by a remote team? Certainly. Is there anything in the Scrum Guide that says it has to be done face-to-face, in the same room? No.

My advice would be to do everything you can to maximize the ease and frequency of communication, because that is what is at the heart of Agile and Scrum. There are a multitude of communication options out there, you just have to consistently take advantage of them.

5

I have worked in this situation. We did daily conference calls similar to a stand-up, and also had a Skype chatroom for all the developers. If we needed to do a more in depth discussion, we could have a private IM chat, voice call and/or screen share.

It is not as effective for communication as being in the same room as the developers - but nothing is. I think it was as good as you can get, though.

5

Pay attention to Eric's excellent answer. Remember that Agile covers a wide range of ways to work, Scrum being just one possibility. Most agile methods are in fact merely a collection of techniques that you can pick and choose, pick up and drop as needed.

Personally, I see no value in daily stand-up meetings; reporting status can be done via tool (e.g. basecamp) or email and most of the information reported is of little or no use to the rest of the team. IF your team is virtual across several time zones, a daily standup becomes a huge inconvenience for everyone - if you insist on doing it, you should be able to prove that it adds value.

Similarly, with a highly skilled team there's little return (and a lot of waste) doing pair programming, much less remote pair programming.

The ability and facility to do these things when they are necessary must be there, but always doing them as a habit when they don't pay off is not wise. Sometimes you may want/need to have a standup, so Skype (or for small teams, Google+ Hangout) or similar is useful for this. But try a sprint without standups and see if things fall apart - they probably won't. Same for pair programming - great to have the ability for programmers to assist one another, can be a terrific waste of productivity for some teams to do it all the time. Try doing without it for a sprint and see if your velocity changes.

Test and measure

Don't think of agile as a formula that must be followed. Try pieces of it, keep what works, use/discard the rest as appropriate for your team and project

  • Gotta +1 this answer. :-) – Eric King Aug 13 '11 at 3:52
3

I worked on a distributed team of approximately 10 developers for a while. There was no "office". Here is what we did.

We ran and IRC channel, and the developers idled in there all the time. This gave us the equivalent of the team room where you could say, "Who knows X" and get an answer.

We used screen heavily. Pairing sessions would consist of Vim on a shared screen session, done over skype.

We kept a wiki page for our daily stand-up meetings. They were at 11am every day. By 10:30, everyone was expected to have put a line on the page of what they are doing. The meeting leader would add a list of the scheduled stories, and their status. This would be pulled up on a screen session in a text editor, and everyone would attach to that session. The meeting was a conference call, and the meeting leader would go down the list and ask if people had anything to add. The usual response was "as written." This worked just like a daily stand-up, and usually took about ten minutes.

Retrospectives and engineering meetings were done similarly. Sometimes we used meetingwords to keep notes.

2

I think you can "reuse" some of the tips from Fowler's article Using an Agile Software Process with Offshore Development

For the last four years ThoughtWorks has operated a lab in Bangalore India to support our software development projects in North America and Europe. Traditional approaches to offshore development are based on plan-driven methodologies, but we are very firmly in the agile camp. Here I discuss our experiences and lessons learned in doing offshore agile development. So far we've discovered that we can make it work, although the benefits are still open to debate... etc

1

How do you prioritize your developers work? Are they assigned a "project" and they break it down themselves?

I would argue that SCRUM is very compatible with telecommuting. There are many great "virtual" scrum board products that make daily meetings seem as if they were in person. Check out pivotal tracker. Heck, I've seen people have daily meetings with a web cam pointed at the scrum whiteboard.

You can't expect any type of process to succeed if your only meeting once every two weeks. That needs to change regardless of what practice your implementing. At the very least meet twice a week for example Tuesday & Thursdays.

  • +1 just for the "if your[sic] only meeting once every two weeks" observation. – womble Aug 13 '11 at 6:20
-1

I would telecom only as a second alternative. I think generally you would be better to have them together at least sometimes. So much of communication is body language, tone of voice and facial expression. You will catch something earlier if you have that.

I think it also depends on the duration of the project. A good team might be able to hold it together on telecom for a short time.

This is based on my experience having to do telecoms with people in other countries. Its just not ideal for the longer term. A good team needs to know each other. You maybe wont get past storming without that.

Id suggest:

  1. Ask yourself the duration of the project and if the team can hold it together. If its long term definitely no. Escalate if need be.

  2. Still do at least something physical on a regular basis if you can.

  • 1
    Hi Mark Tangney. A solution for developers that telecommute is needed, accordingly to OP. Therefore, this isn't really an answer to consider. Maybe a comment. Not an answer though. – Tiago supports GoFundMonica Jun 26 at 10:40
  • 2
    In addition, you bring the assumption it's not possible to know each others without being physically present and where's the evidence? Creating a sense of "togetherness" can be easier in person than it is online - but it's far from impossible. – Tiago supports GoFundMonica Jun 26 at 10:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.