The story begins with a “there is a problem” sentence. Users don’t say what happened before or after the problem. Users don’t try to understand the software product. They just use it. It is a normal thing, right?
Support agents try to understand the problem, right? They are always busy. They try to categorize the problem, they tend to find a technical document about it and stick to it. They are happy when they put a label on the problem and forward the support ticket to a support developer if they can’t solve it.
The support developer takes the ticket. He is a hands-on developer, he knows how the codes work, and use cases. He thinks there is a big problem if the support ticket is forwarded to him. So the war begins!
He tries to reproduce the problem. He tries to follow the steps of the user. He reviews the logs. But no luck! He can’t reproduce it. He contacts the support agent. The support agent tries to remember the problem then suddenly the developer finds himself in a meeting with the user. The user is not happy because she already shared the details of the problem. Why is this thing not working?
Support developer spends days understanding the problem. He arranges another meeting with the user. Then the user expresses a configuration change she has made. Boom! The developer finds the root cause of the problem and fixes it.
The support agent closes the ticket happily. The support engineer is also happy. He suffered enough and his watch is over. The next support developer is ... Who cares about him, and the software quality?
This cycle goes on until the software is old and it is replaced by another software. People spend their lives suffering from the same mistakes. History repeats itself.