Team collaboration

From Senior Engineer to Mature Engineer

When I was fresh out of college with a Computer Science degree, I had a culture-fueled fantasy of what it was to grow into a senior software engineer.  Like the mythical 10x programmers, I dreamed of having full workings of a computer at my fingertips and able to hack like the best of them.

As I progressed in my career I learned that being a senior engineer wasn’t just about the breadth and depth of technical knowledge you had.  It is much more nuanced and interpersonal.  It is about being a mature engineer. 

What is a mature engineer? These are just three (out of many) non-technical skills that I think are essential for any engineer looking to develop their maturity:

Communication

So much about software engineering is about people.  The clients or end users who you are developing features for, your coworkers that you are working with to try and solve problems, future developers who have to look at and maintain your code (which might include a future version of you).  Unless you are working at home solo on a project no one but yourself will see or use, you will be required to interact and communicate with other people.  Whether it’s verbal, written, or even non-verbal, communication is essential to working with others, and requires the development of skills such as active listening, trust, and being able to clearly articulate thoughts and vision.

Empathy

At the foundation of communication is the practice of empathy.  I have noticed that engineers tend to look at themselves as completely rational and objective beings, but in reality we are all emotional creatures.  We have emotional reactions to work that we are invested in, and in turn others will also have emotional reactions. Having an understanding of the feelings and experiences of others and yourself allows you to navigate tough situations towards positive and proactive ends.  It is really easy to develop an “us vs. them” attitude when things get tough (I’ve been there many times myself), but having an empathic understanding of where the “them” (client, qa engineer, other developer) is coming from not only alleviate tension on both sides, but can also lead to a deeper understanding of the issue and more creative solutions.

Helpfulness

Again this skill is about people (notice a theme?).  The best and most successful software engineering projects are executed by a team, not by a solitary engineer operating in a silo.  And a spirit of helpfulness on the part of senior engineers , a spirit of teaching, knowledge sharing, collaboration, and patience not only makes projects more successful but also creates stronger and more talented teams.  A helpful engineer proposes solutions to problems, with a strong understanding of others views (guided by empathy), rather than getting stuck on empty complaints.  And finally a helpful engineer is proactive, communicating early and often about risks and solutions.

These are just a few of the many characteristics of a mature engineer.  For a much more comprehensive and in-depth look into engineering maturity, I highly recommend reading John Allspaw’s "On Being a Senior Engineer".

Add new comment

Restricted HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <cpp>, <java>, <php>. The supported tag styles are: <foo>, [foo].
  • Web page addresses and email addresses turn into links automatically.
  • Lines and paragraphs break automatically.

About the Author

Jon Duell, Engineering Manager

 

Jon is a third generation Oregonian who has been building websites for over a decade, primarily focused on PHP and Drupal. He is interested in the intersection of technology and humanity, in how technology can be used to connect and bring positive change to the world.

In his free time, Jon can be found spending time with his family, dancing and playing board games.

Ready for transformation?