Simple Rule Of Thumb

Lots and lots of column space has been devoted to the proper techniques for doing software management and software engineering.

I have one. It’s a simple one–but strangly one that I haven’t seen honored on any project I’ve worked on in a large colaborative environment, much to the detrement of the team. That rule of thumb is this:

If you are using an IDE, and you cannot simply open up the project file for the project you are working on and press “debug”, then your build process and project file is broken.

Now I’ve heard all sorts of objections to this rule of thumb on the projects I’ve worked on. “Oh, my project contains a bunch of DLLs which require special code in order to be hooked into the OS.” (Uh, DllRegisterServer, anyone? And the Visual C++ debugger will automatically run DllRegisterServer for you when you hit the debug button.) “Oh, my project is scattered across a whole bunch of different projects.” Then your build process is broken, since every modern IDE I’ve encountered can handle multiple projects. “Oh, I’m building something specialized like a device driver.” Okay, in that case I can see your point: the IDE tools may not be quite up to snuff. And one project I’m working on hooks the OS at a very low level–but really, how many people are working on low-level back-door OS hooking code? And shouldn’t that be segregated in such a way so that the majority if your code can operate even without the hooks?

By and large the biggest problems I’ve encountered which prevent a newbie from opening up a project and pressing the “debug” button is because the other developers just don’t care enough to make the build process simple. They cannot be bothered to look up how the IDE they’re using works; they cannot be bothered to read the documentation that describes how COM DLLs are loaded–and so they create these humongous piles of junk trying to solve a problem that was already solved with a more elegant–and IDE friendly–technique.

Fundamentally, if you cannot just open the IDE and hit “debug”, your project is broken. And if you cannot figure out how to make it so you can just hit the “debug” button, perhaps you need to spend some time figuring out why, rather than creating all sorts of weird workarounds because you’re too lazy to RTF (IDE) M.

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s