I’m sure there are lots of ways to handle documenting things (design documents, release notes, requirements, etc.) in a software development environment, but I’ve only ever seen 2: a corporate wiki, and something from Microsoft (I forget the name of it, all I really remember is that it had a check out/check in model, and all the developers thought sucked. I’ll just call this option “the Microsoft option” for lack of something more accurate). From what I’ve seen, wikis have a lot of promise, and do a great job, but to live up to their full promise they still require an anal retentive developer dedicated to periodically reviewing and fixing the documentation for anything they actually deal with on a day-by-day basis.
Maybe it’s just that I’m slow on the uptake, but I didn’t get the whole hype over using virtual machines for development up until I actually started doing it. After all, why use virtual machines when you have a perfectly good physical box sitting right there and ready to go? I get that it saves money and power and is easier to administer, but that’s an administrative reason to use virtual machines, not a reason for me to put my server set up on a VM rather than the computer sitting right here next to me.
We all have our own personal Kryptonite, that little something you encounter as part of your job that just never seems to go right no matter what you do. For me, that Krytonite is server configuration. It doesn’t matter how clear you make the how-to directions, I will find a way to fail at it no matter how hard I try to get it right on the very first time. It’s like magic, or karma, or some other-worldly force that’s determined I fail when trying to set up any new environment.