Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Developers care about job security. They have to. In my conspiracy theories, the Y2K bug was an evil plan by a group of developers that saw their 401k's take a nose dive and they wanted a backup plan for retirement. Without too much investment, that is.
I came across the version check issue again today. A complicated application with multiple instances launching themselves, talking to services, creating events etc. error-ed out with a let's say, non-descriptive error message. Considering the architecture I was expecting either UAC, MIC or Session 0 isolation as the culprit. But no. After an hour of two debugging (my, how much easier is user mode debugging than kernel mode), the culprit was (in pseudocode and simplified):
dwVersion = GetVersion();
if ( dwVersion == 5 )
name = "this";
if ( dwVersion == 4 )
name = "that";
And that was it. No 6. No 5 and up.
By the way, check the notes in GetVersionEx(). It is not always the best approach to check the version, checking for availability of a feature might be more desirable. Reason is that features might be added (or removed). But then again, for job security…
Comments
Anonymous
January 31, 2008
>Developers care about job security. They have to. Unfortunately, Job Security is an illusion at best, 'cause there ain't no such thing. You can find a hint of what real security looks like in "The Pragmatic Programmer" by Hunt & Thomas (1999), pp 14-15 Did you mean to type (double-equals): name == "that";Anonymous
February 01, 2008
Thanks Subterrain. Made an update to the pseudocode. I was cynical with the job security. I was joking that developers' actions lead you to believe they are securing their job.