Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
Based on what you are doing I would suggest the book Refactoring: Improving the Design of Existing Code by Martin Fowler.

Keep in mind you are not doing this for pay, but for fun. Don't let the "right way" take the fun out of it.

The thing that most struck me in your statement was your current process causes you to throw it away and and start again. That is rarely a good process. Just because you suddenly find your code cumbersome or inelegent does not make it wasted. It represents your current understanding of the problem. What your code is telling you is you need to clean it up, not throw it out. It is an awfully rare instance I would suggest throwing away working code.

The problem with the "Software Development Life Cycle" is it assumes at some point in the process you actually know what it is you want. Unfortunatly, the SDLC needs this step to come first and generally it actually comes last.

One of the really good things to come out of extreme programming is this realization and the attempt to leverage rather than supress this natural process. In your case, Refactoring and Test Driven Development are probably the most useful techniques.

If you find yourself skimming but not using certain books, don't despair or even be worried. It may well be you are just not yet ready to make use of those techniques. Find another book that seems to "speak to you" more. Save the other books and come back to them later.

Initially, I would say things like UML and RUP, etc. will be interesting to you not as design tools/methods/processes but more as tracking and documentation tools you use as you go along. Don't worry about designing up front so much as documenting your design as you go. This will not only help you in the proverbial six months later to decipher your code and intentions, it will give you another perspective on your code as you are designing/developing.

If the class diagram is ugly, your code probably is also. If you find it difficult or impossible to write satisfactory, automated test plans for your code, your code is probably too convoluted and poorly designed.

Rather than worry so much about adopting a process, just look to aquire new "tools." Learn about the tools and get comfortable with them. Over time, you will likely start naturally drifting towards a more methodical approach just because the new tools make it easier to do so. But learning new tools **AND** a new process at the same time is a bugger and not very fun.

In all cases, when the programming gets tough, refactor what you have.

In reply to Re: Software design -- The confussion of buzzwords by KeighleHawk
in thread Software design -- The confussion of buzzwords by zzspectrez

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, 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, 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.
  • Log In?

    What's my password?
    Create A New User
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others taking refuge in the Monastery: (5)
    As of 2020-11-28 13:26 GMT
    Find Nodes?
      Voting Booth?

      No recent polls found