What are the most feared anti-models in web development?
Comment: Web developers do a lot of good but also, occasionally, solve problems with very bad solutions.
Since Tim Berners-Lee wrote the first webpage in 1991, web developers have provided seemingly endless innovation. Most of these innovations are great, but not always.
Begin co-founder Brian LeRoux asked an innocent question on Twitter: “What is the most feared web development anti-model?” ” A anti-pattern is a “usually reinvented but bad solution to a problem”. In other words, it is the developers who apply the fixes that are worse than the problems.
What does it mean? Well, let’s take a look at some web development examples.
SEE: The best and worst programming languages to learn (TechRepublic Premium)
We come in peace
Take for example, those sites that hijack the shortcut CTRL + F (search in the page) at replace it with their own custom site search. You can press CTRL + F twice to bypass this nit, but it’s an annoying case of developers who think they’re doing site visitors a favor with custom search, while slowing down a significant percentage of their users. It’s also not just on vanilla web pages, like some underlined: “Stash / Bitbucket does this too. They recently removed it from the PR diff view but still do so in the source view.”
Or consider feature flags, a “popular” pet peeve of many developers. A feature indicator should be useful, right? A feature flag allows a developer to turn the feature on / off at run time, allowing you to provide users with a personalized experience. While some developers swear by them, others swear by them. You don’t have to dig too far to see the potential issues with functionality metrics: Permissive flag access can have unintended impacts on users (if someone flips the “off” switch when customers expect the feature to be “on”), or inadvertent reuse of flags. ‘an old flag can cause almost half a billion casualties (and a Wikipedia praise).
SEE: Developer Code Reviews: 4 Mistakes to Avoid (Free PDF) (TechRepublic)
And then there is the disconnect between URIs and exit, as Corey Ward called it. Refreshing a web page should keep you where you were (compose a tweet, read a tweet, etc.) but instead forces you to scroll through tweets to get back to where you were. The problem, as he explained, is that the URL has very little state; is “almost everything client-side and ephemeral”. Apparently this is a developer’s way of keeping things “fresh”, but mostly it succeeds in confusing the user. (Related for that? “AJAX the page content and don’t change the URL text box – even with an anchor link! So reload [lose] your browsing status. “)
But wait! There is more.
What would you say CAPTCHAs so difficult to decipher (because of bad fonts, etc.) that they confuse people more than they mislead machines? Or what about web developers who just want to help you stay loyal to their site … by change your browsing history so that hitting “back” keeps you where you were? And shorten URLs to make them easier for users to type, and thus losing the human readability of a URL, so that it becomes more difficult to grasp?
Etc. But back to where I started: developers are amazing and web developers create the things we use every day, all day, in our browsers. Despite all of this, however, these anti-models occur far too often, sometimes because developers are focusing on their own business needs, and sometimes because they don’t listen to their users through A / B testing or others. means. Any developer who wants a reminder on what not to do can keep Leroux’s tweet thread in their favorites (which luckily won’t go away when you hit refresh).
Disclosure: I work for AWS, but the opinions expressed here are my own.