5 ms·
I think the ability of a programmer to be 10x or 100x or 1000000x depends on the domain. If you are writing a sales tax calculator and need to implement 500 dif
by anbop 7y ago
I think the ability of a programmer to be 10x or 100x or 1000000x depends on the domain. If you are writing a sales tax calculator and need to implement 500 different local state sales tax regulations from a scanned Word document, your best developer is going to be maybe twice as fast as your average one.
But if the problem domain is “write a program to search the Web” or “write a program to allow people to send data-plan messages to each other from even very old feature phones” then the best developers can create millions of times the value of an average programmer.
- Glyptodon 7y agoI was just thinking about how at most jobs I've ever worked the main barrier to productivity is the inability to make minor (in my opinion) changes to organizational policies that have high business logic complexity relative to benefit.
- JohnBooty 7y agoYeah. Particularly if you don't have the authority to implement changes that would improve things in the long run, there's really no way for a dev to be a "10x" in that situation, even if they may have the ability to be a "10x" dev in other contexts.
- cbzoiav 7y agoA lot of it is drive and people skills. If senior people like/trust you and you're willing to stand your ground/fight for something you can normally achieve significantly more. That and luck on how those above you are trying to play the corporate politics / personal career game.
- JohnBooty 7y agoAgreed on all counts. Drive and people skills matter a lot. Also, a lot of nefarious people skills are also rewarded. If senior people like/trust you and you're willing to stand your ground/fight for something you can normally achieve significantly more. Yes, although in a lot of company cultures this is nearly impossible due to the lack of level playing field. A "software architect" I once worked under liked to play the following game, and he played it awfully well. We'll call him "B." 1. "B." spends days, weeks, or months researching a solution all by his lonesome. 2. "B." presents this idea to the team. It is effectively an edict, but he presents it as a meritocratic chance for others to offer feedback or alternative ideas. 3. The rest of the team is caught flat-footed, because we... just heard about this problem minutes ago, and obviously aren't as prepared as... well, somebody who has prepared. We are also not allocated time away from our scrums in order to research and test alternatives, whereas that was essentially his entire job. In other words, we bore the burden of proof and yet had no time in which to produce said proof. 4. I don't recall one of the edicts-masquerading-as-RFCs from "B." ever being successfully challenged. Management (who was non-technical) perceived this as evidence of B's superiority, because after all, it's not like folks had better ideas than "B." Since he structured things in a way such that folks really couldn't have better ideas. Eventually many folks on the team (like me) tuned out and just stopped participating in the whole charade after a few trips around the block. This, of course, was seen by management as more evidence that "B." was the only one with legit ideas.
- Izkata 7y ago> If you are writing a sales tax calculator and need to implement 500 different local state sales tax regulations from a scanned Word document, your best developer is going to be maybe twice as fast as your average one. Assuming "regulations" is actually functionally different and not just some sort of lookup table for a multiplication constant, then having been in a situation with only 10 rules, even such a simple example can easily have a difference on the order of 10x just from prior experience with organizing large amounts of lookups into code (+edge cases, +consistent interface, +etc) instead of into tabular data.
- r00fus 7y agoThere are constants, marginal rates and limits. Furthermore there are questions about how to determine jurisdictions. It's very not easy and some companies make bank fulfilling client tax obligations or licensing based on their domain experience. A scanned Word document -> sales tax calculator sounds more like a death march and my first determination as an engineer would be to confirm if management has done the due diligence as to the buy vs. build cost.
- bjornsing 7y agoYea, I’m surprised how rarely domain comes up in these discussions. And, as you say, it’s quite obvious that knowledge and raw intelligence can give you far more than a 10x advantage in some domains. For an extreme example, imagine that the year is 1993 and the task is to write a program that produces a proof of Fermat’s Last Theorem... My bet is that a certain “developer” named Andrew Wiles would have wastly outperformed a ”team” consisting of every other person on planet earth.
- wumms 7y agoI'm with you on the domain topic; reading the extreme example I'd add repeatability of the performance (on a different problem of the same domain) as an equally important factor to distinguish the developer from the inventor.
- willvarfar 7y agooooh oooh oooh, what an interesting example! I recall an interesting comment on NH a while ago where the dev was describing their refactoring of some law code. The original code was if-then-else, and had the same 'shape' as the horrid law it was interpreting. Our intrepid dev redesigned it to use some kind of truth table instead, and was terribly proud. And then the next week the law was amended and a new clause added deep down in one subclause or something. It turned out that the clever algorithmic approach wasn't actually the most maintainable... So, using a sales tax calculator as an example, its possible for two different devs to take to completely different approaches, and for the betterness of one or the other to be in the eye of the beholder until the code has been maintained in production for a long time, by which time doubtless whichever approach was adopted is deemed to be the worse one as the other has no production experience so might be better ;)
- thom 7y agoI learned a few years ago that there are laws in the UK, parts of which are written in a naturalish language dialect of some complicated proprietary Oracle product. There’s a productivity gain for you (if you’re an Oracle salesperson at least).
- ulucs 7y agoHonestly, adding legislature into code is a losing game. Let the developer just deliver a flowchart engine so that even unpaid interns can get to modify the logic. In my opinion, a whole part of being a productive developer is about empowering people without the technical chops. If someone getting paid 10% of your salary can complete your previous responsibilities, you're technically a 10x developer.
- wikibob 7y agoI remember this comment. I believe he discussed using a bloom filter.
- saltminer 7y agoFor anyone wanting to see the original comment: https://news.ycombinator.com/item?id=18996147 https://news.ycombinator.com/item?id=18996147
- Kiro 7y agoThat's a funny example because for me it's the opposite. I'm 100x in the tax domain for my country since I know the tax law by heart and can implement things from the top of my head while my colleagues struggle.
- runeks 7y ago> If you are writing a sales tax calculator and need to implement 500 different local state sales tax regulations from a scanned Word document, your best developer is going to be maybe twice as fast as your average one. This isn’t software development. It’s mostly translating a scanned document into data. If you leave that task to a non-developer (because it isn’t development-related), I’m convinced you can see a 10x difference in productivity for the remaining work (writing the actual software).