As I read through a pretty decent book on software 'construction' ("Code Complete"), I have a few questions that the book leaves scarcely covered yet are somewhat concerning to me. For one, I'd categorize myself as a self-taught hacker. I didn't get to finish my degree in Computer Science (was hired in my second year, and offer wasn't bad so I thought to slack off ;-) and therefore may not be aware of certain things that go into constructing a sound software piece/program. This book, in particular, reinforces certain practices that if followed and executed properly will yield in a more coherent software product (it's architecture, code implementation etc). To prove it's point, it also mentions certain statistics covering and case studies that reveal that only proper execution of those software engineering principles will result in productive and cost effective projects.

The actual question that I have to fellow monks is what is their approach in building particular program? I'm specifically interested, since Perl is a language that is very tempting even to the point where one (such as myself) is more willing to jump into 'building code' sooner than later therefore foregoing certain design steps etc. Also, this urge to start coding earlier is also spurred by the fact that prototyping in Perl is somewhat easier than such languages as C, for example.

I'm sure there's a lot of people who at one point in their career found themselves in similar position that I am in now (quick to hack, slow to think first ;). I'd appreciate it very much if fellow monks could share into their experiences and why 'formal' approaches to 'software engineering' (e.g. requirements specification, functional specs, architectural design before actual 'coding' stage) are almost always guaranteed to yield better results. Also, if someone has a few examples where the reverse would work better. I hope this will be a fruitful discussion ;).



"There is no system but GNU, and Linux is one of its kernels." -- Confession of Faith

In reply to 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.