Thursday, September 8, 2011

Empathy: Why I Learned to Code



Early last year I came across an excellent post by Aza Raskin of Firefox: So You Want To Be Designer? It describes the essential traits required for designers to work alongside coders:
“2,500 years ago, a Greek writer told us something about creating software: Thucydides wrote, “The society that separates its scholars from its warriors will have its thinking done by cowards and its fighting by fools.” The optimal society is one that mixes scholar-warriors and warrior-scholars. The same is true for companies that schism their designers and engineers. The most important trait a team can have is empathy. Without it, the implementers will not care, and the designers will not be realistic. When companies complain of specs and code being “tossed over the fence”, a lack of empathy is to blame…You don’t need to be a great coder, but you should at least be able to get your idea across in HTML and Javascript.”
I remember reading this passage for the first time, and being struck by its simplicity. Empathy: what a great way of describing how designers and coders should approach their relationship.

Empathy in Practice
A year ago I decided to put Aza’s empathy into practice. I committed to building my first working site within 6 months of picking up a book on HTML and CSS. My method was simple: wake up early – 6am – to allow myself to work in silence without distraction, commit to only 30 minutes coding a day – no more, no less, and to code every day, even when I was completely and utterly lost, tired, or hungover.
One month in I had absolutely no idea what I was doing. I was wandering aimlessly through a world of div tags, stylesheets, and pseudo classes. Then, halfway through the third month, I had my Neo moment: I could see the matrix! I can’t describe what changed, but it all began to make sense. I’ve never been so proud of a screen of colour blocks!


After 5 months, a whole month ahead of schedule, I had my first site up and running: This With This. It’s a simple voting site that attempts to answer some very important questions: should chicken go on pizza, or was John Lennon better with or without Yoko Ono. Deep, I know. I decided to use Facebooks “like” button as the voting system, and discovered a new-found respect for anyone who has to deal with Facebook’s social plug-in. (This is not the time or the post, but for anyone who has gone through any type of Facebook development: I feel your pain.)

So What Are The Benefits of Digital Empathy?
I can meet any of the coders I work with halfway: The barriers to communication have been removed by both of us possessing an understanding of the medium. It allows us to skip all of the basic “Can it be done?” questions, and move onto questions about how we can bend the rules, and create something new and groundbreaking.
Instead of feeling removed from the process, I can use every digital job I work on as a learning experience; a chance to develop and expand my own skills. Thankfully most of the coders I’ve worked with have indulged me, and put up with my annoying “noob” questions.
But, above all, the greatest benefit of empathy is independence. I’m no longer as reliant on other people to produce my digital ideas, or to explain the process behind others. When I find an interesting site or digital project online I can view and understand (most) of the code, and then analyze, manipulate, remix, and recycle it for myself. That’s a very satisfying, and powerful feeling.

More Than Code.
Learning to code is probably a bit extreme for most people. It definitely requires a nerdy inclination. But empathy for the digital world could be achieved by simply using every type of social media you can get your hands on, or writing and curating a blog.
Empathy could go beyond digital. Imagine how much you could learn by sitting at an account handlers desk for a week, swapping jobs with your CD for a day or, heaven forbid, swapping jobs with your client!

This post was originally written for The Knot Collective

No comments: