Actionable Leadership Techniques for Software Engineers

Concrete steps you can put into practice today!

James Collerton
7 min readJul 22, 2022
Teamwork makes the dream work!

Audience

This article is aimed at Software Engineers looking to expand their arsenal of tools for leadership. It is not general advice on being a leader, but more a set of techniques you might employ day-to-day.

Each of the areas is worth their own, independent investigation on top of this article. Consider the below a jumping off point for your own research. Mind Tools is an excellent resource, and inspired a number of the ideas below.

Argument

Addressing Difficult Feedback using COIN

Giving constructive feedback is a challenge in any position: leadership or otherwise. The COIN structure provides an easy-to-use framework for doing so.

To demonstrate the technique, let’s create an example scenario. Rakesh is a senior developer at a company, and is habitually ignoring pull requests that require reviewing. This means that tickets are being held up and releases are going out late.

Each of the letters represents a step in our process.

  • Context: Set out the exact circumstances you want to address. In this case: ‘I am aware there’s been some issues with code reviews and releases being on time’.
  • Observation: Objectively state the facts from your perspective: ‘I’ve seen pull requests aren’t being addressed as quickly as expected’.
  • Impact: The results of what has happened: ‘This means our releases are delayed and we aren’t delivering to our product team’s deadlines’.
  • Next Steps: Open the conversation up to solutions: ‘What can we do to get pull requests addressed quicker and meet our obligations?’. Make sure to get commitment to the outcome. ‘From now I will review all PRs within 24 hours of them coming in’. Remember, there may be a good reason that they haven’t been reviewed, so you may have some actions yourself!

As part of this, give feedback from your point of view. Tone is very important, make it objective, non-confrontational and non-accusative. It is an impersonal exercise about removing blockers for the team.

Cadence is also crucial— don’t dwell on the first three points. State them, and move onto the final stage. The focus is on the practical actions you can take to keep the team moving, not on assigning blame for what happened.

Communicating with the PILL Technique

The next technique is for communication. This can be in a public speaking format, or for having difficult conversations one on one.

Again, PILL is an acronym, standing for:

  • Preparation: If you fail to prepare, prepare to fail!
  • Impact: How we are going to get a person’s attention.
  • Language: What is appropriate to use given the context.
  • Listening: Dealing with responses.

To adequately prepare we need to review purpose, planning and pitfalls.

  1. Purpose: What exactly do you want from this communication and what is the desired outcome. If you don’t completely understand this the audience definitely won’t. Try writing it out using only two short sentences, one for the purpose, one for the outcome.
  2. Planning: This is more open-ended. Plan your session and consider how to influence your audience. Think about things like interaction, encouraging engagement and take away actions.
  3. Pitfalls: What could go wrong and how can you deal with it?

Impact is about making sure our message lands. One rule is that a communication should hit intellectually, emotionally or financially. However, don’t cheapen what you’re saying by relying on hyperbole. Think about how you would want to have the message conveyed to you.

Now we know what we’re going to say and how we’re going to get people to listen, let’s consider the language we’ll use.

  • Keep it clear and simple. Minimise jargon. Remember you know what you’re talking about very well, your audience less so. It is much better to oversimplify and move up a level of complexity than to completely lose your audience from the start.
  • Read what you plan to say out loud. By hearing it spoken you create a distance between yourself and the words, allowing for better objectivity.

Listening will be covered in the next section.

Active Listening

Active listening is similar to normal listening (no surprises there), and in my personal opinion has two main benefits:

  1. Helps you maintain information.
  2. Helps others problem solve.

Active listening has five main components.

  1. Pay attention: Get rid of all distractions (phones, laptops, books…) and focus on the speakers body language and maintaining eye contact.
  2. Demonstrate you’re listening: Nod, smile and focus on your own body language.
  3. Give feedback: When a natural lull comes, summarise what has just been said. If someone is asking a question repeat it back before answering. Otherwise bring together their core points and wait for them to continue. If someone is struggling to form their thoughts, gently use open questions and your friends ‘ how, when, where, why and what’.
  4. Don’t interrupt: Allow the speaker to finish before jumping in. Don’t accidentally do this during a natural pause!
  5. Respond: Be honest, clear, concise and assertive. Again, be mindful of the language you are using (body and otherwise).

