Pivotal Labs

Main menu

Skip to primary content
Skip to secondary content
  • About
  • Case Studies
  • Team
    • Executives
    • Locations
      • San Francisco (HQ)
      • Boston
      • Boulder
      • Denver
      • London
      • Los Angeles
      • New York
  • Community
    • Blogs
    • Tech Talks
    • Events
  • Careers
    • Lifestyle
    • Principles & Practices
    • Benefits
    • FAQ
    • Apply
  • Contact
    • Press Room
    • Press Releases
    • In The News
    • Press Kit
  • All
  • Labs
  • Standup
  • Tracker
Nina Mehta

What in-house design taught me about consulting (Part 1)

Nina Mehta
Monday, May 13, 2013

In the design world, a river runs between the consultants and in-house designers.

I’ve worked at big start-ups, small start-ups, corporations, newspapers, non-profits and universities, and I have hired consultants myself. Having been on the other side, each job unique with its own challenges and joys, set me up to be an empathetic consultant.

Here’s what I believe all those years in-house taught me about consulting:

  1. Preparing for a consultant is hard
    Companies hire consultants when they’re short on time, ideas or people. And for those reasons, it can be hard for a company to get all their ducks in a row. This doesn’t mean they don’t care or can’t prioritize the project. In fact, usually it’s the opposite.

    Working in-house can mean running multiple (probably too many) projects in parallel, staying ahead of competitors, putting out fires, explaining why someone’s something got de-prioritized and all the other stuff that needs to get done, somehow. So, the companies hire a consultant, someone who can focus on one slice of the pie.

    Because the client is short on resources (time, energy, expertise), consultants end up having questions they didn’t even know they should be considering. After this, clients can be left looking and feeling unprepared and disinterested.

    Because our team was often short on time, money, ideas, people or resources, it made preparing for a consultant quite hard.

  2. This product, whatever it is, is the most important thing in the world
    For a consultant, projects come, projects go. But, for in-house designers, no project is ever done. Everything is an iteration and there’s always an opportunity, somewhere in the distance, to return to a project for another version.

    For many companies, especially young ones, that company and its product are the whole world – its bread and butter. They are out to change the world, to make it better. They have high hopes for massive adoption and high traffic, whether it be an overnight success or a slow and steady climb.

    A consultant doesn’t need to agree with the client’s world vision, but it is good to know the ingredients of their powdered Kool-Aid mix. It’s valuable to understand how and why this company, making this product, whatever it is, believes it is the most important thing in the world.

  3. User experience exists beyond the product
    As an in-house designer, I had the luxury to build on what I learned about the product and our users from project to project. Unlike consulting work, there is no starting from zero. Every project further deepens the understanding and relationship to how their customers, clients, users and site visitors think, make, explore, click, feel and tweet. The longer an in-house designer works for one company, the richer their understanding of how the product works and what an experience is like for their customers.

    An in-house designer learns from the sales, marketing and support teams, who can help guide a more holistic view of the wants, needs and desires of the users. Being this kind of designer helped me become better at knowing what questions to ask and when I can skip ahead to the nitty-gritty details. Working in-house taught me to see the nuances of user experience beyond product and interaction design.

  4. Consultants can be the bad guy
    Companies want to do things in house. Consultants are expensive, time consuming and can make the in-house team feel like they’re not good (fast, smart, creative) enough. Even for the most pragmatic creative (designer or developer), at the core, I’ve seen my teammates feel demoralized or defeated by needing to hire someone to do their job. Working in-house taught me, no matter how skilled and personable the consultant, sometimes the consultant is the bad guy.

  5. Clients are tough cookies
    In-house designers have clients, too. And they’re tough. Users? Oh yes, of course. I must mean those needy users always emailing, tweeting, wanting needing something. No! Those people are wonderful.

    In-house designers also have in-house clients – sales, marketing, recruiting, investors, designers, and developers.

    An in-house designer needs to weigh the needs and priorities of all the stakeholders – those shouting and those being spoken over – and make good judgements, arguments and compromises. And, when whatever project was done (the one that’s the most important project in the world), all those stakeholders were still my coworkers the next day. Those clients, they’re tough cookies.

I’ve been at at Pivotal Labs for only a week, so keep your oranges peeled for Part 2. In a few months, I’ll follow up on these initial thoughts and share new findings.

 

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Jonathan Berger

What’s (not) in a Name

Jonathan Berger
Monday, April 15, 2013

I solve design problems. Sometimes I use hi-res mockups, sometimes I use wireframes. I always use empathy. I always strive to understand the user and design against their needs.

What am I? What should I call myself?

A User Interface Designer? Maybe a User Experience Designer? No, an Information Architect! A Human Factors Engineer? Is there a meaningful difference between these titles? What should we call themselves? Nanas and Bubbes kvell over doctors and lawyers; why don’t our parents and grandparents know what we do for a living? Why don’t we know what our name is?

A few years ago at the Idea Conference, I heard an answer that was so good I’ve been quoting it ever since (and it’s come up even more now that the words “agile” and “lean” appear so frequently). It was a two-day conference, and the keynote speaker got sick and was unable to close the conference on the final day. Instead, the organizers asked all the speakers to come up and do a roundtable Q&A with the audience. Attendees lined up at the microphone, and the first question rang out:

