News
Tools for Distributed Development Teams
- By Mike Gunderloy
- January 22, 2004
I've been doing a fair amount of thinking lately about the software that
can support geographically distributed development teams. Because I live on the
far side of nowhere (there are probably more combines than computers in this
county), that's the only kind of team I get involved with these days. Today, for
example, I spent a fair chunk of time working with a developer on the far side
of the state and another around the globe in Norway. Assuming you can get a
decently high-speed connection to the Internet, there are lots of tools that can
help. Here are some of the ones I've grown fond of.
E-mail: I expect every reader of this Web site is using e-mail
already. But if the spam flood is threatening to drown you, consider adding a
good client-side filter. For Outlook, I like SpamBayes. I've also used SpamBully. Either one can help you reclaim
your Inbox, which makes it much easier to spot the truly important mails from
your team members.
Instant Messaging: As with e-mail, I find the key to effective use of
instant messaging is to not let it dominate your schedule. When a new instant
message comes in, you're not required to answer it immediately (though you may
want to take a quick glance, just in case the subject is urgent). Instead, wait
until you have a pause in your other work to deal with the message. If both
parties take this approach, a single conversation can stretch out over hours or
days, but that's OK; you can always scroll back to remind yourself what's gone
before. One thing that I find helps take the sting of urgency out of instant
messages is to run the instant messaging client on a secondary computer, rather
than on the one where I'm actually writing software. That way incoming messages
don't take the focus away from what I'm doing.
Online Workspaces: Depending on your project, you might choose to keep
everything online. For open source projects, the standard location is SourceForge, which hosts over 70,000
projects. It supplies web hosting, bug and feature tracking, mailing lists,
download servers, CVS source code control, and other goodies. You'll find fewer
restrictions on your code's licensing, but fewer features as well, if you host
with Microsoft's GotDotNet
Workspaces. Personally, I prefer having my source code on my own servers, so
I've shied away from these sites, but it's good to have the choice.
Wikis: Another interesting tool for collaboration is the wiki. A wiki
is a Web site that's written by its visitors; every page can be edited directly
in the Web browser by anyone who can view it. You might think this would lead to
an avalanche of spam and pornography, but wikis keep track of the history of
each page, and successful public wikis tend to breed a community of people
dedicated to keeping things well-organized. Two good examples are the original
WikiWikiWeb, and the open source Wikipedia encyclopedia. But why not use your
own password-protected wiki as a central repository for everything from design
documents to notes on bugs to future plans to everyone's pizza preferences for
the celebratory party when the product ships? You can find lots of free software
for implementing wikis at the Wiki
Engines page.
Groove: Another interesting collaborative tool is Groove Workspace. Groove is a general platform for
collaborative content of all sorts: files, messages, project plans, notes,
instant messages, you name it. Because Groove provides a variety of public APIs,
it's extensible to include more tools. The plumbing behind Groove is fairly
complex, but the result is simple: all members of a workspace get synchronized
copies of the entire workspace on their local computers (synchronization is
carried on as a background task over the Internet, and does not require everyone
to be online at the same time). If you can convince the whole team to adopt
Groove, it's like having a common bulletin board that everyone can see in real
time.
CodeWright: The CodeWright
programmer's editor is now owned by Borland. In addition to many of the features
that you'll find in other programmer's editors (such as a flexible macro
language and Visual Studio .NET integration), CodeWright includes an innovative
feature that I haven't seen anywhere else: CodeMeeting. CodeMeeting acts as an
instant messenger client embedded directly in the CodeWright interface, allowing
you to chat over TCP/IP with any other CodeWright user. Even better, CodeMeeting
enables collaborative editing for documents open in CodeWright. Either user can
edit the document, and both users will see the changes. This opens up the
possibility of doing long-distance pair programming, with two developers working
on the same code.
What's missing? A good time and billing package that uses a central
repository and doesn't cost an arm and a leg. Anyone got any suggestions?
Drop me a line, if so.
About the Author
Mike Gunderloy has been developing software for a quarter-century now, and writing about it for nearly as long. He walked away from a .NET development career in 2006 and has been a happy Rails user ever since. Mike blogs at A Fresh Cup.