It’s never enough when it comes to insisting on certain practices that are part of software development. Using repositories is as obvious as doing backups, but there is always someone that can justify why is not needed, why he is always in an exceptional scenario or under special conditions, or even that certain practices do not apply to him.
Preparing documentation can prove to be a nightmare if not starting with the right foot, both in terms of timing and the tools used. Following a KanBan methodology can also be of great help not just for managing the project deliverables and timeline, but can also be useful to collect info for reporting.
Conveniently commenting the code is also a very good practice that can be used to collect info for documenting as well, beside the obvious reasons behind commenting it.
Test driven development is an ideal approach for assuring good quality, and otherwise continuous testing is the way to go. Smaller unit tests are always better. Regular refactoring of the code should also be part of the standard practices for any development team.
General purpose helpers will avoid writing multiple times the same code and will ensure that code is in great shape, but once again, it’s often after writing the same code 3 times that people realizes its importance.
Make code correct, then take your time to improve it and make it faster.
Don’t work in silos. Shared code is always better, both in terms of quality and of team-building. Difficulties will also be easier to overcome, and eventually replacements in the team will also be less painful.