Working on an app a while back, I watched people constructing a building outside of my office window. Watching hundreds of people working together, they got that thing up in around six months.
I looked at how far we had gotten on the software we were working on in the same time period. It was, frankly, disheartening.
All you saw was the part where they compiled the building. All the good stuff had already happened. In construction, the guys with the hard-hats are the compiler/linker. If you saw how long they spent bribing (or whatever it happens to be called locally) and permission seeking before the first shovel went in, you'd feel a whole lot better.
Ah but in buildings you adding plumbing is just a matter of putting in pipes, in software adding plumbing involves known unknowns and unknown unknowns :-) On the flip side though it is possible to write really bad software really really quickly.
If you were in New Zealand I'd ask you to get back in a year after it has rained a bit.
Leaky building syndrome - cheap, fast, crap buildings that get toxic mold and fall apart. But if the building is any good, then yes, I can see that watching it would be disheartening.
Like others have said, all the process you observed was equivalent to when you "build" your code (pun intended). And the compiler probably took a lot less than 6 months of time to build your code ;)
There are certainly similarities, but civil engineering when compared to software engineering methodologies is closer to waterfall. And waterfall isn't the most efficient way to turn out software.
I looked at how far we had gotten on the software we were working on in the same time period. It was, frankly, disheartening.