Ben's Place

These posts are from my feeds, but filtered a bit.

Recent Work

Chatter

Curbly

YFly

Affiliations

RUM

WWRoR, Please recommend me!

I occasionally blog at The Whiny Nil

Contact Me

5 Reasons to Insist on "Interface First"

I have been doing freelance Rails development for almost 2 years now. Without question, the most successful projects - the projects that are in production - designed the interface first. Here’s why Interface First leads to success:

  1. Design is cheap compared to development. Like 37signal’s Getting Real says, Design is relatively light. A paper sketch is cheap and easy to change. html designs are still relatively simple to modify (or throw out). That’s not true of programming. Designing first keeps you flexible. Programming first fences you in and sets you up for additional costs. This is a litmus test to see if your customer understands the economics of software development. If your client asks you to build it, and they’ll design it later, they don’t understand the cost of rework.
  2. The interface is the product (also a stolen idea from Getting Real). As much as it hurts me to say this, my code is not the product. From the user’s perspective, the colors, the shapes, the flow, how it renders in various browsers matter more than what framework it’s developed in. If your client doesn’t get this, you should question whether or not your client has any aesthetic sense. He probably doesn’t.
  3. The interface is part of your portfolio, not the app. This also hurts to say, since I think I’m a pretty good RoR developer. But my clients often attribute my skill as a developer to how pleasing the design of the site is. When considering a project, think about how it will look in your portfolio - try not to take projects that will look ugly. If the interface design is ugly, that will reflect on your ability as a coder.
  4. A good interface proves that the client knows what he wants. I have lost many billable hours by waiting for the client to make decisions on inconsistencies in the interface. This waiting around makes me anxious, since now I have to push the client to decide so I can start billing again. Like Big Worm says in the movie Friday: “Playing with my money is like playing with my emotions.” Let’s say that you’re still able to bill for your client’s hemming and hawing, do enjoy reworking your code to fit the ever-changing design? In my opinion, this is not rewarding work.
  5. “Interface First” proves your client is serious. I talk to many people about their entrepreneurial ideas. After all, it’s fun to be around people who are excited about something! But most of the time, they have no design or even wireframes mocked up for their site. That’s ok, so I usually suggest they hire a designer, mock up some nice looking pages, and show their idea to potential customers or investors. This way, they get to validate the idea before they spend a bunch of money on development. Consider this a litmus test for how serious the entrepreneur is. If they balk at the idea of designing the interface first (committing time and money), then they aren’t serious. When your customer isn’t serious about his product, that brings up a whole host of problems. I’ll save those ruminations for a different post.
I hope this helps! And if you don’t agree, I’d ask you to comment, but my new little tumblelog doesn’t have that feature. Hopefully, I’ll get some 2-way communication in the near future. Stay tuned for a future post titled, “5 signs the project you’re working on will never make it to production” (aka, does your client really want that app?).
Comments (View)
blog comments powered by Disqus