False Dichotomy

As I go through this life, I find that fewer and fewer things are black and white. This is especially true with computer programming, configuration, etc. While there may only seem to be two choices, there is often more flexibility than we see up front.

Case in point: We have just moved off of a completely insane build process at work to one driven by nAnt. For those not familiar with nAnt, it is a great XML driven build engine that is flexible enough to even handle deploymnet. If we were on Team Foundation at this time, I would opt for MSBuild instead, but that is another story.

When using nAnt, web projects can be problematic. While there are a variety of solutions that solve this problem, they are more time consuming to learn. The other option, then, is to change the web projects into class libraries. The issue here is you have to tweak the project settings to get the project to build properly to allow for debugging. Neither is insurmountable.

The false dichotomy? This is not an either or situation. With nAnt, you have the ability to peek and poke at XML files. The project file for .NET 1.1 (and 2.0 for that matter) is an XML file. The change between web and class library projects is a single attribute called ProjectType, which has the XPath of VisualStudioProjectCSHARP@ProjectType. Using an xml poke, you can change this value to local on your build server and leave the web project alone for development.

Conclusion: I am not here to say that there are all situations have more than two choices. If there were no situations with only two choices, we would not need Booleans. 🙂 But, many times we get locked into a situation where we only see two options and we should take a step back. In this particular case, none of the options were particularly difficult and none of the paths led to really bad decisions. There are situations, however, that do lead to really bad decisions.

Ciao for now!


One Response to False Dichotomy

  1. Kevin says:

    I may perhaps tend to wander a bit when I hit an idea that strikes a resonance in me, so forgive me if I’m going off on a tangent. It’s just the Asperger in me, I suppose!
    I’m struck by the fact that in your work you are apparently being directed to use nAnt for some other reason than that of "getting the job done." Oddly, to me, as "getting the job done" is another phrase for "satisfying the requirements" which we developers are hired to do.
    I often tend to see this tendancy in the community, a very human tendancy to follow the latest "trend," such as using some popular open-source platform rather than the tried and true, or at least the familiar. Now, if I were doing research at some university I might enjoy such a diversion, but if I’m not mistaken, this is for some project that involves "satisfying requirements." And changing methodology is only helpful when the new methodology does a better, more optimal job of "satisfying the requirements" (getting the job done).
    What is happening to the developer community these days? Is it so rare to be someone who has a fiercely-focused intent on the goal, rather than the means? I couldn’t care less if I impress other know-it-alls with my expertise in the latest lingo. Show me your certification without works, and I’ll show you my certification by my works (to paraphrase James).
    At any rate, I’ve wandered off track far enough. To quote Ash in the movie "Alien" – you have my sympathies!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

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

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s

%d bloggers like this: