Steve Jobs on man as a tool maker

Jason Kottke’s recent post The iPhone, an automobile for the mind, discusses the same Steve Jobs anecdote on man as a tool maker, that I used last week in Reset the Web. Jason points to a different—and much later—source of this story, illustrating how Steve Job’s ideas evolved as Apple developed.

My source was this video from 1980 which was posted as part of a Computer History Museum archive on Steve Jobs. I’m not sure who Steve is talking to in this presentation, but it feels like a local meetup somewhere in the valley. He arrives a bit late, complains about problems finding parking, then begins to describe the challenges of designing something completely new…all the while not really knowing what people will use it for.

This later interview is the one Jason pointed to. It’s an excerpt from the documentary Memory & Imagination. By this time, the bicycle story feels far more scripted.

I personally prefer the first video as Steve almost seemed to be thinking out loud…trying to explain (to the audience, and maybe to himself) why he felt the products Apple was building were so special, and why something truly remarkable would happen once everyone had one (…a computer that is…not a Mac :-P ).

Still, it must have been hard back then to truly grasp what might happen next.

Musing about the future is always tricky when you’re so embroiled in the present. In a recent interview, Kevin Kelly (founding editor of Wired) said that initially, people thought the web would be “like TV, but better”. Looking back, this seems quite naive but i’m not sure that much has changed. Even today, do we really know what the web will be going forward?

I increasingly feel that we may be stuck in somewhat of a nether world when it comes to the web. We know the web is important. We want all the stuff the web has been good for so far, but we also want the stuff we think it will be good for later (or have felt was missing so far). All the while, we still frequently disagree on what those things actually are (and can only even conceive of them based on mental models we currently have).

“We look at the present through a rear view mirror. We march backwards into the future.” —Marshall McLuhan

Meanwhile, (with or without us?) the web marches on.

We may not really know what the web will become, but i’m pretty sure it’s one of the most pervasive amplification tools man’s created to date…affecting just about every human activity we can think of (the good as well as the bad ones).

And with another two thirds of the planet still set to come on line, the web is really just getting started.

Nobody has any idea of what a new invention will really be good for. The crucial question is, what happens when everyone has one?” —Kevin Kelly, for the New York Times

The curious properties of software

Been thinking a lot lately about the need to focus, simplify, and devise useful and future-friendly efficiencies for the web.

A certain level of simplification (and certainly focus) makes good sense in all areas of product development. I recall bumping into an Apple poster a while back advertising their new OS with “…over 300 new features”. As a user, being faced with a number of this size made me nervous rather than happy.

Focussing is however far easier said than done…especially when faced with business imperatives, stockholder pressures, and the want/need to innovate (and do so before the other guy).

On that topic, I ran into this lovely passage (from a long-lost Scientific American article) which goes a good long way in explaining what’s going on:

“The software industry frustrates long-term investments by producing ever larger, slower programs that require ever larger, faster machines. At the March conference, Nathan Myhrvold [Microsoft's then vice president of applications and content] modestly proposed Nathan’s First Law: “Software is a gas,” he said. “It expands to fill its container.” In fact, that is more of a policy than a necessity. “After all,” he observed later with a laugh, “if we hadn’t brought your processor to its knees, why else would you get a new one?”

Why else indeed.

Myhrvold also goes on to say that: “In demos, the new technologies are inarguably coolCool is a powerful reason to spend money.”

Fifteen years later (the article is dated July 1997), little of this appears to have changed. Make of that what you will :-)

The blending of retail experiences

I’ve been fascinated lately by the impact always-on-and-in-your-pocket connectivity is having on shopping. Mobile shopping is transforming itself from a (presumed) on-the-go activity to one that can occur almost anywhere.

A recent Comscore study of smartphone owners revealed 56% had made mobile purchases at home. Another 42% had purchased items on their devices while out, (at a variety of places including schools, and restaurants, or at work) while 36% had purchased items on their mobile while inside a physical store.

UK shopping brand Tesco is now partnering with Samsung to take this a step further by launching a virtual pop-up grocery store in a Korean subway station. (You may also recall last year’s smaller, subway platform prototype).

Shoppers wander the physical aisles and add products to their virtual basket by scanning a QR code. Products are then delivered to their home.

