I was just glancing at a related question list on this very site and it got me thinking. I see a lot of questions like:
- Should I deploy XYZ with my package or add a reference to some other path?
- How do I configure nant/cruisecontrol/etc.. to run my unit tests?
- Where should I keep my config files for unit tests in XYZ setup
- etc...
Now, when I develop (using .NET and Visual Studio), I choose a very specific directory structure:
- doc: contains all documetnation
- lib: contains compiled dependencies
- src: contains all program source and dependency sources
- etc: miscellaneous files related to the project
- bin: compiled program output
Generally speaking, if something can't be done within that directory structure, I simply don't do it. This includes unit testing, continuous integration, etc... In the same light, my entire program WILL run out of the bin directory with the exception of OS or network references. I refuse to introduce dependencies on the file system that don't reside in my program's root directory. I'm sure I'm missing out on some really cool aspects of development, but I've tried cruise control and I've tried nant and to be honest, as someone who works with a lot of small projects (200+ small projects a year) as opposed to a few (10-20) large projects, I can honestly say the simplicity is more desirable than some of the benefits of using these tools.
I guess my question is, am I just a simpleton or does it seem like certain things are just far more complex than they need to be? This whole "design so it fits all" mentality really seems to get in the way of getting things done at times.