What Tools Do You Use for Managing Global Teams?
Managing global teams requires a solid structure and the right (software) tools. I often get the question of what tools we use in our company. I am always surprised when I show someone our project management tool, what impression it makes on them. To me, it seems common sense to have such a tool, but for people without experience in offshoring, this is not so common at all.
The goal of using tools is to maximize the structure. Software development is complex. Human behavior is complex. The tools should make software development structured. And they should help the people involved to show behavior that leads to the desired results. This second element is the biggest challenge. Software development is a creative process, not factory work. So we need creativity from people and at the same time, we expect them to behave in a specific way.
So what tools/ingredients do you need to facilitate global team collaboration?
1. A documented process that answers ‘how do we work’
I believe this is the starting point of any global collaboration. Before the train starts driving, everybody involved needs to understand ‘how we work’. This process needs to be both documented and supported by everybody. The process also needs to be reviewed and improved continuously. It would be useful to have an online process building tool for this, which I have not found so far. Word documents also serve the purpose here.
2. Project management tool
An online tool that enables the team to manage everything within a project. Such tool should include separate elements for:
a. Storing requirements documents
b. Managing tasks
c. A bug tracker
d. A planning module to plan and track progress
Some popular project management tools are: Redmine and Jira. More simple bug trackers include Bugzilla and Mantis.
3. Skype or another video conferencing tool
This may seem obvious but many people without experience in offshoring are not so used to skype. It’s crucial to stimulate human interaction, so the (group) video functionality of skype helps there. The team needs to see each other regularly for both bonding and project discussions.
4. Time registration + reporting
People sit far away so it is hard to understand what specifically they are doing. Time registration can help us out. Programmers can register the time spent on certain tasks/bugs/projects in an online tool, which can be reported once per week to the onshore project leader. It is also useful to have a weekly analysis of the time spent, so the people understand how and why time is spent from both sides.
5. A version control system
The most commonly used tools here are subversion or CVS. Usually, this is installed on a webserver, and people from each team commit code to the system at the end of their working day. Another, which integrates for example with Redmine, is GIT.
6. A coding standard
Although this may seem logical, many companies are reluctant to have coding standards, let alone follow them. With different people in different locations working on one project or system, it’s crucial that everybody knows ‘this is how we expect you to develop software code’. The coding standard needs to be clear to everybody and it’s helpful to check the code regularly to ensure that people stick to the standard.
7. An overview of responsibilities
Who’s doing what? Who is accountable for what? Even if people are working in different companies, it is helpful to create function profiles that give an overview of what is expected of each person.
8. A performance measurement system
If you are building long term cooperation with an offshore team, it’s important to give them feedback on their performance. The best is to treat them like they are your own employees. Examples are ‘asks questions when requirements are not clear’, ‘communicates ideas for better solutions’, ‘is proactive’, ‘makes deadlines’. You can rate those on a scale of 1-10. It’s also useful to ask the offshore team to give you feedback on certain factors (e.g. provides clear task specifications, communicates expectations clearly, assists in technical problems). It is helpful to use an online survey tool (e.g. SurveyMonkey, Typeform, etc.) or use some custom-built system for this.
With such tools and systems in place, the work is facilitated. Behavior gets structured, feedback is given and the team gets a feeling of ‘control’. And still, there is a lot of space for human behavior to deviate from the expected behavior. Maybe you have some tools or methods that you can add to this list?
Meanwhile, you want to read about some effective tools for Agile project management here.