in reply to models of models

Personally, I tend to write down everything I want the script to be able to do. Then I write down everything that my boss will expect it to do. Then I wrap my boss's book up in the single sheet of my expectations and pound myself unconscious. When I wake up I usually have a reasonable idea of what I'm going to start with...

OK, actually, I flowchart tasks and APIs first. Much like OOP, I try and figure out what will be done in a general overview and how the big pieces will fit together. Once I have that idea, I pick a small chunk near the middle of the whole shebang and try and get it to respond to my first API spec. Then I flesh it out and start on a neighbor that calls or uses that chunk. At about the 50% level, I start deciding what to re-write. =) There is no such thing as 100% (at least so far)

--
$you = new YOU;
honk() if $you->love(perl)