In 2008, I sat gobsmacked in Web 2.0 Expo session. The topic of M. Jackson Wilkinson‘s presentation was “Design and User Experience in the Agile Process“, and I literally couldn’t imagine designing that way.
Fast forward seven years, add responsive design to the mix, and I can no longer imagine designing any other way. Responsive Design Sprints are key to our process.
Why agile for design?
Our path to agile for design started with moving to agile for development. Lyza and Megan spearheaded a move to agile development a few years ago and that change influenced the way we looked at projects.
Because of our success using agile for development, we were primed to try it when responsive design broke our existing design process.
We’ve found that agile design is ideally suited for designing responsive patterns. It allows us to focus on small pieces of a design and iterate on them quickly.
What is a Responsive Design Sprint?
Most of the time when people talk about design sprints, they’re referring to product design sprints. This is the process that Google Ventures, our friends at Fresh Tilled Soil and others have developed and promoted as a way to quickly validate product design and direction.
Thoughtbot’s Product Design Sprint Phases
Product design sprints are an exceptionally useful tool. The phases in our sprints have some similar characteristics—you’ll see parallels to the Understand, Diverge and Prototype phases in particular.
However, Responsive Design Sprints are decidedly different in what they’re trying to accomplish and diverge from Product Design Sprints in some specific ways.
Our first step when planning a project is to break the site down into the patterns—from the lowest level to higher-level components—that we need to design.
This is our starting position for each sprint, but because we’re working in an agile fashion, we’re flexible and can change what patterns are being worked on. We can also spend more time on patterns or bring patterns in from later sprints if we’re ahead of our plan.
Before each two-week sprint, we collaborate with our clients to figure out what patterns will be covered in the upcoming sprint. This not only allows us to confirm that our priorities are correct, but it also gives our clients a heads up on what they need to prepare for the sprint kickoff.
Sprint Day 1 — Client briefing and small screen sketching
Each sprint starts with a briefing on the patterns for that sprint. This briefing is led by the client team.
During the briefing, the client team provides everything they know about the patterns including:
- How the patterns are used.
- Any edge cases for the patterns.
- Analytics information on the patterns.
- User testing that has been done.
- Support or user feedback on patterns.
If we’re dealing with foundational patterns like typography and buttons, the briefing could simply be going over any existing brand and style guidelines.
However, when we start working on more complex patterns—for example a shopping cart interface—there is often quite a bit of information about the pattern to convey.
Small screen sketching
After the briefing, we start group sketching sessions. Ideally, we do this with our client, but often we work with teams in other parts of the world so we only get to sketch together a couple of times during a project.
Everyone participates in the sketching irrespective of roles. Sketching small screen designs helps people start thinking more tangibly about the constraints of small screens. It is one of the reasons why we include clients in sketching exercises whenever we can.
We pick the portions of the patterns that we think are going to be the most difficult to fit on small screens and sketch those. This often means that we’re not sketching the entire interface or even the entire pattern that we’re looking at, but instead just a small portion of the pattern that looks particularly troublesome.
We sketch on small sticky notes using Sharpies. Every sketching session is time-boxed. The constraints on time, size and low fidelity markers prevent people from getting too detailed in their drawings.
And we use Sharpie brand markers because Tyler is a marker snob.
(Tyler here: The store-brand ones bleed too much!!)
Each person posts their sketches on the board and talks about what they saw and how they were trying to solve the problems. The conversation around the sketches is just as important as the sketching itself.
The goal of the sketching session is to give the designers some ideas on how they might solve the problems that the patterns represent. We do multiple sketching sessions until people feel they have enough material to explore.
Focus on small screens first
For most of the sprint, we focus on small screens. We’re often asked how things will work on wider screens early in a sprint, but we try to resist thinking about that yet.
If you’ve managed to organize your life to fit inside a New York City apartment, you’re not going to have any trouble adjusting to a big house in the suburbs. The same is true of responsive designs.
If you nail the small screen design, the larger sizes will be easy by comparison.
Sprint daily activity — Quick design iterations
We move immediately from sketches to testing our ideas in the browser. We create quick prototypes of the designs that we then share with the client team in Slack.
The video above shows collaboration happening on day 2 of a new project. We’re showing simple small screen designs in the browser and getting feedback both from our co-workers and the client team.
Often, we will have members of the client team working on patterns as well. They may be sharing mockups, photographing sketches, or even coding prototypes.
What matters most is that we’re sharing ideas quickly and iterating towards better solutions.
LICECap, the worst named, best tool ever
One of the advantages of designing in the browser is that we’re able to demonstrate how things should interact. But when we’re working with distributed teams, we need a tool to show the interaction.
That’s where LICECap comes in. LICECap makes it easy to capture screen video and save it as an animated gif.
So instead of saying to a client, “imagine we hide all of the controls behind a single button until someone clicks on it” and hoping that the client understands, we simply post an animated gif in Slack.
The animated gif eliminates confusion and facilitates quick feedback.
Mid-sprint review meetings
The amount and frequency of review meetings in a sprint change from project to project, but generally we’ll have one review meeting late in the first week of the sprint to make sure we’re on the right track.
We share our screens and show any in-progress work. Those who have been active in our shared Slack channel will have seen most of the work already, but the meeting ensures that all stakeholders are looking at the patterns early in the sprint.
Depending on the complexity of the pattern, by the second review meeting we’ll have examples of how the pattern will adapt as the screen size increases.
End of sprint review
At the end of the two week period, we have one final meeting to review the progress on the patterns tackled during the sprint. Nothing in this meeting should be a surprise because we’ve been sharing our work throughout the sprint.
After we’ve reviewed the patterns, we talk about what worked well during that sprint and what we could improve on for the next sprint. We’re not only iterating on the designs, but on the process itself.
This isn’t rocket science, but it feels new just the same
Nothing I’ve described here is new.
Agile processes have been around for years. Many people have talked about how responsive design makes pattern libraries more important than ever.
But the combination of responsive design, patterns libraries, sprints, gifs, and constant communication via Slack creates a radically different design process. Even if the pieces that comprise them aren’t new, Responsive Design Sprints certainly are.
Most importantly, Responsive Design Sprints work exceptionally well.
They helped us convert complex interfaces that seemed insurmountable. When we were asked to convert an e-commerce design to responsive in only three months, it was Responsive Design Sprints that helped us move quickly and finish the project a week ahead of schedule.
I can only imagine how stunned 2008 me would be to see what our design process looks like now.
Over the last few years, we’ve converted quite a few existing sites and applications to responsive web design. We’ve gotten pretty good at it so I thought I’d share our process.
Not a full redesign
Many of our clients have come to us with desktop sites that are working well that they are rightly afraid of messing up.
For example, when we first starting working on the Walmart Grocery site, the main Walmart desktop site had recently undergone a major redesign effort. We liked the new design, and were pleased to see that the designers had already considered touch-friendly targets.
Given how recently Walmart had redesigned the site, any responsive plans that required a full redesign were non-starters. This wasn’t the time to rebrand the site.
In addition, Walmart and many of our other clients are running successful businesses on their desktop sites. They conduct user testing and constantly analyze site usage to optimize performance and profits.
Therefore, our goal has been to convert the site to a responsive web design with as little disruption to the business as possible.
Not a responsive retrofit
At the same time, these projects have been much more extensive than a responsive retrofit. Ben Callahan has written about several techniques for responsive retrofits. In the article, Ben poses the following scenario:
To start over with something like this would be a year long project costing hundreds of thousands of dollars. Is there anything you can do with just CSS to make the existing experience a bit better for smaller screens?
Ben does a wonderful job describing the techniques people can use to apply CSS with scalpel-like precision to start a site on their way to responsive without making major changes to the underlying code. If that’s the constraint you’re working with, I highly recommend his article.
For the most part, our clients have different constraints. They don’t mind changing markup if necessary. And they expect the CSS to change quite a bit.
What they want to preserve is the wide screen experience because that is what is currently working and what their users are accustomed to.
If they’re not responsive redesigns and they’re not responsive retrofits, what do we call projects where an organization wants to move to responsive design, but wants to preserve the desktop experience?
For lack of a better term, I’ve been referring to them as responsive conversions.
The desktop experience will have to change some
Clients often seek to preserve the desktop experience for completely understandable reasons. This often leads to a mandate that the “desktop site cannot change.”
Unfortunately, it isn’t possible to convert a site to responsive design without some changes to the wide screen version. Inevitability, there are situations where tweaks to the desktop experience would make the responsive implementation significantly easier.
And more times than not, the changes that come from figuring out how to design the mobile experience make the desktop experience better.
For these responsive conversion projects, our guiding principles have been:
- We will do our best to keep the wide screen experience feeling as close to its current experience as possible.
- Under the hood, we’re free to do whatever is necessary to make the site responsive.
We strive to make the experience better no matter what size screen someone is using.
Breaking the existing site into smaller patterns
Our first step in converting an existing site into a responsive design is to identify the patterns we think we will need to design.
This process usually consists of a couple of team members sequestering themselves in a room and reviewing the site and writing on sticky notes what patterns they see. This pattern identification provides us with a guide for estimating the time we think projects will take.
Recently, Charlotte Jackson wrote about an exercise that teams can undertake to identify patterns. We’re looking forward to trying this on a future project.
Ordering the patterns into sprints
After we’ve identified the patterns, we start organizing them into sprints. Some of the things we consider when organizing the sprints are:
- In general, we want to start with the smallest patterns and build up to the most complex.
- We check with our client to see if any components are particularly important and need to be addressed earlier. If so, we figure out any dependencies for those components and prioritize them.
- As each sprint passes, our velocity increases as does our ability to tackle more complex components.
The whole point of agile is to be flexible so this plan isn’t set in stone. But it does give us a starting point and lets our clients know what they need to prepare for each sprint. Our client team plays a huge role in making each sprint successful.
Responsive Design Sprints
The biggest change to the way we work is that we now design in sprints. Responsive design sprints are a topic worthy of their own article and I plan to write more about them soon.
In the meantime, here are the highlights of the way we approach these design sprints:
- Sprints focus on patterns.
- We work with the client ahead of time to determine what patterns will be tackled in an upcoming sprint.
- At the beginning of each sprint, the client team presents everything they know about the patterns—how and when they are used; what user testing has been done; and any edge cases we need to consider.
- We then start sketching small screen versions of the patterns.
- Once we’ve got a good direction, the team divides up the work and starts designing in the browser.
- We share what we’re designing with our clients nearly every day via Slack so we’re constantly adjusting and refining the designs.
- At the end of our two-week sprint, we’ve got working prototypes of those responsive patterns.
There is much more to say about this process. Read my follow up article on The Power of Responsive Design Sprints.
Rinse and repeat until we’re “done”
Once we start the responsive design sprints, we simply continue the formula until all of the patterns and components that we’ve been tasked to design are complete.
One of the interesting things about this process is that the definition of what “done” means changes from project to project. There are a couple of reasons for this.
First, our client’s engineering team is often responsible for taking our work and integrating it into whatever backend system they use. In these cases, our work can be complete long before the site launched and officially “done.”
Second, we’re frequently asked to teach web teams. On more than one project, we’ve had designers and developers from the client’s team embed inside our team to learn from us.
This means that we start projects with the goal of teaching the team to fish for themselves and once they can, we hand over the project to their designers to finish things up.
The process works
When we’re confronted with a complex fixed-width interface, I often have no idea what the responsive version of that interface will be. But I do know even the most complex interfaces can be converted to a responsive design by breaking them into smaller patterns and designing in sprints.
I have complete faith in the process because I’ve seen it work multiple times. If you’re stuck on a complex responsive design, I recommend giving it a try. If you need help, let us know.
(P.S. You may enjoy my follow up article on the Power of Responsive Design Sprints)
We had the great fortune to help WalmartLabs convert their sites to responsive design, and it is always nice to see our clients get recognized for their hard work.
Mini Kurhan and Olawale Oladunni, two designers at WalmartLabs, were recently interviewed by Ethan Marcotte and Karen McGrane for the Responsive Web Design Podcast.
I highly recommend giving the interview a listen. There is also a transcript of the interview if you prefer.
It was great hearing Mini and Ola talking about the challenges Walmart faced and how they overcame them. It was a massive effort to convert the sites to responsive design and the Walmart team did a fantastic job. We had a blast working with them.
If you want to learn more about the Walmart redesign, particularly when it comes to responsive images, check out Mini and Ola’s presentation from Responsive Field Day.
Responsive image breakpoints have vexed me for nearly four years. They have been my personal koan—my unsolvable problem—until today.
See a couple of years ago, I had a crazy idea to pick image breakpoints using performance budgets. John got excited by this idea and built a rough prototype of how this might work.
I used the script John wrote to create a demo page showing how a performance budget could be used to select image breakpoints. But the script was never intended to be a production tool.
Still, the idea had legs. And it was clearly something other people could use:
Unfortunately, building such a tool was beyond my skill level. The job called for someone who understood image processing and compression much better than I do.
That’s why I’m thrilled to share that Cloudinary took up the challenge and built the Responsive Image Breakpoints Generator.
The Responsive Image Breakpoints Generator works better than I could have imagined. From an end user standpoint, you simply:
- Select the smallest and largest size your image will be used at.
- Set your performance budget.
- Upload your image.
That’s it! The tool does the rest. The generator will:
- Determine the optimal number of images you need.
- Provide you with sample code for those images.
- Offer a zip file for download that contains all of the images and code you need.
And the kind folks at Cloudinary have made the tool free to use and open sourced the front-end code.
They’ve also integrated this capability into their platform and API so if you want to use the tool in an automated fashion, you can do so. They even have a free tier of their service that includes 7,500 monthly image transformations which is more than enough for small sites.
Nadav Soferman, a co-founder of Cloudinary, has written in more detail about the tool and why it is important at Smashing Magazine.
I can’t begin to tell you how excited and honored I was to find out that Cloudinary was working on building my crazy idea. It has been all I could do to keep it secret for the last couple of months while they put the finishing touches on the site.
Thanks to Nadav, Tal and the whole team at Cloudinary for making this tool a reality and giving it away to the web community!
Fun fact: Cloud Four’s design team really digs SVG. Our enthusiasm for the image format accumulated gradually over many months, thanks in large part to Sara Soueidan’s tireless documentation of its most mysterious features and quirks. It was during the process of designing the Responsive Field Day site that our collective interest level hit fever pitch, which caused our coworkers to wonder what all the fuss was about!
It turned out to be a difficult question to answer. Most of the resources we found online either covered the very basics of the format, or jumped right into the nitty-gritty of coordinate systems, complex animation, automated sprite-building, etc. So fellow Cloud Four designer Sara Lohr and I decided to put together an internal presentation with reveal.js to bring everyone up to speed.
SVG 101: A Gentle Introduction →
In spite of those challenges, the talk was a hit. I think we introduced concepts in a way that made sense for the audience, emphasizing the sorts of things they’d find most useful day-to-day.
Then again, maybe it’s just easy to win people over with demos like “Jasonflower”:
See the Pen Jasonflower: CSS by Tyler Sticka (@tylersticka) on CodePen.
It’s hard to argue that SVG isn’t the greatest format ever once you’ve seen that.