In a project I’m working to, there is a point where the user is supposed to enter a series of word separated by space. A user call you telling that the routine does not work, you check the data and see that the object contains such a string

“key1, key2, key3,key4″

What you will do as the programmer that write that part of the software.

1) Complain with the user, how he dare to call it a bug when he inserted data in the wrong format? The specification does not speak of comma separated values, moreover sometimes there is a space, sometimes no.

2) silently goes into the code, make a quick patch, and verify that the string can be split even with this format. Tell the user that the bug is gone.

3) Tell the user that actually he inserted data in wrong format, tell him that this is not a problem, because you can modify the routine to be more “user proof” with little effort, open the project, write some test to cover this new situation, then make modification to the code and check that all is green again.

Situation 1 is when the programmer considers users as enemy, they are evil being that are driving you crazy with weird request, you have to fight them

Situation 2 is when the programmer is the slave of the user, that consider it simply a tool to get computer works as they desire, you have to silently do whatever they told you to do.

Situation 3 is when the programmer and users are friends, the user tells the programmer the problems he has with the software, the programmer helps the user to use the software better, and at the same time drive the program toward the needs of the user. In this situation the user can ask for modification, and the programmer can accept or reject with no panic, driving the most from the cooperation between the team that build the software and the persons that software is built for.

Situation 3 is most common in agile development, where the user and the programmers are all part of the same team, and they reach a great degree of collaboration and communication.

alk.

Tags:  

7 Responses to “Programmer as a user friend or enemy?”

  1. Situation 4. Write a pointless post about it.

  2. 1.

    Users are idiots.

  3. I have to admit… I’ve done all of these at 1 point or another.
    case #1
    When I’m getting sick and tired of the customer.
    case #2
    When I’m getting sick and tired of the project.
    else #3

  4. andreas ringdal
    June 3rd, 2008 at 4:00 am

    Situation 5: You tell the user that you have made a mistake while you wrote the software and did not think of other ways of separating words. Then you thank then user for pointing it out and that it will be fixed immediately. 5 minutes later, send the user an email telling him that it has been fixed, again thanking him.

    Remember to send a summary to your colleagues afterwards to make sure they do not make the same mistakes.

    Andreas

  5. Situation 5 is a good one, the important thing in my opinion is try as much as possible to avoid conflicts between the users and the programmers. It is important that each one takes its responsibilities, and works hard to make a better product.

    alk.

  6. Software is simply a tool to increase a person’s productivity. Good software will take into account the human element and attempt to massage input data into the correct format. Few things are as annoying as being rejected by a web form that requires a phone number without dashes, when a single line of code would render this requirement obsolete.

Trackbacks/Pingbacks

  1. Weekly Links: ASP.NET MVC, .NET, ADO.NET Data Services, Silverlight, WPF… | Code-Inside Blog International