Hacking in the real world

That's foolish, but it's also largely unavoidable, since you can never really know what problems exist with your prototype until their has been mass adoption of it. The Catch 22 is that if your prototype does get properly adopted, it's already too late to rebuild it from scratch.

There's a line at your door and they want immediate attention.

People don't wait around for you to change. Copycats spring up. Investors see revenue potential, customers attention spans are short. Your direction becomes one of patching the prototype and playing catch up with your scale requirements. Redesigning is impossible.

Initial design flaws seem obvious to us in hindsight, but they rarely are at the beginning. People don't think of a prototype as a prototype until they have to patch a new bug.

Take the Y2K bug: Why wouldn't computer programmers have thought about dates after the year 2000 when designing the first computer languages? It wasn't even that far off!

The truth is that most creators simply don't expect wide adoption and it is a lot easier to build a product without worrying about scalability. That's unfortunate, but it doesn't just apply to programmers writing applications.

There are so many real world examples of hacking being the only way to address a design flaw because mass adoption prevents re-addressing the underlying issue.

New Orleans

Why would original developers choose to build a city on lower ground than sea-level in an area prone to hurricanes? Why not import more land to raise the city above sea level?

The answer is that they probably didn't intend to build a city as big as it became and levies seemed a more realistic, economical solution in dealing with a smaller city. They never considered problems of scaling, because it's impossible to predict population growth.

A city grows around a current need (i.e. access to maritime trade) and remains standing once that need fades away. Then it is up to the new residents to continue developing on an infrastructure that was never intended to support continuous growth.

The design flaw becomes an inherent, unchangeable limitation based on mass adoption. You can't rebuild or move the city itself once it becomes obvious that it simply can't scale.

So New Orleans planners hacked their inherent design flaw by building a levy system instead of raising the city up higher in the first place. Woops.

English on the Internet

English has become the global language of the Internet.

Why? Because English-speaking people invented the prototype and didn't consider the global potential for it.

Because of this lack of foresight we are stuck with browsers that do not readily accept foreign language characters for URLs. Imagine how that limits countries where English isn't a first language. Take a look at the URLs for Wikipedia articles in non-English languages. Talk about non-intuitive usability!

And how wonderful for Google and other search engines that are the Hack to this terrible design flaw.

QWERTY Keyboards

The common layout of keyboards that almost all computers come with, known as QWERTY, causes problems of inefficiency and fatigue as people type. A more ideal layout is known as the Dvorak layout. It places keys in positions to improve efficiency in typing to almost double the current speed, but it's hardly been adopted at all.

So why did we even use a QWERTY layout in the first place? Because the concept of typing originated on a now extinct need (manual typewriters), and mass adoption of that character set has persisted a limitation.

The QWERTY layout was designed so that successive keystrokes would slow down typing and alternate between sides of the keyboard so as to avoid jams in typewriters.

And now we're stuck with a mass adoption of a way of doing things that can't be redesigned. The Dvorak keyboard is a redesign instead of a hack and therefore it will never be adopted by the masses.


Can you point out other real world design flaws where mass adoption limits us to hacking instead of redesigning?

I'd love to hear them.]]