We've seen what happens to companies that ignore this lesson. If you haven't yet, be sure to read Moishe Lettvin's account of how one Microsoft development team had to draw input from 43 separate employees to implement a single feature in Windows Vista. "By the way, 'feature' is much too strong a word," Lettvin says. "A better description would be 'menu.'"
The counterexample? Open source software. By now we've dispensed with the notion that open source projects are developed by thousands of scattered developers worldwide. The truth is that most projects are developed primarily by a core group of dedicated programmers. It's only natural: In this model, the developers with the deepest architectural understanding of the code, the closest interaction with the code, and the most responsibility for the code are the ones who wield the greatest decision-making power in the overall project.
So why is this kind of meritocracy so difficult to duplicate in the corporate world? Part of the blame goes to old-economy business practices, favoritism, and creeping "manageritis." But the other issue is that the oft-repeated complaint of software companies -- that they just can't hire enough skilled developers -- is true, at least in a sense. The problem is that the industry is focusing on the wrong skills.
In 2009, software development managers shouldn't be sifting through resumes choked with acronyms and lists of technologies. Software development doesn't need more typists, secretaries, intermediaries, or middle managers. What it needs are more skilled, engaged, communicative, responsive, assertive developer-analysts -- the kind who can understand, influence, and guide development efforts, rather than simply taking dictation. The shrinking economy makes this need ever more acute -- so for those who can fill the bill, the opportunity has never been greater. For those of you who are still trying to decide which language to learn next, on the other hand, I don't envy you.