Read my latest article: 8 things I look for in a Ruby on Rails app (posted Thu, 06 Jul 2017 17:59:00 GMT)

Prototypes Are Your Friends

Posted by Wed, 07 Jun 2006 20:30:00 GMT

4 comments Latest by Danger Sat, 10 Jun 2006 09:20:47 GMT

I’d like to apologize for not keeping you updated on Project Borat. If you’d like some background, please read Project Borat, an introduction.

“In early stage design, pretend the interface is magic.”[1]

We’re finishing up Iteration 1, which is a prototype and requirement feedback process. When I used to be a house painter, we’d spend time painting small samples for the customer. The customer would come by when the paint was dry and compare the colors to what they had pictured in their mind and once there was an agreement, we’d move forward with purchasing the necessary quantity of paint for their house. Thinking back… I never questioned this “Show them samples” process as it was how the company did business… but now it seems obvious that people must that made many mistakes of buying colors that weren’t exactly what the customer wanted. Then the painters would be required to repaint. Development work resembles this and this is where prototypes come into play. Painting a house is not quite like developing an application… but that reoccurring process of encouraging customer feedback as early as possible is very similar. It is this feedback that builds confidence that you understand the customers desires. However, if you end up with too much of the wrong color of paint… you might be able to paint a few dog houses with it. ;-)

Over the past few weeks, we’ve had several meetings with the Client to discuss prototypes, user interaction, and goals. For example:

  • When User does X, what information should they be presented with?
  • What types of users will use this application?
  • What are some of the goals and intentions of the users?
  • Might a user want to do z before x?
  • Are users interested in doing something completely different?

During this Iteration we also hit a major milestone for the client. For the first time since they came up with their idea, they were able to see something visual and had semi-functional to play with. The prototype resembled what they had been thinking about conceptually for several months. It can be easy as a developer to forget the importance and excitement that goes along with seeing something that consolidates your ideas… visually for the first time. This process requires a good stream of feedback and asking specific questions about functionality possibilities and not burdening the user with too much information in certain contexts… while still providing them with enough to keep them interested.

In The Art of Project Management, Scott Berkun raises the following questions for iterations and prototypes.

  • What requirements does this satisfy? Can we verify this? (Usability, use-cases, etc.)
  • What’s good and bad about this design relative to the problem it’s supposed to solve (Pros and cons for each of usability, business, technology, considerations.)
  • What data do we need to evaluate this design? (Perhaps a usability study, an informal review by a programmer for engineering sanity, marketing, an expert’s opinion, etc.)
  • What did we learn from this design that we should keep in the next attempt? Eliminate?
  • Are there any other idea groupings or from other prototypes that we should include?

Another important thing to do during any iteration is to keep a list of open-issues. Berkun suggests using a simple tool for this. We’re using plain text files in subversion and using Textile for markup.

What’s next?

  • Idea consolidating
  • More prototypes
  • Discussing architecture plan
  • Scheduling

Until next time…

1 Alan Cooper & Robert Reimann, About Face 2.0: The Essentials of Interaction Design. Wiley 2003.

Get help with your Rails project

comments powered by Disqus
Comments

Leave a response

  1. Avatar
    tj stankus Thu, 08 Jun 2006 14:19:31 GMT

    Robby, thanks for posting your experiences here. Very helpful.

    I’m finding prototypes to be more valuable the more I progress as an autonomous developer. One way I use them is as “proof of concept” early in the process. If I’ll be touching unfamiliar technologies or libraries, or dealing with integration issues, I try to get that stuff straight early on with a prototype. It gives me confidence to focus on the application-specific features (the good stuff!) going forward.

    I’ve heard that prototypes can open the door to customer expectation issues once you start working on production code (i.e. “I thought you guys were done with that”), but I haven’t hit that problem myself.

  2. Avatar
    Robby Russell Thu, 08 Jun 2006 14:35:07 GMT Recommend me on Working with Rails

    TJ,

    Prototypes are useful at various points throughout the life-cycle of a project. We’re currently in the “group ideas” process, which helps us define an ideal first release. The client has many great ideas and it’s our job to help filter those into subsets of releases, which we then break down into iterations, and ultimately a collection of tasks/goals. In this early stage, we’re focusing on one of the most difficult parts of the system to execute, which is also one of the most valuable components of the whole application. Once we work this out with the client and execute it well, everything else is just icing on the cake for the user experience as well as our confidence in the system.

    When selling clients on prototypes, it’s important to help set their expectations up front. Let them know what this is and that it’s not the final implementation. Compare it to a paint sample, a small scale version of building design, etc.

    I’ve written some thoughts on this before in my post, Keeping Prototypes is a Bad Idea.

  3. Avatar
    Reagan Thu, 08 Jun 2006 14:38:41 GMT

    Robby, I read your earlier post about not keeping prototypes and one of my coworkers suggested it to our development team manager and got credit for mentioning it first. Our manager had a part of our team stop active development on a part of a GUI application we’re building and create a prototype for the end users to test out and provide feedback with. This went over really well with the users, developers, and management and is now something we’re doing more often. It’s nothing new to encourage prototypes but many development environments fall into a bad habit of getting quick at turning around code and releases without knowing if they are going down the wrong path.

    I just wanted to say thanks for the reminder!

  4. Avatar
    Danger Sat, 10 Jun 2006 09:20:47 GMT

    Ahoy Robby,

    Michael Schrage literally wrote the book on Prototyping. He goes so far as to suggest that “Effective prototyping may be the most valuable competence an innovative organization can hope to have.”

    Thanks for discussing this in relation to web development. I’m always looking for ways to integrate more of this stuff into my Rails projects – and your blog is ever helpful :-)