Are we really listening
I learned an important lesson about listening when I just joined KMS six years ago. I was in a Monthly Business Review (MBR) meeting with our orgās Vice President (VP). I was driving a project on its critical path, so I prepared thoroughly in case I got picked. Then the VP asked: āJin, when do you think you can deliver this in region xxx?ā Man, this was my moment to shine! āThe reason we had to delay the project was ā¦ā I gave a long narrative full of technical jargons on why the project was at risk and how I was turning it around. The VP finally had enough: āJin, I was asking for a date. You can just give me a date!ā āOh ā¦ā I was embarrassed as you might have guessed. I didnāt listen to the question. I just let out whatever I had prepared. If the VP was my customer at the moment. I wasnāt Customer Obsessed. I was obsessed by myself, my ego. In Amazon, we have a guideline that when answering questions, start with: Yes, No, a Date, or a Number. Only give the details when you are asked and only give the details relevant to the questions. I did many interviews in Amazon. A common pitfall from interviewees is they just give the answers they so deliberately prepared, that have nothing to do with the questions being asked. There is another pattern of not listening to the question. That is when we stop learning about new things. Whatever the questions or situations, we just pick something we know well, then give that as the answer. This usually happens on people with certain amount of industry experience. We were in a meeting discussing a TCP connection capacity issue in our load balancer. In this case customersā API requests were rejected before they reach KMS endpoint. A team member suddenly said: āwhy donāt we redirect the TCP connections to a server and return 400 errors?ā The room was quiet for a bit to digest this novel idea. āBut if customers canāt even establish TCP connections with our server, how do we return HTTP errors to them?ā I asked. āI was thinking we can return the code in the IP header, you know, like in IP tunneling protocol GREā āErr, how do you think we can change the IP header on the load balancer? Even if we can, our customers are mostly Python, Java, Node.JS application layer developers. And their applications often run inside AWS server-less infrastructure. How do they sniff the IP traffic and read the error code?ā āā¦ā It turns out the team member had many years of experience on VPN/IP tunnel product before. So instead of listening actively about the current problem and understanding the customersā pain, he tried to bring the problem to somewhere he knew well - therefore the idea to return a HTTP error code (layer 7) to a TCP connection failure (layer 4), using IP header (layer 3). Listening is an art I donāt claim to be an expert at all. But I am eager to improve. So listen actively and mindfully to others, let go the self!
Last updated