The World According to Nick
My take on Software, Technology, Politics, and anything else I feel like talking about.
Thursday, June 17, 2004

Gut Check 

Recently a colleague of mine came by my desk to ask a software question. He was writing a service that would run on a web server. He was having issues making something do what he needed, and ended up having two choices to solve his problem.

  1. Change a few lines of someone else's code to make it work a little more generically.
  2. Change his system service into a console application that would force the web server to auto-login as an administrator at the console, and then automatically run his program... and somehow auto-restart magically if it crashed for some reason.

He asked the people in charge of the code mentioned in 1 what they thought he should do. They of course were leaning towards 2. He then came to me with his problem (looking for a non-existent option 3), and advice over 1 and 2. He told me that they were leaning towards 2. Here's how I remember the conversation going:

Coworker: I think they are leaning towards Option 2.
Nick: No.
Coworker: Why?
Nick: No.
Coworker: Why?
Nick: Because.
Coworker: Why?
Nick: It's wrong.
Coworker: Why?
Nick: Because I said so.

I think we all have an internal gut check. We hear something, and before we can even really mull over all the possibilities, and implications of a certain decision, we just know whether its right or wrong. In philosophy, Immanuel Kant held the belief in the Categorical Imperative. I think in software, we as Software Engineers have a similar absolute knowledge on right and wrong ways of doing something. When it came right down to it, the consequences, before I could even name them to my coworker, made option 2 just wrong, and I knew it. In fact, I think the evilness of 2 vs 1 was so absolute in my mind, that I couldn't even tell him the reasons right away, because I didn't know where to start.

Now then, before you think I'm some sort of immovable jerk (and maybe I am sometimes)... I did come up with a whole host of reasons why 2 was evil. My coworker actually agreed with me completely, and was just playing devil's advocate. The problem is that he's one of these guys who will pretty much do whatever you want him to. So I was really afraid that he would just do 1 because the owner of that code told him to. So we ended up having a really long conversation about all the implications of 2, and how it would eventually bite us in the rear end.

And then it dawned on me.

Option 1 involved probably 3 lines of code. What was the argument over? Write the three damned lines of code and move on with life. In the time that we spent arguing over 1 or 2, I could have written, debugged and tested those three lines of code, had them checked in, and ready to go. Problem solved.

This of course will lead to another post later, about code ownership, and messing with someone else's code.

Update: After re-reading my post I've had to edit it several times because I put 2 where I meant 1, and 1 where I meant 2. Note to self... Don't post again where you use numbers for options throughout the post. Its confusing to write. I think I have everything straight now though. :)


Post a Comment

Related Links:

About Me

Name: Nick
Home: Wauwatosa, WI, United States

I'm a Software Consultant in the Milwaukee area. Among various geeky pursuits, I'm also an amateur triathlete, and enjoy rock climbing. I also like to think I'm a political pundit.

 View My Profile

 Home Page

Subscribe to this Feed

Search Archives
Previous Posts
Training Again...
Barney Torture
When Email is Misrouted
The Blind Leading the Drunk?
Pet Peeves
Coco Cox?
More Good News From Iraq
How Is This Different?
Why Did We Bother?
Time Saving Inventions

Personal Links
Carnival of the Badger
The Coding Monkey Links
Flickr Photos
Blog Critics Reviews

Blogroll Me!

This is a Flickr badge showing public photos from Nick_Schweitzer. Make your own badge here.


Blogcritics: news and reviews

This page is powered by Blogger. Isn't yours?

Weblog Commenting and Trackback by

Listed on BlogShares

Design By maystar