I am going to tell you a short but real story, so please imagine that you’re us down there:
I went out for dinner with Yasser Makram, who joined recently DashSoft, last Friday. He recommended a Chinese restaurant that has great noodles. We went in hoping to get one awesome authentic Chinese meal.
An Egyptian waiter came along with the Chinese waitress, telling her to “be silent” so he can deal with us. We ordered 2 noodles soup and one beef stripes that looked very delicious “in the picture”. Service was fast, noodles came , then the beef. we actually couldn’t call it beef “stripes” we called it beef “threads” it was a very thin piece of meet with a crust over it inflated by a huge amount of air between them.
We were very annoyed, because the target was to “eat” a big portion of beef, not “see” a big portion of beef while it’s empty on the inside.
We asked the waiter to change it with chicken (hoping it would be good this time). He kept convincing us that “this is the Chinese way & there’s no mistake in the beef”.
After “4 minutes” of arguing. We asked him to get the restaurant manager. He went & them came back alone & said “The manager said that this order is already out & we can’t change it”.
That was pretty depressing for us, however, we insisted not to be treated like that. While thinking of that, a Chinese waitress came and asked us to meet the manager. The manager says with a big smile “I am Chinese, This is Chinese food and how we make it. In all cases, I am sorry and we want to see you here again. Thank you!”
Beside the type of business and the place we couldn’t find any differences between a Chinese restaurant and a software house. However, we found out many similarities between the waiter and the developer (I put all of them between “” in the story) :
1. “Be silent”. – Developers can communicate in front of customers in the exact same way they communicate between each others while working. That would give a HUGE bad image to the customer about the vendor.
2. Under-promise, over-deliver. – Developers could promise very good thing to be delivered as “in the picture”, however, instead of the specifications, you find something way different in the value “beef threads, not beef stripes” EVEN IF It’s done the RIGHT way.
3. Customers look always about the business value in the product, while developers look how the product is being done. The developers would keep defending their quality of work without having the customer perspective that (in our case) This perfectly-made-Chinese-way-beef doesn’t not provide the value for a hungry customer.
4. Resisting customer change requests would always lead to customers leaving. By resisting customers change requests, even if we deliver things 100% the-developers-right-way. This will lead to customers leave. That’s why good developers always try to apply concepts like YAGNI, DRY and Agile to be flexible enough to accept customers changes and implement them in a “feasible” timeframe.
5. It’s not about the situation, it’s about you handle it. I have just heard that sentence for a very experienced guy I care about his opinions, right before we go to the restaurant. The sentence kept popping up in my head when the waiter was talking to us and when the manager was talking to us. You don’t have to be the owner or the manager to have high ownership. Whatever you do if it aims to customer satisfaction is very appreciated by both customers and management. Always keep in mind that you have to talk to your team about your decisions, so that you don’t lead the whole team to a bigger mess.
One last thought, Some customers do usually abuse the vendors. These notes/guidelines above would really help them eat up the teams with no real appreciation from their side. The key is how to smartly incorporate those guidelines within your lifestyle, this comes with experience , so, if you don’t have enough experience, always try to ask more experienced people about what would they do in the situation.
Enjoy…