Soft Skills That Will Make a Novice Software Engineer Great

Sara Bastian
3 min readJan 25, 2021

If you’re new to the niche and constantly evolving realm of software engineering or development, you probably are tuned into the hard skills you’ll need in order to succeed in this industry, but you may be missing direction on the soft skills that contribute to an engineer’s success. The fact that you’re attracted to a field of endless learning lends me to believe you’re probably also addicted to, or at least interested in, self-growth. If those generalizations are the case for you the reader of this post, what follows is meant as a brief guide to best present yourself as a software engineer to employers and the software community.

According to a study from the University of Washington, “What Makes a Great Software Engineer”,

“good software engineers are essential to the creation of good software.”

Given this direct correlation, an aspiring “great” engineer should examine what consists of this “good.” This research study summarizes attributes that will make you “good”, maybe even “great,” which fall under four categories: Personal Characteristics, Decision Making, Teammates, and Software Product.

PERSONAL CHARACTERISTICS

Personality goes a long way for making good software, it turns out. This study outlines the top four characteristics as:

  • improving: not satisfied with status quo; there is always a better way
  • passionate: intrinsic interest and natural affinity for your day-to-day
  • open-minded: to new-information or new methods
  • data-driven: decisions should be made using data, not intuition

Other top qualities include systematic, productive, perseverant, hardworking, curious. Although some of these qualities are intrinsic and may have (or have not) been developed at an early age, software engineers who want to be great should be aware of the necessity of honing or working to develop these skills for the role.

DECISION MAKING

As for an individual’s capability to weigh “the current context, decision alternatives, probabilistic outcomes, and values of outcomes, ” this research almost emphasizes the importance of cultivating street smarts, not just book smarts. A decisive engineer will:

  • have knowledge about people around them and the organization
  • consider situations on multiple levels (technical and abstract)
  • stay up to date on information
  • handle complex material

Other strong traits in this category include knowledge on technical domain, knowledge about customers and business, knowledge about tools and building materials, and knowledge on the engineering process. Basically, be as well-rounded as possible.

TEAMMATES

Communicating effectively and building trust are key aspects to creating positive teammate interaction. Here’s how you can do so:

  • Communicate shared context
  • Communicate shared success
  • Be honest
  • Contribute to a safe setting where failure is accepted
  • Manage expectations

SOFTWARE PRODUCT

There is much to be appreciated by clean, thoughtful, (beautiful?) code. When creating, look to abide by the following parameters:

  • Elegant: intuitive, easy for other developers to follow and read
  • Creative: solutions that are outside of the box
  • Accommodate likely problems
  • Diligently built
  • Long-term in mind: consider the future, others who may one day build off of your code

Key takeaways

in addition to these qualities, as far as external factors, the project, company model, or overarching mission you work on comes into play as well.

“the fit of the engineer with the project is critical. Novice engineers might assess their fit, in terms of the attributes they value, with a prospective team.”

Hopefully this summary provides some general themes and direction you can reference to guide your path to becoming a great software engineer. For a deeper examination of these attributes, head on over to the study itself.

--

--

Sara Bastian

full-stack developer exploring how software can solve real-world problems | https://sarabastian.com/