The Empathetic Developer
September 28, 2010 § Leave a comment
My first foray into the post-college workforce involved time spent answering the phone and helping people use a Windows application. Of course, there were the “other” calls as well – since I was “technical” I could solve any issue with your computer/network/email system, right?!
This was soon a programming job that included training customers on the application I worked on (with someone else taking the calls – thank you thank you thank you). This was an eye-opening experience, and it made the work I do so much more rewarding. After all, I was able to see first hand how I made the work of other people easier and more enjoyable. I’ll never forget being on an elevator after finishing a training class and hearing a customer described what was once a mundane job as “fun”.
And… of course, the opposite is true. Ever seen a customer use your application in a way you never intended only to bring your app to its knees spewing errors and leaving the customer banging the mouse and going on yet another coffee break? No, that’s never happened to me, but… yeah. It’s painful and again, so enlightening and here’s the point – important.
In both instances, as a developer I was there to witness the joy and the pain of something great and something bad that I had brought into existence. What did I learn? That better apps are built when you understand for whom you are building and even better apps are built when you can see the customer use what you have built. That said, this is definitely better done beforehand with wireframes and prototypes.
I know my experience is somewhat unique – not all programmers like to wear multiple hats and not all companies like to (or see the value of) putting their programmers so close to the customer. So how do we build empathy in those developers who are walled off from their customers? We could build personas that as accurately as possible represent the customers. We could find a willing customer or two to share their experiences in person and/or in writing with the development team. We could host a meeting of the minds where select customers and developers are able to cross pollinate ideas and give feedback in a casual setting.
Any other ideas?