What tools to use for expanding software company

A start-up is preparing to receive a new seed capital that will be invested in extending of human resources, especially the software development team. However, CTO thinks that we overlooked setting-up a good development process during our initial development phase and need to find a strategy to improve it. Currently we use only a simple SVN repository to maintain codebase where all programmers commit their changes and project manager assigns tasks to each programmer using an e-mail or in person, but no further attempts to improve the development processes were made so far. We believe that the bigger the team is, the harder it will be to sustain productivity of individual team members if we won't improve the current project management and communication. He is also worried that newcomers will easily introduce new bugs to the codebase until they integrate with existing team. What specific tools can we use to improve the development process to encourage focus and communication of employees as well as quality of code produced by expanding development team?
1 answer

Use some tools that support agile development

I'd recommend to use some tools for agile development to create a self-organized and self-directed work team. Agile methods advocates adaptive planning and flexible response to changes which could help with your problem.

In traditional Scrum, the day of each programmer starts with a stand-up, where team members shortly discuss what they did the previous day and what goal they have today. Therefore every member knows what his colleagues work on, which supports to create a commited cross-functional team. However stand-ups can be very disruptive because you have to stop what you're doing to attend to such daily meeting. Instead you can use a tools like Slack (https://slack.com) to support communication between team members, submit daily reports or share problems and ideas.

Next improvement is to do pair programming and code reviews. This not only allows newcomers to understand your source code faster, but also has a high impact on code quality produced by your existing team members. Code reviews are supported by many popular source code management tools like Github (https://github.com).

Another improvement could be to introduce Kanban board, which will allows you to visualize progress of the team and do changes in the flow of work items without shaking up the whole system. The board has vertical columns to organize programming tasks into a pipeline (for example: Backlog, In progress, Stalled, Code review and Done). Individual team members can then assign themselves to tasks which they want to implement or review. This may look like a very mechanical approach, but it has a profound effects on people and how they interact with one another. If you use Github for your source code management, you can use for example a tool called ZenHub (https://www.zenhub.com/).

You can also integrate the tools together, for example to receive a notification on Slack, when somebody reviewed your code or suggested some modification. Or automatic notification can be send to other team members on Slack when you change the state of your work item on the board. Other programmers can then assign themselves to inspect your code when you move your work item on the board to Code review column.