It comes off a bit verbose and hand-wavy.<p>My view of GSEs:<p>- Wiliness to test hypotheses, listen to others, seeks input and feedback, and maintain metrics to decide if various methods are or aren't working.<p>- Minimal ego.<p>- Curiosity about things at lower levels.<p>- Mastery of first principles and able to create data structures and algorithms optimized for specific, difficult problems.<p>- Ability to debug up and down the stack quickly.<p>- Concern for stability and usability by consumers of products and services maintained and delivered.<p>- Ability to teach and mentor.<p>- Ethical integrity refusing to compromise or exploit users for short-term business gain.
Here are some slides summarizing the shorter paper this is based on:<p><a href="https://web.archive.org/web/20170809055122id_/https://learning.acm.org/webinar_pdfs/WhatMakesAGreatSoftwareEngineer_Slides.pdf" rel="nofollow">https://web.archive.org/web/20170809055122id_/https://learni...</a><p>tl;dr They did a qualitative survey of what other people think makes a great software engineer at Microsoft.<p>Their take aways:<p>- The ability to learn is more important than any individual technical skill<p>- Making good decisions is rarely discussed in the software engineering
literature, but it is critical to being a great software engineer<p>- Software engineering is a sociotechnical undertaking<p>- Delivering the code is often insufficient; complex contextual technical considerations abound.
We certainly know what makes bad developers:<p>* decision anxiety<p>* fear of writing original ideas, both natural language and code<p>* the inability to measure things<p>* preference towards bias<p>* cognitive conservatism<p>* inability to form assertion criteria<p>Real engineers proceed on the basis of evidence and in the absence of evidence make arbitrary original decisions as necessary to gather evidence.
I jumped straight the the <i>Personality</i> section and sure got a nice dopamine hit reading the list of attributes of what makes a great engineer.<p>It is a hard truth though that a lot of those personality traits lead to behaviours that are not aligned with small to medium enterprise (SME) needs, particularly ones that hire engineers and yet are not, at their core (in their <i>couer</i>) tech companies.<p>The big, great tech companies have their business units ride on the coat tails of great engineers and the engineers thrive in a stable maximum.<p>Great product companies can have great engineers fulfilling product needs, but the long term trend, without constant and frankly impossible levels org vigilance, will be for their engineering culture to devolve into mediocrity. SME product companies don’t stand a chance.
"At a high level, our informants described great software engineers as people who are passionate about their jobs."<p>Curious to know this group's thoughts: Do you believe that passion is NECESSARY to be a "great" software engineer?
I loved the "3.3.1 Personality" section, with 18 attributes.<p>You could take any five of those attributes, any five sections, cut and paste them into a blog, and it would be a nice but middling post. Five good things to be reminded of. Nice quotes.<p>Probably a good post for applying to lots of other jobs besides software engineering.<p>But a comprehensive list of 18 distinct attributes becomes more. The extremely tight intersection you get from all 18 personality constraints creates the clearest picture of a "great software engineer" that I have found yet.<p>Comprehensive coverage adds depth and clarity all its own. Bravo.
> We interview 59 expert Microsoft software engineers to inductively understand what software engineering expertise entailed. We survey 1,926 more expert Microsoft software engineers to understand the relative importance of the 45 attributes of expertise derived from interviews, as well as to understand the influence of context on rating<p>I'm sorry... but only interviewing engineers from one company makes this a complete joke. I stopped reading after I saw that.<p>I don't understand how anybody could take any conclusions here seriously when they're obviously so fundamentally biased.