Working in teams can be difficult. A common issue is around other people not working as much as you, and to be honest as long as they are bringing something I didn’t do, then I try not to care. But a similar question to this came up on Forrst recently, so rather then repeat myself I’m just going to post it here. It earned me a star, so hopefully some people will find it useful:
I’ve worked in teams that have both communicated very well and very badly. The best one I’m calling the ‘good place’, and there I always knew everything that was going on. At the worst, the ‘bad place’, I very rarely knew. These are my thoughts:
Forcing the use of communication software. Everyone must have an e-mail and messenger clients open whilst working, and that’s ALWAYS! If you are too busy to use messenger then tag yourself as ‘busy’ (so you can grab them in an emergency). Being ‘busy’ should also be respected.
Tonnes of communication. Part of this is about always communicating, and part of it is about knowing what to just ignore (because it’s irrelevant). It’s better to receive a mail and ignore it then to have not received it (that’s not to say ignoring is good, just better the nothing). For example there is no reason why two devs can’t discuss an issue over the group mailing list rather then one-on-one.
Make the most of your time. At the bad place I’ve sat through 2 hour meetings where 3/4 of it was spent by the guys in charge chatting about programming languages and what they did during their PHDs. Time spent chatting over something hat had no relevance to the product. At the good place we had a 1 hour weekly meeting: 5 minutes of messing about (usually doing stilly things with the video network) then 55 minutes of 100% pure business.
At the end of meetings at the good place I knew what everyone else worked on, and what I working on before I went in. At the bad place I’d often walk out and have no idea what anyone else, or even myself, was working on.
Finally meet often, very often! Both as a team and individually one on one. Bad place only did a weekly team meeting, and over my time there more then a third of these got cancelled. That’s why I often didn’t know what anyone else was up to.
Most of all they need to be enforced. The reality is this is all just common sense, everyone I have worked with would fully agree. But it’s amazing how often this stuff gets side tracked. I also find people tend to follow the guy in charge. If he/she doesn’t communicate, then chances are that everyone else will presume that is the norm. Again both the good and bad places I have worked at reflected this.
At the good place they also did long lunches every few weeks where one part of the department would show off what they were building on and perform a Q&A about it. There was free food, drinks, cake, etc; and the management would pretty much take a back seat. It was devs presenting to fellow devs, so it was very informal and social.
One thing to add onto that; some people have mentioned that online voice/video is not good enough. I’d fully agree it is NOT a substitute for real meetings, not even close (and it’s one reason why I don’t think people should only be allowed to partially work from home, but that is a separate discussion). But at the ‘good’ place above we had a weekly video conference between our team and another in mainland China (about 30 people in total) and several times a week I’d have conference calls with the testers in India; I got loads of stuff out of both.
Again it’s common sense. If it’s run well, like a proper meeting, then online voice/video works very well (being at a PC can even help the meeting). It’s when the other guy is distracted on StarCraft/Reddit/YouTube/etc (which I found a lot of people did during meetings at uni); that’s when it doesn’t work.