The reason that this is a great technique for helping others problem solve is that it allows them to think through their own issues.

It is often tempting to swoop in, wrestle a problem away from someone, solve it, then demonstrate how it was done. However, there are two main issues with this:

  1. You may not have the skills, and they know the area better than you.
  2. They don’t learn anything.

By employing techniques like summarising their thoughts back to them, or asking open-ended questions, it allows them to explore what’s going on. Additionally, as they are speaking aloud they are creating a sense of distance and objectivity around the issue, helping them approach it from a new angle.

Developing Resilience

First of all, let’s define resilience. At the top level it’s the ability to embrace and adapt to challenging situations, allowing us to move forward. Although this sounds easy, it can be incredibly tricky, especially if setbacks pile up a few in a row.

To help with this, when met with a challenge and the panic starts to rise, work down the following checklist.

  1. Take a moment: Letting the initial emotions die down helps approach the problem with a more level head.
  2. Check if this is something you can control. If there’s nothing you can do, try to let go. Easier said than done, but it’s possible.
  3. Try to be optimistic. Hope for the best, prepare for the worst. Visualising the best-case scenario helps drive us towards it.
  4. Reframe the difficulty as a challenge you can overcome. Have confidence in yourself! Rather than seeing this as being dragged back, view it as an opportunity to learn something new, or prove to yourself how far you’ve come.
  5. Draw boundaries. Decide which bits of your life this does and doesn’t involve. If something is tough at work I escape using my hobbies. Set some hard limits on how much of your time this is worth.
  6. Commit. Allow yourself an emotional reaction, don’t bottle it up. However, when this has subsided, commit 100% to overcoming whatever is standing in your way
  7. Be flexible. At this point you’re feeling optimistic about the result and you’re committed to overcoming anything. Hold onto these feelings, so when change comes up you aren’t worried, you’re still confident in your capabilities.
  8. Maintain perspective and practice thought awareness. If you find your negative thoughts running away from you, write them down. Again, having some distance between yourself and your internal monologue will help you look at it objectively. Review the document later and see if it seems realistic in the cold light of day.
  9. Don’t worry what others think. A good piece of advice is ‘the ones who mind don’t matter, and the ones who matter don’t mind’.
  10. Learn from your mistakes and failures. Sometimes, stuff just goes wrong. People make mistakes, accidents happen, we all get unlucky occasionally. As long as we learn something nothing is lost! Set aside time at the end to review your approach. This will help clarify learnings, and give you the chance to give yourself a well-earned pat on the back.
  11. Remember, it’ll all be over soon. Nothing lasts forever! We all have tricky times, but they all end eventually. Just do your best.

Note, none of this is the same as suffering in silence, or boldly going it alone. A big part of resilience is building strong relationships that you can lean on when needed. These techniques are just designed to help you make the most out of a bad situation.

Meeting Participation and Ice Breakers

It’s a common trope that everyone hates ice breakers. However, if you’re running a meeting where you expect everyone to contribute, then they can be incredibly useful.

In most engineering teams there are at least one or two people who would love to contribute, but lack confidence. Taking up space doesn’t come naturally to them.

Sometimes running an ice breaker will extend an olive branch to these teammates. It achieves two things:

  1. It allows them to practice putting their voice in the room in a low-stakes environment.
  2. It humanises the other members of the team. It’s difficult to be intimidated by a senior engineer when you know their favourite Kylie song (which is obviously ‘Slow’, come on).

People will roll their eyes, but they’ll get over it.

Conclusion

To conclude, we have covered a number of useful, practical techniques for use as a technical leader.

--

--

James Collerton
James Collerton

Written by James Collerton

Senior Software Engineer at Spotify, Ex-Principal Engineer at the BBC