I'm going to completely disregard every single point in there about incentivising (yes, I just typed that word; you may hereby assume I've lost all cred) employees without money, and urge everybody to leave their cynicism at the door (because ultimately, if you have to be taught to do that stuff, and you have to make a conscious effort, you will fail at it and should resort to just paying people more; a quality working environment is an intrinsic part of culture and can't be bolted on by paying consultants).
I'm with the article, and at least finding it a useful POV, until this:
Practices like Extreme Programming, that were designed for programmers with ordinary skills, work even better with extraordinary programmers.No. No, no, no, no. No, no, a thousand times no. Stop right there.
Whoever typed that should be aware that their chances of actually employing extraordinary programmers or working with them are approximately 0. Maybe of the group of programmers with which the author has experience, the extraordinary ones of that group work well with XP. Not in the real world.
I do not know a single extraordinary programmer who likes or would even be willing to tolerate XP.
- Pair programming just doesn't work with extraordinary programmers (and extraordinary ones are usually the ones who literally shove the other part of the pair to the side and pretend it's normal programming).
- 40-hour strict workweek just doesn't work, because many extraordinary programmers can't switch off voluntarily, and go through manic high and low phases of productivity.
- The phrase "YAGNI" makes extraordinary programmers violent with rage, because they are always more skilled than the person uttering it, and always know that Yes, You F**king ARE Gonna Need It, Moran! (YYFAGNIM? [Welsh?]) They understand agile, but at the same time they also understand overall lifecycles and how difficult it is to retrofit Lack Of Design Up-Front f**k-ups later on.
- Perhaps most importantly, extraordinary programmers understand anyone selling any type of Silver Bullet is lying or naive.
Perhaps the author of the article needs to meet some real extraordinary programmers.