Communication Tools

Communication - the art and practice of relaying information between people - has come a long way since the old string-and-can. Today there are many services offered to help people not just communicate words, but communicate work, action, planning, documents, and much more.

Communicating Speech

Talking is a BIG part of being a team. A later article will focus on team setup and timing, but remember to chat often. Talk when you are struggling with a problem, when you just did something significant or had a major breakthrough, & c. A team that talks and knows what everyone is doing at any given moment is an efficient team - assuming all other factors are equal.

In every online class there is a text-based threaded discussion area for the team. Use it. Use it often. Beyond this, there is a multitude of tools available: (listed with most preferred on top)

  • Cisco WebEx - provided by some schools, this service allows for everyone on your team to get on and chat in voice or text in real time. Also provides a common whiteboard, screen sharing for the current host, and many more cool features. The icing on the cake is the ability to record: the recordings can allow team members to catch up, as long as you put the important stuff at the beginning of the meeting and the socializing later! Available for Windows and Mac OSX.
  • Second Life - a free online 3D world where your team can create characters to represent yourself to each other. There’s no better way to remember someone than to see them, IMHO - even if that someone is represented by a 3D model that looks nothing like them. Both voice and text are available with chat history for text, and you can even prototype some games in the world if you learn enough about the scripting system. Available for Windows, Mac OSX, and Linux. Requires a medium to high-end gaming machine; you are going to want to be using a good graphics card.
  • Skype - a free, but proprietary, peer-to-peer instant messaging and calling program. While designed primarily around voice and video calling, Skype has strong text-based features, limited multi-way calling, desktop sharing, and text chat history. Available for Windows, Mac OSX, and Linux.

There are also a host of other chat and voice tools, such as Google Talk, but these are my current favorites.

Communicating Documents & Planning

Many classes want your team to write up documents and create task lists. So do bosses in the workplace. Because of this there have been many tools created to help this process - and many of them are quite powerful. Note that some of these do require a modern fast web browser to operate correctly: if you are running Google Chrome, Apple Safari, Mozilla FireFox, or Internet Explorer 9 or newer you should be good.

  • Google Docs - a free online document system that allows real-time collaborative editing. In English: you and your team can all open the same text document or spreadsheet at the same time and edit at the same time. I use this in all my team-based classes as there is nothing like being able to be on voice-chat getting or giving real-time feedback while typing or watching. Google Docs also has a live chat drop-down in the upper-right of every document you open while someone else is viewing or editing where you can communicate as well, but voice is far better. The only negative is that Google Docs currently has a very limited set of formatting options compared to standard offline document editor, but the real-time collaboration portion overcomes this rapidly. Formatting can be applied after the document is downloaded in your favorite format.
  • Pivotal Tracker - a semi-free tool designed for working with the Scrum development methodology, Pivotal Tracker can be applied to any situation where you have tasks to do over a period of days. Each “user story”, as the tasks are called, has the ability to have sub-tasks that can be checked off, a comments area, a way to rate the difficulty, and the ability to have attachments. Pivotal Tracker is free to use by yourself for private task lists, but if you want to have other people work on the tasks you’ll either have to make the project publicly readable or pay. Scrum itself also works well for both business and school, but that’s the subject of another article!
  • Dropbox - allows you and your team to share documents back and forth extremely easily: simply copy and paste into your ready-to-go dropbox folder. However, if you are editing your documents often, or have the potential for someone else to change the document while you are working on it yourself, this can be hazardous: someone’s changes are likely to be lost. Normally this doesn’t happen with drop-box, as only the owner has the ability to add or modify documents, but that makes it hard for teamwork.

Communicating Source Code

While the above set of tools work well for documents, planning, and tasks, they aren’t so great for source code. Source code is unique in that it is largely composed of plain text files that have a regular grammar. Source code also doesn’t do well if multiple people are editing it at the exact same time, unlike English prose. This is due to its structured nature: if a sentence gets the grammar grabled, nothing crashes - however if the grammar of a function gets garbled the best case is the program won’t compile. To support source code then takes some special software, and here I turn to the Open Source development tools: the people who make these tools understand that their developers are scattered around the globe, have their own schedules, and need to work fairly independently and so the tools are designed to handle it.

  • Mercurial - a distributed source-code management tool (DSCM), or otherwise known as a distributed version control system (DVCM), Mercurial gives each team member their own personal repository to track changes in over time. While normally a command line tool, there are GUI tools available for Windows (TortoiseHg), Mac OSX (MacHg), and Linux (too many options, and I prefer the command line here). While it does take some getting used to, Joel Spolsky’s hginit.com has a wonderful introduction. I combine Mercurial with the free public hosting at BitBucket to create full team-based environment. More in a later article on how to get this set up.