The value for supermarkets is pretty obvious. No retail staff to pay, and an opportunity to store, pick and pack in the most cost-effective way possible. For users, the value is only evident if basic hygiene factors are accounted for.

  • Scanning a product should ideally indicate whether it is actually in stock at the warehouse (a feature that still eludes many online grocery shops).
  • You should be able to leave a comment for the packer (assuming the packer is human), for example regarding the ideal weight, or sell by date of perishable goods.
  • Using the app, you should be able to browse all information that would normally be included on the package. This would include product (marketing) descriptions, ingredients and nutritional information.
  • Oh and of course, you need to be in a city where there is network access on the subway. (Smart retailers will likely provide back-up wi-fi…just in case).

If they’re smart, Tesco would also link this service to the pre-existing ability to scan at home, and review past orders to pre-populate a cart. This would transform it from a single “do it now or miss it” activity, to a cumulative “do it whenever you think of it” thing.

Of course, an obvious missing aspect is still anything sensory. No more squeezing, smelling and inspecting fruit. Impulse buying may also be reduced as photographs yellow under fluorescent lighting, or simply because you can’t manipulate and otherwise play with the real thing.

Then again, people may bulk-buy, or pick up stuff they normally wouldn’t (it’s far easier to ignore that 1000 calorie tub of Häagen-Dazs if you can’t physically see it in your basket). Putting the store in the Subway may also capitalize on the well-known effects of grocery shopping while hungry!

So on the whole…not that different than online grocery shopping but with the ability to browse and wander (alone or with friends) which is admittedly very different (on a human scale) than punching a product name into a search field.

Thoughts on technology

I was going to write something about user agent strings but have no time this week for the inevitably polarized discussion that will ensue. :-P

So i’ll instead leave you with this fairly apt quote by Noam Chomsky.

“Technology is basically neutral. It’s kind of like a hammer. The hammer doesn’t care whether you use it to build a house, or whether a torturer uses it to crush somebody’s skull.”

And because nothing is ever black and white, i’ll also include the first tenet in Melvin Kranzberg’s six laws of technology.

“Technology is neither good nor bad; nor is it neutral.”

Not in my best interest

The new iPad is so far less than thrilling.

I’m not saying that as a geek (or fanboy), but as a customer.

The new iPad certainly isn’t cheap. The screen is of course gorgeous, but good designers know that perfection isn’t always what a customer is after. (Or as Peter Drucker famously put it… “The customer rarely buys what the company thinks it sells him.”).

Apple has just released a device that makes them look good (or at the very least clever), but at the expense of everyone else (including the customer). Sure, the fonts are so crisp they could cut glass, but absolutely everything else on screen is fuzzy.

(Everything except Apple’s own site where for possibly the first time ever, they’ve acknowledged that the web is now multi-context, and have taken the time to swap some images. Pigs may however fly before Apple honours us with a small-screen and bandwidth optimised experience).

The past week has been full of frantic tweets, articles and GitHub commits aiming to “solve the retina image problem” that the new iPad has thrust upon us. (And matters are not much rosier on the native app side of the world.)

The optimist in me thinks this episode may finally compel the standards bodies to properly discuss a multi-context image tag. The pessimist in me sees the second coming of the Y2K bug, as we all scurry around to solve a problem that could have been avoided through pragmatism and good design.

In this case, the pragmatism would have been needed on Apple’s part.

Everyone already loves the iPad. They’ve already sold more tablets than anyone else, and competitors are still struggling to catch up.

Releasing a retina-display version hasn’t really improved the device (which is now also noticeably heavier and feels awkwardly out of balance). What it’s merely done is create hype that no one (including Apple) actually needed.

What I would have loved to see from them is an admission that releasing a retina display iPad was not in anyone’s best interest at the moment. They could have even (as they do so well…) spun a story around that fact; explaining that in matters of user experience the whole is greater than the sum of its parts.

This quote by Maya Angelou sums it up very well for me (the customer…not the web designer):

“I’ve learned that people will forget what you said, people will forget what you did, but people will never forget how you made them feel.”

The iPad used to make me feel happy. The new iPad no longer does. 

—————————————-

Update: This post is certainly generating some vibrant conversations on Twitter :-)

What i’m first finding interesting is that it’s really quite hard to be a user, designer and developer at the same time. There is a clear value in innovating, but no technology operates in a vacuum, and once the technology is there, it’s often the social change we struggle with the most.

