Wednesday, March 04, 2009
Implementing Stupid Stuff
Every software developer, at one time or another, will be asked to implement a feature that doesn't make any sense. It will be a request from a client, or from a senior manager, or someone else who can't be ignored. The feature must be added, even though everyone other than the requester knows the feature is ridiculous.
I am in such a situation myself. The first assignment I received when I took my current gig was to implement a feature that all the smart developers had refused to be involved with. As the new guy, I didn't know any better. I did what I was told.
Now, about 25% of my time is spent reacting to "bugs" and questions about the feature. I put "bugs" in "quotes" because most of the time, the feature is working exactly as designed. Unfortunately, the design made no sense, so the behavior of the software doesn't make sense to anybody.
So, I spend a lot of my time trying to explain to everyone why the software works the way it does. This makes me look stupid, because the way it works is stupid. I am held responsible for the "feature." People ask me why it does what it does. Most of the questions are of the form "How can I disable this feature?" I want to preface every answer I give with 'This was not my idea, but ..."
It's depressing. My advice: don't implement anything that seems stupid. Ask a lot of questions. Make sure that either (a) you understand the need for the feature, or (b) make sure that everyone sees how useless the feature is, so that you won't have to do it.