The Customer Might Be Wrong

Communication with customers and within a programming team, even one as small as two is vital. Take today’s scenario: we have an entry form where the user can select multiple names to be added to a list. When the form is submitted, we send the result off in an email.

The first time I implemented this, I had it so that the user typed in the details submitted the form and then used a standard part of our system for selecting users to add them to the object. But the customer didn’t like this because it was easy for the user to forget to click the ‘Finished’ button to trigger an email to be sent and for the object to progress in the workflow.

So I reimplemented it using ajax: the list of users is manipulated using ajax CRUD and then when the user submits the form, the email is sent. To keep it simple, I used a suggest style text entry that populates a drop down list with suggested names as the user is typing. This seemed like a good way to select from a really big (>4000) list of names.

However, the customer wasn’t happy with this form because it didn’t conform to the standard way of selecting names which is to offer the user the choice of typing a ID, a name or to click the letter of the alphabet and get to another page that lists the names starting with that letter. So I was asked to make this functionality happen in the ajax.

It was easy enough to add the search by ID entry but the alphabet clicking list was a pain. I had to make a second hidden part of the form to toggle into view and populate with names when the letter is clicked. It works ok but the list of names for each letter of the alphabet is still very large for certain letters. When I spoke to Dave about this, he just said it’s what the customer wanted and we can’t argue with their stupidity.

I’m sure that with some proper communication we could come up with a better way of doing this that moves the product forwards rather than having stupid design decisions implemented into it at the behest of people who don’t understand the technical problem.

What can we do to improve this situation? How do you convince a customer that they are wrong without getting them offside and when do you have to put your foot down and refuse to do what they ask?

Leave a Comment