Writing maintainable code
Phil points to a series of great posts by Jeremy Miller on writing maintainable code. The software ecosystem post is the one I most want to draw your attention to, like Phil suggests, print it out and take it with you where ever you go but live and breath these points.
- Invest in a CI infrastructure
CCNet is free, easy to setup and use and has a vibrant and helpful community to help you out. Marc has a great book on using CCNet that I fully recommend.
You should be unit testing your code, there is no excuse. You don't need to be using TDD to unit test (however I recommend learning about it) and if your working with legacy code (which is subject that Jeremy is addressing) then there is a high chance you won't have tests. Invest in learning what you need to know, NUnit and MbUnit are free, there is a ton of information both on the web and in book frorm to give you the skills you need. You can plug them into your CI build to ensure your build quality. Next project you work on, get unit testing.
- Executable Requirements for Less Expensive Regression Testing
Requirements/Functional testing can be achieved very easily using FIT, its free and can be plugged into your CI build to further increase your build quality.