I think there is a lot of talk about hiring an "A" developer, but almost nothing on what makes an A developer an A developer. More likely than not, it a continuum, and that a lot of engineers have the potential to be an A, but don't end up getting there due to one reason or another. It would be great to see some discussion on what environment could one provide that would enable A players to thrive and reach their pot…
It would be great to see some discussion on what environment could one provide that would enable A players to thrive and reach their potential. Pay them enough, give them an interesting problem, and lock them in a room with a bunch of other A players
Steve Jobs on Average vs Best Software Developers
51–60 of 130 posts
Re: Steve Jobs on Average vs Best Software Developers
#52We hear this a lot and somehow feel it's true but there are no reliable metrics and little verifiable data so ultimately it's just talk.
I agree. The more that this sentiment gets institutionalized the less value it has. Statements without a clear counterargument are always bothersome. Would someone like to make the argument for hiring B developers to build a great product? Jobs is great, but this is exactly the kind of quoting that I find really boring and annoying. As a side note, it looks like that video is also available on YouTube: http://www.you…
Are you offering that as a poor example of a counterargument? Because I think it's countering the wrong argument here. His point is not to hire A players because A players make great products.
His point is that A players in software development are unexpectedly significantly better than average players, when comparing to A players and average players in other industries. As such, anyone who is able to attract and work with A players in software development get an inordinate advantage over the competition.
I think the key word that defines his intentions is inordinate. If you can't work with A players, you may have already lost.
Re: Steve Jobs on Average vs Best Software Developers
#53So what do B and C developers do? Not everyone can be in the A tier. Wouldn't a better strategy for society be to focus on extracting maximum value and output from people of all capabilities? Just pay less capable people less, and give them smaller responsibilities.
Re: Steve Jobs on Average vs Best Software Developers
#54His response reminds me a lot of what I have read in Valve's employee handbook ( http://newcdn.flamehaus.com/Valve_Handbook_LowRes.pdf ) in regards to their developer culture. By what I understand, Valve has established a self policing system in which every employee has complete autonomy over what they decide to work on or contribute to. Gabe Newell is emphatic about the flat hierarchy of Valve and its peer-review sy…
Re: Steve Jobs on Average vs Best Software Developers
#55Earlier quoted context omitted.
It would be great to see some discussion on what environment could one provide that would enable A players to thrive and reach their potential. Pay them enough, give them an interesting problem, and lock them in a room with a bunch of other A players
Pay is actually quite low on the list of things that a great developer will value when choosing where to work. And I think it's dangerous to just lock the A players in a room amongst themselves; they need to communicate closely with others in the organization, otherwise the value they try and add might be missing the target.
I know, I was being somewhat facetious. More what I mean is, put them in a tight-knit group, and you are right- it is very important they interact with the rest of the organization too.
Re: Steve Jobs on Average vs Best Software Developers
#56Earlier quoted context omitted.
A designer would probably be a bit more consistent with the vertical grid. For instance, the margins are inconsistent with the line height etc.
I kid, a baseline grid is the least of his worries.
Re: Steve Jobs on Average vs Best Software Developers
#57So what do B and C developers do? Not everyone can be in the A tier. Wouldn't a better strategy for society be to focus on extracting maximum value and output from people of all capabilities? Just pay less capable people less, and give them smaller responsibilities.
You're implying that what's being discussed is a zero sum problem. We're simply saying that 'A' players work best with 'A' players, and if you fight for that in your organization then you'll do great things. 'B' and 'C' players will still exist, absolutely, but you'd do well to avoid them when possible.
This all of course assumes that all humans are created with the same innate potentials, which is definitely not true.
We can encourage everyone to do their best, but you'll get problems if you push people beyond their natural abilities for example by giving a C player the responsibilities and expectations of an A player, which is what I think you're suggesting.
A "B" or "C" player can still be a hard worker, even if she's less capable. I'm not sure why it's necessary to avoid them. Apple still needs janitors, sales people, and other lower salary jobs. I think it applies to their engineering staff as well. Obviously down to a certain level of "C"-ness they probably shouldn't even be an engineer.
Re: Steve Jobs on Average vs Best Software Developers
#58But, I have enough experience to know that there are no 'A' developers that stay that way. People burn out, lose drive, get kids, get sleep apnea, go though a mid-life crisis, and get tired. So, unless you are firing the old 'A's, they will be 'B's then 'C's, etc.
Also, hiring 'A's is incredibly difficult. If you don't have an 'A' company, 'A' benefits, an 'A' location or offer full-time telecommuting, 'A' tools, and 'A' staff working on 'A' products/projects, then if you think you got an 'A', you probably didn't. And you can be 'C' and hire an 'A' and that 'A', if he or she stays, will atrophy and become a 'B', 'C', or worse. 'A's need to be motivated by their work just like anyone else. Jony Ives said recently that what he is working on now is what he is most proud of. He didn't say that because he is an 'A', and because he is inherently motivated on his own and could do that for a 'C' company. For a 'C' company, his work might have been shit and he might have been likely to piss on his designs, because of the bureaucracy and other crap he would've had to have put up with daily.
The point I'm getting at is that you need to hire someone that is a good fit for the work, the hours, the environment, who genuinely likes it and loves what they do and doesn't just have a crush on some ideal in their head about your company. This person can rise the the job you give them, they don't have to be an 'A'. And hire what you need. Don't hire young because they are cheap and expendable if you need experienced and well-networked people, and don't hire someone with loads of experience if you can get an entry/junior/mid-level to do the same job and be more motivated, even if they make more mistakes. The best thing that you can do is to spend a lot of time coming up with a good process to hire. Also, do NOT and I really mean do NOT just get some basic programming test off the net and then use that as the interview, and do NOT totally make the candidate feel like an idiot. Both will make people remember your company as "those idiots/bastards who...", which you don't want. Case in point is Google- their interviews were so hard, people didn't even attempt to interview there after hearing about them. That is not good.
Re: Steve Jobs on Average vs Best Software Developers
#59So if you do want to become an 'A' player:
- Figure out a way to always be deliberately practicing.
- Always be aware of whether you're doing something because you've always done it, or whether because it actually is the best way.
- Be around other 'A' players and learn from them.
- Continually stretch beyond your comfort/"knowledge" zone.
- Continually learn new things.
-----
Some reading material on the topic:
Bounce by Matthew Syed
Talent is Overrated by Geoff Colvin
Re: Steve Jobs on Average vs Best Software Developers
#60A bit of a meta question: As someone who feels like a 'B' or even 'C' at times, what would it take to become an 'A' player? Is it predicated on pure talent alone, hard work, or experience? Even though I know I'm still a junior developer (~1 yr exp), I feel hopeless at times that I'll never approach being 'A' status especially knowing that I have many peers my age that are already far and away better than me. How woul…
Roughly from memory: A's are smart, get things done. The important thing is: An A player in one role may not be an A player in another role. If you put your best programmer at your retail store, you're probably going to have a bad time.
How do you overcome it? Find your passion, make sure you work with others that are A players (one trademark of A players is that they gravitate together), work on your skills and study peripheral ideas that could be implemented. If you're doing the above then youre probably an A player, if youre on Facebook half the day or complaining that someone didnt refill the coffee pot then you're probably not an A player in the role that you are in and you need to decide to train up or move somewhere where you can be an A player.