|
"I also believe that the idea of the 10x developer while not a myth, is so rare it’s not worth trying to find for most companies" The problem with the 10x myth is that it assumes a single dimension of productivity, and that no-one is ever negative so there's some sort of sensible, positive "minimum" to talk about. Senior developer leads a team of three other medium-experience developer, and completes the project in six months. Junior developer leads a team of 5 other even more junior developers, after six months they've got nearly nothing, so we pull in another 4 semi-skilled developers and 2 contractors who are drowned under the mess and don't know what to do, and six months later, the project is cancelled entirely. How many times better is the senior developer? There's nothing even remotely skewed about those numbers, either. Both are totally realistic. And yes, senior engineer can fail, and junior engineer could succeed. (Although the range of projects where a junior can succeed and a senior can fail assuming adequate initial knowledgebase for both is fairly narrow; generally if you find one, you've probably got a strawmanned "senior" engineer who isn't actually senior but just a collection of stereotypes in your head.) If you're still offended: A generally senior software engineer who knows nothing about the domain and his team of three develop furiously for a year and eventually deliver the first iteration of what was asked for, with another year to go on the project to finish it. A generally software junior engineer who is deeply familiar with the problem domain listens to the customer's problem and after a day's thought realizes what they really need is a very different, but also much simpler, solution, which they deliver in two weeks by themselves. How many more times valuable is the latter? (I've actually advised someone like that in the construction industry. They were switching into a programming career in their 40s. I said, look, there's no realistic chance you're going to outprogram me in a really academic, isolated sense of the term. But you've got contacts, the ability to pass the shit test with other people in your industry which I and/or generic software engineer have no chance of, and a deep understanding of the problem domain. Don't worry about trying to outprogram a 20-years-experienced software engineer, take advantage of the facts that you know what your customers really need, and... you're there! and I (standing in for generic software engineers) am not! Life's about playing what you're dealt, but people are generally dealt more cards than they realize, I think. Not necessarily better cards, but they have more cards than they think.) I tend to agree there isn't a such thing as an engineer who is 10x more productive than another, in the sense that they will do the same thing as that other engineer, just 10 times faster. The key comes from doing things differently, most of the time. There's other differences as well, such as being aware of the pitfalls. I recently got myself put in charge of a billing system, and as a senior engineer, I at least have the good sense to be suitably terrified, for instance. "Move fast and break things" has its place, but "careful, paranoid engineering" does too. Almost by definition, your really junior employees don't really know how to do the latter. (They'll often be able to cargo cult it, which can be a start, but they won't really understand it.) |
but "careful, paranoid engineering" does too. Almost by definition, your really junior employees don't really know how to do the latter. (They'll often be able to cargo cult it, which can be a start, but they won't really understand it.)
I also specifically said the difference between someone with 10 years of experience and someone with 20 years experience. If you have 10 years of experience -- you hopefully aren't a "really junior employee".