What should we call ourselves? User Interface Designers? User Experience? Information Architects? Who are we?!

This was a plea to our elders and wisers to shed some light on our very identity as a community. Each and every one of them—designers, speakers, luminaries—froze in panic. All but one.

The outsider stood up. Michael Wesch (of “The Machines are Us/ing Us” fame) grabbed the mic: “Let me take this one.” He went on to say:

I’m not a designer, but as an anthropologist, I can give you perspective on your community. I don’t know whether ‘UXer’ or ‘UI Designer’ is a better designation, but I can tell you this: as long as there’s debate over what to call yourselves, your very identity, your community is vibrant. The moment you agree on your name, your frozen and a known quantity—and ready to be commodified.

Every time someone asks me “what should we call ourselves?” I tell that story. I love being part of a community that is vibrant. I embrace the questions and challenges and learnings that keep us, for now, impervious to commodification. And I still hope I’ll figure out a way to explain to my grandmother what exactly it is that I do all day.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Jonathan Berger

3 Challenges for Agile Design

Jonathan Berger
Monday, February 25, 2013

Software development has been revolutionized by Agile development practices, but designers struggle to adapt to the very same techniques—despite suffering many of the same challenges that led to Agile. What exactly are these problems? And how can Agilists and designers address them?

When is Design Done?

Agile development preaches “Done means Done”. When a story is accepted by the Product Owner, it’s ready to be deployed out into the world. What does “done” mean for design? Automated testing guarantees that on every story, developers will enjoy Acceptance Criteria: a concrete measure of what counts as “done”. Designers, on the other hand, rely on subjective criteria to determine when they’re done. In the best case, this means the product team—or often, the designer working alone—if only they had a partner to pair with! In the worst case this is purely subjective sign-off from the client. While agile developers have access to tools like velocity to plan their work, designers have structural difficulties in estimation, and are consequently less able to plan. Consequently, questions like “when will that feature be done?” are more easily answered by a developer than a designer. That’s not because designers are less responsible than developers. It’s because it’s harder to know when you’re done with design—but that’s of little comfort to anyone who needs to budget time and resources to manage the project. Because Acceptance Criteria—or an answer to the question “what does ‘done’ mean?”—for design is in different units of work than “done” for development, there’s an impedance mismatch in coordinating between the two. Breaking design into units of work with more discrete Acceptance Criteria helps coordinate design work with development work.

What’s Wrong with the Deliverables Business?

Agile Developers ultimately deliver user-facing code, but designers output thinking: solutions to design problems, traditionally expressed via mock-ups or assets. How should the two interact? Should design stay an iteration ahead of development? What does it mean when a developer discovers an interaction problem in a design they’re implementing? Should they stop work? Developers are the tip of the spear when it comes to experience design: in the process of building software, they’re often the first people ever to use it. Sometimes this means they uncover interactions on UX problems that the designers didn’t anticipate. If the necessary design changes cascade into other work, what should the designer do: stop work and refactor (and fall behind), or come back to it later?

Furthermore, it can be difficult to determine how much design is required for developers to complete their work. The best design deliverable is the Simplest Thing That Can Possibly Communicate the Design Solution, and this can vary from team to team and design problem to design problem. Under ideal circumstances, an experienced designer may be able to reasonably estimate how long it will take to 1) solve the design problem, 2) communicate the solution, and 3) iterate on the problem / solution once it’s usable and testable as working software. But. BUT! That’s asking a lot. And it absolutely shreds the question “how far ahead should design stay of development?”.

Why do Designers Feel Unwelcome in Agile?

Let’s take stock: we’ve got gallant developers, accurately estimating stories and delivering working software, and the goofus designers, unable to tell you what they’re doing or when they’ll be done. Knowing “how much design is enough?” is hard. Knowing how much design to start with is hard. Reared in a culture that prizes individuality, that venerates Rock Star Designers, that applauds Working On It Til Its Done, that publicly shreds less-than-perfect work in Crit as a rite of passage, that (with the occasional exception) is alien to the notion of sustainable development—it shouldn’t be surprising that designers are uncomfortable. That starts to lead to discord on the team: designers hating agile; feeling rushed, feeling like they don’t get the benefit of iterative design; feeling that once they touch something, they don’t get to go back and refactor it. Let’s throw in a bit of rah-rah agile ideology, a few jargon-y IPMs and retros, promises that “we’ll come back and refactor that later”, and the creeping suspicion that this whole Agile thing is nothing but smoke, mirrors, and Kool-Ade. Is it any wonder that designers can be hostile to agile?

What can we do? Looking to the example that Agile Development sets, we can see several concepts that may help: Acceptance Criteria-delimited design stories. Meaningful estimation of work for design. A culture that values Sustainable Pace. Translating these ideas from development to design may do more than just help designers work more comfortably in Agile environments—it may help us practice better design.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Jonathan Berger

The Big Design Refactor

Jonathan Berger
Sunday, January 27, 2013

What is The Big Design Refactor?

