Live data from Hacker News

What distinguishes great software engineers? (2019) [pdf]

faculty.washington.edu

51–60 of 174 posts

Re: What distinguishes great software engineers? (2019) [pdf]

#51

Question for everyone. Doesn't everyone know in the industry what makes great software engineers? And that usually there are only "blockers" that stops you from being great? Let me give an analogy. If you're paid to play basketball wouldn't you know what makes a great basketball player? If you're playing pro basketball, you can be a great basketball player. The only reason why you can;t be great is because there are…

No, they do not. There isn't even a consensus on what "great" means.

You play basketball in a very static environment. The rules don't change from game to game, or team to team. The duration of a match is constant. How well the team performs is a well known metric.

People do not do engineering in a static environment. The needs asked of one changes from team to team. The quality metrics vary from application to application. The people he/she relies on varies even when you stay in the same team. An engineer who is really useful in one company may be harmful to another one.

Re: What distinguishes great software engineers? (2019) [pdf]

#52

Imo great engineers produce a lot of good to great quality work fast. They care about the big picture and get involved with the actual domain they're working in. They see code reuse opportunities and friction company wide vs only whatever team they're on. Great software engineers will write tools, packages, and guidelines that the entire company can use- not just their small team. They know how to standup to manageme…

> Imo great engineers produce a lot of good to great quality work fast Sounds awfully like the Myth of the 10x Engineer .

Not quite that high, but you'd be silly to believe there's no difference in speed at all.

Re: What distinguishes great software engineers? (2019) [pdf]

#53
post #6

Earlier quoted context omitted.

This is also why I like estimating tasks using the Fibonacci scale without a direct correlation to time. In my teams, we generally set 8 points as something that would take an entire day. Every number after that jumps up in relatively large increments as they are more difficult to accurately determine

Interesting take, mind sharing how do you use fibonacci ? Thanks

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610

Hope (Days) = Calculated Est. (Hours)

1 day = 8 hours

2 days = 8 + 13 = 21 hours

3 days = 8 + 13 + 21 = 34 hours

H(days) = Fn(6+days) hours, where days >= 2

Re: What distinguishes great software engineers? (2019) [pdf]

#56

Great software engineers create/build software only as a last resort, once all other options have been exhausted. :)

No they don't, writing new code is often cleaner and simpler than adding a library. Exactly when to do either is arguable, and picking the right choice requires skill. So always going the library route when possible means you aren't a great software engineer.

Re: What distinguishes great software engineers? (2019) [pdf]

#57

Imo great engineers produce a lot of good to great quality work fast. They care about the big picture and get involved with the actual domain they're working in. They see code reuse opportunities and friction company wide vs only whatever team they're on. Great software engineers will write tools, packages, and guidelines that the entire company can use- not just their small team. They know how to standup to manageme…

I like to think a great engineer is also not afraid to write some iffy code in 1/10 the time if it solves 90% of the problem and not be bothered by the code being not to pretty.

Re: What distinguishes great software engineers? (2019) [pdf]

#58
post #51

Question for everyone. Doesn't everyone know in the industry what makes great software engineers? And that usually there are only "blockers" that stops you from being great? Let me give an analogy. If you're paid to play basketball wouldn't you know what makes a great basketball player? If you're playing pro basketball, you can be a great basketball player. The only reason why you can;t be great is because there are…

No, they do not. There isn't even a consensus on what "great" means. You play basketball in a very static environment. The rules don't change from game to game, or team to team. The duration of a match is constant. How well the team performs is a well known metric. People do not do engineering in a static environment. The needs asked of one changes from team to team. The quality metrics vary from application to appli…

I suspect you haven’t played much basketball! The same player on different teams can be much better or worse - some players fit in with almost any team and others need a team built around them.

(I don’t disagree with your larger point! Just that basketball is an example of a “very static environment“ relative to programming)

Re: What distinguishes great software engineers? (2019) [pdf]

#59

Question for everyone. Doesn't everyone know in the industry what makes great software engineers? And that usually there are only "blockers" that stops you from being great? Let me give an analogy. If you're paid to play basketball wouldn't you know what makes a great basketball player? If you're playing pro basketball, you can be a great basketball player. The only reason why you can;t be great is because there are…

People always seem to want to pretend it isn't a factor, but natural talent also matters, for both basketball and software engineering.

In basketball, it is quite easy to prove that some people are simply unable to ever be a great basketball player; there has never been an NBA player shorter than 5'3, only 25 shorter than 6'0, and only 10 under 5'10. Are you really telling me NO ONE shorter than 5'3 ever decided the trade offs were worth it?

No, at some point, it doesn't matter how hard you work or whether or not you have any outside issues; some people simply don't have the genetic attributes needed to be great.

Now, everyone can get better, but we all have some limit to our abilities that we approach but don't cross as we work harder and practice. Not everyone who isn't great should feel like it is because they didn't choose to be great, some people (most of us, probably) just aren't capable of being that great.

Of course, most of us aren't that close to our limits, and it is impossible to know what those limits are.... but they are there nonetheless.

Re: What distinguishes great software engineers? (2019) [pdf]

#60
I think this thread is not defining ‘greatness’ well enough. If we’re really talking about greatness, there should like 0.5% of HN that fit the bill, or something like that across the industry.

Reframe the question, who are our Bachs and Beethovens? Were they great because they created a lot of good work fast? Is good even enough? None of that shit defines greatness.

Our best developers came from open source. The stuff they made was undeniable. Is being super productive the same as making undeniably useful programs(languages, tools)?

Look at our greats and I think you’ll see they made a breed of work that sits outside workplace metrics of productivity, the same way a Hitchcock was genre defining.

Post reply on HN