Live data from Hacker News

1x Programming

tim.mcnamara.nz

111–120 of 217 posts

Re: 1x Programming

#111
post #73
post #11

Has anyone published some kind of quantified, "hard" comparison/survey about the relative productivity of programmers? It would be very interesting with a clean "we asked n programmers to solve this"-type problem, and then being able to compare the solutions. Uh, did I just sound like I wanted to work in recruiting? #fail

At several companies I worked for, by using Scrum Points, it was always visible that the most experienced devs were able to regularly deliver a multiple (definitely around 10x) more points than interns and about 2x more than the average dev. Not a perfect metric by any means, of course, but definitely quantifiable and observable. Metrics for LOC and commits/PRs made also followed a similar pattern. Again, not perfect…

The problem with this metric is it can be gamed. We had something similar, and there was a huge 'meta' over who gets the shiny new features, and who has to fix the legacy code which was like Jenga, and a single misstep could break thousands of tests, and writing code was like playing minesweeper.

The people who won the 'meta', got to be the most productive.

Thing is, probably the guy who fixed a bug in the legacy hairball by writing 10 lines of code produced tons of value for the organization (those unit tests weren't for show, they were customer use cases), while the other one only produced some, if the fancy new feature got adopted.

Re: 1x Programming

#112

Earlier quoted context omitted.

Tangent: apparently contra DeMarco and Lister, I'd argue that "the worst" are often outright detrimental to a team or project. Which in turn makes me question the "math".

I'll never forget having a negatively productive programmer on my team. If he spent an hour on a PR it would take 1.5+ hours of work to get the PR into shape to merge by other people because it took so much explaining for this guy. It was usually better to just scrap his code and start over. If code of his did slip through reviews often times there would be production defects that would then take more time to solve (…

Being outwardly pleasant can take precedence over just about anything. I find it ironic as this can lead to a lot of other unpleasantness, perhaps even resentment, people leaving, etc.

Being technically competent while also being perceived as merely neutral personality wise can lead to a lower overall qualitative evaluation, potentially affecting raises, promotions, etc.

I guess the lesson is that you (almost) always have to play the game or at least that playing the game well can yield many personal benefits.

Re: 1x Programming

#113

If by 10x, you mean engineers that add 10x more value compared to an average engineer in the team, then from working 10+ years in the industry, it is abundantly clear to me that 10x programmers exist, and a good team is likely to have 5-10% of those. However, these engineers are rare, and when you do find them, they are not perfect. They might have flaws in other areas - communication and teamwork is a common one. Mo…

The thing about communication skills, how eager would you be to communicate with others if you knew in the time it took you to explain the problem to someone else, them allocating time to do it, doing it, then reviewing the results, and fixing the issues, you could do it twice over? Some coworkers are like that unfortunately.

Re: 1x Programming

#114

Earlier quoted context omitted.

The principle behind being a 10x programmer is not working more, but working less and using tools that multiply you. The 10x dominates the tools ( and techniques and people and capital) that multiply her. If you have a car you can easily and consistently go 10x faster that walking pace. The same applies for your job. Working on a given company, with access to capital and people and tools can multiply you.

What are the tools to multiply yourself in a software development setting?

I often find that developers with an interest in product development and the business side can make huge contribution by suggesting alternative solutions to writing more code.

With some gentle pushback on requirements they can help clarify what the real issue is. Of course, this has to be done carefully or it will quickly get very annoying.

Another useful skill is to have a feeling for when problems get too hard and it's time to backtrack. At least in my work, most of it is basic CRUD of different varieties. If I find myself inventing new things or not finding any answers Googling my problem, it's likely that I'm on the wrong track and there is a simpler path I missed.

Re: 1x Programming

#115
post #9

Earlier quoted context omitted.

I'm not sure I've ever heard of a "shape manipulator" before, and I'm at such a loss as to what it could be that Google isn't super useful without additional context to lean on. The only thing I saw that might fit would be NumPy arrary shape manipulation. Anyone care to expand on what a shape manipulator is and where that came from?

It's a meme that says some people are better at visualizing and mentally manipulating 3D images in their heads, and it implies that those people can use the same brain hardware to accomplish amazing feats of engineering I dunno if there's any truth to it at all.. I think most of programming is less of an inspired act of genius and more of a tradeskill like plumbing or roofing. I'm pretty sure there are tasks out ther…

> I'm pretty sure there are tasks out there that I could get done in a month even though they'd take a team of 10 people 10 months to do, but if I trained those same people they could probably come close to my performance.

Part of this may just be how we work in teams, versus in isolation. Like I built an Internet search engine alone, as a hobby, in less than a year.

If I was a member of a team of 10 people tasked with building a search engine in a year, I'm not sure we'd be able to complete on time following standard software engineering practices. So much time is lost iterating on designs and pair programming and having daily standups and looking at burndown charts and coming up with goals and debating the definition-of-done for each task and having meetings with stakeholders and preparing/having demos and drinking coffee and iterating on API interfaces and discussing code standards and so on.

While sure, that makes me 10x more effective than that team, but that is a hypothetical team including myself. In reality, I have a modicum of talent that is magnified with an extremely effective way of producing code quickly.

To be very clear: I'm not saying all these things aren't there for a reason, it is only when myopically focusing on shipping code that I appear like a miracle that is 10x faster than myself.

Re: 1x Programming

#116

I praise 1x programmers, but for reasons that might go against the grain in HN. I'm from Spain so our working ethic is different from the Anglo-Saxon world. "Work to live, don't live to work" as the saying goes. My principles for a 1x programmer: * Work is a means to an end. A job should support the lifestyle you want to achieve, not be an end on itself. * 9-to-5 is a perfectly reasonable schedule. Fiercely protects…

> Some will argue that one could never be a good developer following those principles.

I'll argue those people need a reality check based on how things work in every other profession.

My dentist is a great dentist but she works 8am-3pm and most decidedly does not spend an additional 8 hours slogging through leettooth exercises on topics barely realated to the practice of dentistry.

My friend is a respected surgeon, but when he clocks out of the hospital he goes cycling and to the beach.

Same goes for pretty much every professional career outside of software development. Many of those have continuous education requirements, but they are done as part of the job. For example my dentist is out several weeks a year on that, not available for appointments.

So I agree with the above list, but there's nothing to apologize for in it. Working 9-5 and then completely disconnecting is the mark of a professional.

Re: 1x Programming

#117
post #28

In Peopleware, DeMarco and Lister write: Count on the best people outperforming the worst by about 10:1. Count on the best performer being about 2.5 times better than the median performer. Count on the half that are better-than-median performers outdoing the other half by more than 2:1. What nearly everyone who has read that remembers is the following: The best people outperform the average by 10x. Spot a difference?

Tangent: apparently contra DeMarco and Lister, I'd argue that "the worst" are often outright detrimental to a team or project. Which in turn makes me question the "math".

The original study was timing how fast developers could solve a given task. The slowest took 10x the time of the fastest. With this setup you can't really get negative results. And participants who didn't finish the task were excluded from the results.

A summary of the research: https://www.construx.com/blog/productivity-variations-among-...

I don't think there is anything wrong with the math, it is just that real-world productivity is not as easy to measure. The study didn't measure the "maintainability" of the resulting solutions, only how fast they were completed.

Re: 1x Programming

#118

I praise 1x programmers, but for reasons that might go against the grain in HN. I'm from Spain so our working ethic is different from the Anglo-Saxon world. "Work to live, don't live to work" as the saying goes. My principles for a 1x programmer: * Work is a means to an end. A job should support the lifestyle you want to achieve, not be an end on itself. * 9-to-5 is a perfectly reasonable schedule. Fiercely protects…

If yours is the definition of a 1x programmer then most are 0.5 ones.

Re: 1x Programming

#119

I praise 1x programmers, but for reasons that might go against the grain in HN. I'm from Spain so our working ethic is different from the Anglo-Saxon world. "Work to live, don't live to work" as the saying goes. My principles for a 1x programmer: * Work is a means to an end. A job should support the lifestyle you want to achieve, not be an end on itself. * 9-to-5 is a perfectly reasonable schedule. Fiercely protects…

I fully agree with you, that it is important to keep your day job separate from the rest of your life and be able to detach yourself from work.

However, I believe strongly that you can only have a happy life if you love what you do in your day job too. 9-to-5 are too many hours to be miserable and wait for end of your work day[*]. Also you spend a lot of time with your colleagues. Life is short, don't waste that time.

I'm German, by the way, and I'm not sure how well my attitude fits the cliche;-)

[*] Don't you have a nicer word for the end of your work day in English? In German it is called "Feierabend", where "Feier" comes from fire but means celebration and "abend" is evening. So we have a party evening every day. What an apt word.*

Re: 1x Programming

#120
post #116

I praise 1x programmers, but for reasons that might go against the grain in HN. I'm from Spain so our working ethic is different from the Anglo-Saxon world. "Work to live, don't live to work" as the saying goes. My principles for a 1x programmer: * Work is a means to an end. A job should support the lifestyle you want to achieve, not be an end on itself. * 9-to-5 is a perfectly reasonable schedule. Fiercely protects…

> Some will argue that one could never be a good developer following those principles. I'll argue those people need a reality check based on how things work in every other profession. My dentist is a great dentist but she works 8am-3pm and most decidedly does not spend an additional 8 hours slogging through leettooth exercises on topics barely realated to the practice of dentistry. My friend is a respected surgeon, b…

leettooth lol
Post reply on HN