I responded to a question earlier this week about how you can judge the quality of a web application’s code. The question was from someone who would be receiving the source code for the app in question once it was finished and they would be responsible for maintaining it after launch. How can you tell if the code is of high quality and easily maintainable if you are not a programmer yourself?
Here are a few things I would look for in this situation:
- The application provides helpful/friendly error messages to users when something bad happens. If they have put thought into error handling then they have probably done so throughout the application.
- They use a code versioning system repository for developing the application. Any programming shop who knows what they are doing should use a tool like this. If they are not, I’d consider them amateurs.
- Source code is well documented. Browsing through the code, you should be able to understand what each section does, even if you are not a programmer. If the comments are too cryptic or few, then it will be harder to maintain when they hand it off.
- The application uses classes for commonly executed operations. If the same bit of html has to be rendered repeatedly, make sure they have that pulled out into a single class rather than simply repeating the code over and over throughout the application. This makes maintenance much easier.
- They use unit tests. Unit testing can be somewhat challenging with web apps but can be done. Unit tests are a series of tests that will check that the application is functioning properly after a change is made (regression testing). I’d consider a shop doing this effectively to be very competent.
Some of those obviously require a coder to asses for you but at least you know some questions to ask that will get at whether the developers in question have good practices in writing code. It is no guarantee but will weed out the poorest candidates.
Here are a few books you may want to review if you want to learn more about good development practices:
(had an issue with my amazon links, list to be reposted later)
Also see Joel Spolsky’s reading list.