Gordon and I jokingly call infovark an “N-complete” enterprise. We do this for two reasons.
This means NUnit, NCover, NDoc, and NAnt. For the non-nerdy, these are frameworks that help developers manage unit tests, determine code coverage for said unit tests, document our code, and automate our build process. We bring all the tools together using SharpDevelop. (Though I do miss Microsoft’s Visual Studio a bit.)
Why use all of these tools? As a small software development shop, the most important thing for us is to manage our time properly. As Joel on Software pointed out, multitasking developers face context switching costs. Revisiting our code after the fact to write automated test cases or add documentation is a huge time-wasting exercise. It’s much better to do these things while we’re down in the weeds, working with the bits and bytes. Having the N* suite running within our IDE makes us much more productive.
We think being our own testers and tech writers gives us better quality code as well. After all, the person writing the code is best equipped to describe what it does and the most likely ways it could break. It makes sense to do these tasks ourselves as long as we can minimize the switching costs.
Our thanks to all the open source developers that worked on these tools. We wouldn’t get far without you. And thanks as well to the FxCop team, whose code security tool is a real godsend. (But couldn’t you guys have named it N-something?)