Tim Kadlec: So I hear you're a big fan of Photoshop.
Stephen Hay: Actually, I am. But not for everything, and certainly not for design mockups of responsive sites and apps. It's great for things like image editing (go figure) and image asset creation. Also, many people use it successfully as a type of sketchpad or brainstorming canvas to try things out.
For the record, I use GIMP, but that's mainly because I followed Rolf Steinort's excellent Meet The GIMP! video series for a while, learned a lot and found that GIMP can do most of what Photoshop can (and even a few things it can't). Both are great pieces of software; Photoshop is admittedly more polished from a design standpoint, but hey.
Tim: That makes sense. The reality has always been a bit more nuanced than "Photoshop vs. Designing in the Code."
One thing I find interesting is that while much of the frequent discussion about why not to design in software like Photoshop has been about avoiding presenting static mock-ups to clients. But you purposely show your clients static visuals—why is that?
Stephen: I purposely show my clients static visuals only the first time I show them design visuals. The user experience is multi-faceted, so every aspect of what you show to a client is a potential distraction, keeping you from the information you need. When I only need to know the client's reaction to the visual direction of a design, I don't yet want them to be distracted by layout or rendering issues on a particular device, or whether they like that funky hover effect.
Tim: You also make use of a deliverable called content breakpoint graphs, which are something that was new to me. Can you explain briefly what that those are?
Stephen: Sure. I started creating breakpoint graphs in order to visualize the breakpoints used in a design. Since responsive web design has become more complex, breakpoints are no longer only the points at which layout changes. We might have breakpoints for device features, CSS property support, or anything else. Inspired by Stephen Few's bullet graphs, breakpoint graphs are a form concise, visual documentation of these breakpoints.
I don't like long-winded documentation. Breakpoint graphs get to the heart of the matter. When done well, you can understand the responsive parts of your design at a glance.
By the way, you're saying "deliverable", but breakpoint graphs are not necessarily something you would have to deliver to the client. That would depend upon the client and the project. They are particularly useful for the design and development team.
Tim: A lot of your workflow revolves around using the terminal. That can be kind of intimidating for many people—why are you such a big fan?
Stephen: Because it's awesome.
Tim: Short, sweet, and to the point. Can you elaborate a little for anyone still on the fence even after that compelling argument?
Stephen: Actually, I only use the command line for certain tasks, because at the moment there is nothing that works better for me. In other words, I want to do certain things, and the only software I know that manages some of those things just happen to be command line applications. I'm not religious about it. That said, I think it's often a good idea to move outside of your comfort zone a bit. At the end of the day, I was schooled as a designer, and if I could learn my way around a terminal, I'm pretty sure most people can if they give it a try.
Tim: Well said. So how did you decide you needed to step out of your comfort zone? Was there anything in particular that made you realize you needed to shake things up a bit?
Stephen: I just needed to get things done in a way that didn't make me want to hang my clients from a tall building by their toenails.
I had a project several years ago for which I had to make more Photoshop files than usual. Unfortunately, it became one of those projects in which the client wanted to have everything absolutely perfect before development started. One problem being, of course, that when it was perfect, it was only perfect in Photoshop. Every single minor change we made to the designs would have to be done again in code.
Another problem we had to deal with was the nature of the changes. Things like slightly more space between headings and paragraphs, column widths...basically any small change you can think of that means resizing or reflowing your whole Photoshop file. And the client doesn't always understand why adjusting the margins around headings requires so much work; they don't see you resizing and making manual changes to 17 files. So you can explain it, but they want what they want.
That's annoying, but it's not weird for people to want to see what they're going to get. So two things really started eating away at me:
- Even when the client thinks they're seeing what they're going to get, they actually aren't. By making pixel-perfect pictures, we're setting the stage for disappointment during development.
- One or two lines of CSS in a web-based mockup would have solved problems like "the heading issue."
I couldn't get over the fact that the tool was causing me to spend hours or days on something that could have taken seconds or minutes. That just didn't let me go.
Things like that tend to force me out of my comfort zone.
Tim: Any parting words of advice for the kind folks reading along?
Stephen: Just question everything. Your assumptions, your tools, your workflow...
A confession: originally I wrote the chapter about web-based mockups first, because it seemed the most complex. While writing, I actually changed my mind about which tool to use for web-based mockups. I used to use a Haskell-based static site generator called Hakyll, which is fantastic. But when I learned I could do the same thing with another tool I already used for style guides (Dexy) and with some added niceties, I researched, played and stopped work on the chapter for a few months and field-tested the new tool on real projects while working on other chapters. When I was really comfortable with the new mockup process and convinced it was better than what I had done previously, I rewrote the chapter. And I'm glad I did. I've even added more useful stuff to my workflow since finishing the book.
It's all about exploration and finding ways of working that are not only smarter, but make otherwise mundane tasks more fun and less tasking as well, so the core of your work comes back to the foreground.
I usually end presentations I give by saying, "Have fun. Keep learning." If you're doing both of those, you're doing great.