App Design Process
Problem
I’m new to the whole idea of designing applications. What process should I follow?
Solution
Ever get that feeling like you’re standing on the edge of a massive cliff and way down below you stretches an infinite plane upon which you can see large and very violent armies massing? Maybe it’s just me. I tend to get that feeling whenever I’m overlooking what amounts to a religious war with no obvious winner, be it Java versus .NET versus Ruby on Rails, dogs versus cats (although dogs are clearly superior IMHO), or software design methodologies. Wikipedia lists 16 different approaches to application design (http://en.wikipedia.org/wiki/Software_development_process):
Waterfall model
Spiral model
Model driven development
User experience
Top-down and bottom-up design
Chaos model
Evolutionary prototyping
Prototyping
ICONIX process (UML-based object modeling with use cases)
Unified process
V-model
Extreme programming
Software development rhythms
Specification and description language
Incremental funding methodology
Verification and validation (software)
Most of these are overkill for your purposes, but you should take a few days out of your busy schedule and read up on them anyway. If you really are new to this and are coming at the question of methodology as pure as the driven snow, you should take the time to evaluate the strengths and weaknesses of the different armies before you dive into the battle.
In the end, you’ll probably find that you need a really lightweight approach that ...