Journal tags: opinion

3

Re-evaluating technology

There’s a lot of emphasis put on decision-making: making sure you’re making the right decision; evaluating all the right factors before making a decision. But we rarely talk about revisiting decisions.

I think perhaps there’s a human tendency to treat past decisions as fixed. That’s certainly true when it comes to evaluating technology.

I’ve been guilty of this. I remember once chatting with Mark about something written in PHP—probably something I had written—and I made some remark to the effect of “I know PHP isn’t a great language…” Mark rightly called me on that. The language wasn’t great in the past but it has come on in leaps and bounds. My perception of the language, however, had not updated accordingly.

I try to keep that lesson in mind whenever I’m thinking about languages, tools and frameworks that I’ve investigated in the past but haven’t revisited in a while.

Andy talks about this as the tech tool carousel:

The carousel is like one of those on a game show that shows the prizes that can be won. The tool will sit on there until I think it’s gone through enough maturing to actually be a viable tool for me, the team I’m working with and the clients I’m working for.

Crucially a carousel is circular: tools and technologies come back around for re-evaluation. It’s all too easy to treat technologies as being on a one-way conveyer belt—once they’ve past in front of your eyes and you’ve weighed them up, that’s it; you never return to re-evaluate your decision.

This doesn’t need to be a never-ending process. At some point it becomes clear that some technologies really aren’t worth returning to:

It’s a really useful strategy because some tools stay on the carousel and then I take them off because they did in fact, turn out to be useless after all.

See, for example, anything related to cryptobollocks. It’s been well over a decade and blockchains remain a solution in search of problems. As Molly White put it, it’s not still the early days:

How long can it possibly be “early days”? How long do we need to wait before someone comes up with an actual application of blockchain technologies that isn’t a transparent attempt to retroactively justify a technology that is inefficient in every sense of the word? How much pollution must we justify pumping into our atmosphere while we wait to get out of the “early days” of proof-of-work blockchains?

Back to the web (the actual un-numbered World Wide Web)…

Nolan Lawson wrote an insightful article recently about how he senses that the balance has shifted away from single page apps. I’ve been sensing the same shift in the zeitgeist. That said, both Nolan and I keep an eye on how browsers are evolving and getting better all the time. If you weren’t aware of changes over the past few years, it would be easy to still think that single page apps offer some unique advantages that in fact no longer hold true. As Nolan wrote in a follow-up post:

My main point was: if the only reason you’re using an SPA is because “it makes navigations faster,” then maybe it’s time to re-evaluate that.

For another example, see this recent XKCD cartoon:

“You look around one day and realize the things you assumed were immutable constants of the universe have changed. The foundations of our reality are shifting beneath our feet. We live in a house built on sand.”

The day I discovered that Apple Maps is kind of good now

Perhaps the best example of a technology that warrants regular re-evaluation is the World Wide Web itself. Over the course of its existence it has been seemingly bettered by other more proprietary technologies.

Flash was better than the web. It had vector graphics, smooth animations, and streaming video when the web had nothing like it. But over time, the web caught up. Flash was the hare. The World Wide Web was the tortoise.

In more recent memory, the role of the hare has been played by native apps.

I remember talking to someone on the Twitter design team who was designing and building for multiple platforms. They were frustrated by the web. It just didn’t feel as fully-featured as iOS or Android. Their frustration was entirely justified …at the time. I wonder if they’ve revisited their judgement since then though.

In recent years in particular it feels like the web has come on in leaps and bounds: service workers, native JavaScript APIs, and an astonishing boost in what you can do with CSS. Most important of all, the interoperability between browsers is getting better and better. Universal support for new web standards arrives at a faster rate than ever before.

But developers remain suspicious, still prefering to trust third-party libraries over native browser features. They made a decision about those libraries in the past. They evaluated the state of browser support in the past. I wish they would re-evaluate those decisions.

Alas, inertia is a very powerful force. Sticking with a past decision—even if it’s no longer the best choice—is easier than putting in the effort to re-evaluate everything again.

What’s the phrase? “Strong opinions, weakly held.” We’re very good at the first part and pretty bad at the second.

Just the other day I was chatting with one of my colleagues about an online service that’s available on the web and also as a native app. He was showing me the native app on his phone and said it’s not a great app.

“Why don’t you add the website to your phone?” I asked.

“You know,” he said. “The website’s going to be slow.”

He hadn’t tested this. But years of dealing with crappy websites on his phone in the past had trained him to think of the web as being inherently worse than native apps (even though there was nothing this particular service was doing that required any native functionality).

It has become a truism now. Native apps are better than the web.

And you know what? Once upon a time, that would’ve been true. But it hasn’t been true for quite some time …at least from a technical perspective.

But even if the technologies in browsers have reached parity with native apps, that won’t matter unless we can convince people to revisit their previously-formed beliefs.

The technologies are the easy bit. Getting people to re-evaluate their opinions about technologies? That’s the hard part.

Mind set

Whenever I have a difference of opinion with someone, I try to see things from their perspective. But sometimes I’m not very good at it. I need to get better.

