top of page

How Engineering Skills Translate to Management with Surprising Ease

Aug 11, 2024

3 min read

0

2

0



I have long been of the opinion that working under the management of a fellow software engineer is preferable. The benefits of an engineer working for someone who has walked the proverbial mile in their shoes are almost too numerous to count. They speak the same language, can act as a sounding board for new ideas, and participate in solutioning and troubleshooting. In a crisis, they can even roll up their sleeves and pitch in. They accept reasonable time estimates and understand the circumstances that can derail them.

 

But there's something I never considered before transitioning from an individual contributor to a management role: I never realized how seamlessly the skills I learned as an engineer would translate into managing people.

 

I was a leader and senior technologist for many years before I first considered officially taking on management roles. Part of me lacked the confidence to believe I would be good at it. What I hadn't realized at the time was the overlapping skill set.

 

 Human Engineering

Human engineering is surprisingly similar to software engineering. Both require forethought, a deep understanding of the current state, a clear vision of the desired outcome, and the ability to break down the necessary work into manageable steps. Like any big project, it requires getting buy-in from both leadership and individual contributors to inspire the focus and drive needed to achieve the goal. And finally, it requires a clearly defined definition of "done."

 

The only real difference between the two is that human engineering takes longer and requires more patience. Also, managers need to develop and rely on different tools, like empathy, active listening, and emotional intelligence, as opposed to a coding solution.

 

 Patience

There’s an often-heard saying in coding: “Functions never run correctly the first time.” While not strictly true, it’s close. If years of developing taught me one thing, it’s patience—and few skills have brought me more success as a people manager. Human interactions require the patience to communicate something in various ways until understanding is achieved and feedback is flowing in both directions. Patience teaches that you might not get it right the first time, but eventually, with enough persistence and a cool head, you and your team will get there.

 

Constant Vigilance

Years of working in software have taught me that just because something works when first implemented doesn’t mean it will continue to do so forever. Unforeseen environmental changes can have disastrous effects on what was once seamlessly working code, or a small refactoring to an existing service can wreak havoc. The importance of building unit tests, automated alerts for breached thresholds, and regularly checking in on even long-running applications is crucial to a smooth-running system.

 

The same is true for running a successful team. It’s important to have regular check-ins with the team, both as a group and individually. Did the addition of a new employee change the well-running dynamics of the team? Is there an individual on the team who is being affected by new pressures in their life, either within the company or in their personal life?

 

Having checks in place, like regularly scheduled one-on-one meetings, tracking that your reports are taking personal time to maintain mental health, and having well-communicated processes that allow your team to effortlessly reach out to you or others if they need to, are necessary for maintaining a high-performing, healthy organization.

 

Troubleshooting

Troubleshooting is another key skill any software engineer quickly develops. And much like software, group interactions can be flawed. A mind trained to constantly look for system flaws can be refocused on identifying early signs of rocky social interactions, allowing intervention before issues escalate. Engineers also learn that surface symptoms can point to much deeper, less obvious issues, and they are trained to dig for those answers.

 

 Continuous Iterative Improvements

For years, the software industry has implemented the strategy of improving a product steadily by making small, continuous iterative adjustments. Similar strategies can be applied to the gradual improvement of an individual, a team, a department, or even a company. Attempting to make sweeping changes to a department or company’s culture all at once can be disruptive at best and harmful at worst. It’s better to have a vision and a plan to slowly introduce these changes.

 

The same goes for an individual. It’s unrealistic to expect a junior programmer to turn into a principal engineer overnight. But a carefully crafted plan, developed in collaboration between the manager and the individual, will, in most circumstances, grow that employee into a much stronger engineer.

Aug 11, 2024

3 min read

0

2

0

Related Posts

Comments

Share Your ThoughtsBe the first to write a comment.
bottom of page