|The World According to Nick|
|My take on Software, Technology, Politics, and anything else I feel like talking about.|
Thursday, June 17, 2004
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.
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: It's wrong.
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
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
Previous PostsTraining Again...
When Email is Misrouted
The Blind Leading the Drunk?
More Good News From Iraq
How Is This Different?
Why Did We Bother?
Time Saving Inventions
Personal LinksCarnival of the Badger
The Coding Monkey
Blog Critics Reviews
Design By maystar