Use the Same Tools in a Team

From Programmer 97-things

Jump to: navigation, search

We all love our tools. And many of us think that we use the best tools and that our tools are more effective and better than the tools our co-workers are using. But, when you work in a team, the team is often more effective if there is some consistency across the team:

  • Exactly the same tool chain. In other words, exactly the same version of the same IDE, same compiler, etc.
  • Exactly the same coding conventions and coding style, which is also backed by the tools we use.
  • Exactly the same process of contributing code. For example, cleaning up the code using the team's coding conventions and styling before checking code in.

But why should you use the same tool set? Today's development tools are powerful and complex. Using the same tool set brings many benefits to the team: If everyone uses the same tools, everyone can coach and help other team mates master these tools. The team members are able to focus more on the problem domain instead of struggling with different tools alone. If someone discovers a hidden gem in one of the tools, such as a handy shortcut or reporting feature, the whole team can benefit from the find. Similarly if a team member finds a workaround for a known tool bug.

When trying to introduce a tool to the team, try make a convincing and objective case to the team why this tool would be a good addition to the tool chain for the project. Be open to alternative suggestions. At the end of the day, every team member should agree on the tool chain and have the feeling that this is more like a team decision rather than an imposed decision. After a while, collaboration of team members will automatically improve and they might see an increase of overall productivity.

But often there are team members that still keep using their own tools rather than the tools the team agreed on. It is very important for the team effort to get these team members on board. There are many ways to accomplish this: Let them explain why their tool is better and why they can't use the team tool. If they convince the team, then switch to their tool. If they don't, try to find a migration path. For example, if they want to use their specific tool, let them try to configure that tool to accept the same input and produce exactly the same output compared with the team tool. But at the same time, you and other team members should try to convince those using different tools to use the team-agreed tools.

Make the team tools easily accessible and installable. It helps a lot if you provide a script or another mechanism that automates the installation of the complete tool environment for a project. Once you have this mechanism in place, it is very easy for a new team member to start being productive. Also, keep the tooling up to date. Provide a simple update mechanism for all team members to make sure that everybody is always using the latest and greatest tool chain for the project.

By Kai Tödter

This work is licensed under a Creative Commons Attribution 3

Personal tools