If you are a software developer, code is an important part of your life. Since I first started learning to program, all of those confusing monospace characters have changed my life and the way I think. It’s fair to say that I have come to love code. I believe in code quality, software craftsmanship, automated testing, and more. In short, I believe that the code matters.
So, it may come as a surprise when I say that the code doesn’t matter. But to the people who matter, code doesn’t matter. What matters is the end result. The product. I have never met a software consumer who said, “Is that a Ruby on Rails site? I love Ruby on Rails sites!” or “I just can’t use sites built with PHP” or “Backbone applications are the only ones I care for.” One of my favorite software applications is StackOverflow, which is written using .NET. I don’t personally enjoy writing .NET code, but that doesn’t change the way I feel about StackOverflow.
Developer Happiness Doesn’t Matter
I have heard a lot of talk lately about developer happiness, a term I had never heard before about a year ago. Working at LinkedIn, with the perks that come with working at LinkedIn, I was a bit surprised to hear that we wanted an increased emphasis on “developer happiness.” A friend explained to me that, in his mind, developer happiness is about having the right tools in place so that developers can work quickly and productively to build software. I completely agree with this notion of “developer happiness” (and feel that web developers have a ways to go), but I think the term is often misinterpreted. Developers can make great software products even if they are not working in the environment they most enjoy (“I can’t make good software using React. I’m an Ember developer!”). Developer happiness is only important insofar as it increases end-user happiness.
(On a more philosophical level, though, I would be loathe to work for any organization that sacrifices the health and well-being of its software developers for the sake of the software product. So, I guess developer happiness does matter, no matter how you interpret it. Anyway, back to the topic at hand.)
Do We Care About the Product or the Code?
I have been to a lot of meetups and read a lot of articles and watched a lot of talks where the products (or product possibilities) are completely ignored, and the code is star of the show. I recognize that, as software developers, we write code and so we like to talk about code. But every piece of software is a product with a human user. Even if you are writing an API or a command line tool, someone has to use it. Even if you are writing middleware, someone has to configure it. Writing great code is important, but only because great products require great code. But if we focus only on the code at the expense of the product, even great code will not produce a great product.
No one would go to a restaurant and refuse to eat the soup because he didn’t like what brand of knife or the chopping technique used by the chef. As long as the soup is great, how it got that way doesn’t really matter. So, if you put code before product, no soup for you!