Development: Design, Prototype then Code

When I were a lad, I were taught to use flow chart stencils.... I was shown how to write data dictionaries, to thought-cloud through the possible data members for these dictionaries, to define the mutable and non-mutable points and abstract away the common elements between these definitions in order to design the code to be written. All pretty much on paper, before you sat before the computer. The reason being? Paper was cheaper than electricity, and it took a long time to compile and recompile, and then even longer to debug, a program. Bugs got hidden and only appeared when testing took place. And if a bug ended up in test, which could obviously have been caught on paper, long before it reached the coding phase, then you got egg on your face. In a nice way, you all knew you had to do more than cut code. Unfortunately Moores law exists, a blessing, and a curse. As I feel it's made the quality of software design fall, as people can afford to code and compile and t...