Posted 11.14.2009

Planning a Web App

Lately, I’ve been working on a super secret project. (details to come later…yeah, I hate that line too)

So far, it’s been a great learning experience. I’ve been coding on Code Igniter, which for someone that L-O-V-E-S Expression Engine, Code Igniter is even better.

One of the things that I’ve been struggling with is how to plan out a web app.

I’ve read (most of) 37 Signal‘s book, Getting Real, which talks about just doing it:

Don’t write a functional specifications document

These blueprint docs usually wind up having almost nothing to do with the finished product. Here’s why:

  • Functional specs are fantasies
  • Functional specs are about appeasement
  • Functional specs only lead to an illusion of agreement
  • Functional specs force you to make the most important decisions when you have the least information
  • Functional specs lead to feature overload
  • Functional specs don’t let you evolve, change,and reassess

When you’re anxious to get a project off the ground, this is a great method. I made huge headway at the beginning of the project. I impressed myself, even. However, I eventually had to take a step back. There were a few problems:

  • I kept changing my code because I had not made all the decisions up front on how something was going to work.
  • I started to get this fear in the pit of my stomach that my code was not efficient. I was duplicating code because I hadn’t thought through it on the front end.
  • I hit a wall. There wasn’t a clear next action step. (thanks GTD)

Back in September, Ryan (37 Signals employee) wrote a blog post, A Shorthand for Designing UI Flows. I’ve tried using this to press on, but it’s still hard. My charts look overwhelming.

What is the best practice? Thoughts? Suggestions? Resources? Musical Anecdotes?