Design starts with systematic thinking and then shifts to incremental changes. No matter where a project starts, at some point the design systems’ integrity will degrade to the point that you need to look at the whole thing fresh. Welcome to the Big Design Refactor. In the beginning, you had a beautiful, functional design system. And then you had to watch, helplessly, as it degraded under the weight of a thousand tiny changes. It’s maddening, and a big reason many designers are allergic to Agile methodologies.

What can you do? Understanding and accepting that this design-system degradation is an affordance of differently-sized design and development cycles is the first step towards making peace. Once you realize and accept this change, it’s much easier to deal with. Plan on it. Talk about it with your team. Designers need not work at developers tempo. Rather, they should strive to stay in-rhythm with development, working at their own pace, and making sure their beats and decision-points intersect with development at regular intervals.

design-and-dev-iterations

As the designer, it’s your job to keep an eye on the health of the graphic system. Just as the developers incur and pay down their technical debt, you’ll manage your design debt. How? Mention that the graphic system is starting to break down. All the while, you’re still doing your work. Keep solving the tactical problems, keep delivering value. At some point, the balance shifts: you’re no longer plugging little leaks or engaging in preventative maintenance. The system is undermined; the cracks are starting to show. Now’s the time to have a talk with your team. You’re going to need a few weeks to work on this. You’re going to need the development team to find something design-light and backend-heavy to focus on for a week or two. Hold a design retro. Get their feedback, and their buy-in, and their good ideas. And now you’ll have a break from the tactical work of patching up design as features iterate. You’re a Pure Designer again, working in your idiom, experimenting and sketching and building a new design system.

How does the Big Design Refactor work?

When I’m in the midst of a Big Design Refactor, I’m spending most of my day in Adobe Creative Suite. I’m pulling the product team over ~4-7 times a week to bounce ideas off of them. I’m pinging the development team ~1-2 times a week to consult on the technical implications of where I’m going. By the end of the week or two, I’m usually delivering a set of user stories accompanied by mockups. It’ll often take an IPM or two to get through all of them, and it’s important that they get implemented soon. Nothing feels more like waste than a heavy investment in design, followed by unacted-upon stories that go stale. This will kill trust between the design and product teams (in both directions); it’s downright poisonous.

Now, while the new design is being built by developers, I’ll occasionally hop back into Adobe Creative Suite for assets or newly-discovered UX tweaks, but most of my time is spent pairing with developers. I’ll also keep a close eye on acceptance. Pixel-perfection is rarely necessary, but miss an important UX point now and the error will become enshrined as part of the system.

Once the Design Refactor has been assimilated into the app—and it’s rare that 100% goes in, but 80-90% is the norm—it’s Tactical Incremental Fun Time! I’ll spend most of this time pairing on stories, picking of styling stories to solo on, and working on design problems revealed by user testing. At this point it’s probably 66% development and 33% Adobe apps. The debt clock is starting to tick again, and once the pain is noticeable, I’ll start making noises: “we’re ok for right this second, but we’re going to need a design refactor in the next 3-5 weeks”.

Why are the Rhythms Different?

Design and development are activities that move at different speeds. Test-driven development and Agile project management allow developers to break work down into small stories and iterate on them. The unit of work for the “what” of the story is “what’s the smallest possible thing that delivers value to the user?” and the “how” of the story is “what’s the simplest possible thing that can work?”. These units of work tend to translate poorly to design, because effective graphic design is almost always a system. Changing arbitrary pieces tends to degrade the whole. Design adjustments that are close in size to development units-of-work can be made, but they inevitably undermine the graphic system, creating Design Debt. Debt is fine, if used responsibly, but it needs to be paid down at some point. (More on that another time.)

Developers work at a quick tempo. They use Agile’s small units of work to facilitate a supple workflow that responds gracefully to changing client needs.

The customer wants to re-prioritize a feature? No problem! Move it to the top of the backlog and we’ll get to it next.

Because they’re backed by tests, devs are free to move around the codebase and project, making changes where the customer likes, with the confidence that their test suite will protect them from breaking the app. Designers have no such safety net—which is one reason that developing meaningful automated testing for design is crucial to a mature Agile design practice.

The rhythm of design is slower. Design pulls together an information architecture, UX metaphors, visual styles, a typographic system, a color system. Visual rhythm, hierarchies, and scale combine into a whole graphic system—more than the sum of its parts. All these pieces interrelate, and changes cascade into other. While adjustments to individual design elements can happen quickly, feature-scale iteration doesn’t allow for changes to the system; those take more time.

TL;DR

Ideally, bring a cohesive graphic system to Inception. Accept that it will degrade over time. Make tactical adjustments to keep pace with agile development, and plan on overhauling the design system every quarter or so.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Jonathan Berger

The Journey to Using a Standing Desk

Jonathan Berger
Friday, November 23, 2012

Why a standing desk?

Ultimately the goal is to go to a treadmill desk (for reasons outlined here), but before sinking the money and effort into that endeavor, I’d been meaning to try out a standing desk. It was never really a priority and I was working at a client-site (which inhibited my ability to request furniture) and so I kept putting it off. Finally one day I snapped. After lunch I went to the copy room, started grabbing reams of paper, and in less than 10 minutes I had a standing desk from W.B. Mason.

