My feeling is that it's easier to tell if you're doing the right thing in some of these projects - e.g "Yes, we are building a big concrete wall that will hold back water" etcetera. Also, these projects are undertaken by teams of professionals who are working in a more or less well understood field.
Conversely, in a software project neither of those things may be true. Imagine the "reset password" feature. Sure, it reset the password for your test account. What about a student account created before 2010 (when there was that big accounts change) with restricted ads, from China, marked for suspicion of fraud and the account details service is responding slower than usual... plus, the feature was written by an intern in his second year of a CS degree.