Many people have responded that Apple is simply innovating, and that in the end, we will all be better for it. And on the one hand, I don’t disagree. I just find it sad that with fast release cycles and the need to compete, this innovation often occurs at the expense of users (and of course other times it doesn’t…hopefully it all balances out).

Bryan also mentioned something interesting after chatting with a few folks on Twitter. If Apple really wanted to use this as an opportunity to innovate, they would have also included their version (or vision?) of how to gracefully solve the multi-context image problem (and maybe even the bandwidth detection problem) in the latest version of Safari and iOS. There’s nothing like a new bit of implemented ‘spec’ to jumpstart progress.

Responsiveness is a characteristic

A few days back Luke Wroblewski posted an excellent article outlining the pros and cons of Responsive design, standalone device experiences, and RESS (Responsive Web with Server Side Components).

This much needed (and long overdue) conversation is a bit like the web vs native debate. There is no single correct answer, and the choice you make will depend on a host of factors, including budget, content type, audience, usage patterns and overall business goals.

What was not implicitly said in Luke’s article (and I think bears discussion) is that choosing responsiveness, as a characteristic shouldn’t necessarily define the wider implementation approach. Device Experiences (i.e. standalone sites, aimed at a group of devices) can also be responsive, providing the flexibility to support a much wider range of devices. While this on the one hand seems obvious, far too many sites still design either a single width or generically stretchy web site.

Aligning business models with user journeys

For Netflix, Amazon, the BBC and other digital-first (or digital-mostly) companies, the need for device-led experiences may be quite clear. With business models that rely on digital (discovery, purchase, delivery, and consumption), the choice of device cannot help but intimately affect the experience. These companies also understand that—especially in this day and age, that media consumption is rarely linear. Ensuring the best experience regardless of the device (or stage in the consumption journey) is therefore critical to their business.

For a whole host of other organizations (e.g. government and municipal services, educational institutions, manufacturers of physical products, experience and destination companies) the correlation between device class and engagement may be far more nebulous. It may therefore pay to first prioritize access and usability….and let usage inform what future “best experience” groupings might consist of. (Worth noting that in some cases, the best experience may have nothing to do with the web at all).

Standalone…but responsive

For these types of organizations, a standalone, yet responsive site could be an ideal strategy. A strategy that isn’t specifically defined by a type of device (smartphone, tablet, desktop, TV, automotive) but by the growing need to enable pathways between our physical and digital experiences.

Responsive sites can be fantastically versatile, especially when they are conceived—and in this case even remain—mobile first (…or mobile-only). A smartphone appropriate layout can easily morph into a tablet appropriate one—all the while remaining lightweight, as the site was conceived that way to begin with (…a cheeky but sometimes viable way to side-step the responsive image problem).

Choosing a responsive design also acknowledges that device groupings are (and likely  will remain) messy and prone to interpretation. Is a (physically) large, handheld, call-enabled device with a resolution around 1280 x 800 considered a phone or tablet? Does the essence of the device somehow change once it’s paired with a TV, and interacted with from across the room? Or maybe paired with a keyboard, and interacted with for much longer sessions? And how should we consider the emerging class of mini-computers, designed to work with whatever screen and interaction mechanism you plug them into?

Mobile is an opportunity to reboot

Developing a standalone (but responsive site) provides an ideal opportunity for learning and experimentation. It enables you to re-focus your content, lighten and streamline your experience, and deliver real user value—without the (often all too real) burden of re-structuring your entire legacy web site.

Besides…a funny thing tends to happens when you engage in a project that compels you to work both responsively, and mobile-first. Somewhere along the way, it changes the way you think—all too often illustrating how out of touch that (legacy) thinking was to begin with. It also sets you down the path to change…but does so gradually, through engagement (and discovery), rather than dogma.

(A bit like that old saying about teaching a man to fish…)

Diversity is not a bug

I’ve been super impressed by the Android devices announced at MWC this week. There’s some nice variety, and OEMs are (finally!!) starting to experiment with hardware again. (If you have no idea what I mean by ‘again’, have a look at the occasionally odd yet lovely variety of shapes and styles produced by Nokia between 2003 and 2008…now replaced by thousands of nondescript glowing rectangles).

Sure many OEMs still release devices that are identical to the next except that theirs happens to be blue, or has a different style of menu, or has that thing that they call a feature (and we call a bug) but to be honest, we shouldn’t be that surprised. If we truly thought we lived in a world where OEMs didn’t release such a variety of barely differentiated products, we also wouldn’t live in a world with twenty barely differentiated versions of toothpaste or jeans or boy bands.