Standing Desk #1: Improvised Standing Desk

Standing Desk #1: Improvised Standing Desk

After half a day standing I felt pretty good—my legs were a little tired, but less than I’d expected. The next day we went back to the home office for a lunchtime tech talk. The plan was to stand at the WB Mason in the morning and then sit for the rest of the day at my home office, but I found that I wanted to remain standing. I commandeered an unused metroshelf and built a desk out of it.

Standing Desk #2: Quick metro standing desk

Standing Desk #2: Quick metro standing desk

I wanted a few surfaces on the desk: a shelf for the monitor, another for the keyboard and mouse, a third for random work / storage (e.g. to set down keys or reference book or to put your cup of coffee out of accidental-spill range), and a place to rest my feet. Changing position is important if you’re going to stand for long periods of time, and resting a foot on a raised surface changes the way your body carries weight (this is why taverns often have a brass bar to rest your foot on). Its also helpful to have a shelf at the bottom which gives rigidity to the structure of the desk. Metroshelves aren’t very deep, but here’s the trick: it’s possible to hang a shelf on only 2 of the 4 poles, and thereby double the depth. The cantilevered shelf won’t bear as much weight as a shelf with 4 supports, but its sufficient for a keyboard, or even an iMac.

In order to get better foot access to the bottom shelf, I cantilevered the top shelf behind the desk, so the keyboard shelf is over the foot shelf. As a bonus, the iMac floats above the air conditioning unit, reclaiming a bit of wasted space.

It’s hard to see in this photo, but the back of the shelf directly leans against the wall. Note also that the UPSes on the bottom shelf to act as a counterweight to lower the center of gravity. This thing is secure from falling towards the window; no one wants a $2000 iMac tipping over.

Standing Desk #3: Kitchen Island

Standing Desk #3: Kitchen Island

The next day was a blizzard, and I decided to work from home. Not willing to quit my standing streak, I moved my spare monitor to kitchen island and worked from there for the day. I also experimented with using an iPad and AirDisplay as an additional monitor. Its small and suffers from high latency, but it works just fine as a Pivotal Tracker display.

Standing Desk #4: Keyboard Shelf Metrodesk

Standing Desk #4: Keyboard Shelf Metrodesk

Cantilevering an iMac scared enough people that I reconfigured the desk to put the keyboard at front. The footrest is pretty much unusable now (but the bottom shelf is still nice for rigidity and storage), but the desk definitely feels more solid. Wooden butcher-blocks are added for a nicer work surface.

Standing Desk #5: Cantilevered 48in. Metrodesk

Standing Desk #5: Cantilevered 48in. Metrodesk

Back at the client site, I finally found some metroshelves to build into a standing desk. This one followed the rear cantilever design, which worked nicely given this particular A/C unit and space constraints. This one is a 4-foot-wide desk, which is substantially nicer to pair on. Again, you can see the shelf directly leaning against the structural wall to prevent tipping over backwards. Here we use Mac Pros as the counterweight.

Conclusion

I’ve been standing at desks almost exclusively for ~24 months now, and aside from the occasional exhausted day when I grab a high stool to sit on, I doubt I’ll ever go back to sitting full-time. Standing desks have blossomed at the office too: we’ve got 5 Metroshelf standers, and another 4 or 5 Geekdesk-style adjustable desks. Since we’re a pair-programming shop, that’s ~20 people standing every day. We use bar stools and architectural drafting chairs to let a stander pair with someone who prefers to sit, and the standing Metroshelf desks have proven to be economic, ergonomic, efficient in their use of space, robust, and flexible. Now I just need to figure out how to get a treadmill desk in here…

Appendix

A NOTE ABOUT SHOES:

Don’t wear them. Your feet are perfectly built to support your bodyweight for long periods of time. Even the best running or walking shoes are less than perfect. Barefoot or socks is the way to go.

A NOTE ABOUT FITNESS:

If you’re the kind of person who’d be sitting on a balance ball at a sitting desk, try a Bosu Ball for your standing desk. It’s a great all-day workout for your core and legs, and its a lot of fun. A word of warning: for the first day or two, your vestibular system (i.e., sense of balance) will get quite a workout. I definitely felt the added cognitive load, and while it doesn’t prevent you from using the rest of your brain for work, it definitely takes a bit of concentration. By the second or third day I was used to it, and not standing on a balance ball just felt boring.

A NOTE ABOUT WHEELS:

Get them. Being able to easily relocate the desk is unexpectedly awesome and useful.

A BONUS: Tete-a-tete Pairing Desk

This could provide a standing version of Susser’s Tete-a-tete pairing configuration. We mocked it out when we ordered the second desk, but haven’t had a chance to try it out for real.

Standing Desk #6: Tete-a-tete experimental pairing standing Metrodesk

Coming Soon:

How to build a metroshelf standing desk.

UPDATE 2013-02-10: check out How to Build a Standing Desk!

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Jonathan Berger

Spike Driven Design

Jonathan Berger
Saturday, October 20, 2012

