I worked in construction through school and there are places where it's not even analogies, the same concept applies. But often, the comparison temptation goes way too far.
When I worked on an estimate for a job, I knew there were pretty firm averages on how long it would take to do something. For fabricating storefront windows for example, we simply counted the number of joints in the frames from the plans and had a pretty good idea how long that would take. Just like programming, we had to account for variables in schedule though that could suck the life out of you. For example: having a plumbing crew show up to find that the parking lot is being paved and they can't get into the building because of the hot asphalt in the way is rather expensive.
However, construction has thousands of years of experience to draw on. The fundamental rules of the trade are driven by the same laws of physics that they have always been. Wind load and dead load calculations are the same as they were when they were being done with slide rules. Improvements in tools and techniques have come along, but at a glacial pace compared to what we experience.
On the other hand, we are still discovering that many of our patterns and practices need room for improvement. Singleton used to be a good idea, now most who think about it prefer IoC/DI patterns.
Where we're also lacking is in meaningful licensing and certification. In many areas, even to just be a repairman let alone an installer, a plumber must be licensed or work under the supervision of someone who is. To get that license requires a certain amount of time working in field. I'm not making the case for or against licensing, just pointing it out as it is a huge difference.
Of course in both fields, an architect can draw something that can't be implemented.
I worry about programmers SE when good questions like this get closed... – MattDavey – 2012-03-10T11:57:06.247
@MattDavey Thanks for the reassurance that I'm not going crazy. I thought the same about this one -- both of which will surely eventually be deleted too. All we can do is vote to reopen.
– NicoleC – 2012-03-10T14:52:08.797I'm happy to see this closed, but I do want to suggest not deleting it - IMO it's one of the better historical artifacts of this site. – Aaronaught – 2012-03-10T16:04:10.563
1Given the subject, closed as "non constructive" sounds ... ironic! – Emilio Garavaglia – 2012-07-21T09:36:05.843
see also: Does software reuse preclude process repeatability
– gnat – 2013-07-17T12:43:54.0972
Which of the six subjective guidelines do you think your question meets?
– None – 2011-01-13T19:47:00.7839@Mark I don't see any that it clearly does not meet. – NicoleC – 2011-01-13T19:57:12.030
1@Renesis - Questions asking for lists of answers are not constructive and do not meet the site's guidelines. – Walter – 2011-01-13T19:59:07.597
1@Walter, I'm not interested in just a single word, I'm interested in descriptions of concepts and how they relate. I'll edit the question to be more clear on this. – NicoleC – 2011-01-13T20:01:26.850
1@Walter, @Mark Trapp - I realized the question wasn't asking what I'd wanted, so I revised the question to avoid getting a list of words. – NicoleC – 2011-01-13T20:18:03.657
Building is what compilers do. The design is what we do. Analogies from programming to physical construction are broken. – Tom Hawtin - tackline – 2011-01-13T21:23:12.160
Engineering is engineering, same approach roads. – Orbling – 2011-01-13T22:17:17.747
Presumably how to use a hammer and nails – Glenn Nelson – 2011-01-14T00:59:49.810
@Mark Trapp, I would love to have your answer on this one: http://meta.programmers.stackexchange.com/questions/799/subjective-question-guidelines-interpretation
– cbrandolino – 2011-01-14T02:31:53.540