Diomidis Spinellis gives a list of 10 software tool sins in The Tools at Hand episode of his Tools of the Trade podcast. Here are his points, but turned around. For each sin he lists, I give the opposite as a virtue.
10. Maintain API documentation with the source code.
9. Integrate unit testing in development.
8. Track bugs electronically.
7. Let the compiler do what it can do better than you.
6. Learn how to script your tools to work together.
5. Pay attention to compiler warnings and fix them.
4. Use a version control system.
3. Use tools to find definitions rather than scanning for them.
2. Use a debugger.
1. Use tools that eliminate repetitive manual editing.
I turned the original list around because I believe it’s easier to agree that the things above are good than it is to see that their lack is bad. Some items are opposites, like #5: you either pay attention to warnings or you ignore them. But some are not, like #8. Tracking bugs electronically is a good idea, but I wouldn’t call tracking bugs on paper a “sin.”
Related post: Reducing development friction comments on another podcast from Diomidis Spinellis.