I’m really excited about a collection of new techniques I’ve been experimenting with over the past few weeks. They’re an evolution of the in-browser design approaches I’ve been using for the past few years, and taken together they help my team build better designs with less waste in a tactic I’ve taken to calling Spike Driven Design.

UPDATE: This is a blog-post version of the talk I gave last week at the Agile Experience Design / NYC SASS & Compass co-meetup. You can find the slides on my Talks page.

The Problem:

Traditional, Adobe-app-based design is great for designing before any software is built, for quickly iterating on user flows, and for experimenting with new high-level concepts. On the other hand, it suffers a heavy tax once working software exists and mockups have to play catchup with reality, and it does little to aid in designing interactions (Fireworks and Flash have an advantage over Photoshop and Illustrator in this regard, though they’re far from ideal).

Designing in the browser is great for working out low-level tactics, quickly iterating on interface and small interactions, and suffers almost zero set-up cost: install Firebug or tick the “Show the Develop menu” box in Safari’s prefs (or just install Chrome!) and you’re good to go. On the other hand, the toolset and techniques are immature, there’s a reasonably high learning curve, and the tools are tantalizingly close to the real app, but not quite there. Saving your work is difficult (to say nothing of iterating over a few ideas), and replacing text by hunting and pecking into Firebug fields gets old fast. For quick-and-dirty mocks, some light Firebug hacking, a screenshot, and a trip to Photoshop may suffice, but this workflow doesn’t hold up for prolonged investigations into a new user flow or feature track.

Enter Spike Driven Design. Rather than design in an Adobe app or even in the browser, I’ve taken to designing in Rails itself, using mostly SASS and HAML and little bits of Ruby. Whereas designing in the browser helped fake the front-end for mockups, it could never help with data. Now I can fake the back-end too! I’m not bothering with tests, and like any true Spike (in the Agile sense), this is code that is written to be thrown away. That gives me the freedom to move fast, focus on the UX and visual design problems without worrying about much else, and design using the actual medium the user will end up with: working software.

What’s a spike?

Plenty of ink has been spilled on the topic, but at heart, an Agile “spike” is a short investigation into a technique or a problem. For instance, when it comes time to build our Recommendations feature into my sample e-commerce site Hamazon, we might put a time-boxed chore into the backlog: “spike on recommendation algorithms and choose one”. By nature it’s explicitly exploratory and limited, and the goal is learning (rather than working software, the sine non qua of Agile development). After a spike is completed, the code must be thrown away. This is important: the imperatives to learn fast and to write healthy code are necessarily opposed, and the temptation to keep the code is always present. Resist it. Chuck the code. Now that you know the approach you want to take, write it again and write it right.

What’s SDD?

To start Spike Driving your design, branch the project, and begin to gleefully and recklessly hack around. For instance, if I were SDD’ing a new Order History feature for Hamazon, I’d want to have a bunch of orders to play with in my design. Instead of mucking around with a database and orders, I might just write a method called “orders” that returned a pre-canned list.

def order_history
        [
            {order_id: 102173, order_date: "8/1/2012", price_in_cents: 1799, item_name: "Snout T-Shirt", item_id: 1  },
            {order_id: 102384, order_date: "8/1/2012", price_in_cents: 3699, item_name: "Berkshire Ham", item_id: 2  },
            {order_id: 102930, order_date: "9/1/2012", price_in_cents: 1599, item_name: "Piggy Mug", item_id: 3  },
            {order_id: 103151, order_date: "9/14/2012", price_in_cents: 3699, item_name: "Berkshire Ham", item  _id: 2  }
            {order_id: 103944, order_date: "9/15/2012", price_in_cents: 2299, item_name: "Tactical Bacon", item _id: 6  }
        ]
end

Obviously this doesn’t get us closer to anything that helps a user, but it lets me start designing with real(ish) data, real quick. I’ll call #order_history in a view somewhere, get the list of orders on the page, and start marking up and styling them. I also might put a comment at the top of this message: # TODO: make this real. It’s kind of a shady move to push all the real work onto “someone will take care of this later”, but running a quick grep todo lets us see all real dev work that needs to be done.

While I’m playing around in the Orders History page, I notice that the navigation is going to need a link to the Order History for the User Flow to make any sense, so I’ll throw that in now. (An aside: it may be a little premature to commit any of this to git, but when you do start checking in your work, take care to keep your commits small and atomic.)

Ugh, now that we need secondary navigation, that bloated 60px header bar really needs to be trimmed down.

Let’s deal with that right now, hop into the appropriate stylesheet, and bring it down to 30px. As I work, I’ll play around with the interaction, navigating through a normal user flow, jumping into the Order History, and then back.

Hm, these order line items are starting to look ok, but they could use something a little more visual; how about some icons? Which, now that I look at it, should really light up on hover, so let’s create some assets. Oh, also, we’re probably going to want to be able to perform bulk actions on this list.

I don’t need to write a working form, I can just throw in the checkboxes and select lists in the appropriate places—they don’t have to be wired up to anything. Ok, this looks pretty good; the PM (who sits right next to me, and has been chiming in along the way) and I pull a dev over to run through this with him and make sure nothing sounds too crazy. Once we’ve got the rough ‘ok’ we can start writing well-formed stories in Tracker and take screenshots of the SDD site and attach them as mock ups. I’ll also create an epic called “SDD-order_history”, and attach a note mentioning where the branch lives and what I’ve done in it.

