No Good Can Come of Bad Code

In our last installment, we talked about how to build a great portfolio no matter what goes on at your job. This time out, we’ll discuss what to do when your boss is satisfied with third-party code that would make Stalin yak.

Article Continues Below

My team builds stuff for other companies. We handle the server side and outsource the client side to a company that does a pretty ugly job, code-wise (although the look and feel is good). My team doesn’t seem to care what this means for development. For them, it’s a question of price: the product we provide is working, and the customer has no complaints. I don’t have any idea how to make them see my point of view. What can I do?

Stuck in the 20th Century

Dear Stuck:

Oh boy, and I mean this literally, do I feel your pain. It’s the same pain I felt personally, on every single project, from 1997 until web standards finally went mainstream sometime in the mid-2010s. And even then, I would still feel it from time to time: such as this one time when a client who shall remain nameless insisted on using a third-party CMS that shall also remain nameless.

The CMS makers assured us that they understood semantic markup and progressive enhancement, and that their product would deliver our painstakingly wrought and torture-tested templates intact. But in fact, the CMS delivered our templates in JavaScript. Web pages wouldn’t load without it. The fact that we’d built a progressively enhanced experience that could run on anything from the latest browser to a smartphone, with or without JavaScript, didn’t matter. You had to have JavaScript running to see this site that didn’t require JavaScript to run.

Logic like that makes me wish I had a nice job in the sewers instead of in web design and development.

I feel your pain every time I encounter a shop or company that brags about its full-stack expertise but writes markup like it’s 1999. Or, just as bad, like it’s 2003: all meaningless spans and divs, half of them there purely as visual hooks, and the other half there because the developers didn’t know what to cut out of the framework they used (and didn’t consider that a problem, figuring that gzipping everything would take care of the performance aspects).

I feel your pain today worse than ever, as three quarters of our industry gets high on these bloated frameworks, and abandons core principles like progressive enhancement and building lean.

It’s particularly troubling when the code schools turning out tomorrow’s coders by the tens of thousands neglect to teach their students the vital importance of separating structure from appearance and behavior; the overwhelming urgency of marking up content semantically so that it is accessible to any person, of any ability, using any device; the genius (and long-term viability) of designing with progressive enhancement instead of targeting specific devices as manufacturers spawn ever more of them; and other fundamental tenets of an open web designed and built with standards.

It also kills me when these schools teach responsive design as a bloated, top-down enterprise rather than the lean, content-first experience its creator intended.

I’ve seen agencies where an HR person who doesn’t understand the web hires designers and developers based on the candidates’ meeting a checklist of skill areas. The more tools and software the candidate knows, the likelier they are to get hired. Understanding of accessible, standards-based design doesn’t even enter the picture.

And then there are places that exist by coding faster and cheaper. The clients of those companies want “something that works.” They need it yesterday and they don’t want to pay what it’s worth.

Above all, the kind of “pretty design but bad code” you’re stuck with, dear Stuck, comes from stone age companies that heavily silo their employees. In such places, the developer’s job is to comply with a list of specifications as quickly and cheaply as possible. The designer’s job is to make it pretty. If there is a user experience person, her job is to create wireframes in isolation, and slip them under the designer’s door.

More than a decade after we won the battle for web standards, too much code is still crap. So what do you do, if your company is satisfied with this crap?

Ethan Marcotte and I dedicated 432 pages to providing rationales why accessible, semantically structured sites designed and built with web standards are the only kind of sites it makes business sense to create. I can’t summarize those 432 pages here, but they are available online and in almost every library in the world, and I humbly commend them to you.

Mr. Marcotte then went on to create responsive web design, which takes these ideas to the next level. The whole world has embraced it, as you know, and there are now hundreds of places to read about it, including many in this magazine (where Ethan premiered it exactly five years ago on May 25).

The future-friendly folks have a wide range of recommendations for the even wider range of devices serving today’s web—from watches to phones to desktop browsers to game consoles. “We want to make things that are future friendly,” they say. So does your company, surely. “By anticipating what’s next, we can react to today’s concerns but also build long-term value for people and businesses,” say the future-friendly folks, linking to articles and ideas you can bring to your boss.

Remember: the future will come whether you design for it or not. If your company charges $300,000 for a website that won’t work on next week’s most popular device, your company won’t be able to stay competitive in this business. It might not even be able to stay in the business, period. After all, clients who pay for sites that break too soon will look elsewhere next time—leaving your company perpetually hunting for new clients in a downward spiral of narrowing margins and diminishing expectations.

Your company’s survival is tied to the ability of the products it makes to work in situations you haven’t imagined, and on devices that don’t yet exist. This has always been the challenge of web design. It’s one A List Apart has taken seriously since we began publishing, and our archives are filled with advice and ideas you can boil down and present to your bosses.

If none of this changes their minds (deep breath! ready?) you need a new job. Because the one you have now won’t last. And because the next one will be far more fulfilling—for you, for your company’s customers, and mainly for the people who use their sites and applications. And isn’t that what this is all about?

