Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

This is somewhat related to another question i just asked, but I'm freelancing solo and remotely for a contractor who is to project management, what big ball of mud is to code, so to speak.

I've been thinking a lot about working on a proposition to deal with his projects in a truly agile way. As I see it, this would involve several client-friendly and web-based apps :

  • basecamp for communication
  • github as a repository
  • pivotal tracker for user-stories and as a display of work in progress
  • some tool to gather acceptance tests (will upvote suggestions !)

I've done a fair bit of reading on agile, and all good resources put much emphasis on the importance of communication in the team, to the point they are discouraging agile for non-colocated teams. Being the only programmer this seemed less of an issue, but as I'll rarely meet the client (if at all), I'm worried the communication may not be effective enough to enable this kind of management.

Edit : Other people on the team would include :
- customers (business people)
- product manager (my client's client)
- project manager (my client)
- ui designer

share|improve this question
    
Who else is on the team? Who are you communicating with and are they going to be prepared for the amount of communication that agile will require? The problem that I could see coming up is information overload on their part. I don't blame you for wanting it though, I've been using it for some time and would use it if I was on a one man team as well. It helps me stay focused and accountable for my time. I feel I make better decisions because I check myself more often. –  Beth Whitezel Dec 24 '10 at 5:53
    
Edited my question to answer this, as it should have been included in the original posting. –  julien Dec 24 '10 at 14:28
1  
Don't use basecamp, it's not designed for developers. You need something like redmine or unfuddle which has proper ticket workflow and git integration. –  Keyo Dec 24 '10 at 16:27
add comment

3 Answers

I've worked on a few projects that used a remote agile development strategy, with varying results.

The experience level of the team is the key factor, if everyone involved is competent with this strategy and the tools (or can become competent quickly) Then it's a sustainable.

The problems of remote work are often due to lack of communication, both 'face-to-face' and poor use of project tracking tools and SCM/VCS. The most successful agile projects I've worked on remotely involved the following.

  • Daily face-to-face / VOIP morning scrum style meetings.
  • Clear iteration plans (this is heavily reliant on a good project manager, plus good, communicative developers.)
  • Automation tools such as continuous integration / build servers.
  • Diligent use of project tracking tools (and the quality thereof.)
  • Cohesive use of VCS/SCM with a well understood team strategy for commit and branching.

Good project tracking tools I'd recommend are Redmine, TargetProcess and Jira. My experiences with TargetProcess were particularly effective, mostly due to the competency level of the PM on those projects.

A great team is without doubt the fundamental key to success on remote (and frankly any) projects, in close second are the tools used to facilitate the project management and development.

One other point, if pairs of developers can work colocal then there is a definite benefit over solo developers, in terms of motivation and of course, continuous code-review.

share|improve this answer
    
I prefer Pivotal Tracker for PM software, but aside from that, +1 to everything @slomojo said. Communications is key—to that end, diligence to the process and daily standups via video are critical. I've used this process for about a year with great success. –  karmajunkie Dec 24 '10 at 0:06
    
I was considering not even mentioning specific tools, due to the religious connotations, what's important is the fluency that everyone has with the tools, or at the very least, with the style of tool in use. Some tools are interchangeable, some are not. –  Slomojo Dec 24 '10 at 0:10
    
Yep, video standups are far more valuable that VOIP ones, but whatever is practical, a 'live' communication system is crucial. –  Slomojo Dec 24 '10 at 0:12
add comment

I have found that it can work well with everyone remote or everyone co located. If you have a mixture, the co located people will tend to communicate in ways which leave the remote people in the dark.

Instant messaging and/or irc can be great for remote teams. As it keep an always on means of communication with a log of what has been said for people to catch up on

share|improve this answer
add comment

To answer your question empirically, 37signals started off with mostly (or completely?) remote work, and not only did it obviously work well for them, but DHH said that the time zone difference between US and EU actually made them more productive (because there's uninterrupted work time, and meetings get more focused).

That said, Slomojo's point that it depends on the experience level of the team is very valid I think. If you need to provide lots of help to new developers, it might be better to be sitting in the same office.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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