So that’s the rough version of Phase One. Now the fun begins. If I haven’t done so already, I’ll go back through my work in git add -p or GitX and break all my changes down into small, atomic commits. Generally, I’ll have a few kinds of commits:

  • Changes that require functional code and tests, and
  • Styling changes that can go right into the app.

Now I hop onto the master branch and start cherry-picking those styling commits: BOOM! Free style tweaks and polish! All the design fit-and-finish that I meant to write stories for and get to at some point are now done and in production.

Phase Two is when the devs get to the SDD’d stories in the backlog (which ideally is within a few days). There’s a comment pointing them to the branch, which they can check out as a renamed repo and then run on another port:

git clone git@github.com:jonathanpberger/hamazon.git hamazon-sdd-order_history
cd hamazon-sdd-order_history
... (bundle, set up db's, etc)
rails server -p5555

During development they’ll run the real app on port 3000 and do everything normally, but living, functional mock-ups exist for reference on port 5555. Furthermore, they can take a look at the code for ideas on things like structuring the DOM, and can even harvest things like SASS and assets from the branch. This means that a lot of the work from the design phase can go directly into the finished project, without duplication of effort, and without sacrificing quality.

When / Where?

So what sorts of projects and teams are good candidates for SDD? On this project, we’ve established the basic design of the app and have a while to go before we’ll need to do the Big Design Refactor. We’re building a fair number of small or medium-sized features or feature tracks, and it’s important that we make sure our additions work well within the existing app and user flows. We’ve got two pairs of developers (one of whom is off-site), plus me (a design-developer hybrid). Naturally, the designer employing SDD needs to be fairly technically literate. Another nice side effect of SDD is that the team is almost never odd. SDD stories pull me into the pair rotation in a non-time-sensitive manner, which helps smooth out rough spots in the rotation if someone has a doctors appointment or is interviewing a candidate. All of which to say, SDD seems to work well on projects that’re past their initial design phase, and have small- to medium-sized teams with a technical designer.

Problems w/ SDD

So what problems exist? Because of the technical requirements, there’s a high learning curve for the designer. It feels a little risky (shady even?) to push real work into comments saying “make this real”. There’s a potential for non-production quality code to leak in when. The SDD branch tends to get stale quickly. If you try to go back to it two weeks later the main line will have moved on, and these merge conflicts tend to be especially thorny because they’re usually very similar to changes you since will have made.

Despite these shortcomings, SDD has proven to be an effective technique for our team. We look forward to continuing to explore this way of working, and especially to hearing if it works for others.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Jonathan Berger

Fixing broken keyboard shortcuts in Adobe Illustrator

Jonathan Berger
Friday, September 14, 2012

Keyboard commands are essential to using Adobe applications like Illustrator or Photoshop. Unfortunately, some of the most important, cross-application commands occasionally break —the ones that are the most ingrained, because they work the same way in Photoshop, Illustrator, and other apps. I’m looking at you, hold-the-space-bar-to-get-the-Hand-tool, and you command-and-space-to-Zoom-in, and yes you, command-option-space-to-Zoom-Out. They break randomly, with no explanation and no warning, and it’s as if someone pried the ‘e’ key off your typewriter: sure, you can write a novel), but it’s pretty inconvenient.

Every time these keyboard commands break I curse for a bit and then google around to try to find the solution. Support boards show similar complaints, but no definitive solutions. Wishful, cargo-culty suggestions abound including “reset your preferences”, “restart”, “quit Chrome”, “no—quite FireFox!”, some of which work occasionally, but none of which work for everyone.

I think I found the answer.

It’s not the app that’s broken; it’s the document. Try creating a new document. (You may need to restart Illustrator or your whole machine).

I believe the keybindings break because the .ai file is corrupted. When I noticed that keyboard shortcuts were working on one file but not another, I junked the broken file (try reverting from a backup or copy-and-pasting your work into a new file) and was able to use my keyboard shortcuts again. I’m not sure how the file gets corrupted, but this is a start.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Jonathan Berger

Tips for Agile Design talk at Method Design.

Jonathan Berger
Thursday, September 13, 2012

I had a great time meeting the Method Design crew when I gave a short lunchtime talk “Tips for Practicing UX Design that I learned from Agile Development” at their studio. Thanks to Ted, Lindsay, and the gang for hosting!

Slides are here.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Jonathan Berger

FOWD Day 2: Notes On Design – Brendan Dawes

Jonathan Berger
Tuesday, May 15, 2012

Brendan Dawes, hacker and interaction designer, trawled through his sketchbook to deliver an inspiring opening talk about his work, what inspires him, and some Rules for making. Full notes after the jump.

“It should remind you of something you’ve never seen before.”

  • finding beauty in the mundane

Paper clips from several countries.

  • BD collects paper clips: made from the same material, do the same job, but communicate different aesthetics

Life’s too short to own an ugly pencil

Obsess about the tools you use

