Compared to other engineering disciplines, it seems like software is one that is most susceptible to veer towards complexity. Is it the ease of iteration? The relative youth of software engineering?
Bingo. Complex machines have more parts that wear out and need attention. Complex software, if it's well-written, can actually Just Work, and doesn't wear out.