in reply to Re: All I Ever Needed To Know About Computer Programming I Learned In Shop Class
in thread All I Ever Needed To Know About Computer Programming I Learned In Shop Class

If you're doing the plumbing for a house, you can determine specific requirements: master bath, guest bath, main floor powder room, kitchen, laundry.

Each has well known standard components; bathroom has a bath or shower, powder room doesn't, kitchen has a dishwasher but laundry doesn't.

Piping, elbows, etc are available in a small variety of materials and sizes, usually only those acceptable by local building codes.

Basically, it's a well-defined job, though there's always the opportunity for change as things start being installed and you try physically moving between fridge and stove.

Software projects are not well-defined. You not only assemble pieces into systems, you have to first create the systems and components and sub-components. Imagine if you had to create all your nails, screws, bolts, clamps, and make your own glue before you could assemble a cupboard.

As Occam said: Entia non sunt multiplicanda praeter necessitatem.

  • Comment on Re^2: All I Ever Needed To Know About Computer Programming I Learned In Shop Class

Replies are listed 'Best First'.
Re^3: All I Ever Needed To Know About Computer Programming I Learned In Shop Class
by locked_user sundialsvc4 (Abbot) on Dec 13, 2010 at 21:26 UTC

    I respectfully dissent.   If a software project “is not (yet) well-defined,” then one has no business writing code for it.   It isn’t “a project” yet, at all.

    You can figure out where to put the stove and the fridge ... and you’d better be careful to do just that, because the fridge needs 110v power but the stove is 220.   If you now want to go back and change your mind, you’re gonna have to call in the electrician, and re-do all of the tile (and buy more tile), and ... and ...   Oh yeah, and the vent-hood is going to have to be moved, which means that the layout of the entire second floor is going to have to be re-done ... and ... and ... And if we do that, we have to get the structure reinspected ... and ... and ...

    Which is why you learn very quickly to make up your mind and stick to it whenever you are dealing with contractors!

    But, yes ... stop and consider.   How many software-project cost overruns do occur because someone didn’t like where they put the stove?   It’s easy to see the physical implications of change to a physical structure.   You realize that you are playing dominoes.

    Also...   let’s be less melodramatic here:   we don’t actually have a metal-forge out in the backyard, and no one is collecting iron ore to dump into a blast furnace in the basement.   We use a tremendous number of “stock components.” (CPAN is stuffed with them.)   We use toolkits of all kinds.   Sure, our contraptions are built of thousands of moving parts, instead of merely dozens.   But we do not start from scratch.