Live data from Hacker News

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

faculty.washington.edu

111–120 of 174 posts

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

#111
post #62
post #46

In 50 years of programming I've worked with a few. One characteristic is a deep understanding and command of all that they touch. For example, I worked with Bill Schelter (GNU Common Lisp). In 1980, prior to the Internet, we were working on a problem (tail recursion). He was using the emacs editor and he found a bug. Bill stopped what he was doing, fetched the sources for emacs (using ftp), found the source of the bu…

>> Bill stopped what he was doing, fetched the sources for emacs (using ftp), found the source of the bug, fixed it, and sent off a patch. After that he restarted emacs and continued right where he left off. >> Greatness isn't about "team player", "hard working", (...) Greatness is a property of the person, a deep love of the craft, and a focus on "doing it right". In your history I see a great deal of "hard work" an…

This is a point where Part III of Scott Alexander's [parable of the talents](https://slatestarcodex.com/2015/01/31/the-parable-of-the-tal...) might be worth linking to.

TLDR: Scott and his younger brother were both enrolled in piano class. His brother took to it and is now an internationally known musician. Scott meanwhile started off trying equally hard but never got anywhere in music - but won writing competition after writing competition without it feeling like effort to him.

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

#112

It’s interesting there are so many different answers given to this question whenever it is asked. If we asked, “What makes a good surgeon?” or as pointed out in another comment, “What makes for a great basketball player?” it seems that there would be less debate. It seems to me that this debate is related to another question, “Why do so many software projects fail when you don’t see any skyscrapers collapsing under t…

> "Why do so many software projects fail when you don’t see any skyscrapers collapsing under their own weight?"

The massive amount of regulation surrounding skyscrapers building. Including legal responsibility.

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

#113
post #107
post #46

In 50 years of programming I've worked with a few. One characteristic is a deep understanding and command of all that they touch. For example, I worked with Bill Schelter (GNU Common Lisp). In 1980, prior to the Internet, we were working on a problem (tail recursion). He was using the emacs editor and he found a bug. Bill stopped what he was doing, fetched the sources for emacs (using ftp), found the source of the bu…

Personally, I think it's two things - working hard and lack of fear/anxiety. In your example, this Emacs bug fixing, there is a lot of people who work hard but would just think that the bug is probably difficult to fix (they would fear of it taking too long to do) and decide not to do it. I know personally how much anxiety can block you from doing things that help you progress. It also makes decision-making slower. I…

It can also be important to let these things go sometimes. The rabbit hole is often quite deep.

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

#114

It’s interesting there are so many different answers given to this question whenever it is asked. If we asked, “What makes a good surgeon?” or as pointed out in another comment, “What makes for a great basketball player?” it seems that there would be less debate. It seems to me that this debate is related to another question, “Why do so many software projects fail when you don’t see any skyscrapers collapsing under t…

So many of the thought exercises present in your comment are missing rather obvious validations.

Why do we not ask this of other professions? Because other professions have metrics and regulatory bodies.

Why are no skyscrapers falling? Because they are well regulated and required a huge infusion of cash to build. A software company with such a large cash infusion is also likely to not fail.

Software engineers are best analyzed on a bell curve and once identified according to such plotting relative to other developers the criteria becomes clear. The problem, for many people, is that selective bias prevents people from seeing the objective distinctions. If not for those blinders the question of what makes an excellent software engineer is largely self answered.

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

#115
post #46

In 50 years of programming I've worked with a few. One characteristic is a deep understanding and command of all that they touch. For example, I worked with Bill Schelter (GNU Common Lisp). In 1980, prior to the Internet, we were working on a problem (tail recursion). He was using the emacs editor and he found a bug. Bill stopped what he was doing, fetched the sources for emacs (using ftp), found the source of the bu…

The variety of tools that many software engineers work with today is so large that I find it virtually impossible to fully master them.

Let's say a software engineer writes a C++ application that stores documents in an inverted index and he also takes care that the program is stored in a docker container and deployed to Elastic Kubernetes Service via Jenkins. Good luck understanding your IDE, C++, Tries/Radix trees, docker, Jenkins and EKS "all the way down to the metal".

It may be possible for a small subset of those but if the expectation for great engineers really is to deeply understand "all that they touch", I wonder how many can keep up with this standard.

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

#116
post #46

In 50 years of programming I've worked with a few. One characteristic is a deep understanding and command of all that they touch. For example, I worked with Bill Schelter (GNU Common Lisp). In 1980, prior to the Internet, we were working on a problem (tail recursion). He was using the emacs editor and he found a bug. Bill stopped what he was doing, fetched the sources for emacs (using ftp), found the source of the bu…

Yes I've long thought similarly that's its the ability to grasp, manipulate and convey multiple (if not all) layers of abstraction.

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

#117

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…

> 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?

Anecdotal, I'm 6'1. At a middle school age, I was _hounded_ into playing basketball (until they realised I had no talent whatsoever, or any inkling that I wanted to attempt to improve that). There's definitely a selection bias in who gets started playing basketball in the first place.

Back on topic,

> some people simply don't have the genetic attributes needed to be great.

I think this is a massive stretch. I think it's fair to say that some people don't have the attributes to be in the top 0.01% of the their game (in baskebtall, there's a few hundred(?) players in the NBA - that's the equivalent of the John Carmack/Peter Norvig types that have come up here), but is there any proof whatsoever of any form that says that an "average-to-poor" engineer can't become a "great" engineer - (in basketball terms, going from the person who can't dribble to the person who absolutely dominates your after-work league consistently)

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

#118
post #3

Can't claim I read the entire thing, but I got down to methodology and must say it doesn't look particularly impressive. The study is a survey sent out strictly to Microsoft employees asking them how they rank a set of pre-defined criteria about what makes a great software engineer. That criteria includes things like "hard working", "honesty", "team player", "creates a safe haven" etc... Obviously no Microsoft employ…

One of the key takeaways from the paper for me is the relative ranking of those 54 attributes. If the employees ranked “long-term thinking” above “creates a safe haven”, I have possibly learned something. If engineers rank attributes differently than managers or if cashiers rank attributes differently than tech workers...

Side note: I also thought the negative phrasing methodology used was interesting. They asked “is it possible to be a great engineer without this quality?” which I think is most tuned towards qualifying and ranking attributes.

Will it tell you individually how to become a great engineer? No, there are hundreds of posts, many on medium.com for that. This paper may not be perfect, but I found a lot to consider inside and “beyond useless” is pretty far from my judgment.

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

#119

Warning: this is a survey on what people THINK makes great engineers.

Even narrower, what expert Microsoft engineers think makes a great engineer. That seems extremely likely to shift the responses towards qualities important at large enterprise-focused companies.

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

#120
post #46

In 50 years of programming I've worked with a few. One characteristic is a deep understanding and command of all that they touch. For example, I worked with Bill Schelter (GNU Common Lisp). In 1980, prior to the Internet, we were working on a problem (tail recursion). He was using the emacs editor and he found a bug. Bill stopped what he was doing, fetched the sources for emacs (using ftp), found the source of the bu…

That's a very narrow way of looking at greatness, but I some how love your point.
Post reply on HN