A web development process

September 7th, 2008 in Programming

I’ve been gravitating toward web development in the past few years. If anyone is curious, here is my basic approach to web site (and web application) development:

  1. Concept: do interviews, write stories about the site/application, create & collect storyboards, sketches, swatches, metaphors, and ideas
  2. Pitch: redraft storyboards and organize other materials into a final set including basic requirements if software is needed
  3. Plan: milestones, resources, inter-dependencies (only if the $ or scale requires it)
  4. Design: site + URI maps, basic visual design, information design, software design
  5. Analysis: review design, prototype tough bits, capacity analysis, reflect, and improve as needed
  6. Bootstrap: server setup, source repository setup, shell out software and content
  7. Development: short, minimalist development (simple styles, skip color + bling, simple implementations, simple code)
  8. Finishing: a small amount of review, refactoring, reflection, and improvement (only enough to get off the ground)
  9. Release: start internal, limited beta, public beta, version 1, etc.
  10. Spit and polish: make things shine
  11. Repeat: goto 8 until version 1, then continue incrementing as $/time allow

Notes

  • Web development only differers from other software in how easy it is to release quickly
  • Some of these items can be skipped, depending on the size of the project
  • Many of these items can parallelized with the right people, or when stalled on preceding items
  • Too much parallelization becomes chaos (must balance it)
  • You must release before polishing, even if internally
  • Internal (and beta) releases must be real … if you fake them, the results are useless
  • Milestones are critical to finishing, in that you need to finish the project in stages for psychological reasons (or you may never finish)
  • Analysis cannot be skipped, even if short (capacity, data, information, etc.)
  • If you’re developing framework, then you’re project will fail: focus on your goal
  • Use the simplest tools possible: paper, pen, wikis, existing libraries, etc.
  • Metaphors, swatches, and examples are cool, and are cheaper than visual-design from scratch