Microsoft has published the results of some empirical studies about how development practices affect quality Test Driven Development improves quality by 60 to 90 percent but takes 15 to 35 percent more ‘up front’ time. The time spent is compensated by savings in maintenance time later on. Team & organization structure has a huge impact on quality. Although this is conventional wisdom the study publishes figures to prove this. The metrics used data such as how many engineers are involved in a project, how many times individual source files were modified.
I try to keep the same project structure for all projects, this makes it easy when initiating new projects as you can automate the creation of the core project structure. We have the usual subversion branches/tags/trunk structure and then within trunk we have builds : Contains all continous integration build files for the project. code : All the code for the project, flat directory structure internally with one project per directory.
One of the things I’ve been working on over the last couple of years for myself and for clients, is making the development environment as frictionless as possible. By this I mean removing all the little annoyances that get in the way of producing good quality software. This guiding idea has led me to one guiding principal: keep everything under source control! For example, one classic problem I’ve encountered is that the build works on the developer’s workstation but not on the build server or vice versa.
One of the reasons I started this blog was to write down some of the stuff I’ve learnt over the past couple of years on how to structure my development environment so that it’s easy to use and ties in nicely with things like continuous integration and automated testing. So this is sort of a “head-up” of the topics I think I will be covering over the coming weeks.. Tools choice Source control Project structure Binary dependencies Continuous Integration It won’t necessarily be in this order and I may throw some other stuff in if I find the inspiration