in reply to Virtues of Software Engineering
The first thing that I do when I start working on a new project is to sketch out a design. Not a complete spec, but I try to at least write down what I'm supposed to be doing, what kinds of input I'm expecting, what kinds of output, and so on. (The next thing I do, once I have some idea of how I'm going to solve the problem, is hit CPAN.)
Why does this work better than just sitting down and typing a shebang and going from there? It works better because I can more easily break the problem down into steps, and solve each smaller problem one at a time. I can think about which parts of the program need access to what data, and keep my code more loosely coupled as a result. (That way, when I have to change something, it's less work.) Because I put some thought into how I'm going to solve the problem, it's easier to figure out which modules on CPAN are going to be most helpful, and which ones are nifty but tangentially related to my particular problem. In general, this way works better because it gives you a better understanding of the problem.
On larger projects, my design docs include prototypes and mockups. You can still start coding right away even if you don't start coding right away. :-)
--
|
|---|