in reply to Virtues of Software Engineering

Describe what you want to do, think about the inputs and the outputs. Do that as much as possible while staring out the window and drinking coffee|tea|cola.

Don't start work on it yet. Do other stuff. Let your brain come up with clever ideas. Jot them down. My DayTimer is always to hand (like right now) just in case something pops up.

Talk it over with someone. Don't write code yet or think about building tables. Bad idea. Ponder. Think of much better ways to do it, then play devil's advocate and knock those challengers down. Or not.

Gently, start drawing boxes with arrows. Data diagrams, flow control, UI elements. Try a few test pieces of technology. Get comfortable with the whole idea.

OK, start doing stuff. Build a table. Look at it a bit. Build another. Write some more code. Tinker. Finish building the tables. Try some of the code. Confirm you're on the right track with your diagrams, your early scribbles.

Continue, all the while doing testing as if this were a finished product, remembering the pieces you still need to add.

When finished (you think), leave it for a few days. Don't look at it. Come back with a fresh mind. Impress yourself with the good indentation (see earlier replies), the logical variable names, the clever use of .. something.

If you've done mostly what you set out to do, make an archive copy of the code, then start using it (or release it). Start fiddling after that. It's so easy to get code working nicely, only to have it fall to bits when you start hacking again.

Oh, I forgot documentation, didn't I. Umm .. you did comment your code, didn't you?

--t. alex

"Excellent. Release the hounds." -- Monty Burns.