can remote teamwork be productive?
Because i usually find potential clients through the internet i am
occasionally confronted with the question on dealing with remote work.
In this post i will try to relay my experience and hopefully answer some
questions.
I will write about four types of collaboration:
Effective local collaboration and effective remote collaboration as well
as complete lack of local collaboration and ineffective remote
collaboration.
I have experienced all four.
The key to each one is communication. if communication does not happen,
it will fail. Let me detail all the types above and explain what i
learned from them. Starting with the complete lack of local
collaboration.
The situation here was that i was hired to work on a specific project by
myself. There was no team, just a manager who was unfortunately very
busy. I was seated in a different room and left alone to do my work. The
result was a complete desaster. I didn't have enough guidance, there was
no oversight, no progress checking, nothing. This was probably as much
my fault as the managers. As i said he was busy, and i should have been
more upfront to ask.
I believe that if i had done this project from home, it would have been
more effective for that situation. When you are in an office it is easy
to assume that you are disciplined and working, and making progress. When
you work at home your manager will be more concerned to find out if you
are really working, and at least check in once in a while. Also working
from home makes it more obvious that actual working time needs to be
documented as opposed to mentally ticking a clock when you enter and
leave the office.
Later, when i started to work from home my first client asked for hourly
time sheets. At first i thought that it would be a drag, but then i
realized that it was quite liberating because i could take a break
whenever i wanted without feeling guilty and simply subtracted that time
from the time sheet. It helped with the discipline :-)
The next type is ineffective remote collaboration. The situation here
was that i joined a team that was working on a Free Software project at
a university. I was the only outsider in that team. I was welcomed with
open arms. The personal relationship with the other developers was
great. When i visited them we had parties together, and when i joined
them in the office we were working together.
But that office became the problem in the long run. As everyone else was
there, most communication happened accross the desk face to face, so not
only was i not involved in the communication or decisions, i often
didn't even find out about plans, goals, opportunities etc...
Not enough effort was made to keep me in the loop and as a result i
didn't really see much opportunity to contribute. Opportunity sure was
there, and if i had just done what i wanted i could have ignored the
communication problem and just send in code. But i like to work with a
team, and not despite it.
Now let us look at the types where collaboration worked.
There are actually two types of local collaboration. One is the usual
with regular meetings, everyone does their thing, if you have a question
you go and ask, you help each other, everything as you'd expect.
The second is more interesting. What was unusual here was that we were
50 people in the company working on a large project with a client on the
other side of the planet. All communication was done through a project
internal irc server that we shared with the client. Once a day we had a
project wide irc meeting where everyone, yes, all 50 odd people, would
report on what they were working on. Within 5 minutes there was a flodd
of issue tracker numbers and short comments, so everyone got to see what
everyone else was doing. The meeting was in two parts: first a plain
status report, and then a problem report. A bot was there to track that
everyone had made their status report before problem reports were
allowed.
The rest of the day, work was done in small teams. Each team had their
own daily 5 minute stand up meeting, which was done face-to-face and
extra meetings if they needed it.
The office was a large open space, and because of that talking was
usually not convenient and if you had a question you'd ping your
colleague on irc even if she was sitting right behind you.
Using irc in this manner had another sideeffect. It was simply less
disruptive. If you were diving deep into a coding problem you could
simply ignore the irc window and you wouldn't be disturbed. On the other
hand if i didn't get a response even though i can see my collegue if i
turn around i would know that he was busy and so i'd either work on
something else else or find another person for my question.
(Here are some articles on why interruptions are bad:
http://37signals.com/svn/archives2/the_science_of_interruptions.php
http://www.paulgraham.com/makersschedule.html
http://www.futurepundit.com/archives/004149.html)
This setup had another sideeffect. It didn't actually matter if you were in
the office. If the situation called for it, you could work from home
without affecting productivity. Also occasionally some of the senior
developers were sent to the clients location, but they'd continue to
work with their team from remote.
Because all communication was written, it could be logged, and so you
could for example review the irc meeting even if you missed it.
Which brings us to the last type: fully working from remote. Above all
else, consider the vast amount of Free Software developed by volunteers
all across the world. You can pretty much guess that most of them work
from remote. And successfully so. Myself, i am involved in several
international Free Software projects and i have worked with clients in
new zealand, singapore, germany and austria all from remote.
the most recent project for example was managed using trac with work
shared among half a dozend people in almost as many locations in two
timezones (6h difference).
we used trac, email, irc, jabber and voip to communicate.
working from remote forces you to write down more, which in turn gives
more opportunity to think before expressing something, or to correct it.
There is an interesting paper on this topic called: "Can Absence Make a
Team Grow Stronger?" (A. Majchrzak, A. Malhotra, J. Stamps and J.
Lipnack), Harvard Business Review, May 2004, pp. 137-144 (
(there are more papers on this topic at http://public.kenan-flagler.unc.edu/faculty/malhotra/))
So it all comes down to the willingness of team-members to use suitable
communication tools and make sure that remote team members are kept in
the loop. positive sideeffects include better documentation or more
doccumentation of informal decisions, a quieter office and more
flexibility for the team members without negatively affecting the teams
productivity.
This article in itself demonstrates one of the advantages of remote work.
It was written as a direct response to one potential client.
now, imagine someone asking me this question in a personal meeting. I'd give them
an answer, but it would be much shorter and not contain as much details or even reference links.
So not only did i answer the clients question, but i produced a general
document that will answer this question for everyone else.
I wrote documentation.
Syndicated 2012-05-14 18:00:27 from DevLog