So I prefer to look at it slightly differently.

We now have a ‘normal’, vibrant mature market (…and have only ourselves to blame).

What we also have is a good, stable, well iterated OS, with a good variety of licensees (some of which are dreaming up some pretty neat and useful stuff). And with close to 850,000 activations a day, we have an estimated 300 million devices of all sorts in the marketplace.

So can we please stop drooling every time Apple burps and start accepting that diversity is what we’ve got.

Diversity is not a bug…it’s an opportunity.

(And if you don’t believe me, have a boo at this lovely little Ice Cream Sandwich ‘device’).

Mobile users don’t do that

The conversation often starts like this…

“Mobile users won’t want to do that, they’re ‘on the go’ and will be in a hurry or want  a quick distraction.”

This is true, except when it’s not.

Study after study reveals people use their mobile at home, while watching TV. People also use mobile devices for hours while waiting on trains and at airports. For each user who is in a hurry there will be another who stares intently at their device for 20-30 minute stints. If that devices happens to be a tablet, they may use it for even longer periods. And while many users will simply be consuming content, others will be shopping, banking, or performing other very specific tasks.

“Ok, but some mobile users will still be in a hurry. Shouldn’t we cater to them? Make things extra simple for them?”

Agreed. Mobile users will curse up and down if they can’t do that really useful, common, important thing really quickly. Any chance you have to focus and trim copy, streamline interactions, or minimise data input should be considered.

But why exactly are we only fixing things for mobile users?

Desktop users may have a bit more time on their hands, but does it mean we should waste it with happy talk, redundant data entry, or poorly optimised interactions? If I had a penny for the number of times I’ve had to input Edinburgh, choose United Kingdom or specify today’s date in a menu I’d be rich by now. Modern browsers make it much simpler to implement intelligent defaults. Why should it only be a mobile thing?

“Ok. But we still can’t implement all features for small screens. Some things are just too complicated.” 

Agreed. Completing a life insurance form on a mobile (or BTW on the desktop and on paper) is really complicated. That doesn’t mean people won’t try it, and even that is besides the point.

Let’s look at it a bit differently…

First off, what is the traffic for this feature on the desktop?

If traffic (and completion rates) are high, shouldn’t you seriously consider including it in the mobile roadmap, even if it will be hard to implement (or may involve additional testing and come in a later phase)?

And if the traffic is low, why is that? Maybe the feature isn’t actually needed, or maybe it’s too hard to use (or find) on the desktop as well.

Kayak recently tweaked their desktop site to bring it in line with the simplicity of their mobile offering. One of the steps they took was to remove rarely used features, to better focus on optimising higher traffic ones.

Also worth considering that people who suffer through impossibly complex (or broken) features on a tiny screen are either really desperate, or are power users who simply want to get stuff done…wherever they happen to be at the time. As acquisition typically costs much more than retention, are these really the people you want to disappoint?

And don’t forget, some of these devices are also phones :-)

Sometimes a well placed voice call or SMS can save the day. Yell.com (and several travel sites) recently implemented a “Call Us” feature for those times when despite their best efforts, what a user wants to do is just too complicated (or maybe not yet supported). If a user is about to bail, the ‘best UX’ is one that provides them with a handy one-click life raft.

PS – You will lose points however for displaying a “Call Us” button on a device that can’t actually place a call. If you provide a life raft, be sure it actually floats.

A plea for progressive enhancement

This is vitally important people so listen up. The web now connects a third of our planet. Over 1.2 billion people [1] use the web on devices, and this number is rising fast. Mobile already amounts to close to 6.5% of web traffic worldwide, and large sites such as Facebook and YouTube routinely report mobile traffic of at least 30%. By 2015, the ITU predicts mobile traffic will exceed desktop traffic and the ‘mobile-mostly’ group already make up a staggering 20% of users in the US and UK.

For this ubiquity to truly benefit all of us (not just those of us with a high income, or the latest phone) we have to start building sites using solid, future friendly principles such as progressive enhancement…not just when it’s handy or simple, but all the time. Here’s a very timely example of why…

Last night Brad Frost posted a picture of the lovely sliding side menu contraption on Barack Obama’s new responsive campaign site. As shown in the image below, It looked quite nifty. You tap on the icon next to the word Menu, and the menu slides open from the left hand side. So I decided to try it out on my iPhone 4.

