I'll probably write a blog post laying this out a bit more clearly, but responding to a few of the comments here:
* I don't think 'rock star' programmers is important. I think that most programmers got into the game because they love programming, not because it's what they have to do. There are exceptions, but I believe that more programmers love doing it then have to do it. The point is to setup an environment where you as an employer can get the most out of people of a range of talent simply by setting up an environment that motivates in the best way possible - through autonomy, mastery and purpose. I think people that don't seem passionate will become more passionate if given the freedom.
* to be clear, i said every 'developer' makes the same. or, better said, every role makes the same - there are roles that make different amounts, but it's still pretty flat and people are not individually offered different salaries by some subjective determination of their merit, but rather equally by the general role they are hired to do. it so happens that most of our employees are either developers or designers and they're all paid the same out of simplicity. the main point is that salary is less important than environment.
* finally, i'm not saying that the way that github does it is the way that you should do it - we have the difference of the C-suite being open source developers, so it's easier for us. the point is that even this somewhat radical example works surprisingly well, and that if you try to optimize for autonomy and purpose in the lives and working environment of your developers that it will most likely result in a much more productive output.
again, i'll try to do a more comprehensive post on what i specifically was talking about, rather then just the slides out of context, but i wanted to quickly address some of the comments. thanks! also, it was a blast doing the keynote, so thanks to everyone that attended and argued about it after.
I suspect that you talk from experience when you make the claim that 'Most programmers got into the game because they love programming.' I currently work in india, and my experience here is that most folks who enter programming do so because of better pay, more glamour, and more international travel. I don't have any studies to back up my observation, just my personal experiences in the last few years.
I also believe that their training/exposure to CS in college is not uniformly good, and that they are put into an environment where they are already expected to know stuff which they have not been exposed to. Good organizations spend quite some time on training, but many do not.
I personally believe that before a programmer is given autonomy, it is vitally important to have people with good, attitudes who are willing to admit to mistakes and learn constantly, who have some measure of comfort with the fundamentals of programming ( which works across languages ), and who are mentored properly ( by which they have people to turn to whenever they get struck and need to figure out how to proceed further ). Most middle managers have no clue as to what programming is and hide behind a layer of techno-talk and they really are often unable to provide a sense of direction or purpose to the programmer.
While i agree with your role for management in creating a good environment for your emplyees, giving them a lot of autonomy, allowing them to master their tools, and having a sense of shared purpose, i believe that these require a few fundamentals to be met before the above environment is productive.
I admit that these observations are biased and not based on any scientific studies, so take them with a pinch of salt.
* I don't think 'rock star' programmers is important. I think that most programmers got into the game because they love programming, not because it's what they have to do. There are exceptions, but I believe that more programmers love doing it then have to do it. The point is to setup an environment where you as an employer can get the most out of people of a range of talent simply by setting up an environment that motivates in the best way possible - through autonomy, mastery and purpose. I think people that don't seem passionate will become more passionate if given the freedom.
* to be clear, i said every 'developer' makes the same. or, better said, every role makes the same - there are roles that make different amounts, but it's still pretty flat and people are not individually offered different salaries by some subjective determination of their merit, but rather equally by the general role they are hired to do. it so happens that most of our employees are either developers or designers and they're all paid the same out of simplicity. the main point is that salary is less important than environment.
* finally, i'm not saying that the way that github does it is the way that you should do it - we have the difference of the C-suite being open source developers, so it's easier for us. the point is that even this somewhat radical example works surprisingly well, and that if you try to optimize for autonomy and purpose in the lives and working environment of your developers that it will most likely result in a much more productive output.
again, i'll try to do a more comprehensive post on what i specifically was talking about, rather then just the slides out of context, but i wanted to quickly address some of the comments. thanks! also, it was a blast doing the keynote, so thanks to everyone that attended and argued about it after.