Precisely. I was trained as a mechanical engineer, and IMHO software guys really need to appreciate just how much freedom they have in terms of engineering. I'm not going to go on a rant about lazy engineering and patches and whatnot: such is the nature of our craft.
Just keep in mind that engineers in other industries do not have many of the same freedoms we do. They don't get patches, do-overs, and "oops our bad" opportunities.
Sorry -- agile was the wrong weird to use. I didn't mean agile as in loose engineering standards -- I meant agile as in "ability to react quickly and decisively to unexpected events". You can't possibly plan for every contingency, as the story proved, so it's crucial that your organization can quickly and easily fix problems as they come up. This has implications for both engineering and people systems. OODA loop is a better description of what I was thinking of (http://en.wikipedia.org/wiki/OODA_loop).
So having modular, cleanly separated subsystems would matter as much for hardware as for software.