And the menu failed. Never even opened. Suddenly, the site was without navigation…at all.

On a hunch, I tried it on a handful of popular devices. The results were pretty devastating. These are the browsers (and devices) where the menu worked as expected.

  • Galaxy Nexus (hot off the assembly line last week with Ice Cream Sandwich and a mobile version of Chrome)
  • iPhone 4 (with iOS 5)

These are the ones where it didn’t.

  • iPhone 4 (with iOS 4.3.5…the prior version of iOS)
  • iPod Touch (still very popular, especially with youth)
  • Nexus One (old but top of the line Google reference device in its day)
  • Nokia Lumia 800 (brand new Windows Phone 7 device with Internet Explorer 9)
  • HTC ChaCha (popular QWERTY phone with dedicated Facebook button and Android 2.3.3 )
  • HTC Wildfire (very popular mid-range phone with Android 2.3.3)
  • Huawei Blaze (brand new, £50 phone with Android 2.3.5 )
  • Galaxy SII (top of the line device with Android 2.2.3)
  • Galaxy Mini (cheap, low-spec phone with Android 2.2.1 )
  • Blackberry 9810 Torch (one of their newest devices with WebKit-rich Browser 7.0)
  • Blackberry 9300 (a slightly older 6.0 device with a WebKit browser)
  • Galaxy Tab 7″ (first generation tablet with Android 2.3)
  • Galaxy Tab 10″ (second generation tablet withAndroid 2.3)
  • Amazon Kindle Fire (proxied Amazon Silk browser)

These devices are pretty new. With the exception of the Nexus One and the older Galaxy Tab, all these devices are for sale in the UK right now. Most are also for sale in the US. And at least four of these are top of the line, flagship devices for their brand. And to be clear, the menu wasn’t merely a bit flaky on these devices. It never opened at all (and this is a big, presumably important menu…with 20 sub-navigation items).

On all devices except the Galaxy Nexus, Kindle Fire, and 10″ Tab, at least a third of the content also loaded offscreen, resulting in a perpetual horizontal scroll. To make matters worse, the viewport meta tag had been set to ‘maximum-scale=1′ [2], preventing most browsers (and therefore users) from zooming to temporarily rectify the horizontal scroll issue.

We also tried the site on some lower end devices (70% of the US and about half the UK still use feature phones) but gave up. The site was too heavy and complex to render gracefully on many of these devices. (And incidentally didn’t load at all past the ‘splash page’ using Opera Mini on the iPhone).

This on a site whose goal was to reach as many Americans as possible, regardless of age or income level. As it stands the site only appears suitable for the Google staff who received a Galaxy Nexus for Christmas, and the maybe 5% [3] of Americans who own (and have recently updated) their iPhone.

I can’t speak to exactly what’s causing the menu to fail, but I can take a pretty good guess. I’m also fairly sure that a progressive enhancement approach (combined with a good dose of testing) would have solved (and certainly uncovered) all the problems we encountered. As a matter of fact, we’ve recently been working on a (still to be launched) client project with a similar (but far simpler) collapsible, sliding menu and went to great pains to ensure things like this didn’t happen.

First, we built the menu to fail gracefully. In this case, it meant building a menu that was open by default, and only closed once the page had loaded. If the JavaScript failed, the menu would simply never close. It might not look terribly graceful, but it would still be fully usable (to navigate…not to slide open and shut triggering fancy animations…that’s not the menu’s actual job.)

Secondly, we built the menu using ‘normal’ JavaScript rather than jQuery, as we’ve found jQuery still doesn’t work reliably across the devices we need to support [4]. We also tested the JavaScript based functionality all the way back to dinky, underpowered little phones like the Nokia N95. This served as a reality check and helped further minimise our points of failure. If it works on a 5 year old browser, it’s considerably less likely to fail on today’s devices.

And finally, we identified browsers with inadequate levels of JavaScript or DOM manipulation support and served an entirely different menu to this group. We swapped this out server side to ensure these devices didn’t receive the JavaScript at all, and newer devices didn’t have the client-side burden of negotiating the switch from one menu to the other. Incidentally, we also built the site ‘mobile-first’ (i.e. for the simplest device first…and no, that device is not the iPhone), so the ‘fancy’ menu doesn’t even kick in until you reach a screen size of 320 px (regardless of whether JavaScript may be supported). This may penalise the tiny number of devices that happen to be below 320 px in width, and have awesome JavaScript, but also minimises the chance that weaker, older devices will try to load the menu accidentally.

