Design Thinking

On our work Slack today, someone linked this Wired article:

IBM’s Got a Plan to Bring Design Thinking to Big Business

To which I quickly replied with:


Anyone who knows me will know that I’m always crusading against saying words that don’t mean real things, and buzzwords. Design Thinking, in my mind is just thinking! Maybe that’s because I’m already a designer, but I feel like anyone can bring this type of thinking about a problem if they simply step outside of their typical problems and concerns of the day and dedicate some thoughtful time to an issue.

Later, someone shared this wonderful, 4 year old diatribe about design thinking by Dan Saffer.

Love. It.

On a more personal note, I suppose a lot of this comes from my perception that I’m not doing anything magical or special. I simply get paid to focus on certain things, and people in these “big corporations” we nebulously try to understand are just other people focusing on other things. I have no problem (and welcome) the inclusion of designers to help solve a problem. I also think that a business person can do a lot of this “design thinking” without involving a designer. You have to be willing to put your train on hold, switch tracks, and dedicate yourself to that problem. I fear the most toxic outcome of sharing vague words about an entire profession is to miss the point, and in some cases, acquire a design firm so that you have “in-house designers” to add value to your company – this won’t work.

Musings, writing

Crème of Abstraction Layers

Evolution of content publishing online

When I slow down to look at my interaction with most web sites, I notice an incongruity for accomplishing the same end goal: publishing.

While different sites offer different levels of sophistication, I’ve noticed that creating or editing content on the modern web is bubbling-up closer to the surface. I liken this to term as used in Computer Science: abstraction.

At first, you had to write binary that worked directly with the processor. Then they created a language that allowed you to write logic gates which were converted to binary. The higher you get, the more programming becomes natural to humans.

Nick Nelson, Web Developer

As Nick sums it up, there is a pretty deep (and technical) background to programming that few of us think of today — even the programmers. Even though a well-versed developer that works in an Object Oriented language might know the logic behind the code, we have long since been removed from considering logic gates and binary code.

Translating this to web development, the abstraction layers could go as far as the binary code, but the fundamental difference between software and what we predominantly see on the web seems to start with HTML. Taking human steps back from HTML, by my count, we are just now seeing mainstream implementation of a fourth layer of abstraction.



Layer One

HTML and other languages

It used to be that you had to write everything in the language our browsers speak. Yes, we still build websites like this, but you don’t have to know this language to write a blog or update your status. I consider HTML, CSS, and other browser languages to be the first or bottom layer of abstraction on the web. Kids used to learn HTML if they wanted their MySpace to look a certain way. Later, WordPress says, “no more!” Enter the second layer of abstraction.

Layer Two

Admin panels and WYSIWYG

WYSIWYG editor tool for the Blogger CMS

WYSIWYG editor tool for the Blogger CMS

WYSIWYG (what you see is what you get) has been around before the internet, letting you select a different font style or change your margins, colors, and other preferences. Its implementation in Content Management Systems (CMS) brings about the second layer of abstraction. I’m sure you can count plain text input somewhere in earlier CMS platforms, but this is the more common method of creating content on the Web. Blogger might have been the first prolific example (above), but I haven’t spent enough time Googling to tell you for sure.

To be true to the definition of abstraction this comparison should only be made from language-to-language. In that regard, languages like SASS, LESS, and the like are another layer of abstraction on top of CSS. I’m using abstraction liberally to talk about the mode of interaction you have with a computer when creating content online. In that regard, SASS and CSS are in the same bucket of “manually writing out instructions for the browser.”

An important element of this second layer of abstraction is not only the WYSIWYG, but its placement within an administrator’s section of the website. On Blogger, WordPress, or even the relatively modern Tumblr, you must sign in and access a different side of the website to enter new content and publish.

Tumblr’s Content Entry, circa 2013

Tumblr’s Content Entry, circa 2013

What makes Tumblr interesting is that the primary experience of viewing and interacting with other posts within the community takes place in the same logged-in state / administrator view.

