bug repellent

a blog by @captainsafia

<= go home

We have no idea what we’re doing.

When it comes to the web, we have no idea what we are doing.

I mean that in a couple of ways.

We have no idea what our customers want from web products, and we often end up building products that miss the mark on accessibility, usability, and usefulness. I’ve missed this mark several times, as I’m sure you have.

We have no idea what the web will look like in five years time. The landscape is continually evolving, and I believe that our imaginations are too limited to see the potential that might exist at the intersection of connected devices, immersive technologies like AR and VR, and the web.

We have no idea what the fundamentals of the web are because the fundamentals are continually evolving.

I’m spontaneously writing this blog post in response to some recent chatter on Twitter about what is considered a fundamental part of web development and what is not. Discussions like these are often a form of gatekeeping and designed to make one approach to development seem inferior to the other. In this case, a measure of the fundamentalness of a particular syntax (a <link> to a stylesheet) was highlighted.

The web has moved so quickly in the time that it has come to fruition that we often forget that it wasn’t that long ago that the web emerged to the forefront of (some, not all) people’s lives. Heck, we’ve only been programming computers for commercial purposes for about 70 years or so!

Like many new disciplines, software engineering is struggling to define itself. I believe that the mess of ethical violations, security flaws, and product mishaps is mostly due in part to the fact that we have yet to concretely figure out how software fits into the fabric of society and how we are going to use it in a globalized, hyperspeed world.

Given the fast-pace and uncertainty of things, I think we’re still working on figuring out what’s Truly Important from what is Kind Of Important. It’s a narrative that we are continually evolving as an industry and as specialists in a particular field.

I think there is a certain comfort to feeling like you’ve got a particular concept figured out. The feeling of knowing you don’t know something or realizing that people have different perspectives on what is essential to know can be a little unnerving. Consensus and agreeableness are significant factors of our existence as people and the potential that others see differently can cause a lot of strife (thus magnifying their root cause in a vicious cycle). To reconcile these differences, we’re often tempted to ostracize or “other” the individuals that we disagree with. If they can’t do this particular thing, then they must not be real web developers. Some people say things like this precisely because it helps them uphold their worldview, especially when new information challenges their worldview.

Every couple of months or so (heck, maybe even weeks), a debate will emerge in the development community about how such-and-such is not real coding or this-and-that is not what real developers do. Although sometimes these statements can be rooted in fact, they are often a result of individuals attempting to hold on to their particular idea of what it means to write software. Here’s the thing, we all have different ideas of what it means to write software, and we are far away from figuring out a collective definition that we can all agree on. One thing’s for sure; the fundamentals don’t have anything to do with syntax. They exist on a much higher plane of reasoning and have much grander implications.

When it comes to the web, we have no idea what we are doing.