I hate that phrase “A poor craftsman blames his tools”. I’d like to find who said that and bash him in the face with a beautifully-made hammer.

Blackwing 602: L30 on ebay. Chuck Jones used these.
Palomino Blackwing
Dixon Ticonderoga. Rahl Dahl wrote with these.

When you care at that level, you’re going to care about the things that come forth from these tools.

Innovation / Iterinnovation

Iteration as a craft or as a way to see new things. Instagram was an iteration on photo sharing, not an innovation.

  • Saul Bass titles for Vertigo in 1958. John Whitney created oscillating art that looked computer generated using Lissajous Curves.

  • BD started iterating on these. only 0.1 difference between each one. Sometimes you’ll go from an ornate design to a circle in one step. Lissajous Curves

  • Occasionally we’ll make beautiful things out of this iterative process.
  • This showed BD the importance of continuously making things.
  • What about the n+1 iteration? You’ll always run out of time and budget at some point. That’s a design constraint; embrace it.

Comma. Semicolon. Full stop.

Well designed objects are all imbued with good use of punctuation.

  • This includes physical objects, apps, whatever.
  • BD was designing packaging for a physical object. He got the box back and it opened too easily. By re-engineering the box so that there was a short pause in the opening, the experience of opening the box was enhanced. It was a 10mm engineering change.

Subtract to Add.

You know something’s finished not when there’s nothing left to add, but when there’s nothing left to take away.

Why can’t things be perfect at version 1? Why are we never done with things?

Created the accidental news explorer: search for a term, read an article, discover Related News, spiral out, end up somewhere you didn’t expect to be.

Spent two weeks adding a feature: suggested starting points (headlines). Usage increased 2%. Was it worth it? BD felt compelled to do an update because people feel as if an app is dead if its not being updated.

Make [pencil]. Make better [eraser].

I make for me.

Using lots of tools: altoids tins, keychain laser pointer, chumby, calipers, pencils, arduinos, breadboard.

Memory Box
His wife asked for L200 Christian Dior face cream for her birthday. He gave her a box that with an ardiuno and a small LCD screen that played back their text messages. Physical container for digital things.

Data by itself is not enough. Data needs poetry.

What if one button did one thing?
Laser-cut wooden box with an arduino and a display of the weather that peeks through the transparent button.

happiness machine
Device to print for happy thoughts on the internet.

Be Naive.

One of the makerbot founders said “If we were mechanical engineers, we would have known this was impossible and never tried it.”

BD has a makerbot and made a lot of crap. He also made some useful stuff: egg cups, headphone wrap to contain cord.

He doesn’t use a visual interface; it’s done all in code: OpenScad. Write code and it spits out a model.

Own what it is that makes you different (Aimee Mullin)

  • Aimee Mullin: fashion model, athlete, double amputee. Her story was featured on the Moth, “True stories told live, without notes”.

  • BD learned Bring to projects what makes you you, and celebrate that.

  • Watch this (don’t read the author):

  • Once you know who it is, it totally makes sense.

It took me a long time to get to the top of the Empire State Building. I was uncomfortable. I wasn’t happy. But all that was forgotten when I saw the view.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Jonathan Berger

FOWD day 2: Art Direction Vs The Web – James Fenton

Jonathan Berger
Tuesday, May 15, 2012

James has an fascinating and insightful take on how Art Direction—a concept from the print world—works in new ways on the web. He shares his thoughts about how to manage a brand across large groups of independent teams, as well as several really interesting implementation ideas and hacks. Head past the jump for the full notes.

Intro

  • Art Director at Tribal Group, an education services & technology co with ~2500 people.
  • Used to be UI Designer, was promoted to Art Director after a shake-up.
  • Now his brief is to tend to the brand across an agency split into hundreds of small agile projects.
  • His predecessors were from the worlds of Print or Marketing.
  • He didn’t want to hover or reduce his team to pixel pushers. http://hoveringartdirectors.tumblr.com/
  • He wanted briefs to be more defined and guided rather than saying “make it pop”.
  • He didn’t want Art Direction to be another level of management.
  • “Art Direction” is a traditional term from advertising and branding. We also have it in film, publishing, etc.
  • Print seems to be the most aligned with Art Direction on the web. Writing is coupled with visual content.
  • [VENN DIAGRAM]: Written content <=> Art Direction <=> Visual Content
  • In the Print world, constraints are all on the cost of production: printing costs, design time.
  • In the Web world, constraints are all on user: usability, different browsers, accessibility.

Affordances

Looking at the same article in AFAR magazine in both Print and Web.

  • In print, the first page is a huge photo with a hed and a lead paragraph.
  • On the web, its a single column of text.
  • On the web, images tend to be supplementary rather than complementary.
  • The only thing we can control on the web is based on semantic information
  • rather than working most closely with photographers and producers, we have to work most closely with developers.
  • John Naughtton wrote Graphic designers are ruining the web, complaining that ~300 HTTP calls for a single article because of images and other junk.
  • JN prefers http://norvig.com/ because its raw and suggests a return to basic HTML, a la Craigslist.
  • Flaws in his argument: he already knows this content. This won’t work for discovery.
  • Another flaw: he thinks graphic design is just pretty pictures and decoration.
  • http://rainfall-daffinson.com/ is a counter-example: minimal, light, but easy to read.

  • Veroique Vienne: “The role of art direction is literally to direct attention.”

  • This is curation: it’s a space to view content. Make the space as neutral, non-distracting, as possible. Let the focus be on the content.
  • That’s not to say that we don’t direct the user through the space. We do that with signposts and wayfinding.
  • Pinterest typifies this notion of curation on the web.
  • It’s very literal (photos) with minimal navigation
  • is similar to pinterest
  • This sort of personal Art Direction is possible on a small scale: portfolios or small projects. How to do it at scale?
  • At Tribal, many agile teams are focused on their individual projects at all times; not focused on the brand.
  • Traditionally, Brand Guidelines have tried to serve this role.
  • Tools: colors, fonts, backgrounds, use of imagery preferences (e.g. “no posed photos” rule).
  • Also collateral: business cards, stationary, annual reports.

Static Brand Guidelines

  • Created a web color palate. When he got there, they only had RGB and CMYK. He added hex.
  • The ugly side to Brand Guidelines: brand police.
  • Brand Guidelines are static documents.
  • Often the Brand Police are charged with enforcing the guidelines even if they don’t understand the motivations for the guidelines.
  • Companies born on the web tend to have more fluid brands, e.g. Google’s whimsical logos, the MIT Media lab (”in NY”!) has a generative logo with 40k variations.
    MIT
  • He started looking at more flexible approaches: creating different logos as brushes in Illustrator, which could then be used in different ways.

Making Brands Dynamic

Brand Toolkit

  • Created a Brand Toolkit rather than Brand Guidelines.
  • A consistent look can be achieved across sites by focusing on the plumbing: common elements most sites require. Therefore, JF create a Brand Toolki Collection of Icons (for common activities like wayfinding, sharing, etc.).
  • This allows for a consistent experience across sites without heavy-handing top-down brand-policing.
  • Started w/ 25 icons, and it’s grown over time. Icons for globe, window, chart, document, trash, youtube, paper clip, linked in, test tube, ruler, etc. etc.

Sprites

  • To manage this duplication of work, they started using image sprites for logos and brand elements like the icon set. This is really useful for the product suite because they can share the sprite across projects.
  • If they re-brand or tweak the icons or even change the logo, they can change them everywhere as long as they keep the sprite coordinates constant.

Design Etiquette

  • Started with Photoshop Etiquette.
  • How to share source files in a way that lets others use them easily?
  • These are editable, living documents that will be repurposed.

UI Pattern Library

  • Dev teams work in silos and then need to share more, so they started using Yammer to facilitate communication among the teams. 2500 people in Tribal(!)
  • Pattern library helped share.

Code Snippets

  • Sharing HTML and CSS snippets across the brand.
  • Don’t have to re-invent the wheel.

Tribal Design Principles

1. Define a vision, through clear guidance and a brief.

They created a structured brief, which evolves over time, but allows them to have a common starting point.

2. Be flexible, and embrace the change that comes.

Don’t set rigid structures; as technology and media changes, we can adapt.

3. Aim for consistency in the quality of experience.

Rather than uniformity across all products and platforms, aim for consistency for the user.

4. Share the assets, patterns, and ideas

They use Sharepoint (which is kind of clumsy) and are looking for something better.

5. Democratize the design process.

Involve all the people and get their input. This isn’t design-by-committee, this is inclusion of the team: client, product owners, everyone.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter

Topics

  • agile (780)
  • rails (113)
  • testing (88)
  • ruby (83)
  • ruby on rails (70)
  • jobs (62)
  • javascript (55)
  • techtalk (44)
  • rspec (38)
  • ironblogger (32)
  • productivity (30)
  • activerecord (29)
  • gogaruco (29)
  • git (28)
  • nyc (27)
  • rubymine (26)
  • bloggerdome (23)
  • mobile (22)
  • process (21)
  • pivotal tracker (20)
  • cucumber (20)
  • jasmine (19)
  • design (18)
  • ios (18)
  • webos (17)
  • objective-c (17)
  • android (16)
  • palm (16)
  • "soft" ware (16)
  • fun (15)
  • tracker ecosystem (15)
  • ci (15)
  • cedar (15)
  • rails3 (14)
  • performance (14)
  • bdd (14)
  • gem (13)
  • css (13)
  • tdd (13)
  • selenium (12)
  • goruco (12)
  • bundler (12)
  • meetup (11)
  • railsconf (11)
  • nyc-standup (11)
  • capybara (10)
  • mac (10)
  • mojo (10)
  • chef (10)
  • api (10)
Subscribe to design Feed
  1. 1
  2. 2
  3. →
  • About
  • Case Studies
  • Team
  • Community
  • Careers
  • Contact
  • Labs
  • Events

Contact Us

contact@pivotallabs.com
+1 415-77-PIVOT
TwitterLinkedInFacebook

Pivotal Tracker

Tracker is the award-winning agile project management tool that enables real-time collaboration around a shared, prioritized backlog.
Visit pivotaltracker.com >