Collaboration

The developers use a range of tools to organise their work, stay in touch with each others' work and collaborate. Asynchronous remote, synchronous remote and synchronous in-person tools each have their strengths and weaknesses, and we attempt to use them appropriately.

Asynchronous remote

Asynchronous remote tools are good for when a permanent record of conversations needs to be kept, for collaboration with people in different timezones, and are very respectful of an individual's workflow - they can be looked at only when necessary. However, this means that among larger groups, discussion can be very slow, and relies on individuals taking the time to engage with the systems. The text-heavy style of many of these systems is a burden on people who prefer more visual means of communication, and especially people who are dyslexic.

We use plan.io (a hosted Redmine instance) for lots of our communication. The tickets are used in several ways:

  • As a replacement for email, so that a record can be kept and that others in the organisation can see the discussion. It takes some time to get used to!

  • As items on kanban boards

  • For time-tracking and personal work plannning

We use GitHub Projects or Trello boards to co-ordinate sprint work with clients. Anything that we do should be recorded either on the non-sprint board or the relevant sprint board.

Synchronous remote

Synchronous remote tools are good for when a conversation benefits from being conducted in real-time, for example if lots of people are required to give input, or if a complex subject is being discussed that requires multiple responses from participants to be fully explored. In general, the higher-fidelity the tool, the more relateable the conversation is, so we try to use fast broadband connections, HD cameras, good-quality microphones and video calling from quiet locations wherever possible.

Like any meeting, careful facilitation is required to make the most of the time that participants devote to a Hangouts call. This can be the role of a single person, or can be shared among participants.

We respect the makers' timetable, and try to schedule meetings that allow developers to have uninterrupted time as far as practicable.

Synchronous in-person

In-person meetings allow the quickest exchange of information and help to build relationships effectively between team members, but require considerable investment of time (both for the meeting and travel time) and cost for travel, accommodation and room hire. Therefore, we generally reserve them for things where they are appreciably more effective than remote means.

We encourage individuals to work together in person whenever they might benefit from it - either for the work or social benefits.

Last updated