Here’s an example: I think that users of small-screen touch-enabled devices should be able to pinch-to-zoom content on the web. That idea was challenged twice in recent times:

  1. The initial meta viewport element in AMP HTML demanded that pinch-to-zoom be disabled (it has since been relaxed).
  2. WebKit is removing the 350ms delay on tap …but only if the page disables pinch-to-zoom (a bug has been filed).

In both cases, I strongly disagreed with the decision to disable what I believe is a vital accessibility feature. But the strength of my conviction is irrelevant. If anything, it is harmful. The case for maintaining accessibility was so obvious to me, I acted as though it were self-evident to everyone. But other people have different priorities, and that’s okay.

I should have stopped and tried to see things from the perspective of the people implementing these changes. Nobody would deliberately choose to remove an important accessibility feature without good reason, so what would those reasons be? Does removing pinch-to-zoom enhance performance? If so, that’s an understandable reason to mandate the strict meta viewport element. I still disagree with the decision, but now when I argue against it, I can approach it from that angle. Instead of dramatically blustering about how awful it is to remove pinch-to-zoom, my time would have been better spent calmly saying “I understand why this decision has been made, but here’s why I think the accessibility implications are too severe…”

It’s all too easy—especially online—to polarise just about any topic into a binary black and white issue. But of course the more polarised differences of opinion become, the less chance there is of changing those opinions.

If I really want to change someone’s mind, then I need to make the effort to first understand their mind. That’s going to be far more productive than declaring that my own mind is made up. After all, if I show no willingness to consider alternative viewpoints, why should they?

There’s an old saying that before criticising someone, you should walk a mile in their shoes. I’m going to try to put that into practice, and not for the two obvious reasons:

  1. If we still disagree, now we’re a mile away from each other, and
  2. I’ve got their shoes.

Dichotomy

I usually confine my JavaScript-related ramblings to the DOM Scripting blog but a recent bit of DOM blogging got me thinking about larger issues.

I posted on the WaSP Buzz blog and the DOM Scripting Task Force blog about a great little script by Dan Webb. In the course of posting, I inadvertently stepped on a land mine of scripting controversy.

I described two possible ways of generating markup with JavaScript:

The innerHTML property is quick and easy to use. But it’s also proprietary and heavy-handed. DOM methods like createElement and createTextNode, on the other hand, are precise and part of a standard but they can be finicky and repetitive to use.

I thought I was being pretty even-handed. But both Jonathan and Dustin felt that I was dissing innerHTML and praising DOM methods.

In a way, it’s kind of reassuring to think that the word “proprietary” can be interpreted as meaning “bad”. It bodes well for standards when the word “proprietary” has such negative connotations.

On the other hand, it obscures clarity when the meaning of one word is conflated with the meaning of another. It’s also worrying when a hands-off, fence-sitting description is misconstrued as strongly favouring one side of a dichotomy.

There seems to be a human need to divide issues into polar opposites. In reality, very few people hold opinions that are so clear cut. Yet, just look at how so many topics are polarised into binary arguments:

  • innerHTML versus DOM
  • RSS versus Atom
  • REST versus SOAP
  • XML versus JSON
  • HTML versus Flash
  • fixed versus liquid
  • Macs versus Windows
  • Google versus Yahoo!
  • The Beatles versus The Stones
  • Republicans versus Democrats
  • Tory versus Labour
  • cats versus dogs

Most well-adjusted people will find that their subjective opinion falls somewhere between these poles. If you find yourself 100% in favour of one of the above positions and 100% against the opposing viewpoint, I’m afraid you may be borderline psychotic.

There seems to be an inherent need for human beings to form tribes that draw strength from opposition. At a fundamental level, we favour an “us versus them” mentality.

It’s especially sad when this is manifested on a national level. Nationalism became a dirty word in the twentieth century when it was associated with notions of superiority and inferiority. Even today there are people for whom it is not enough to be happy in — and proud of — their own country; they must also declare it to be “better” than all the other countries. Such a subjective viewpoint seems like a crazy way to form a mental model of the world.

And yet, that’s exactly the kind of mental model that our brains seem hardwired to prefer. A balanced outlook doesn’t sit comfortably with our base instincts. Our natural tendency is to take a subjective opinion and declare it to be objective truth. In order to do that, there can be no room for doubt.

A subjective opinion that lacks certainty and conviction doesn’t seem convincing (even though its very lack of certainty hints at its truthfulness). Instead, strength of conviction is seen as a positive trait. But, as history has shown us, the strength of a particular belief has no bearing on its accuracy.

Still, come election time, our media will be filled with politicians fiercely defending one view or another. They will be judged less on the veracity of their positions and more on how sincere they are in their convictions. Nobody likes a flip-flopper.

I have a theory about correlating strength of conviction with age. When you’re young and full of righteousness, the world seems clearly divided into black and white. Then, as you mature, you begin to see things in shades of grey. But as you get older still, the world returns to being black and white except what was black is now white and was white is now black.

Before I’m labelled a complete relativist, let me clarify something.

I’m talking about subjective opinions and the danger that comes with treating them as if they were objective facts. It is equally dangerous to treat an objective fact as if it were a subjective opinion. That way lies madness. Specifically, the madness of the flat-earth society, the geocentric model and neo-creationism. Well, not so much madness, but definitely ignorance and self-delusion.

Of that I am certain.