Other services fall elsewhere in the spectrum of a definitive edit mode and read mode. WordPress for example has a completely different experience in the edit mode or administrator side of the site, whereas Flickr was one of the first to blur the line and display the same interface for editing as reading — with minor differences when clicking on things.

Wordpress Content Entry

WordPress Content Entry

Flickr Edit in Place Fields. Konigi, 2008

Flickr Edit in Place Fields. Konigi, 2008

It seems that in the development of a new content platform, there’s a defining choice whether to embrace the Content Management System (CMS) or to try and hide it as much as possible, creating the illusion that your draft could just as well be live, published content. This design decision is what carries some products from the Second Layer of abstraction and the Third Layer of Abstraction, where creating and reading content begin to merge.

Layer Three

Always logged-in + squishy CMS

Flickr, circa 2013

Flickr, circa 2013

As you can see above, Flickr has made quite a few changes over the years and I think it’s an excellent example of a third layer of abstraction to creating content online. Yes, there’s a smaller gap between this layer and the second than there was between the first two, but it’s distinct enough to deserve recognition.

In the Flickr example, people are still interacting with a CMS and they are logged in as an “administrator” of their content. What is significant however, is that our identities online have become more solidified and with a more liberal use of browser cookies, we are almost always identified when walking in to a website we commonly use. For example, WordPress, despite its many improvements, will still ask you to sign in to access the administrator part of your blog; whereas Facebook, Flickr, Medium, and many others will remember you, and what’s more: the main mode of interacting with those sites (communities really) is within the logged-in state.

As we lean toward an always logged-in state by default, the CMS necessarily has merged with the published content. Even when interacting with the CMS, it has become standard to do the composing or editing in the same place you’re viewing other content. When making a Facebook status, your browser doesn’t ask you to leave the newsfeed. When publishing a tweet, your browser no longer requires you to refresh the page to view that content. Overall, there a higher sophistication of Front-End web development being employed that makes these CMS interactions quite “squishy” compared to the very distinct moments you will have with a WordPress CMS and reading the blog, for example.

Sitting here in 2015, this doesn’t sound like much of a revelation. My apologies if I didn’t warn you ahead of time, but I don’t see myself as a visionary. I just think its important to document what we see.

Layer Four

Collaborative content

If I am to follow this winding definition of creating content and getting further away from complying with computers to get things done, then the last layer as I see it must be collaborative documents. Hear me out:

  1. Writing code – You’re using HTML, SASS, anything that’s meant for a browser and not a human.
  2. WYSIWYG / Hard CMS – You’re filling in text boxes, clicking formatting buttons, previewing, publishing, and then going somewhere else to see how it looks.
  3. Always logged-in / Squishy CMS – You don’t have to go anywhere else when finished creating or editing content. The line between browsing the web and composing has been blurred, but there is still a very strong line between you and your readers: the save/post/publish button.
  4. Collaborative content – In this state, the CMS is the viewing platform and composing platform at the same time. There’s no line between browsing and composing, nor is there a line between you and your readers:
Google Docs

Google Docs

I think where this notion of the Fourth Layer feels a bit forced is that it’s not a typical use case. Collaborative tools such as Google Docs, Dropbox, Box, and the like are associated with professional use only, and even in a professional setting they are not the norm.

What’s interesting to me however, is a hypothetical type of social media where that line between author and reader is selectively removed. Let’s take Facebook as an easy target. Imagine if you didn’t have to click the Post button on a status.

Oh wow Rob, that would make my life 9,000 times easier!

Yeah, I thought as much. It might even do more harm than good.

Side-note: isn’t there some publication that uses data Facebook has on what people draft as a status update versus what people actually publish?

I think it would be fun in some safe spaces, such as a curated group of your best friends where you could post content live and anyone that happens to be on the page at the same time can be drawn into your activity and then instantly (or simultaneously) begin to respond/react/build on what you’re putting out there.


Okay, so let’s back away from the Facebook example a bit. I’m getting very specific just to try to explore what using the web would feel like if we managed to abstract ourselves just a bit more from the already ‘squishy’ CMS. Perhaps there will always be a line, a very minimum confirmation moment when an author does acknowledge something will be born into the Internet or not.