Despite all this, we still had issues, namely with general DOM manipulation flakiness and inconsistencies caused by device-specific events such as zooming, reorientation, or adjustment of Zoom settings (especially on Android…and especially on HTC). For this reason, we found that the calculations required to correctly trigger and execute the animation sometimes failed, resulting in an only partially open menu. So in the end, we removed the animation altogether (especially as this problem wasn’t limited to lower-end devices so it wasn’t possible to simply conditionally load the animation based on say…the browser version).

A final problem was the visual disruption caused by a menu that initially loads open, but then quickly closes. To be honest, we still haven’t decided what to do about this. This is a site with a strong accessibility (as in access…) mandate so the idea of shipping a menu that may sometimes never open doesn’t sit well with any of us. So we’re still discussing it. Given this site’s small proportion of traffic from low-end devices, and the measures we’ve taken to ensure the menu will work most of the time, we may still choose to chance it and go the other way.

These are complex problems. Problems that cause us to examine the true goals of what we’re building and very often greatly test our assumptions around the value of design. Even seemingly inconsequential decisions such as constraining the zoom level can have unintended consequences. But progressive enhancement doesn’t just happen. It needs to be planned from the start, then iterated and carefully discussed when things go wrong. And on mobile, the only way to know that things have gone wrong is to test on actual devices. Given that a good 80% of the Android devices we tested displayed content off-screen, we’d be surprised if barackobama.com had been tested on Android at all.

We have an opportunity to make the mobile web a million times more useful and relevant than the desktop web has been. The failure of the Obama site was not in the use of new techniques like responsive design, it was in forgetting that older principles and techniques still have an important role to play in building a better web. If anything, they are more important than ever before. Without progressive enhancement, responsive design is simply a site that looks pretty when you resize your desktop browser. With progressive enhancement, the mobile web truly becomes a tool, capable of reaching and connecting all of us. Which is it going to be?

—————-

[Update Jan 6: I'm happy to report that over the past 24 hours, the site has improved. The animated transition on the menu appears to have been removed. The menu now opens intermittently on my iPhone but during this time, the site is extremely sluggish. On the Android (we only re-tested 3-4 devices), as of this morning the menu opens, but the incorrect viewport is still a problem and now also impacts the menu which on some devices opens partially off-screen. Oddly, on initial load, the viewport is now correct, but within a few seconds it snaps into the wrong state. We'll try testing again next week.]

—————-

[1] A statistic from analyst Tomi Ahonen’s awesomely useful 2011 Phone Book.

[2] We’ve been getting reports of some people not seeing the max-scale value in the meta tag so did some further snooping. See my comments to Nicolas Gallagher below for details.

[3] 5% is an educated guess. Current Nielsen figures show US smartphone penetration at 38%. The iPhone is 28% of that 38%. The number of people with an iOS 5 capable iPhone is smaller, and the number who will have upgraded is smaller still.

[4] See my comments to Scott Jehl for additional context regarding use of on jQuery Core on mobile.

On designing content-out (a response to Zeldman and others)

(…reposted from a lengthy comment on Zeldman’s blog…)

“I love “content-out” as a strategy…setting a series of breakpoints based on ems (based in turn on font size) could create lovely context-based layouts that move fluidly from one state to another. They won’t match with device sizes but they won’t be trying to. There is a lot to think about and play with there.”

- Zeldman, State of the Web: Of apps, devices and breakpoints

There IS a lot to think about and designing content-out is quite liberating, but it’s also important to remember why we’re doing this.

Designing content-out works quite well. We’ve used this approach for a while now and have found that if there are wonky/awkward spots when you test by resizing the screen on the desktop, they will in most cases end up just as wonky on devices. An approach that is working quite well for us at the moment is to design using major and minor breakpoints. (More of this in our Pragmatic Responsive Design presentation ).

The major breakpoints create the broad stroke changes that are required when moving from the small(er) screen (‘mobile’), to a much wider one (often a tablet-like device), to an even wider one (often a desktop but increasingly there can be higher breakpoints for TVs etc). These major breakpoints are set using media queries in the document head. The minor breakpoints live within those 2-4 style sheets and provide (mostly) the tweaks needed to remove awkwardness. This in effect creates media queries within media queries and provides huge flexibility while keeping it clear why each breakpoint has been set.

