Skip to content

Software Development Engineers: Teaching

2 min

An essential soft skill of an effective Software Development Engineer (SDE) is the ability to teach. Teaching can be defined as engagement with learners to enable their understanding and application of knowledge, concepts and processes [Source:].

Here are four key reasons why the ability to teach is important for SDEs whether when engaging with stakeholders, other engineers or customers:

1️⃣ Deepens understanding: As the legendary physicist Richard Feynman best put it: "If you want to master something, teach it." As you look to teach others about a given approach or technology, say, this will inadvertently send you down a path of digging deeper. As you anticipate questions others may ask of you on the topic, you will seek answers for the same and in the process deepen your own understanding and in some cases even correct misunderstandings or clarify doubts you yourself have about the topic.

2️⃣ Influence: As you deepen your understanding through teaching, you can better explain things to others, as well as address their questions and/or concerns, therefore increasing your ability to influence them. Sharpening this skill, also means you will be able to adjust your approach to various audiences (e.g. tech/non-tech; junior/senior etc.). An example of this is being able to influence a prioritization decision on investing in a particular refactor to improve future development velocity.  

3️⃣ Scale Multiply: Your ability to teach others helps you scale your impact through the work of others, as well as create bandwidth for you to invest in other areas. As you help others develop and grow, they will be able to contribute more independently while helping you refine your own skillset.

4️⃣ Clarifies Thinking: As you consider the approach(es) you will use to present your work to the various audiences, you will clarify your own thinking. For example should I start with explaining the entire high level design before going into the details of one of the subcomponents of interest? Or dive into the details first, then abstract to a higher level?

This post is part of a four part mini-series I am collaborating with Essam Fahmi on, covering essential soft skills of effective SDEs. This series is inspired by the book 14 Habits of Highly Productive Developers by Zeno Rocha. Stay tuned for part 3!

P.S: If you missed our first post (on Active Listening), here is the link: