Purba Design Pattern

By Anoop Dixith

Back to Anoop's Homepage

“Purposefully Bad” or the “Purba” Design Pattern is an umbrella design pattern that encompasses all classes of designs (architecture, idea, software entity, user interface, code etc.) that are standalone, intentionally bad, and made so in order to indirectly accomplish a higher and positive objective through the same. “Bad” can refer to any broader set of adjectives with a negative connotation, such as 'hard', 'inferior' etc.

Note that this should not be confused with the “Good Cop Bad Cop” pattern where the bad cop simply makes the other cop look good with the nobler objective of potentially eliciting information from the subject. It is not Purba because the bad cop is not standalone. Another example of a non-Purba pattern is the conspiracy theory that New Coke was released as an intentionally inferior tasting drink to temporarily take out the original Coca Cola from the market to make the American public realize its value, only to then reintroduce the original Coke to further boost sales even further. Though in reality this was not the case at all, in theory, if this was indeed the intended objective of an inferior tasting New Coke, it would have been a legitimate Purba. Same applies to the myth of Qwerty keyboard having been designed to intentionally slow you down so the typewriters wouldn't jam. However, the age-old yarn of a husband intentionally cooking a bland meal for his wife with the objective of her not liking it and thereby not asking/wanting him to cook again is a subjective Purba. It is safe to say that the objective intended to be accomplished is not a positive one in a general sense, though purely from a materialistic point of view of the husband, it certainly is.

purba


Comparably, all code level tests with negative testcases are non-Purba as they are intentionally sending bad input to test the validity of the function. For example, if the function was:
define sum(integer a, integer b) {
  return a+b;
}

then a test like this can be mistaken for a Purba.
define testSum() {
  assessFail(sum(5,8), 10);
}

purba
However, that defeats the purpose of the pattern because it can be argued that the intention was to “directly” test the validity of the function itself, and thus there was no indirect higher purpose for the same. Same goes to an intentionally buggy piece of code given to interviewees in a programming interview to assess their debugging skills, as well as for tools like Chaos Monkey.
So, what are some examples of the Purba pattern? The classic one at the code level is adding intentional delay (explicitly by using delay timers, but also sometimes by simply adding enough logs) to break a race condition. There are many such examples outside of code, as illustrated in the below table.

Purba
Purposeful Bad-Color Placement Pantone 448 C” is described as the "ugliest color in the world". It was selected in 2012 as the color for plain tobacco and cigarette packaging, after market researchers determined that it was the least attractive color and thus could discourage smoking
String class in Java (and in general, immutable objects of functional programming languages) Many novice programmers find it unusual that probably one of the most widely used Java classes – String class – is immutable, thus making it harder to use. However, this is intentional and serves multiple reasons including the most significant of them all – security. Since many critical values like usernames, passwords, hostnames etc. are passed as strings, mutable String class would pose severe security risk to the application.
Intentionally Slow Pages Websites employ loading unnecessary, enormous support files on pages of their website they don’t want the user to visit so those pages load far slower than rest of the website. For example, the pages related to “Cancel Subscription”, “Delete Account” etc
Intentionally Legacy Code Many software teams, mostly in non-technical firms including government agencies, have chosen legacy and outdated choice of programming language and tech stack (like COBOL for example), so it will be harder to replace the team with new hires.
Intentionally Less Durable Machines Multiple investigations have proved that an ice cream maker company that sells their ice cream makers to one of the major fast-food chains intentionally makes them to be less durable and harder to debug for anyone else, so they could earn significant revenue from repairs and maintenance.
Intentionally Annoying Ads Many services that offer both “free with ads” and “ad-free subscription” models run intentionally annoying ads on “free with ads” version so as to encourage the users to move to their subscription model (which is more profitable for the service and a longer-term commitment for the user)
Purposefully Logically Wrong Some online mock Blackjack/Poker websites (meaning users play for fun as opposed to betting with real money) make players play longer by (and thus show more ads, say) by purposefully introducing bugs in code logic so that users have an edge rather than the house unlike in real gambling. Users think they’re winning but the service is letting them win in exchange for their longer session time.
Intentionally Difficult UX On mobile user interfaces, many popups, ads etc. intentionally have tiny "close" buttons on their corners so that any person with a reasonably sized finger has a good chance of clicking on the popup content or the ad while trying to close.
Intentional Typos You'd think Starbucks baristas misspell your names? The misspelling is intentional according to many resources, though disputed by others. One Starbucks barista put it well: "Most people aren't going to post a photo to social media of a cup with their name spelled right", highlighting how it has served Starbucks as an effective marketing tool.
Intentional typos have also been interesting conversation starters / icebreakers on many dating sites. This is one such example.
Intentionally Unfriendly Airport Seats Seats in the airport waiting stations next to boarding are intentionally made harder to sleep on, without any headrest or shoulder-rest and without ample leg space. The seats are also made of harder materials and lack any cushion. All these are intentional so as to make sure passengers don’t accidentally miss flights from falling asleep on them.
Deliberate Fictitious Entries There are numerous deliberately incorrect entries in reference works such as dictionaries, encyclopedias (including Wikipedia), maps, and directories. There are more specific terms for particular kinds of fictitious entry, such as Mountweazel, trap street, paper town, phantom settlement, and nihilartikel. Fictitious entries are added by the editors as a copyright trap to reveal subsequent plagiarism or copyright infringement.
Intentional Bad Evolution - exposed testicles Testicles, which carry forward the gene pool for men, are exposed outside the main body! That is such an unusual design given the risk of harm is way higher. However, that is because sperms must be kept at 2.5 to 3 degrees Fahrenheit below the body’s internal temperature!
Evolution of menopause in humans The Grandmother Hypothesis
Intentionally distant placement of essential materials in marts Many large grocery markets place the “ultra-essential” items like milk on the remotest corners, so shoppers walk all the way to get there and shop numerous other things on the way.
Deliberate errors in speedometers and gas gauges To err on the side of caution, speedometers intentionally show speeds a little over the actual speed, and gas gauges display empty tank with a gallon still in it. Natural human tendency is to push the limits so these are necessary reading errors.
“Must search before you post” interfaces Many Q and A platforms/services and organizational communication services force you to “search” your question first before you’re even let to post them, to avoid duplication. The lack of default interface to directly post what you want can be annoying, but it helps avoid redundant discussions and streamlines them.
Intentional absence of clocks and windows in casinos A well-known Purba. Casinos have no windows or clocks. They want you to keep playing.
purba

