I came across a very good question (as mentioned in title of post) and fantastic answer. This is common problem for senior developers / project leads who just landed on some previously coded project. I’ve seen such scenes quite a lot time and all ends in frustration and left unresolved.
Posting on blog for reference. Actual question / answers are here:
Top answer summary:
Executive Summary for the Impatient
- Define a rigid project structure, with:
- project templates,
- coding conventions,
- familiar build systems,
- and sets of usage guidelines for your infrastructure and tools.
- Install a good SCM and make sure they know how to use it.
- Point them to good IDEs for their technology, and make sure they know how to use them.
- Implement code quality checkers and automatic reporting in the build system.
- Couple the build system to continuous integration and continuous inspection systems.
- With the help of the above, identify code quality "hotspots" and refactor.
Now for the long version… Caution, brace yourselves!