Coordinating Development with a Growing Team
The development team of a small company that I have recently joined is continually growing, and coordinating development efforts within this team requires more than controlling file permissions. Using file permissions as a primitive means of source code control worked when the team was small, but simply using file permissions and a de facto standard of appending version numbers to modified files is becoming harder to manage as the team continues to grow. Maintaining such a hacked solution kludges the operating system’s permission control without the benefit of refined control. A more elegant solution is the use of a software versioning control system, which maintains file modification history as well as refined control over source code.
By adopting a common practice of big development companies, we gain greater project manageability. I do not believe that this will significantly affect our company’s agility, and the benefits far outweigh the costs. Training developers, who do not possess experience with versioning control systems, is a short-term cost that will yield long-term returns in the form of reduced development time and ease of project coordination. The deployment of a version control system is a strong indication that the company is interested in transforming individual developers into a team of engineers. I am a strong proponent of developing team members, and introducing them to new tools and methodologies increases their marketability to other companies and utility to our company.
Many companies worry that developing the skills of their workers results in increased turnover or wage costs. I am confident that we can continue to develop our team members’ skills as we continue to grow our team. Although our team members will become more marketable to other companies, I am also confident that each member of our team is dedicated to keeping it intact. Our company has a real interest in developing all its members, and deploying a software version control system to introduce tools to our team members and improve our development practices exemplifies our motivation.