December 11, 2006

Virtual Teams and Software Development

I have finally found the time to read this discussion topic about working from home. I’m proud to say that I actually read every letter, because it’s a long topic.

The subject is very interesting to me because I spent approximately one year working from home in a virtual team. Virtual team developing software. For me, it was unpleasant, and maybe it will not be an exaggeration if I say: a terrible experience from both personal and professional side.

I don’t want to write about personal problems because in the discussion referenced above, all my problems were mentioned at least once. The way I see it, this is probably the best summarization.
Instead, I would like to describe the problems that we had as a software development team trying to make something as a joint effort; the reasons why we underperformed, missed all deadlines, lose significant number of employees (including me), weren’t able to successfully integrate any new team members etc.

People are different: some who took part in that discussion obviously experienced positive impact to their personal life. However, I couldn’t draw a general conclusion about the nature of work those people were performing. It is hard to imagine that any of them worked in a team whose every member worked at home alone.
The crucial thing also is to have a well defined output. All successful teleworkers I’ve seen so far have had strictly defined deliverables which, as such, could be measured (read: paid ;)). Virtual teaming is something else. And software development might be the last place to exercise it.

Background:

  • 7-8 people gradually moved from office to home. At first, only some of them started to work from home and after few months everybody was working from home.
  • This was not an accident but a company strategy. Project manager, who was also a CEO of the company, expected better results from our work. The assumption was that we would be more productive as individuals, working in a peaceful, domestic environment.
  • All team members were familiar with each other, since we worked before under “normal” circumstances. We were all from the same country; speaking the same language.
  • We used IM, Skype and regular phone for communication.
  • We used wiki (namely, Flexwiki) for documentation exchange and processes description.
  • We used SourceOffSite (had bugs but we were grateful that such product even existed at the time) to enable web access to VSS.
  • Face to face meetings were rare. Never more frequent than once a month.
  • Previous company experience with teleworking was the following: some people worked from home and they were very successful. Type of work they performed was either a) work on helpdesk or b) working on products which were mainly their own responsibility.
  • Working time was 100% flexible. Everybody worked when they found suitable; sometimes not overlapping with others at all.

The only thing I found beneficial about virtual team work is that it is actually (and sadly) easier to talk to some individuals over IM than in person.

And now a list of things that went wrong. The most important, of course: incredible problems with communication in many aspects. Most things from the list bellow are related to communication.

  • Unbelievable amounts of useless, inconclusive IM communication. The problem was that we approached each other with simple questions but the issues often turned out to be pretty complicated. After half an hour of futile discussion we would realize that it would be better if we talked by phone – but the time was already lost. After a while, every time I had a question for someone, I felt physical pain prior to clicking his name in the IM window.
  • Problems in communication and work between team members were not easily tracked by project manager as they would be if we were in an office. People were not talking to each other and nobody knew about it!
  • There were people who had to work intensively together on some tasks but were never “at work” at the same time. This means, if I needed someone to do something for me and he was in the “night shift” I had to wait for the results until tomorrow morning. If people work when they want, they will have their own schedule because we are all different. Chances that we will all be present at the same time are almost equal to zero.
  • Using wiki for document sharing was extremely painful experience. On more then one occasion I have lost hours of work. It just happens, sooner or later.
  • Face-to-face meeting were opening too many questions that piled up over time and remained unresolved. For this reason, these meetings lasted for hours and hours but with few significant outcomes.
  • Project manager became very suspicious about everyone’s working habits and most of us were offended by that as we knew that if we were really not doing our jobs – he would hardly find out about that. Some people were working there for years and with significant results and this behavior was really a slap in their face.
  • Interruption problems remained the same as in the office. We were at home, yes, but with IM icon blinking every 5 minutes, one can’t say that there is no interruption. It’s too easy to click someone’s name and ask something and as you have 6-7 people doing that – there will always be some blinking going on.
  • Joint discussions over Skype multiple person chat were Monty-Python-like events. Often incoherent parallel discussions about all kinds of unrelated stuff.
  • Project manager’s personal flaws were really surfacing since he didn’t have satisfying overview of the project status. This of course had bad impact on everyone’s motivation and work/job satisfaction.
  • Integration of new employees went very slow. We never saw those people in person. I’m not saying that it’s impossible, but went much slower than those times when we were in the office.
  • People received far lees credit for their work than they should have. Project manager was not able to determine what their contribution to the project is.
  • Even when it was obvious that things are not going very well, the decision about working from home didn’t change.
  • At the moment when I left the company, only 3 full-time employees were still in the team.

Consequences for me :)) ...

  • I hate wikis of any form. I like them only when they are read-only. Especially when I see those white-yellow screens of Flexwiki. I could get a heart attack.
  • I rarely use Skype, also bad memories. I know it was not meant to be used primarily as a chat but now what can I do?
  • I avoid working from home in my current company, even if it is for one day and even if it is really better for me. I never take work home; I stay in the office as long as it takes to finish everything.

And now seriously, my question to anybody who had any similar experience: did this fail because of bad management or would it fail anyway if the management was good?

I think that even if it succeeds to some extent, no matter how good the management is, it's much harder than with "normal office team" of equivalent capacity. A million years of communication evolution (verbal, non-verbal) suddenly flattened to chat and phone cannot stay without punishment. Also, the discipline and formalities in software development processes become very important in this case and they take significant effort.

But hey, to quit the job using Skype is really a story for one’s grandchildren! (I'm kidding, it's really a worthless experience! :))) )

Some resources about the subject:

Theory: http://www.answers.com/topic/virtual-team

A study: virtual teams with students building some piece of software. It is mostly about behavior of people who were in the team. However, they had two professors leading them, and not project manager with his own issues.
http://heim.ifi.uio.no/~sundeeps/publications/SarkerSahayJAIS.pdf

Some advices: