Goodbye Jef

Jef Raskin passed away last weekend. He was my friend and mentor.

I met Jef back in 2001, after a talk he gave at Stanford (video of the talk). I asked him to sign my copy of The Humane Interface and then we chatted about some of the things in the book.

Since then, we’ve worked together under what is now known as The Raskin Center for Humane Interfaces. (Jef protested about us using his name, but we insisted.)

It makes me sad to think we’ll never talk again, but I’m proud of what we’ve accomplished so far. Soon, we’ll be able to share the first piece of our humane computing environment with the world. It’s called Archy.

It’ll be exciting to see how people react. We’re working hard to help people understand that Archy is only one piece of the puzzle. I think the real fun will come when we integrate Archy with the other parts of our system, specifically the zooming environment. It’s going to be really, really sexy.

Luckily, Jef left us with a wonderfully idealistic and well articulated vision—one that will serve our organization for many years to come. I just hope our work will live up to being the memorial that I think he deserves.

Design the Cooper way

Kim Goodwin gave a really nice talk entitled, “Getting Your Design Built,” at Cooper world headquarters last night in San Francisco. That’s right, in case you didn’t know, Cooper is now in San Francisco and not Palo Alto.

The most interesting part of the talk for me was her discussion of the process Cooper uses. It goes like this:

Research → Modeling → Requirements Definition → Framework Definition → Design.

Which generally maps to:
Domain → Users → Analysis → Solution → Form & Behavior

Here are the notes I took. Take ’em for what you will.

  • Research (domain)
  • Interviews:
    • Stakeholders
    • Subject matter experts
    • Customers
  • Domain and Literature review
  • Ethnographic user research
  • How this helps with buy-in:
  • Stakeholders help determine interview targets
  • Each stakeholder get private air time
  • Larger team does not participate in interviews, but we gather pictures and stories to share with them
  • We hear about doubts, concerns, and questions early in the process
  • Modeling (users)
  • Requirements Definition (analysis)
  • Identify usage patterns
  • Create & Prioritize
  • Analyze workflows
  • Create context scenarios
  • Determine “requirements”
  • Determine visual messages
  • Deliverable: always a presentation, sometimes a document
  • How this helps with buy-in:
  • Personas are a critical design tool
    • Archetypal users
    • Represent observed behavior patterns
    • Eliminate elastic user
    • Avoid edge cases
  • Conclusions based on actual data, not opinion
  • Presenting this to everyone is the same room lets them:
    • Develop a shared view of users and customers
    • Agree on what problems we are / are not solving
  • Framework Definition (solution)
  • Create high-level sketches of the concept
  • Define major elements and relationships
  • Validate concepts with scenarios
  • Develop visual style studies, if applicable
  • Deliverable: presentation
  • How this helps with buy-in:
  • People can see the big ideas early and get excited
  • Faster than doing incredibly detailed text requirements before drawing any screens
  • Having something to respond to helps bring out more questions and challenges
  • Design (form & behavior)
  • Iterate, refine, & validate using details scenarios
  • Conduct usability testing if desired, once you have detail
  • Collaborate with development team
  • Refine / apply visual design
  • Deliverable: Form and Behavior Specification
  • How this helps with buy-in:
  • Check in with developers (and SMEs) every week or two to make sure your design is feasible within the timeframe
  • Pull stakeholders in if developers resist what you feel are critical aspects of the design
  • When you’re done, everyone sees how the product should look and behave.
  • Development Support (implement)
  • Provide design consultation on implementation priorities and trade-offs
  • Create additional documentation for development team