Sunday, March 15, 2009

Developer and User Responsibility


Question: Developers work together with customers and users to define requirements and specify what the proposed system will do. If, once it is built, the system works according to the specification but harms someone physically or financially, who is responsible?

Software success depends on developing a collaborative partnership between software developers and their customers. In the given situation, where the system works according to the specification given by the customer, we can say that the software done was a success. But then again, does this still stand if the software harms someone physically or financially? The main question that is raised now is whether who is at fault. Is it the customer or the developer? This statement is truly a moot point.

A customer is anyone who reaps benefits from a product and is the one who request, pay for, select, specify or use a software system. It is the customer from which the developer derives the key features and specification of how the system should be done. While, the developer is the one who translates these requirement specifications into code. In this light, it can be easily assumed that the customer should take the blame since the system made was a product of the customer’s choices and preferences and the developer only acts as a medium for the customer to get his product. Therefore, the “harmful” system even though made by the developer is the responsibility of the customer who have requested, gave information/ project requirements and purchased the software.

But in some parts, the developer can be said responsible. Why? The developer being the one more knowledgeable in creating the software should have foreseen if the system being done was harmful in any way and should have informed the customer. It’s true that a developer must follow the specifications set by the customer, following the saying that “the customer is always right” but then the customer being unfamiliar with developing systems may not know that such requirements were harmful. Thus, in light f this event it is the responsibility of the developer to take care of its users, inform the customer and give advice or alternatives that will lessen or eradicate the harmful effects of the system. Failure to do so, then the developer should be the one held responsible for any harm done.

But then again, in the event that the customer was informed before hand and still pursued the original plans even with the knowledge of the harm it would bring, the customer should be the one held responsible for its consequences.

Quality software is the product of a well-executed design based on accurate requirements, which are in turn the result of effective communication and collaboration—a partnership—between developers and customers. Collaborative efforts only work when all parties involved know what they need to be successful, and when they understand and respect what their collaborators need to succeed. Thus, if any failure such as the situation given above we can say that both parties should share the responsibilities so as to ensure business value, user satisfaction, and developer fulfillment in the end.

2 comments:

PHDora said...

oooh... nice! good luck HAN!!! :3 hawd na jud au ka buH! di na tka ma-Reach..hihihihi♥

Anonymous said...

Hello Hannah,

Remember me? well, its kuya bon.

I am so interested in your article. It is between user and the developer right? hmmm....

Can I insert some lines or ideas?

well, Developers are the ones who are in charge of the codes, automations, designs and other requirements needed to run the automated system and the customer or clients are the one who owns the system since they are the one who created it and will use it. they need the work of the developer in order for it to be automated. The responsibility must not be pin pointed on the developer since they only made the codes and the automation of it. thus, the customers are the one who really created it.
To ease the conflict between the two, we need the work of the tester. I am referring to the Quality Tester. QT are the one who will balance it. QT's are not the developer nor the customer (but will act as a user). In our company, we have QTs and they are the one who is responsible to make the automated system not harmful, create a smooth flow and will ease some faults in the system. This will balance everything I think...

thanks...