Situational Leadership: A Developer's Business
Tags: leadership, management, productivity, career
Published: 2022-01-17 15:16:39

## A Developer's Business

Knowing a thing or two about the mindset of someone on the "business" side of your company can be very valuable. That doesn't mean you need to spend two years of your life getting a [MBA](https://kevinjmurphy.com/posts/engineering-mba/) to learn about this (but don't let me stop you).

This post won't be about accounting, marketing, entrepreneurship, or making quarterly revenue projections. Instead, it will focus on a concept I learned in business school that helps me in my day-to-day as a developer.

## Leadership

I know, you're a developer. You want to write code, not lead people. You're not a manager and maybe you're not in a "leadership" position as an individual contributor either. However, for the betterment of yourself and your team, it helps to study leadership.

Presumably you have people leading you. It can help to know how they think about different situations, or what training they might have at their disposal. You may not do the leading, but wouldn't it be great if you could help your leadership by letting them know what they could do to best support you?

Even without the "right" title, everyone in a team still has opportunities to lead. It can mean ownership over a piece of functionality. It can be assisting new members of your team acclimate to your codebase or processes. It can come in when mentoring other people on your team, formally or not. Situations to practice leadership skills are likely frequently presenting themselves to you. You may be doing it without thinking about it or knowing it!

One model of leadership that I find valuable to keep in mind is Situational Leadership. Let's learn what it is and talk about how we can use it in our jobs as developers.

## Situational Leadership

The [Situational Leadership Model](https://en.wikipedia.org/wiki/Situational_leadership_theory) posits that there are four different styles of leadership.

### Directing

In the directing style, the leader provides close, detailed supervision with clear instructions and expectations. The team's role in this style is in executing the task. This style is effective when someone is unfamiliar with the work, or needs to be retrained on an activity. Crises and emergencies are other places where the directing style may be necessary.

### Coaching

A leader using the coaching style still has ownership over the decision-making process, much like in the directing style. However, more of their time should be spent getting buy-in from the team on why decisions are made the way they are. Employ this approach when the team is comfortable with the individual mechanics of performing the tasks, can provide input on the process, and can be motivated by understanding the goal or end-state that performing the work should deliver.

### Supporting

With the supporting style, ownership on decision-making is shifted from the leader and moved to the team. The leader's role is to facilitate discussion within the team to reach decisions, to introduce them to the people and tools that will aid in their success, to be a sounding board as they make decisions, and to encourage them to take action on their own.

### Delegating

A leader using the delegating style provides and trusts the team with autonomy on day-to-day decision-making. The leader's energy is focused on the overall vision and strategy for the organization they lead. They provide the team with the tools to execute those high-level concepts and translate them into tactical decisions and tasks.

## Leading Situation By Situation

A leader must be able to exhibit all of these styles. Otherwise, they'll only be effective in very specific scenarios with a very specific group of people at a given time. The authors of this framework acknowledge that by [saying](https://blogs.umass.edu/shabazz/2014/08/) that Situational Leadership is about

> Choosing the right leadership style for the right people.

In order to determine which style to use at a given time, consider how much relationship and task behavior is required by the individual or team at the moment.

![Situational Leadership relationship and task behavior](https://kevinjmurphy.com/img/situational-leadership.png)

The more assistance a person needs in understanding the mechanisms needed to complete the work, the higher the amount of task behavior is needed. The more the person needs to understand the background, or business value, of an item of work, or help navigating the political or social pressures involved in completing the work, the higher amount of relationship behavior the leader needs to provide.

## Sprint Planning With Situational Leadership

One scenario where Situational Leadership can be helpful to us and our team as developers is in Sprint Planning. When reviewing the units of work that we're preparing to work on, we can identify what level of support and leadership people in the team will need to succeed in completing the tickets.

If you have a task where people have no familiarity with what is being asked of them and they'll be working on it, then the *directing* style may be appropriate. Make sure that the ticket has clearly defined instructions and acceptance criteria. Also, consider adding a second member of the team to the ticket so they can pair and have someone else who will be directly accountable for helping see the work through to completion.

The *coaching* style may be used in supporting a teammate on a task where they have some understanding of the mechanics needed to complete the ticket. I find this can be most effectively done when you can draw a parallel or analogy to similar work. Link to a branch, or a pull request, or a commit that's similar, and explain how this ticket will be the same and different from what's done there. The person is still provided clear direction on what to do, but is given more room to complete it in their own way, with more information about __why__ something is done and how it's similar to other work.

Use the *supporting* style on a task that will be familiar to the person doing it. You may perhaps organize a quick chat with stakeholders to make sure everyone is aligned and let this person ask any questions they might have. Check in with the person individually to see what they need, find out if they want to bounce any ideas off of you, or if they have suggestions for what others can do to help them complete their work.

Is there a rote task or something done time after time that a team member is working on? *Delegate* the work to them entirely and allow them the space and respect to get in there and execute on their own. However, if you are the person taking on this rote task, or you identify that happening with someone else, consider speaking up to add someone else to the ticket as well so they can learn from your experience and get more familiar with the actions needed to complete it. It's now your responsibility to help bring everyone else on the team up to speed in your area of expertise, for the benefit of us all.

## Leading To A Conclusion

Exercising leadership skills is something we can all find opportunities to practice, regardless of our expertise, title, or role in our teams. Situational Leadership is a framework you can use to consider what concrete actions you can model in a given scenario to provide the most effective leadership for yourself and your team.