Getting Real, Step 1: No Functional Spec

09 Feb 2005 by Jason Fried

We talk a lot about our “Getting Real” process at the Building of Basecamp workshops (next one to be announced shortly — sign up for the mailing list at the bottom of the sidebar to be notified).

Getting Real is all about starting from the user interface and customer experience and then building out. Visual design first, programming second. The more traditional process is starting from the abstract (documentation, diagrams, charts, etc.), coding a skeleton app, and then homing in on the real by finishing it up with an interface. We think that’s backwards.

Over the next few weeks I’ll be writing more about our Getting Real process, but I wanted to jump in by first talking about step 1…

Step 1: Don’t write a functional specifications document

Don’t write a functional specifications document. Why? Well, there’s nothing functional about a functional specifications document.

Functional specifications documents lead to an illusion of agreement. A bunch of people agreeing on paragraphs of text is not real agreement. Everyone is reading the same thing, but they’re often thinking something different. This inevitably comes out in the future when it’s too late. “Wait, that’s not what I had in mind…” “Huh? That’s not how we described it.” “Yes it was and we all agreed on it — you even signed off on it.” You know the drill.