Some potential causes
- software treated as projects that "resources" are assigned to briefly, instead of having a team of people that that build and maintain them (part/full time)
- software treated as projects where success is measured in dollars spent and deadlines met, rather than working software that can create a lot of value
- software architected by people who don't think in systems