There is a frequent complaint I hear from people working in the Information Systems (IS) departments of corporations: the IS department doesn't seem to care about producing good software, and in some cases doesn't even seem to care about producing software at all.
At first, this behavior would seem counter-intuitive, since the purpose of an IS department is to see to the computing needs of its company. But if we remind ourselves that people and organizations do what they are incented to do, things become clear. Before you go arguing that there are altruistic individuals in all organizations, including IS, I agree that such individuals exist. But as in all social situations, the number of altruistic individuals is not enough to change the overall behavior of the group.
To understand why mediocrity ends up as the goal of IS, it's important to realize that the IS department is a cost center, a red line on the balance sheet. Because of this, the IS department can only look good by (a) not screwing up and (b) by lowering it's average cost to get things done. At first, this suggests that IS departments will aim for the best and cheapest solution to any given computing problem. In order to understand why this isn't true, we have to remember that IS departments are run by individuals and individuals do what they are incented to do. We don't care about the individuals who are happy in their current position, as they will simply try to deal with everything thrown at them without losing their jobs. We need to focus our attention on the member of IS who has aspirations.
A staff member who has aspirations has to achieve uncommon success to get promoted (unless they have family ties or blackmail material; and while both of these occur, they are rare enough that we can essentially ignore them). Such a person can never make the company money (remember, IS is a cost center), so they need to stand out in other ways. They could try to get more done with the same amount of time and money, and frequently individual managers do this. But the truth is that there is a maximum productivity that can be achieved for a given budget. And getting more done in the short run doesn't help. Anyone who bases their promotions on getting more done with less has to reach new heights of achievement each time they seek the next promotion. While some exceptional individuals may succeed this way, there is an upper bound on what a single technical person can achieve, and so a limit to how far they can rise and how quickly. For a manager, there is a path of lesser resistance: grow bigger.
Despite some obvious flaws in the logic, the accepted wisdom in IS departments is that a manager with a larger team is doing more work and is therefore more capable than a manager with a smaller team. This creates an obvious path to promotion: build your team as large as possible while avoiding major failures. Individuals who do this while dodging the obstacles thrown at them by others seeking promotions (or those who manage to sabotage their competitors) get promoted. The net effect of this is IS departments run by people who believe the best way to succeed is to grow the IS department as large as possible.
As a result of this "bigger is better" mentality, we end up with mediocrity. If the staff is too large and too unskilled, there will be too many things done poorly and we will end up with major failures. If the staff is too small, no matter how talented, upper management will view us as less important precisely because the group is small. So the real goal of IS mangers with aspirations is to grow as large as possible with minimally qualified staff.
Of course, a good manager has to make sure they are in fact getting things done that help the company. So there is an additional incentive to make sure that work done furthers the goals of the company. But for an individual trying to get promoted, this goal is secondary and only need be minimally achieved.
Unfortunately, the only way to solve this problem is to get upper management which actively discourages the view that "bigger is better". This is extraordinarily hard to achieve, since CIOs are people who have risen to the top by succeeding at the "bigger is better" game. And so the wheel goes round and round with no end in sight.
If you want to work with better than mediocre people, count yourself lucky if you live in a place where software companies exist (since the developers there are producing the lifeblood of the company). If, like most computing professionals, you live in an area where IS departments are the only real option, don't hold your breath waiting for things to change.