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.


In reply to Re: Virtues of Software Engineering by talexb
in thread Virtues of Software Engineering by vladb

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.