Distributed Work flow

Is it really that different?

In the field of software development distributed work flows are quite common, it not unusual to have entire teams in many geographical locations, and timezones. At first the idea, of working with an entirely distributed team, seems quite dangerous. Communication, organization, and collaboration could be difficult, and the productivity and quality of the teams work may suffer. After thinking about it for some time, it seems one of the major reasons behind unproductive employees and teams is simply employee to employee distractions.

Collaboration is important, but being repeatedly interrupted and unable to get into the zone, quickly trumps the productivity that great collaboration can offer. After having many discussions with various individuals, it seems most agree that they are most productive when they are not distracted by unrelated topics for extended periods of time. Another common problem with productivity, is the inability to stay on track, prioritize tasks, and staying organized.

So simply put, the key to productive teams, regardless of location, is high bandwidth collaboration when needed, isolation/focus when needed, and tools and methods to stay on track and stay organized. If we able to accomplish this, any team regardless if they are all in the same office, or distributed across 10 time zones, should still be productive, organized and happy.

This article will discuss some tools which help maximize productive collaboration for software teams, regardless of their location;

Tools of the trade

Pivotal Tracker

pivotaltracker.com Pivotal Tracker is a free real-time online story based task tracker, developed and used internal by Pivotal Labs. A lot of thought and effort went into this complex tool. This tool, is quite literally the pivotal tool when collaborating with a distributed team. Its easy to use, and easy to see the tasks at hand, future tasks, who is assigned to which. By allowing a real time, direct manipulation based environment the pivotal main screen, is a great heads up display for an entire project.

Git

git-scm.org Git, an important of this distributed work flow, is a tool used to share, collaborate and track source code. The best brief overview of git can be found on the git-scm.org website:

Git is a free & open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Every Git clone is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server. Branching and merging are fast and easy to do.

Github

github.com Essentially the best way to centralize aspects of your teams git work flow, it provides web based repository viewing, nice permission system, and various collaborative features, Wiki, and even a bug tracking tool. Github provides a great way for companies to share open source tools with friends and clients. It provides a slick and hip way to offer some transparency, and collaborate with the community. An added bonus, because of Githubs popularity and massive community of competent developers, it has recently launched a successful Job posting board, so when you are prepared to add another employee, it easy to see what they have done, where they have committed.

In some situations it is not possible to host source code publicly and for this Github offers several solutions. The first solution Github offers, is paid and private repositories. Essentially repositories which are private except for a few special collaborators, which your specify. This solution should be good for most situations.

Unfortunately for the corporate world, some trade secrets, and source code cannot leave the protection of the companies local firewalls and Intranet. But fear not, the folks over at Github have a solution for this as well. Github FI, essentially a local copy of Github, which for a competitive per seat price, will live on your local network, secured by your firewall.

Gomockingbird

gomockingbird.com When collaborating, regardless of the locations of the team, a simple easy to use tool such as mockingbird, will allow you to rapid prototype project ideas. It is even possible, to use the tool for click through demos, and in some cases simple enough to involve a client on. The true selling point for this tool is accessibility, your mockups are hosted online, and even fully editable right from their very simple and fantastic drag and drop interface.

iChat/Skype/IRC

Communication channel - even non-distributed on-site dev teams commonly have shared internal jabber or IRC servers setup - but for distributed teams, face-time provided by iChat or Skype is key, seeing the team, or the individual you are working on brings back a sense of humanity to the screen name you normally associate with the individuals. This humanity aspect is important

With the exception of a Video iChat or Skype session with your cubicle mate, any of these tools with boost productivity via collaboration, and organization of any software team.