June 29, 2014 9:50 am EDT
The whole idea is flawed, the idea that a complex undertaking in a single domain can be cooperatively built well by a team is simply a bad one. Why? Because complex undertakings require a high level of talent, knowledge, and finesse, not a high degree of cooperation. It simply does not work well, regardless of the lovely (or not so lovely) buzzword used to describe it.
Corporate IT and BT directors point to the open source movement and all the wonderful successes and try to mirror the approach. They come to the problem with a critical misconception: that big open source projects have been successful because they were created by hundreds or thousands of programmers. But it’s not true. Looking a little deeper at every single success in the open source arena, we find that in every instance, there was one visionary. (Or occasionally two or three.) And that’s what makes success. Not the legions of volunteers.
There are four groups of programmers. The first group is the sort that runs WordPress on a shared hosting site and is adventurous enough to install and configure plug-ins, modify CSS, and change a line or two of PHP. Not really programmers at all. Perhaps one day they'll take it seriously and crack open a computer science book. Probably not. This is 70% of the people who call themselves programmers.
The second group is reasonably skilled and professional. They can install and configure a framework, read technical documents and figure out how to instantiate objects and to write procedural code, using loops and functions and variables. These are good people, serious about solving problems and sincere in their desire for quality. This is the 25% percent of people who can perform well and implement the tools created by the following groups.
The third group comprises experts. This is the 4.9% of programmers who deserve titles like system engineer. They have put forth the effort to understand how and why computers work as they do. They’re excited by terms like multiple inheritance and atomicity and reference counting. And they know precisely what they mean. These are the guys that can lead a small team of 25%ers and successfully create real projects.
The fourth group is the visionaries, the gurus, the masters, the magicians. One in a thousand. These are the people who can and do invent. That recognize the value of others and their contributions, and use those contributions to create something new, something better. Linus, Sergey, Guido, and many others. They work hard, they study hard, and they are never satisfied. They are the trailblazers, the inventors, the innovators, the leaders.
So. Back to the point.
The powers that be (CTOs, project managers, academics) have a noble goal, to systemize the process of software development. It’s not wholly without merit. The systems and frameworks and ideologies they create have indeed produced gains in productivity, quality, and effectiveness among the 29.9% of programmers in the professional and expert groups. But what these systems will never replace is the fourth group, the gurus, the alpha geeks. It’s simply not possible. And it won’t be possible until computers are as smart as humans.
This is why IBM couldn't compete with Microsoft and Microsoft can’t compete with Google. How do you compete with Google? Easy. Find a .1%er. Find a guru. No system or methodology can replace the genius of a guru.