A conversation with a coworker had me thinking about the role of a web developer in product development. And I thought I would share my thoughts on the invisible nature of our craft.
I was having a conversation with one of the guys at work regarding the architecture of a particular service. And while I don’t really intend to talk about the specifics of that service, I did want to talk about something he shared with me. I’ll put it in my own words:
My work is at it’s best when it’s invisible.
And, I have to admit, the thought actually resonated with me, it got me thinking about some of my own best work. And most of all, it got me thinking about the role of web developers in the creation of a product.
Which is what we’re here to talk about today.
Let’s talk about web applications.
Before we tackle on the role of a web developer, I think it’s important we take a step back and talk about the thing that developer’s actually build. Let’s particularly focus on Web Applications, as that is what I have the most experience with.
Let’s take the following definition provided by MaxCDN in this article:
A web application is a computer program that utilizes web browsers and web technology to perform tasks over the internet.
I specially like this definition because we can generalize it to approximate the purpose of applications in general: To provide a means to perform a task. And the better our application is at allowing us to perform that task, the better it will be perceived.
Google is a search engine, which is a means to obtain information. Youtube is a streaming service, which is a means to watch videos. Evernote provides a way to store and organize notes. Uber helps you obtain a ride. You get where this is going.
Software is a means to an end. And both analyzing and understanding this concept is important. Because it allows us to more clearly see web developers and designers as the creators of the service we’re providing.
A quick aside on web designers.
I’m not going to get too much into this topic, mostly because I am not a web designer. However, if we see software as a service being provided, then design provides the face of that service.
What do I mean by this? Designers, your work is meant to be seen by a user. You’re going to provide the means for the user to access the service that the software is providing. Everything you create is a portal meant to link the undergoing magic to a user’s actions and intent.
The better your design is at conveying the intent of the application and teaching the user about it implicitly; the better the resulting software will be.
This does not mean that most of your best work won’t still be invisible. Some of it will be felt and, if you do your job right, a lot of it will be ignored because “It just feels like it should be this way”. Consider it a compliment whenever you hear it. It’s a pretty huge one.
The invisible developer.
I’d be willing to wager most people don’t think about the complexity of the Google Search Algorithm on a regular basis. However, it is still the driving force behind one of the largest corporations in the world.
Any application worth its salt will hide its complexity from its users. It is not up to them to think of the work behind all of these features. Neither is it the job of the design to communicate it. It is not meant to be seen, it’s only meant to work.
Creating software that accomplishes the service promised to a user and expressed through a design. That is the role of a software engineer. And, on the web, the role of a web developer.
Which brings us back to my co-worker’s sentence about his best work being invisible. And this is something I wish to express to everyone wishing to go into web development: As a web developer, your work is not meant to be seen by a user.
I know it’s a tough pill to swallow, and that it’s also something that not a lot of people think of when first coming into the business. As developers we’re often proud of the intricate systems that we create and wish the world could see their beauty.
I’m not saying nobody will ever appreciate the work that you create. I’m not saying people won’t marvel at your creations. What I am saying, however, is that, if you do your job right, the result will oftentimes be undistinguishable from magic.
Some of the best applications in the world just… work, you know? Google magically brings me answers if I type some words. Uber magically wills a car to my front door. Amazon magically delivers a product to my home.
And just the fact that I can use those words to describe them should be considered a monumental success. A success that was only made possible through a lot of work and some of the best code that humanity has produced.
If an application is a means to perform a task, and a designer’s job is to provide an interface to perform it on, then a developer’s job is to create the undergoing magic behind it.
Addendum: The Visible Developer.
I worded my sentence very carefully above, because saying that all of your best development work will be invisible would be a lie. There are people who will see your best work and notice it for what it is. They will, mostly, be other developers though.
From personal projects that you post on Codepen. To the Github repositories that you keep public. And even going as far as to write about the code that you create. There are plenty of ways in which you can share your work with others.
Teaching others through your work is also one of your roles as a software developer. And there are a lot of things you can do to maximize the effect of the code you create.
From implementing software design patterns, to treating your code like a user interface, the effort you put into your code will eventually shine through. And it will specially do so in the things that others pick up from it.
I originally wrote this peace as a means to say something to myself. And this is probably deeply rooted in the reasons for which I started making websites in the first place. I liked (and still do) to create things. And that is something that software development allowed me to do very well.
However, it also wasn’t long until I realized that, as software developers we don’t often create for the sake of creating. Most software isn’t made for the purpose of making software, but instead as a means to an end.
Developers don’t often get put on the spotlight, which is something that I struggled with during my early years. I wanted to be recognized for the things that I built, but thought I had no way of actually achieving that.
It took some time for me to start posting my work online, create some repositories and then this blog. All of them allow me to feel the full weight of the work I’m doing. But hearing my co-worker’s words brought me back to those days and I felt like I had to say something.
Your work matters, the things you build are making people’s lives better. The better you become at making these experiences, the more good you are pouring onto this world. Software Applications are magic, and you’re wizard Harry.
So be proud of that invisible work of yours.