Hey there, what you refer to is "bottom up" development. It's a good way of handling messy real world problems that are not easily soluble with a formal mathematical approach. See the following links
DSDM - an early approach I used when it first came out
Extreme Programming
SCRUM methodology

In essence, by repeated prototyping you move closer and closer to an approximation of the real world problem. It helps uncover what is "unknown" about the problem and is a great tool for helping an end user (typically untrained in systems thinking) work with you to reach a deeper understanding of the problem they are asking you to solve. In programmer terms, the use of strictly limited timeboxes and regular reviews with the business user ensures you don't wander too far off course.

It contrasts with the historical waterfall method of top down development popular in the 1980s, which is based on the belief you can fully specify the domain of a problem from Justification Study to Feasibility Study to Requirements Analysis to Architectural Design and then down to detailed program spec.

It really depends on the kind of system you are writing. For a system worked on by 500 developers, you're probably better off with a top-heavy PRINCE 2 project management and top-down design approach. Of course, this has led to some classic disasters in developing large scale government systems, for example the DSS client-server replacement system (£500M wasted). I think that's more a function of the complexity of the problem and the limitations of how much one human brain can understand rather than any inherent flaw in the methodology.

For smaller systems, or ones with unclear requirements, a bottom-up approach is better provided someone (the tech project manager) has the discipline to ensure documentation is completed properly and an adaptive approach is taken.

Good luck!


In reply to Re: Perl Software Design Process by peterdragon
in thread Perl Software Design Process by TeraMarv

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.