I think this depends on the concept of the web for most people. If you imagine it’s more akin to a book or newsletter than a dinner conversation or phone call, then yes, there will always be an interaction with the machine no matter how minimal. If you’re of the latter opinion however, then maybe at some point all lines will dissolve and we interact with the web as we do in person – maybe that leads to more explaining, and less editing, but that’s a whole other can of worms.


I didn’t want to get too technical while exploring these different ways of creating content online, but I’d like to acknowledge that these layers of abstraction do not imply that we’re detaching from machines, markup languages, or programming of any sort. If anything, a greater layer of abstraction requires more sophisticated code to support such an elegant interface on the outside.

Good design should not aspire to rendering a complicated system into a seamless one; on the contrary, I hope we continue to focus our attention to the seams and learn how to best mold them to fit our needs.*

We used to log in to create blog posts and that was a necessity for security and identifying the author. Now we are logged in everywhere, for social reasons, for our own sense of digital identity.

Some Links:
* I’d love to take credit for such an intelligent-sounding stance on design, but I first read about it here: Matthew Chalmers (2003)

Most interesting (recent) read

I haven’t posted here much, and that’s basically because I’m lazy. I’m still here, though!

Quickly now, I’d like to share an article that – in my opinion – has a lot of meat, and all of it is interesting, if you’re a designer.

Chinese Mobile App UI Trends

By Dan Grover

Some highlights include:
Chinese culture doesn’t make a big deal of meeting strangers nearby through social apps.
CAPTCHA utilized on login screens (not just signup flows).
People really do use QR codes!
Moments – Just scroll to this part. I really dig the philosophy.

Musings, Reblog

Placeholder Content

I see it once in a while (latest Facebook update for example), but it’s not very common that someone has clearly defined placeholder content that doesn’t look like generic grey filler. Sonia Rentsch’s site immediately loads with geometric placeholders in the same color scheme as the rest of the site. In fact, from a first impression I would say that this not-so-subtle graphic element really ties the whole site together. Wink, movie reference, wink.

Drag the divider thingy to compare the two screenshots. Or visit the site. Whatever.

Reblog, Wireframes

dialog box wisdom
Out of context, some of these one-liners you’ve probably seen in a dialog box have a deeper meaning. The last one is an honorable mention; a classic, non-tech artifact.

Everything not saved will be lost.
Nintendo “Quit Screen” message

Accept Change
Microsoft Word

Wait some time and then reconnect
Canon webcam

Remove all attachments
Microsoft Outlook

Make sure your own mask is secure before assisting others
Airplane safety card

I’m sure you can google for plenty more, but these were my favorites.

Dialog Box Wisdom


Form field patterns for email address

Look, a post about UX! This will be quick.

I’m surprised that I haven’t seen many design patterns on sign-in fields and how to make them as fast as possible. Yes, I’ve seen a few design examples, but no patterns that suggest innovation.

Lo and behold, hidden in the rough, the real estate app Trulia has the best email field I’ve ever seen! No comment on the rest of the app.

The second best has been the Belly iPad app (in-store, not consumer facing). They include an extra row below the iPad keyboard with buttons for common e-mail domains:

belly ipad keyboard

When I first saw that I thought it was incredibly clever. Ever since I’ve noticed the common domain suffixes on the iOS keyboard while holding down the [.com] key for certain inputs, I’ve been expecting Apple to integrate a similar email domain shortcut with the [@] key.

My takeaway

Why not use this? I can’t think of a down-side.

Since they’re using form field input masks (in a clever, auto-complete kind of way) it’s not destructive or inhibiting user input. If your domain is not appearing in the masked (grey) suggestion, then simply keep typing the full address.

If your email is:
Then you can stop at: Name@g

If your email is:
Then you’ll keep typing… (standard everywhere else).

UX is about making life easier for people, not necessarily solving problems. Yes, you make life easier by solving problems, but one solution will rarely fit all cases. Aim for the majority, and if you can design in such a way that the minority aren’t negatively impacted by the design, you get major bonus points.

+2 points to you, Trulia. You go Trulia!