While Purba pattern serves several purposes, most important ones are:
  1. Offering an extra layer of safety in contexts where no amount of open communication can completely stop bad things from occurring - like airport seats,
  2. As an indirect way of communication where you know saying what needs to be said in an open manner won’t work or will be counterproductive. E.g.: “Keep playing in casinos”, or “buy five other things before you buy milk” etc.
I brainstormed on what are some of the Purbas I’d personally wish to have or propose. Below are a few of my Purba proposals:
  1. Deterrence by Proximity: Obviously this has zero incentive in most capitalist establishments, but one of the effective ways to discourage using an unhealthy thing is to keep it in applicable proximity of the better thing. For example, if a corporation cafetaria places each can of Coke right next to that of a Diet Coke, there is a far higher chance that Diet Coke gets picked up.
  2. I believe that California's tough shower and other faucet laws prohibiting selling or shipping any showerheads exceeding 1.8 Gallons per Minute has not been that effective. Though the water outlets let lesser quantity of water, it simply encourages people to stay longer in the shower nullifying the positive effects of the ban. Instead, digital showerheads must be encourage - the ones that show time being spent in the shower, quantity of water used, and the estimated cost of it in real time. (Electricity cost in California are already sky high, so any reference to electrivity cost is a deterrent)
  3. A little sinister but alarm apps on phones should make it harder to snooze after say, five snoozes. The screen gets brighter, the snooze interface becomes smaller to operate etc.
  4. Corporate elevators should cost a small sum of money for employees. Shorter the elevator commute, higher is the cost. For example, 20 cent for Floor 2 to Floor 3, but only 1 cent for Floor 2 to Floor 10. Idea is to encourage employees to use stairs where possible. The money collected would either go to charity or a corporate fund, and indeed, employees who “must” use elevators because of any kind of disability are exempt.
  5. Another highly misleading purposeful logical error related to timer (and probably already being used by some websites/apps) – the “skip in 5 seconds” ads with a countdown timer from 5 to 1 to “skip” actually never mention it’s 5 seconds. They simply display a timer counting down from five to one. So, if the countdown happens at 1.5 second per count or worse, at 2 seconds per count, it’s hardly noticeable but the ad would run for 7.5 to 10 seconds instead of 5.
  6. Highly capitalistic, but services with online payment options should send payment reminder emails/texts to customers on busy days and peak hours. Idea is that there is a higher chance the user misses the payment thereby increasing his/her chances of enrolling in auto-payments which is a long-term commitment for the service, OR end up paying a penalty which is an added revenue to the service.

purba