Qualities that I believe make the most difference in programmers’ productivity
161–170 of 321 posts
Re: Qualities that I believe make the most difference in programmers’ productivity
#162BTW I have always known that the 10x programmer exists.
A sufficient proof is that on good days (with proper motivation, concentration, no interruptions, enough coffee etc.) I'm 10x the programmer I am on bad days :)
Re: Qualities that I believe make the most difference in programmers’ productivity
#163>The programming community is extremely polarized about the existence or not of such a beast If we go meta and generalize the disagreement, the skepticism about "10X" is the same as the rejection of other labels such as "ninja" and "rockstar".[1] For some, the idea of categorizing a subset of programmers with a grandiose label is psychologically distasteful. It doesn't matter what the label is; any label that attempt…
Not many people would take issue with the statement that Shakespeare was 10x better / more effective than the average playwright. If you consider that both are creative processes there seems no reason to reject the idea that a programmer could be 10x more effective than his peers. The comparison between writing a play or a program starts to break down if the problem space is narrow, as the article also mentions, so a…
Re: Qualities that I believe make the most difference in programmers’ productivity
#164I don't understand how anyone can say 10x programmers don't exist. There are programmers who DRAIN value from projects and companies. The most insidious I've dealt with are people who assure everyone their part is going to be done on time, but come the deadline, they have nothing. I am today, a 10x better programmer than I was where I started. In terms of quality, complexity, efficiency, readability, maintainability,…
Why would you want a 10X programmer when you could find an X^2 one? It is a pop psychology concept and it has no use.
Re: Qualities that I believe make the most difference in programmers’ productivity
#165Earlier quoted context omitted.
Exactly. At my last job, a colleague of mine was tasked with creating a tool to generate a monthly summary report based on 100s of millions of records. It took him weeks of trying to get something working in Python (naively read in all the data into Python objects and then trying to iterate over them), coming up with convoluted algorithms trying to speed things up. His final solution took multiple days to run (too sl…
I don't understand this. I'm not saying I don't believe you, but it seems ridiculous to me. I actually feel vicariously annoyed just reading that story. In my experience, most competent programmers encounter problems they can't solve off the cuff frequently. Then they think about it, research a bit, formulate the problem, etc. They come back to solving it after stepping back because they realize they're in the weeds…
It was ridiculous, and I was annoyed at the time too. Especially because I had basically laid out how to solve it just before I left that company. Somehow that didn't get communicated to him. When I went back for one day 5 months later, I learned that he was basically still nowhere (he had been doing other things too). I spent an hour with him laying out the solution in detail. From what I last heard, he listened, and that is the solution they are currently using.
> At a certain point, your colleague must have realized this task was simply beyond his "off the cuff" abilities and gone looking for a more efficient way. Surely he had the presence of mind to realize he was beginning to be unproductive? How did he spend weeks on a problem that can be summarized as "retrieve a lot of records from a database"?
If you only have Python experience and no intuition about how much time/memory certain problems should take, you don't necessarily know when you're out of your depth. It was a Django shop. The only exposure most of the people in that company had to the RDBM was through the Django ORM. Multiple times I have seen them do things through the ORM which would be trivial and multiple orders of magnitude faster with a couple of lines of SQL.
That data also didn't come in a database, but in a series of CSV like files. If you don't have RDBM experience, you don't necessarily see how you would use a database for this problem. And Python conveniently has a csv module that will happily parse your files into objects... If you buy into the marketing that Python is 'fast enough', and 'you can always use Pypy if it needs to be faster', you might not realise when you get stuck.
> Furthermore, what was your organization like that someone that grossly incompetent wasn't checked in on about progress? There was no "mercy rule"? No referee to call it when it was clear it was taking weeks instead of hours or days?
Management didn't know how long that task was supposed to take. The technical competence in that company was very limited, and they were used to deadlines slipping all the time.
> I'm self-aware enough to search for a solution and RTFM for the tools at hand.
That puts you ahead of the pack, in my experience. I had almost no experience with RDBMs before I joined that company, but reading the first 100 pages of the PostgreSQL manual the first week put me ahead of people who had been using PostgreSQL as their principal tool for more than a year (a different team, the metrics team which used PostgreSQL directly, not through the Django ORM). They had never heard of simple things like VIEWs and WITH queries.
> I've never encountered a team where it seemed like one person was that far off from the median
I don't think he was that far off from the median in that company, maybe just a bit below. To be fair, it was technically the worst company I've ever worked at. I was only with them for 6 months (and I never would have started there except for personal circumstances).
Consider yourself lucky never having worked at such a company. They are more common than you think.
Re: Qualities that I believe make the most difference in programmers’ productivity
#166"Perfectionism and fear of external judice insert a designing bias that will result in poor choices in order to refine a design only according to psychological or trivially measurable parameters, where things like robustness, simplicity, ability to deliver in time, are often never accounted for."
Re: Qualities that I believe make the most difference in programmers’ productivity
#167Probably the biggest aspect not dealt with in these writings along with the discussion around it (is there or is there not such a beast) is bias.
For example, selection bias: e.g. my view over what was the best / worst programmer was much different when working in different teams. I found out there could be much worse than what I thought is the worse. Then I learned that there could be much worse... It's like a fractal :) As you notice these differences a 10x difference doesn't seem that crazy. It's really things that should take a few weeks, which in turn take months or years or never get done.
Also like any other optimization problem, optimizing software development is about hitting a moving target. When the team is balanced, it may be the process that will become a bottleneck, etc.
Re: Qualities that I believe make the most difference in programmers’ productivity
#168In this thread: mostly people responding to the headline, not the actual content of the article. There's some fantastic stuff in here about how great design is the key to increased productivity. For example: "It is very important for a designer to recognize all the parts of a design that are not easy wins, that is, there is no proportionality between the effort and the advantages. A project that is executed in order…
In defense of those people, the layout of the site is actively hostile to people on mobile. -10x for readability.
Re: Qualities that I believe make the most difference in programmers’ productivity
#169Earlier quoted context omitted.
I've worked with some too and they've always needed another 10 junior engineers to clean-up and thoroughly test their code later on. In some big corps, that might not be such a bad thing. If it weren't for them, most projects would be stuck in so called "design-meetings" forever.
Your comment, like the parent comment, makes it sound like neither of you read the article... The kind of developer you describe literally almost the complete opposite of what antirez was talking about!
Re: Qualities that I believe make the most difference in programmers’ productivity
#170Earlier quoted context omitted.
"How is it even a debate?" Because having different output has nothing to do with being more productive. It's just different, that's it. And productivity is very hard if not impossible to quantify. Relevant experience and knowledge might boost productivity on a specific problem, just like it might make code nearly defect-free with little to no effort, or make someone much better at quickly understanding large code ba…
To clarify what I meant by "how is it even a debate?": I just find it a bit "surprising" that many people in this industry refuse to believe that many programmers are 5x or 10x more productive than others (and write just as good code).