10 Reader Comments

  1. I’m among those who embraced the web standard long ago, because it not only works, but it’s more satisfying to know that you do things correctly.
    I’m a small player, small sites, small customers, few applications involved, but when there is, it’s my choice. My customers don’t know, and don’t want to know. I tried to explain sometimes the element “Responsive” of their site, but that doesn’t interest them. This works? Very good. End of story.
    So? I do the best I can do without mortify me whether my client exactly know what he buys or not. My code is pretty, and I am personally satisfied with that. By cons, having a job that is not satisfactory must be terribly frustrating.

  2. Thank you for the insight and wisdom. To the point about the code schools; makes my decision to stop using the one I was using, and work at learning on my own seem a bit more of a reasonable thing to do. In addition to the large amount of money I am saving by not going that route.

  3. I’m not a coder but this article takes me back. Because, I had a PalmPre smartphone that *would not read Javascript* – at all. Any website (with java) I pulled up on my browser crashed because there was no java on my phone to run the website. This was of no benefit to me – and it didn’t benefit the commercial, non-profit, and even hobby websites I tried to read on my phone. Thank goodness smartphones no longer have this problem – and websites are finally starting to adapt to mobile devices.
    Second, on Responsive Design. This affects me, personally, two ways – as a consumer with smart phone and multiple tablets – and as a graphic design student. All I can say is for gods sake world – make sure I can read your website on my phone, no matter WHO you are. I once pulled up, ironically, a web design firm’s website on my phone that had some sort of floating design on top of the website. I honestly couldn’t tell you WHAT it was, because on my phone 90% of the screen grayed out then went black. And it wasn’t my fault or a problem with my phone. When I checked the desktop version of the site later on my desktop, it wasn’t much better – a grey box with pics of what I could only assume were sample websites on it. There was no text to tell me what I was looking at, and I couldn’t turn it off to actually read the article from the link I found on Twitter. I left the site.
    What I’m saying is: I’m just as likely to read something on my phone or tablet as my desktop, and sometimes MORE likely to read (for example, Twitter – and links from Twitter) on a mobile device. Please, please, please – don’t make it hard or impossible for me to read your site or even find basic information on my phone by not using responsive design. If the site is for a restaurant – I’m checking on my phone for your hours, your location, and maybe your menu. Make sure those pretty basic things are (a) on the website, (b) where I can easily find them, (c) in a font I can read – either because it’s big enough, or I can pinch my phone screen and make it big enough. Does this make sense?

  4. This is great. I read Designing with Web Standards several years ago and have been preaching it ever since. Then I began to feel I’d lost touch. Reading this makes me realize my arguments are still valid. Thank you Jeffery for all that you do!

  5. @Jacqueline: Just a clarification that Java isn’t JavaScript. I had (and developed apps for) the Palm Pre onward during webOS’ short life, and no modern smartphone ever read Java directly in the browser; JavaScript is a wholly different beast that, I can assure you, their Webkit-based browser read without issue.

    Regarding the article, this is absolutely dead-on. It’s harder than it’s ever been to communicate the value of coding to web standards to an unreceptive audience, especially when frameworks and browsers alike have allowed a bevy of bad practices to proliferate with often very little perceptible outside penalty. Accessibility is just as much an afterthought, which these bad practices penalize even more than before.

    Responsive, as a result, is an unfortunate and convenient scapegoat as the most visible delta between bad development practices, bad design and content strategy, and site performance. With the right level of deliberation from all the involved disciplines, there’s absolutely no excuse for that perception.

  6. Perfectly put, Zeldman. I was a fan even before your Steve jobs web standards post : http://www.zeldman.com/2010/04/29/steve-jobs-on-flash/

    I still read that for a good chuckle.

    I would not have put “getting high on the latest frameworks” more eloquently. Perfectly put, without getting into an elaboration of reasoning why, which I think most people reading this article will agree with.

    “…leaving your company perpetually hunting for new clients in a downward spiral of narrowing margins and diminishing expectations…” – could not ring more true to our clients coming from other firms out sourcing development (e.g. India). While it keeps us in business and makes us continually look like heroes, I can’t stop but to think that’s the biggest cause of this issue at it’s core.

    Thanks for the post Jeff, keep ’em coming.

  7. I think coding design is very important even though customer don’t care about it. At short run, yes, you may be able to deliver finished product quickly and possibility working too and the customer have no problem with it. At long run, if there are any progressive updates things will get harder to maintain and later you will find something that can be reused but the code itself is too crap, this will influences the efficiency and headache for the coder.

  8. Amen.

    Been there and back and sometimes back again.

    The single *worst* experience is not being trusted to do what you do best. If that ever happens, just leave. Get your CV out there, network with your peers, move on.

    I’ve been at the coalface since ’95 – the bad old days of 1×1 pixel images in table based layouts forced into pants they weren’t meant to fit into. It made my balls ache.

    The joy of the Flash intro, where the ‘skip intro’ button was inside the flash file itself. All these sins and more I’ve committed in the name of … I’m never really sure what? Insanity?

    Java applets delivering navigation – the wild west of ‘web development’ was murder, driven by print design agencies who didn’t have a clue.

    We’re now atomic, molecular, standardised, semantic – the blueprints are out there to use, improve upon, share.

    Yet still the crimes against web dev continue, perpetrated by folk who don’t respect the craft – “How a web design goes to hell”…

Got something to say?

We have turned off comments, but you can see what folks had to say before we did so.

More from ALA

Nothing Fails Like Success

Our own @zeldman paints the complicated catch-22 that our free, democratized web has with our money-making capitalist roots. As creators, how do we untangle this web? #LetsFixThis