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.<p>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.<p>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.<p>This also means, to ensure interoperability and internal control, that big companies would have to create internal infrastructure and well defined standards.