Make it boring
A good case can be made for why boring can be preferable to exciting. Read about the subprime mortgage crisis sometime, and you'll see that things got hairy because someone, somewhere, thought that investing in mortgage-backed securities should be less boring and more exciting. If those financial instruments as well as the subprime lending market that exploded beneath them had been reasonably regulated and yielded boringly predictable returns, the world might be a better place today.
I was young and wanted to do it all
Remember the first time you made a web page? I do. From the instant I opened a WYSIWYG editor-generated HTML file with notepad.exe in 1995 and saw how much was possible with so little, I was all in on the web. I made websites so frivolously excessive by shoehorning in every new little thing I learned. Garish color schemes,
<font> tags, animated GIF backgrounds, guestbooks, oh and who could forget Flash? Three of my personal websites were crappy 2Advanced knockoff Flash sites. I was eager to show off everything I knew, so I churned out Frankenstein monsters that stitched together every new thing I learned.
It was only by the time I started my professional career in 2005 that I started to rein in my excesses. I have to remember that it took me ten years of undisciplined experimentation before I began to consider what it meant to build things people would want to use. I need to continually remind myself of this as I consider the new devs out there joining the ranks of the employed.
The web: your exciting new job
Most new developers aren't entering the workforce today with a decade of learning and experimentation already under their belts. They're people who are simultaneously new to — and really excited about — building for the web and making a living from it.
This isn't a perspective I can speak to. My path was radically different. I didn't join a web developer bootcamp and start making a living off of those skills within a year. I had the benefit of time from middle school to the end of college to experiment and do all the wrong things. I made slow, unusable, inaccessible websites. As my knowledge and skills increased, I made slightly faster, more usable, and more accessible websites.
Most new developers haven't had this luxury. Particularly in the U.S., where their flaming baptism into the industry occurs in an increasingly hostile economic environment. New developers will learn the skills that are deemed the most valuable. When you're fresh off an expensive training program and you need to make money now, you're going to chase what makes that money — and a tech company will only pick you up if their HR department can check the boxes. That means you're going to be learning the framework du jour, and for a time, probably little else as you inevitably take time to get up to speed.
Front-end development has been this way to an extent for at least the past decade. Read the resume of any veteran front-end web developer, and you'll find it resembles a geological column of skills. It might start with MooTools, YUI, and Dojo underneath jQuery, which itself is underneath Backbone and Knockout, which brings us roughly to where we are today with React and friends. The industry has always chased what's so hot right now. The industry has set us up from day one to chase the new and shiny to pay the bills, while our duty to educate ourselves on core web technologies has been relegated to "some day".
We do all of this in the name of productivity — even at our own peril. Whether it was jQuery in the late aughts or React now, these tools were designed to make us more productive — and they do! But, if developers were pressed to admit it, they're also a product of our desire to make our work less boring and more exciting. It fuels what I like to call laptop sticker culture — something I'm certainly guilty of — where everything we do feels badass and glamorous. Shouldn't our work be more fun and exciting?
The jaw-achingly boring essence of things
Water and data flow through pipes of their own, but whether data flows easily from server to client depends. The environmental constraints imposed on developers by the network, devices, and the browsers people use are legion. Factors such as network bandwidth and latency are obvious, whereas others such as server protocol, device capabilities, and a multitude of others are subtle. Then there is your biggest factor: the people using the thing you make, each one of them a unique case study of capabilities and limitations that we must account for as best we can.
So make it boring.
Boring is unobtrusive
A website is at its worst when it creates obstacles for people. Obtrusive design is the result of every project manager, business analyst, designer, and developer unwilling or unable to question ill-considered business requirements or design decisions. In a piece striking a similar tone on making design systems boring, Josh Clark had the following to say:
"The more common the problem, the better. Design systems should prioritize the mundane."
Prioritizing the mundane necessarily involves avoiding obtrusiveness. Without acknowledging that simple truth, we can only create fast, accessible, and usable experiences entirely by accident.
To wit: a perfect example of obtrusive design was Apple's HotSauce, which provided a 3D visualization of sitemaps. Instead of aiming for a mundane, utilitarian way to present this information, the visualization chosen instead was seen as cumbersome and pointless. When folks browse a list of URLs from a website, they don't care what that experience would be like if they were on the deck of the Enterprise. They crave a boringly predictable way to access that information quickly.
Eminently usable designs and architectures result when simplicity is the default. It's why unadorned HTML works. It beautifully solves the problem of presenting documents to the screen that we don't even consider all the careful thought that went into the user agent stylesheets that provide its utterly boring presentation. We can take a lesson from this, especially during a time when more web sites are consumed as web apps, and make them more resilient by adhering to semantics and native web technologies. As it stands, we're serving heaps of
Boring is expected
Boring and predictable are expected qualities of the essential. Traffic lights functioning as expected? Awesome. The plane's landing gear doesn't fall off on approach? Even better. While we as developers and designers aren't in charge of those critically essential things, we are responsible for the services people expect to be available. Some of these services, such as resources for federal aid and assistance, are critical fixtures in an economically hostile landscape. We must go the extra mile to make sure that they're highly available, accessible, and fast.
Central to that endeavor is recognizing that the browser gives you a ton of stuff for free. Relying on those freebies requires a willingness to not
The web is in your care
No tool or amount or automation is a substitute for expertise built years of experience in solving human problems. It's realizing that while an accessibility inspector can tell you that you should use
<label> elements for form fields, you need to know the human reasons for why such a pattern is preferable over meaningless
<span>s. It's understanding that while icons might look good in your design comp, relying on language to communicate those actions is more sensible. It's knowing that while a layout problem can be solved by
npm installing a module, such problems are best solved by CSS.
If you care about the web — as I know you do — you'll come to find out that this work isn't boring at all, but really rather delightful and rewarding. What’s more, your choice of framework isn’t mutually incompatible with making stuff for the web that people love to use. It does make that goal harder to achieve, but continuing education and forethought will go a long way in helping you to get the balance right.
As developers, we have two objectives: Work to make things better this week than they were last week, and continue our education to ensure the success of the first objective. With a stronger embrace of HTML and CSS, I genuinely believe our work can never be boring, so long as it helps us deliver on these objectives in the spirit of making the web better for all people.
Special thanks to Jeffrey Zeldman, whose industry expertise, advice, and insight helped me to shape these thoughts into a more coherent narrative.