Many good things have already been stated in this Meditation so I'll stick with a little real-life tale of how i learned to appreciate Software Design:

As some of you may know I'm one of those guys who often goes to LAN-Parties. I even helped organizing some and during that I learned to appreciate the Design-Prototype-Redesign cycle.

The actual case was, that myself and a friend of mine have been in the organization team of DSK-Lan II, a little Lan-Party (approx. 100-130 people) here in Germany. Since we both had some Perl experience we got the ttask of building the inter/intranet site and the scripts for the organizing of tournaments etc.
Of course we had a list of features in our head that we liked to have implemented and so we startet coding soon. During coding we got aware of some problems with our code and the database table (things that could be optimized or done a better way even some things that HAD to be changed in order to make it work). As a result our code was quite a mess but finally we got it to work (well sort of). But then another problem arose as we tried to merge the different parts of our code and got all the hell of problems with our different naming conventions etc.

As you can clearly see, this was a very bad way of doing things. But I'm not feeling sorry that I did it that way cause it taught me a valuable lesson: Never underestimate Design issues!
Meanwhile I have read the book The Pragmatic Programmer (which i can truly recommend to everyone) and learned a lot from it. And since I want to learn from my errors I declared the messed up script as a prototype and started to redesign. Which means that we are now creating a feature list (simply a brain storming of what features would be cool to have) which will be categorized and transformed in a roadmap (covering which feature will be implented in the differend phases of the project and till when this has to happen).

Well I'm curious if it will work out this time ;-)
fengor

--
"WHAT CAN THE HARVEST HOPE FOR IF NOT THE CARE OF THE REAPER MAN"
-- Terry Pratchett, "Reaper Man"


In reply to Re: Virtues of Software Engineering by Fengor
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.