Why Do We Continue To Implement Bad Features?
While I was reading through my RSS feeds today I came across a post by David Walsh describing how to make a link to set the current page as the users home page (bad feature) with the remark:
The unfortunate part about creating websites for customers is that no matter what recommendation I make, if they want it, I have to give it.
I smirked a bit as I know I’ve implemented features customers have requested that I KNEW were bad features… but then I thought about it a bit, why do we continue to implement features for customers despite knowledge that such features are wrong?
The Customer is NOT King!
The common adage may be that “The customer is king.” but with software development nothing could be much further from the truth. The role of a software developer is to best realize the customer’s business needs via software. This may even go further for web development… a businesses website reflect their image and brand worldwide and with that in mind, poorly thought out features can tarnish that image.
Blindly following customer demands can be a quick and slippery slope to either project suicide or a bad end result. If we implement annoying and irritating features without questioning why, the customer may lose a lot of potential business. Further, I’ve been guilty in the past of accepting request after request of feature changes (because the customer is king) till the point the project either shipped incomplete or was aborted outright.
The Relationship Should Be Collaborative
As a professional, a developer should keep the customer’s best interest in mind and the relationship with the customer and developer should be collaborative rather than hierarchical. In my opinion, if a customer requests a feature that is ill conceived or that is known to be against proper design practices, say it! If they request blinking text to capture the visitor’s attention, tell them the truth… blinking text will irritate the hell out of any visitor and there are better alternatives for drawing attention. Don’t let them blindly dictate poor design decisions.
Work with your customer… find out the why of their feature request. Finding the true root of what they want can allow you to give them better alternatives, or even drill down to what they really want and avoid numerous feature changes in the future. Remember it’s all about collaboration!
So Now What?
We’ve established that the relationship with our customers when developing software should be collaborative, that we should work with them to create the best possible solution. However, I still can’t help but question… why do we continue to implement bad features our customer requests?
I guess in the short run, we just want to get paid. What do you think?
If you're new here, you may want to subscribe to my RSS feed. Thanks for visiting!






















April 1st, 2008 at 10:54 am
In a nutshell, i think you’re right. I believe that there are a lot of teams/individuals out there that don’t want to cause too many waves, and probably think that asking too many whys will only irritate their customer (or get them reprimanded). Unfortunately, there are a lot of customers that really don’t care what the developer thinks and just wants them to do it because they think they know what’s right, whether they come from an IT background or not.
I agree with your train of thought though, and when possible I try to get the whys behind the thinking (and suggest better alternatives when possible).