Saturday, January 28, 2017

Your SOUP is Leaking - Crafting Acronyms

I've been making a lot of acronyms lately. Acronyms can help us think about, remember and communicate a concept. A good acronym, like a good word, can fundamentally change the way we understand the world. 

Until recently, civilization didn't have a word for blue. It's true! Business Insider has a surprisingly good article about how no ancient civilization had a word for blue. Even more surprising, it might be true that civilizations without a word for blue couldn't even see blue - at a conscious level. They had the same hardware, but their software wasn't tuned to thinking about blue, and therefor they couldn't see it. 

Words enable thinking and communicating. Without the word blue, how would you describe the color? You might say "it's the color of the sky," but as the lovely children's book Sky Color demonstrates, the sky has colors across the spectrum. You might point to other blue things, but it turns out in ancient cultures basically there weren't any blue things. Blue is extremely rare in nature, and no-one is going to build something they don't have a concept of.


Concepts are powerful. Concepts embodied in a word, more-so.


Picking a Good Acronym

Really, we are talking about making up a good word or a good, new-use of a word for a concept. Acronyms work because they provide a built-in mnemonic for remembering them. I find the stickiest acronyms reuse existing words such that the other meanings of that word somehow reinforce the new concept.


Traits of a good acronym:
  • Pronounceable - if you want people to use it, they have to be able to say it
  • Real Word, preferably with related meaning - the stickiest acronyms use this (see above)
  • Fun or Funny - make it playful so people play with it - and start using it
  • Phonetic - if it isn't a real word, make sure it's a least phonetic. If someone hears it, they should be able to write it down without having it spelled out.
  • Short - shorter == stickier
  • Clear Expansion - the expansion should be clear and succinct. It should embody the essence of the new concept.
  • Try not to  Force Letters - sometimes the expansion is 'forced' to match the acronym. Letters are left out or added to make it work. The more forced, the less sticky. 

My Favorite Case Study


  • Real word
  • Super clear expansion
  • Real-world wet vs dry makes a nice analogy between code with and without repetition respectively.
  • When I first ran across DRY maybe 7 years ago, I went "Yeah!!! Someone summed up a vague concept in my head succinctly and clearly!" Ever since it's become my daily mantra and a significant influence in my ever-deepening understanding of programming.

My Acronyms


  • ZEN code has many traits in common with Zen-buddhism - serene, minimal
  • The expansion very precisely describes the programming pattern.
  • In both these ways and the fact it's pronounceable and spellable, it beats out YAGNI.

EVA - Essence Vs Artifact
  • Pronounceable, short, phonetic, though not a real word
  • Clear expansion
  • I find it fun and pleasant. Maybe I've seen WALLE too many times. I always hear his voice when I see the word.

POET - Principle of Exposure and Transparency
  • Real word. One might say good poetry is both clear and has depth. This concept is mostly about clarity, but the concept itself has a lot of depth. I know that's a little forced, but every synergy between the real-word and the concept gives the acronym lift.
  • I forced 1 letter - the 'of' is included, but the 'and' is not.
  • Including the word 'principle' could be considered another form of forcing. All these acronyms are in some form 'principles' - why is this one so special it needs to be included explicitly? Nothing. It just works!

NINO - Natural-In, Natural-Out
  • Pronounceable, short, phonetic
  • Expansion suggests a question - what is 'natural'? This is key to the concept - get thinking about how to make our UIs as natural as possible for humans. There is no definitive answer what that means.
  • Oh so much better than WYSIWYG as an acronym. 
  • The NINO concept is bigger - a superset of WYSIWYG.

WLC - Write Less Code
  • NOT pronounceable or phonetic - I hesitate using the acronym at all. However...
  • The expansion is awesome. It's super catchy and a hugely important concept. I use it all the time in my presentations. 
  • WLC just becomes a shorthand. I -never- attempt to pronounce the acronym. ('wulk'? - ick)

SOUPShowing Our Undies Programming
  • expansion is funny
  • real-word
  • real-soup is not a good thing when mixed with computers, and it isn't when mixed with code
  • The SOUP concept is a form of leaky-abstractions - and real soup can leak :). If you've used up 'your undies are showing' jokes, you might say to a coworker 'your SOUP is leaking.' It's a nice synergy.

Go!

Go MUYOA (Make Up Your Own Acronyms)! If you've got a concept you are revisiting regularly, try figuring out a way to capture it in a word. Who knows, it could catch on and the world could see blue for the first time!

No comments:

Post a Comment