Collaborate to Innovate
Doug Eadline recently talked about how community is tremendously important to HPC. Two words: he’s right. The HPC ecosystem is all about working together to advance the state of the art. No single group, university, or company could do it alone.
As Cisco’s representative to the MPI Forum and the Open MPI software projects, I often work with teams of researchers and developers. Sometimes all the people are in one physical place and the process of sharing ideas and dividing work is easy. But it’s much more common for me to participate in geographically scattered groups of people. And there’s no doubt about it: collaboration across distances is just hard. You just can’t beat having a bunch of engineers in the same room with a whiteboard when trying to figure out a complex topic. But we don’t always get that opportunity.
So how do you take a disparate group of people and make them productive?
If you haven’t had to work in a globally-distributed team before, it may be easy to fall into the trap that email and/or instant messaging are sufficient to keep the lines of innovation, communication, and productivity open.
Don’t get me wrong: email and instant messaging are wonderful technologies — I use them both heavily every day. However, they both have their limits. Email is notorious for losing the nuances of non-verbal communication that are inherent in face-to-face communication. Email is also bad when the subject matter is complex, requires rich descriptions (such as diagrams and pictures), and/or is a rapidly evolving discussion topic.
In the Open MPI project, we use a mixture of collaboration technologies, including some notable Cisco technologies:
- Telepresence. This is the gold standard; Telepresence is video conferencing done right (I might be a little biased here 🙂 ). It’s HD video and “it’s like you’re sitting right here” audio, all integrated in a trivially-easy to use interface (seriously: it’s just like making a phone call — no more calling IT just to get your meeting started!).
- Webex. Rich teleconferences have become the norm in our project; the ability to have everyone on the call view the same slides, document, or even an active code debugging session. I can immediately share slides or even an Emacs/ssh debugging session from my desktop to remote colleagues.
- The phone. When visual communication isn’t possible, verbal communication is definitely still better than email. A 15 minute phone call can save you multiple days worth of confusing emails. Phone calls aren’t as sexy as other collaboration technologies, so here’s two incredibly useful features that I love about my Cisco VOIP phone (again, I might be a little biased here):
- Single number reach (SNR): My colleagues don’t know my cell number because when they call my work phone number, it rings both my desk phone and my cell phone simultaneously. I answer whichever one is convenient.
- Cisco Unified Personal Communicator (CUPC): I run CUPC on my laptop when I’m traveling, and using the laptop’s speakers and microphone, I can get my voice mail, place and receive calls “from” my work phone number, etc.
Admittedly, some of the above might be shameless plugs for Cisco technology, but I honestly believe that the use of them has made us work better in remote collaboration teams. We work and function together better as a community because we don’t rely on email alone.
Put differently: not using good collaboration tools is like only using printf for software debugging.