The Dirty Secret of 10x Engineers
erictang.org
erictang.org
Crap workspace? Leave. Crap cohabitants (not just in need of assistance, but willfully negligent or so far behind that you can't get your job done)? Find better people to be around.
The hard part: If you're a nice person, it can take a while to really learn and internalize this, and it can remain difficult to execute.
It's not about being "better than". It's about circumstances that hinder your own performance and leave you counter-productively frustrated. No situation is perfect, but there are points past which they become destructively counter-productive.
I've been in this situation three times. Reporting that your teammate is dragging the entire project down is a horrible feeling - but it's the only responsible thing to do. If you don't, you buy one person's peace of mind at the cost of the whole team's well-being.
PS. Dr Glover was right: nice guys are not nice. They just try to cover their asses and stay quiet.
On the other hand, it is easy to build these CRUD apps 10 times faster than a developer who has not learned all the ins and outs of such work. CRUD apps happen to be highly useful in most companies, i.e. there is a lot of market demand. Some people like this kind of work just like some people like to work on an assembly line. And it may even be worthwhile to pay someone a higher salary to churn out apps like this.
But that does not make someone a 10x engineer. It just means that they happen to be working in a 10x environment right now. Next year they may be struggling to keep up with iOS developers who are all on their 3rd iOS app.
My takeaway is that if a company really needs and wants 10x engineers, they should advertise the narrow details of the job that needs to be done and avoid listing irrelevant stuff like education and all the technologies involved. The ad should say something like Ruby on Rails for over 3 years with at least 10 apps built using MySQL backends.
But if you need someone who is creative, can adapt to change and new technology, has experience with certain generic technologies like async servers, then please say that in so many words. And pay them more than average.
Because the majority of developers are average developers and they share some characteristics. They have been working with more than one kind of technology. They are good at learning new things. They know how to adapt to new tools and new business requirements. They have used some stuff in the past, but because they have no desire to become 10x well-paid developers using that exact same set of technology, you should not be judging them by matching up lists of acronyms and names.
"We hire ridiculously intelligent people", another London company I know says "We only hire top 5% of candidates". The truth is both of you hire the best people out of the small subset that was interested enough to interview with you. Just like anyone else.
The general idea is true though :).
Most of their hires will come from reaching out to people and referrals.
10x means shipping - and nothing else. It's just one trait - being able to attack small chunks of work and finish them before moving to the next one - and it doesn't say anything about the quality of one's work. Here's why: you can learn to ship.
Being a "10x" is half of Joel's "smart and get things done". Don't ever forget about the other half.
It's a workable hypothesis, but where is the data?
Some people think that Google has done such studies but they are part of its secret sauce.