I think lots of internal software at big companies would benefit tremendously if you gave employees the opportunity to "vote with their wallets," or, for that matter, with their feet.
If big companies were sane, they'd use a little free-market competition with internal software projects and have 2 or 3 competitors for each piece of internal software. Projects would be paid in proportion to the number of users who actually used the software.
To prevent collusion and ensure true competition, just mandate that each team use a different programming language. The "language wars" phenomenon will ensure that the teams are rivals.
This also means, to ensure interoperability and internal control, that big companies would have to create internal infrastructure and well defined standards.
If big companies were sane, they'd use a little free-market competition with internal software projects and have 2 or 3 competitors for each piece of internal software. Projects would be paid in proportion to the number of users who actually used the software.
This is exactly how the financial world works. It's expensive, but they've got loads of cash to experiment. I think with any field that has reasonably large systems it would be hard to devote enough time to know for sure you made the right decision. Some good financial systems can take two years to get halfway done and requirements change as the project grows and the markets change.
If big companies were sane, they'd use a little free-market competition with internal software projects and have 2 or 3 competitors for each piece of internal software. Projects would be paid in proportion to the number of users who actually used the software.
To prevent collusion and ensure true competition, just mandate that each team use a different programming language. The "language wars" phenomenon will ensure that the teams are rivals.
This also means, to ensure interoperability and internal control, that big companies would have to create internal infrastructure and well defined standards.