Leading developers vs managing them

Words like leadership and management are used often when discussing software projects. While they may sound similar, they are quite different and are often (but not always) performed by separate people. In this article, I will look closer at these two terms and explain why one is more difficult than the other.

Leadership defined

You could try to define leadership along these lines:

Inspiring and motivating people to act towards achieving positive goals. They also protect and nurture the teams and individuals.

My attempt at defining leadership

Leaders attempt to inspire and motivate. I would consider these high-level values key criteria for calling anyone a leader (software or not). Protecting the team and individuals is how you keep the leader status (and the team intact) and nurturing is all about growing future leaders and helping your people flourish.

In the context of software development, some typical actions of a leader would be:

Taking on a difficult piece of work (protecting)

Teaching/mentoring less experienced colleagues (nurturing)

Fostering positive team spirit (motivating)

Giving an example with your conduct and quality of work (inspiring)

These are just some examples, and I am sure that you can think of many more.

Often, the leaders in software development teams do not have an official line-management responsibility. Sometimes, they do not even have a fancy title. You can start leading before anyone officially calls you a leader.

A good leader can really elevate their team, not only making work happen quicker and be of higher quality but also leaving a lasting positive impact on the people they worked with.

Management defined

What is management then? Let’s go with a dictionary definition:

The process of dealing with or controlling things or people.

Google dictionary

While leadership deals with indirect control, management is about directly controlling people.

Managers will pretty much always have official titles and often have line-management responsibilities.

In the context of software development, managers often deal with things like:

Choosing which projects the team will work on

Organizing work (although in most Agile methodologies, the team should be doing that)

Promote and hire people

Review progress etc.

These things are very important, and it is important that competent people take care of these things. In reality, though, they don’t impact the quality of the end product as much as many people imagine. In the end, the delivery rests with the team, and while the team can be managed, to really excel it needs good leaders.

Becoming a good leader

The leaders that I mentioned – anybody can become a leader, as long as they do what is required (motivate, inspire, nurture and protect). You can be a leader as:

A project manager – you are already a manager and you have “management power”, you can use it to protect the team, educate them about the business realities and foster a good atmosphere

A new developer – maybe you know technologies that others on the team are not yet familiar with? You are willing to help others and are quick to learn. You never say no when somebody needs your help? Servant leadership is very powerful.

A guy with the title “Lead Developer” – live up to your title. Help others, do the difficult work. Invite others to pair-program with you. Share your knowledge and experience. Give feedback tactfully.

You get the idea. This is not about being the one guy that shouts- I am the number one. It is quite the opposite in fact. It is about the team and being there for the team.

Let’s look at more specific aspects of leadership that can be difficult to get right.

Autonomy – ability to choose their own course towards achieving a goal

Mastery – an urge to improve, to get better at something that matters

Purpose – working towards something that matters

Of course, it is also hard to be motivated if you are working in a toxic environment. Creating a positive and safe environment is a key element of the puzzle.

How to inspire?

Inspiring people to be their best is to lead by example. I see the key elements of that as:

Doing the work yourself. You need to have some credibility

Sticking to your principles and values

Staying positive and resourceful, especially when going gets tough

Going sometimes above and beyond the call of duty

It is hard to give a simple formula for inspiration, as this will be about your own strengths. Seeing someone that is professional works hard and helps other makes other want to do the same.

How to nurture?

One of the often overlooked aspects of leadership is nurturing others. Helping others to grow is key to creating a long-lasting impact with your leadership. Good examples of this would be:

Helping people learn by sharing your experience.

Providing valuable, sometimes even negative feedback when necessary. Providing negative feedback tactfully and effective can be difficult in itself.

Recognizing other’s potential and helping them see it.

Helping others become leaders

This is not a zero-sum game. Helping others to grow will only make your work-life better. Who does not want to work with an amazing team? Stop dreaming and help them become amazing!

Do we need management?

With all this raving about leadership, I might have given an impression that we don’t need management. You need management to run a company, but don’t look to management to fix your development problems! They can help you remove problems and empower your team, but the quality of the delivery is in the hands of the delivery team.

The best solution is working towards a trust-based relationship between the delivery team, their leaders and management. The managers control what has to be controlled and the leaders (that could be the whole team) lead the delivery.

Post navigation

Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
To find out more, including how to control cookies, see here:
Cookie Policy

About

E4developer is a place where I share my open and honest views on software development, technology and working with people. The name – e4 comes from a chess move, this is how I start most of my games. Follow me on twitter – @e4developer