What Makes a Great Software Engineer

Author(s): P. Li, A. Ko, J. Zhu
Venue: International Conference on Software Engineering
Date: 2015


This paper presents some work on determining what expert software engineering professionals think are attributes of great software engineers, why these attributes are important for the engineering of software, and how the attributes are related. The authors interviewed 59 different software engineering professionals working at large, well-established companies like Microsoft to collect a list of 53 attributes that define great software engineers. These attributes were partitioned into four categories: personal characteristics, decision making, teammates, and software product.

The authors found that nearly all of the attributes that their interviewees thought defined great software engineers were mentioned in other works. However, the authors did make new findings. For example, they found that how software engineering work is conducted is important, and this shows that software engineering has both technical and sociotechnical attributes. The authors also found that effective decision-making skills is an important attribute to be a great software engineer. Lastly, the authors found that having the ability to learn new skills quickly is an important attribute.

With their findings, the authors suggest that tools researchers experiment with tools that may help engineers be more well-mannered in emails or evaluate takeoffs and see "the forest and the trees" when making decisions. They offer the advice of being passionate about software-related work and to strive to present oneself to new software engineers. They also mention that managers practice improving mentoring skills, and raise challenges and to "walk-the-walk."