Building Software vs. Building a House

Found this great excerpt in a book:

Principles are guiding ideas and insights about a discipline, while practices are what you actually do to carry out principles. Principles are universal, but it is not always easy to see how they apply to particular environments. Practices, on the other hand, give specific guidance on what to do, but they need to be adapted to the domain. We believe that there is no such thing as a "best" practice; practices must take context into account. In fact, the problems that arise when applying metaphors from other disciplines to software development are often the result of trying to transfer the practices rather than the principles of the other discipline.

So true. How many times you’ve heard software development compared to constructions or any other discipline?

6 Comments

  • True indeed! More often than not when explaining that building the infamous house or bridge is not directly applicable to software development, I get blank stares from other developers. They once heard the comparison, liked it, and have never thought any further.

    B.t.w. I'm curious: what's the book title?

  • @Arjan,
    I am not done with the book and will review it later, but the name is "Lean Software Development: An Agile Toolkit" by Mary and Tom Poppendieck. Very good one.

  • A good question to ask is that where all the principles come from? Principles come from practices.

  • @jiang,
    sorry to disappoint you, but you are wrong. Principles are IDEAS and INSIGHTS, practises are the ways to implement principles UNIQUELY to a particular field. Principle is "Quality product has always a better customer satisfaction", practises of achieving a quality product is different between software and constructions. You can't claim that from construction practises you will get the principles for software. It is not commutative.
    The idea that you failed to understand is that, unfortunately, many do the both ways analogy, confusing apples and oranges.

    PS: if all of your comments are nothing but negating what I post, what's the point of publishing your comments? Argue just for the sake of argue.

  • "Principles are IDEAS and INSIGHTS"

    Where do those ideas and insights come from? That's my question. I see this as practice->generalization->principles->more practice->more generalization->better principles. Is it not correct?

    Not trying to negate your post. Just trying to understand how things should work.

  • @jiang,

    I think you are missing the point - the point was was the "context". You cannot take the software context and apply it/to it another field context. The only attempt I have seen that was (IMHO) successful, was Lean Manufacturing concepts "translated" into Software Development.

    As for this post - it's closed to comments. Thank you.

Comments have been disabled for this content.