At one of my previous employers, as the technology evangelist & community manager, I one of my responsibilities was to dip my fingers in support. And by dip I mean drown myself neck deep into customer issues, and to understand all the obstructions a customer would face while they would implement our library in their environment.
I was responsible for hiring the support team of 7, and ramping them up on our tech, as well as mentoring them on an ongoing basis.
My most important learning was that no matter how many permutations and combinations the engineering team or the quality team would test the software on, they just couldn’t possibly match the variety of environments which the customers would deploy our SDK in. A typical production environment would be made up of legacy data providers, SOAP APIs, XML configurations, et al.
This led me to have a lot of empathy for the customer, who is busy dealing with an unimaginable amount of complexity in their production environments, and our SDK is being deployed. It just made me understand that, as an engineer, I need to be humble enough make sure that my work is accessible to as many people as possible in whatever environment it might be reasonably used and if it doesn't work, it is still my responsibility at the end of the day. I just cannot pass the ball back to the hapless customer. Extreme ownership has been chapter one in my playbook since then.