An initial point - the source code is the blueprint. The functioning of the source code is the building. Customers don't pay for code, they pay for functionality.

The distinction missing here is the relative ages of the two professions under consideration. Software engineering, as a profession, is no more than 60 years old (and I'm being generous). Architure, as a profession, is at least 6000 years old. That's a factor of 100. Instead of 3 generations, we're talking 300 generations. This means that, barring really weird concepts, every building under consideration has already been built before. You can point to a building that the customer can go touch which has the characteristics being discussed AND the architect can go look at the blueprints of said building. While there are hundreds upon hundreds of application requests on codelance (and the like) saying "I want to build something that looks just like XYZ", no-one can go look at the blueprint for Word or Windows or eHarmony in order to learn from it.

The only place this kind of information exchange exists is in the OSS world. That, and that alone, is why OSS is so important. It makes coding into something approaching architecture.


My criteria for good software:
  1. Does it work?
  2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?

In reply to Re^11: "Practices and Principles" to death by dragonchild
in thread "Practices and Principles" to death by ack

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.