Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re: Virtues of Software Engineering

by Fengor (Pilgrim)
on Dec 28, 2001 at 13:39 UTC ( #134834=note: print w/replies, xml ) Need Help??

in reply to Virtues of Software Engineering

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 ;-)

-- Terry Pratchett, "Reaper Man"

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://134834]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (4)
As of 2021-08-03 15:19 GMT
Find Nodes?
    Voting Booth?
    My primary motivation for participating at PerlMonks is: (Choices in context)

    Results (39 votes). Check out past polls.