Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I mean did you ever reluctantly adopt a less than ideal solution because management told you that "customer is always right"?

I'll go with mine first. A few years back, me and my team developed a website of quizzes. Users create quizzes, answer them, rate/tag/vote/share etc.

If a quiz had more than 10 questions in it, the UI would serve the quiz in segments. A 30 question long quiz will be split into 3 segments. We used JavaScript and DOM manipulation to let the user easily switch back and forth between segments, without ever having to refresh the whole page.

The customer, a big US corporation that owned the site, wasn't happy with this. They didn't care about user experience, they just wanted high page hits. So they wanted the whole page to refresh when the user hit 'Next' or 'Previous'. We had to replace the JavaScript solution, with a very ugly hack involving PHP and Smarty. The result was a sluggish UI, which irritated the H out of the testers.

In the same project, the team researched the best practices for improving front-end performance and worked hard to implement them. But all those efforts were in vain when the customer injected their heavy Flash based ads into the pages, making them load real slow.

I know it's not an objective question and very likely to be closed, but I would like to hear from the members of the community if they ever had such experiences.

share|improve this question
1  
If you don't think it's a good question can you please not ask it? This question is obviously a discussion rather than a question with an actual answer and from your last paragraph you know that. –  Jon Hopkins Mar 1 '11 at 8:55
    
I think it would be good to distinguish between customers and sponsors in this case. Based on what you tell, the customers (visitors of the site) are probably unhappy too, but the sponsor (the owner of the site) is supposedly happy (for the time being, at least - if they care more for page hits than users experience, they will eventually lose both). –  Péter Török Mar 1 '11 at 8:55
2  
Also, sounds like you didn't ask the sponsor about what precisely they wanted before implementing the solution you thought they wanted. Better communication and/or early releases could have saved you work and frustration. –  Péter Török Mar 1 '11 at 8:57
    
You sound frustrated at this, have you considered why they wanted a high number of page hits? It doesn't seem in anyones best interests to compromise the user experience. Perhaps this was to do with selling advertising space, the more hits = more revenue, which without it the site may not exist. Depending on the way page views are tracked, could you have used Ajax for pagination? It sounds like you took the easy way out to satisfy their requirements, but without all the facts it's hard to say. –  Chris Diver Mar 1 '11 at 10:08
    
@Peter - since we weren't able to interact with users directly, the 'sponsor' was the 'customer' –  rubayeet Mar 1 '11 at 10:40
show 3 more comments

4 Answers

I have gone with less than ideal solution once, not because the customer wanted it that way but because my manager said "if the customer is satisfied with this stuff itself , why do we need to trouble ourselves and do it the good way" .

It was about implementing security features in a web application . I was trying to fortify it using tools from OWASP but my manager wanted me to do only client side validation(that was because my manager knew nothing about web applications or security) . I convinced him that I would do server side validation and did it later.

share|improve this answer
add comment

To answer some actual questions:

  • Is this a good thing to happen?
    No, not in that way. I believe customer satisfaction to be the most important thing. It is the ultimate way to determine, whether a project is a success or not. When I go to a bar and ask for a beer, and they bring me back a tea, because it is not only cheaper, but also healthier in almost every aspect, I will sure as hell never go to that bar again.
    The problem in software development is, that customers don't usually know, what they want and are only able to explain it in very convoluted ways with a lot of crappy apps as points of reference. Therefore customers and managers often ask for stupid things, that have negative impact on the customer satisfaction.
  • Is this a common thing to happen?
    Absolutely, at least in web development, where there are actual conditions, which make this quite likely. If you take away the biggest players, who actually write their stuff inhouse, the commercial part of the web is in control of people with a lot of money, who think they are in the possession of the holy grail because they read some crappy magazines, and who ask you for the most incredibly stupid things you've ever heard of.
  • How to deal with it?
    Well, as I said, customer satisfaction is the most important thing. Think of your situation as being a doctor, having a patient with some sort of disease, who asks you for cure, but explicitely demands the use of voodoo.
    If you do exactly as he wishes, customer satisfaction will not be very good, because the dude's gonna die a slow and painfull death.
    If you however identify the problem (the disease) and convince him of the best treatment you have to offer, then customer satisfaction will be good.
    Now to bring that back to the bar analogy: My customer satisfaction will probably be attained, when I am drunk. Beer would help. Tea wouldn't. However, if you have a mean screwdriver to offer, that would help me reach the goal a lot faster and cheaper.
    Now the problem is, that management doesn't ultimately care for customer satisfaction and that management is not really good at identifiying the customer's actual problem.
    In your case, I don't think the customer wanted page hits per se, but rather to serve a lot of ads. By default, if you don't refresh the page, they don't load ads. However, this is easily solved, if you simply load new ones as you page, I want to know that and I will probably order one.
    So the best way of handling this is not just submitting to management, but trying to digg down to the problem with the customer.
share|improve this answer
add comment

In my mind, programmer satisfaction should be based off customer satisfaction. Having a wonderfully architectured piece of software that people don't want to use is no better than having a buggy mess that people don't want to use.

share|improve this answer
add comment

Has it happened to me? All the time.

Many a time I got lambasted at my old job for daring to suggest that I was hired to do my job right, not just type what the client wanted me to type, and that we as a team had expertise that should be listened to, instead of just dictated by the non-technical client.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.