Weinberg’s second law

If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization.

 

I came across this again in David Rice’s Geekonomics. Rice also use uses the “bridge” as an example of physical infrastructure that one can see. Software is infrastructure, but it’s not visible. It’s weakness is not readily apparent.

In principle, we could certify software by testing, but by then it’s rather late, it’s already been built. Quality must be built in, that requires real engineering.

Advertisements

About Bill Nichols

PhD in Physics from Carnegie Mellon University I'm a software team coach and instructor with the TSP Team at the Software Engineering Institute
This entry was posted in Uncategorized. Bookmark the permalink.

5 Responses to Weinberg’s second law

  1. Glen Alleman says:

    Somehow through some means I don’t understand we got away from “engineering” software system and went to letting them emerge. Emergence at low levels is part of all good project management processes. But emergence at higher levels appears to me to be simple laziness by those accountable for making commitments and describing what the system should do.

    I must have missed something along the way.

  2. Bill Nichols says:

    It might help if we taught software engineering as engineering rather than as computer science. When I helped my brother study for his PE exam, I couldn’t help noticing how many questions were on the economics of engineering. I know engineers receive some of this as undergrads, but in science it is never mentioned.

    My son’s experience in programming courses at university is mostly not so different than mine, students are taught a language, constructs, maybe some algorithms, then told to produce a product for grading, but the process of development is ignored. Basically, code and test (repeat) is the process. In my opinion, this misses critical aspects needed for learning and mastery, that is process and in-process evaluation. When learning one must focus on the process as much as on the outcomes.

    One difference between then and now is I learned on punch cards. I was more or less forced to design even simple programs and code them in longhand before going to the keypunch machine. I might not get a compile until the next day, so I was motivated to make it work the first time. By the time I was on college, late ’70s, we had interactive editors and compilers. My process degraded. Oddly, with word processors, my writing process degraded as well. It was many years before I realized why.

  3. Micha Elyi says:

    I came across the quote in Weinberg and Geller, Computer Information Systems: An Introduction to Data Processing. Little, Brown. Jan. 1, 1985. p 113.

    I had the same “Aha!” experience as Bill Nichols while learning Fortran and submitting jobs on 80-column cards for overnight processing.

  4. Micha Elyi says:

    I came across the quote in Weinberg and Geller, Computer Information Systems: An Introduction to Data Processing. Little, Brown. Jan. 1, 1985. p 113.

    I had the same “Aha!” experience as Bill Nichols while learning Fortran and submitting jobs on 80-column cards for overnight processing.

  5. Bart Kemper says:

    One of the scary aspects is that computer programming has taken the place of other forms of controls, such as for elevators, HVAC, lighting, etc. Prior to being computerized, the controls and similar systems were required to be supervised by and taken responsibility by an Professional Engineer (P.E.) Being a P.E. doesn’t make you magically a better engineer, but you are now personally on the hook and are essentially betting your livelihood this will work. There is a name and registration number on the key drawings and documents. There is no such process with the programming side and programmers will tell you “it’s impossible” for a single person to take responsiblity for the work. Clearly, if the Sears Building and other skyscrapers have a P.E. in change, and other P.E.s below that engineer for key parts, etc. then its fully possible — just not desired. This is part of the dumbing down of society, where instead of deferring to those with training and expertise others’ opinions and abilities are “just as good” (which is the arguement that you don’t need a degree to be a programmer.) While I agree that you may not need a degree to be a programmer for something like a game, when its life/safety code there should be checks and balances similar to any other part of the project.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s