As noted by others in the comments to Jeffrey’s post, these ‘tweaks’ most often include adjustments in font-size, line length, line height, gutters, padding and other elements that make the layout feel more balanced and improve legibility. Other useful tweaks are adjustments of the overall font size to ensure button/menu touch targets and form elements are large enough to manipulate on touch screens. If you’re going as high as TVs, text often needs to be enlarged quite a bit at that size, so changes don’t always follow a predictable upwards or downwards path.

Then you move on to final pragmatic tweaks to ensure nothing is wonky on key devices. (Some people would say you should do this first but I think this just encourages teams to think of it as a ‘device-x site’.) Most sites fall into an 80/20 pattern where you can easily identify the top devices (often a cluster of 10-15 devices which almost always include the iPhone and iPad.) Be mindful however of the remaining 20% which can include 20-30 (+) devices and may easily amount to tens of thousands of users a month.

So while content should always guide the design (which also helps prioritize useful stuff like document flow, markup structure, and information design), the whole process works best as a balancing act between the opportunities and constraints provided by the medium.

When all is said and done, the reason we’re even doing this is because of device diversity, which will likely not go away. We are well on the way to standardizing around WebKit but even if screen sizes also standardize (…big if…more on this in a later post), a device will always remain way more than just a screen size combined with a rendering layer. The problem with the (exclusive use of a) content-out approach is that it may be seen as an excuse for many not to think about the devices at all. As it stands, very few people currently test on actual devices (on actual 2G, 3G, etc networks). There are many reasons for this (cost being only one of them) but as an industry, we’re going to have to move past this somehow.

Testing on devices reveals all sorts of stuff that simply adjusting content never will, and that you won’t see by simply testing by resizing a desktop browser.

1. Without device tests you know nothing of a design’s performance. Most modern CSS effects and techniques still work quite poorly on devices. Web fonts, CSS drop shadows, CSS gradients, CSS animations regularly grind sites to a halt (quite literally…that’s if they don’t crash the browser altogether). Testing on devices provides a reality check of just how far you can push the design and what range of devices it will work on. Sure some of these issues will improve due to better hardware but PCs are pretty advanced and we’re still building poorly performing desktop sites…i’d love to see those go away as well).

2. Device capabilities (e.g. actual capabilities vs the boolean ‘pass’ the browser returns in a JavaScript test) can also only be tested on an actual device. Whether you choose breakpoints based on ‘popular’ screen sizes or not, you will probably end up compelled to use a 320px breakpoint simply because of the iPhone. At this size also sit older (often landscape orientation) BlackBerry devices, many Nokia feature phones and many brand new small, cheap Androids. This throws all sorts of varying capabilities into the mix at what appears to be a very safe, common breakpoint. Eventually some of these devices will go away but if you believe screen sizes will standardize, then it follows that within those common screen sizes there will always be some bleeding edge AND some older or ‘good-enough’ devices.

3. Then comes form factor. It often feels as if new devices only support touch, but at least 30% of smartphones (and closer to 90% of feature phones) still have a keyboard (while others are both touch and type). There is no sign of this changing soon as a touchscreen greatly impacts a device’s bill of materials and a segment of users still prefer physical keys. The presence of any indirect manipulation control (be it keyboard, trackball, arrow keys etc) impacts how interactive elements behave and should be designed.

4. Pixel density now ranges from about 150 to about 300 ppi. That’s a massive crazy difference. Testing on a desktop reveals nothing of this. Many OEMs have reset the browser viewport to preserve legibility but you still end up with all sorts of differences that should be considered in the design process.

5. And finally comes the impact of the network. Latency is obviously a problem, often due to poor connectivity – but factors such as large numbers of concurrent requests from 3rd party services (Facebook widgets, hosted fonts etc) will also impact performance. Of course content itself may also be modified on many networks by server-side ‘tweaks’ and adaptations due to proxies, transcoders and related ‘optimisers’ which are all beyond your control.

Just to be clear, content-out design makes a lot of sense, but we’re going to need a mixture of content, device, and capability-based breakpoints going forward. The only way to develop a good understanding of these factors is to truly begin experimenting with devices, just as we experiment with design.

These devices (and ones we haven’t thought of yet) aren’t just a temporary diversion, they are the new ingredients of the web just as much as HTML5 or jQuery.