The next version of BlogEngine.NET is moving closer and closer by the hour. We are closing down features and concentrate on finishing the ones not already done. That got me thinking about delivering quality code and what every project probably would benefit from before a release – a thorough code quality session.
When you are feature complete, what do you need to make the code as close to perfect as possible? Remember, perfect is an illusion and a matter of subjective interpretation, but you get the idea. You need all the steps to ensure that you release a quality project that works perfectly. For an ASP.NET project like BlogEngine.NET, I would suggest these steps.
Test and fix
Work your way through the bugs until you hit a zero bug bounce. Then test again and make sure you didn’t break anything. Do this through all the steps. No matter what test methods you use, make sure to run them all. This one is a no-brainer.
Run FxCop on all your code and make the suggested changes to the code. Not all the suggestions are valid, but make sure to know why you don’t apply them. By running FxCop you make sure that your code is up to certain best practices and that helps eliminating errors.
A project ready for release shouldn’t have any compiler warnings at all. No exceptions. Often it’s because there is unreachable code or missing comments.
This should have been caught in the code reviews long time ago, but there are always the last minute changes to check. Complex code is the root to all evil, so make sure to simplify it right away.
Go through every file in your project and look for insufficient comments. When you look at a class or method you should know right away what is going on. If not, then either the code or the comments are insufficient. Rewrite the comments so every developer on the team, even future ones, can pick it up easily.
Coding standards check
There are always places in your project where the coding standards has been ignored or forgotten. It happens. Go through the entire project and make the changes needed. This makes it much easier for others to understand the code.
If you’re project requires deployment then make sure to test every possible scenario. For a web project you might want to check if you application can run in medium trust and if your URL rewrite mechanism works in IIS 7.
I probably forgot some steps, but these are the big ones in my book. So how long time should it take to complete these steps you might wonder? Well, it takes till you are finished. When you are finished, go through all the steps again to make sure. Then you release and throw a release party. Don’t drink too much.