views:

623

answers:

11

I have a team of developers distributed Globally over different time zones.

what are the best tools to achieve maximum productivity in such a team?

I am looking for:

  • Source Control
  • Bug Tracking
  • Build Management
  • Any other thing that may help

Thanks

+2  A: 

For the first two:

  • Distributed source control, like git
  • A good issue tracking tool, like Jira
Vinko Vrsalovic
+3  A: 

This question is underspecified. Many packages exist for each category that you list, all designed to support collaboration across people distributed globally over different time zones.

So I can make a recommendation, based on open-source tools that have worked for me in the past. You may have specific needs that require more specific solutions, but you didn't mention them. Also, for productivity, it is useful if people can continue to use tools they are familiar with, and you didn't explain what tools your people already know.

In any case, here is my recommendation:

  1. use Subversion for source control
  2. use Roundup as the bug tracker
  3. use make for the build management, use Buildbot for automated, distributed builds
  4. use mailing lists, based on Mailman
Martin v. Löwis
+2  A: 

For .NET environment:

I am very satisfied with Assembla - they host SVN server and Trac for your projects for very reasonable prices (or for free if the oproject is public).

gius
+2  A: 

As source control: why not a distributed system, like git (if you are not using Windows), Mercurial or Bazaar?
For bug tracking, I would go on Trac - it has also an integrated Wiki, that is always useful for project documentation.
As for build management, you could go on cruise control, or ant - I am not really expert on this side.

However, there is something you should really take into consideration: the main issue for distributed teams is not the toolset, is communication.
This is even more important in an "agile" setup, as suggested by your tag.

The best mitigation I have ever seen for this issue is videoconferencing. It is very effective for enhancing communication bandwidth in distributed teams, and with GTalk and Skype is now really inexpensive.

Roberto Liffredo
+2  A: 

Consider Fogbugz for bug tracking. It's helpful.

MOZILLA
+1  A: 

When you say "open source" do you just mean free software, or do you mean "I need/prefer to be able to see the source"?

Note that your decision will be influenced by the nature of your project. There are many free development/project hosting sites that require that your project must be an open source project and free/open to the public.

You may also choose to go with a particular hosting platform based on the language you are using to develop the project. For example, CodePlex (http://www.codeplex.com/) is a site that hosts open source .Net based projects, and Java.Net (http://community.java.net/projects/) hosts Java projects.

The other answers given to your question are solid, here is what I currently use or have used in the past:

A great continuous build tool JetBrains TeamCity. (http://www.jetbrains.com/teamcity/) The tool has out of the box support for many build tools as well as for building Visual Studio solutions out of the box. It is free for teams of 20 or less developers. It also has loads of functionality out of the box, and can be up and running for you in minutes - a remarkably low learning curve without cutting back on features.

A useful SVN repository which is free for two developers, and will save you the time of setting up and administering your own SVN repository is Unfuddle. (http://www.unfuddle.com) Unfuddle also has extra paid-for features and basic task tracking.

Another paid source repository is ProjectLocker (http://www.projectlocker.com) which has low priced SVN repositories and Trac integration for task management.

A useful task tracking tool is Remember The Milk (http://www.rememberthemilk.com) - it does not work on "tickets" like Trac, it is not only for tracking projects, but it does allow you to email each other tasks, and to have shared task lists. I also point them out because the product itself is developed by a distributed development team and you might want to try mail them for advice. :-)

All the best to your team!

GrahamMc
+1  A: 

A wiki is a must.

It helps as an asynchronous communication media between ans inside the teams. People can share their tips (eg how do I compile this, how to activate traces ... ). It can be used to gather design decisions or changes... People can ask questions to the whole team without clobbering other mailboxes. It can also be used to grow the documentation.

There is a gazillion of wiki's, pick one depending on what you plan to do with it.

philippe
A: 

I think you'll need a few more things to help out with this project than what you've asked.

First, I'll give my recommendations for your list:

  • Source control: git or svn, if yu use either of these, you'll need a way to let your developers know who checked in what and when, Trac is good for this for svn
  • Bug tracking: Trac (not Bugzilla), Mantis, FogBuz
  • Build Management: CruiseControl is great for continuous integration; if you need build scripts try Ant or Maven

Other things you will probably need:

  • Collaboration tool: Trac has a wiki or pick a wiki of your choice
  • Chat tools: Even though they are across timezones, instant communication will be needed. IRC, Jabber, Skype, which is great for video or audio calls over the internet.
  • Project management: you'll need a way to setup your releases (sprints if using Scrum) and your backlog. My favorite tool for this is Acunote: (http://www.acunote.com). There are some other out there but they are more expensive and you get all of the features that you probable don't need.

I hope this helps.

djensen47
A: 

I don't know anything about this topic, but I suspect that there are much nmore important issues to think about than the tools you mention.

Take a look at whether http://www.infoq.com/presentations/Distributed-Scrum-Sutherland-Schoonheim gives you any ideas (disclaimer: didn't watch it myself, but heard good things about it).

Ilja Preuß
A: 

Yes I strongly believe that in distributed teams a tool is important. Communication is hard enough if you are not working locally together. A tool like e.g Agilo for Scrum that is based on trac offers you with a wiki, a planning board (online whiteboard) and supports you in this way to improve the communication with your colleagues.

Doro
A: 

with complete detail available

http://apachejava.blogspot.com/2010/07/10-tools-for-distributed-developer.html

Aizaz