People often collaborate on the same internet project even though they might be on opposite sides of the globe, however this distance brings with it its own challenges. Here are some tips to smooth communication and increase efficiency:
- Try to avoid uncessary complexification by thinking ahead. In the 1930's, the philosopher Karl Popper was talking about the problem of complexification: he described how bees evolved to build beehives, which are so complex that any future evolutions had to work around it rather than replacing it. Computer work can similarly reach a similar level of complexity very quickly, where we have to work around unwanted situations because it would take too much time to replace them. It is probably impossible to have a situation where this phenomenon is completely eliminated, but thinking ahead with regards to future developments can certainly minimize it.
- If you are the project leader, lay down very clear guidelines and be sure to stick to them yourself. Of course, guidelines change as a result of system upgrades, or better work practices: be sure that all members of the team are kept up to speed on new practices, and are given time to adjust. A lot of confusion can happen as a result of beople being caught between the old and new way of doing things.
- For large computer projects, keep a repository which will keep track of your changes and allow you to backtrack to any previous change. A repository is also a good way to see who did what, allowing you to refine and better future work practices. The original repository software was called CVS, but there are other good candidates like Subversion and Darcs. Ensure that the css files, the scripts and the page templates are kept apart in the repository so there is not a bottleneck with different people wanting to access the same product.
- Also essential is an issue tracking system, which allows team members (or even members of the public) to raise a bug or suggest an new feature. When using the issue tracker, be careful to keep your comments short and to the point. Avoid the temptation to make a comment just to be seen to be doing something. Having to read excess ‘noise’ every day will reduce people's willingness to use the tracker. Oftentimes an issue is better resolved by phone or video chat, and the conclusions then posted on the tracker.
- Computer work is full of distractions and cul-de-sacs that will fill up your time if you aren't focused on the job. Sometimes it can be better to make a policy to have the Internet switched off and do as much as possible locally before committing it to the live site.
- Organise an occasional project not related to your work area. Sometimes computer work can lead to a very one-dimensional interaction between members of the team, and a project that takes the team ‘out of the box’ can broaden and deepen the understanding within the team. For example, you can try and meet in person to organise a humorous play or skit, or some outdoor event for charity. Or if it is not possible to meet up, you can can have friendly online competitions in something completely related to web development.
The author, Shane Magee, is part of the Vasudeva Service web development team, and works with Plone, Zope, Python and Unix. The Vasudeva Service project provides techincal support for inspirational websites created by members of the Sri Chinmoy Centre.