ASP.NET Security Consultant

I'm an author, speaker, and generally a the-way-we've-always-done-it-sucks security guy who specializes in web technologies and ASP.NET.

I'm a bit of a health nut too, having lost 50 pounds in 2019 and 2020. Check out my blog for weight loss tips!

Leadership vs. Management

Published on: 2014-06-22

Why do projects go wrong? There are a lot of causes, ranging from a poor understanding of what the business need is to poor execution from the delivery team to lack of communication between the two groups. A lot of these problems could be alleviated through effective leadership and management of software developers and their projects. This is the first in a series of posts that describe how this came about and what we can do about it. This month, I'm going to kick off the series by talking about the differences between leadership and management and why both are important.

People often confuse leadership and management. Or rather, they assume that with one comes the other. Except the two are quite different – and getting it wrong can cause problems for your project, team, or company. To see why, let's compare the two concepts. (The ideas of leadership vs. management come from John Kotter in his book Accelerate. The explanation of how that applies to projects in general, and software projects in particular, are my own.)


The good leader persuades, shapes, molds the people around them, regardless of the job title or organizational hierarchy of those around them. Leaders are the ones that have a vision for how the project should be completed and what it takes to implement that vision. In other words, leaders are not only the ones to make decisions, but they are also the ones that persuade people that their decisions are the right ones.


To contrast, a good manager's primary skill is to communicate the goals of the leadership team to their employees or team members and to remove obstacles so those employees have what they need to achieve those goals. Instead of adapting their team to the ideal future, their job is to make the processes of the present more efficient and reliable.

Why it matters

Teams that function well are both led effectively and managed well. Here is a table that depicts what often happens when teams or companies are lacking one or both skills:

 Unskilled LeadersSkilled Leaders
Skilled ManagersA well-run and consistent company, but lacks the ability to respond to changes when neededA well-run company that is poised to succeed in the 21st century
Unskilled ManagersDoomedA company that can adapt to new opportunities and threats, but is chaotic

As you can see, without significant skill in management, it's tough to ensure that people know what they need to do and difficult to confirm that they are doing it. Without leadership, though, the company will be ill-prepared to take advantage of new opportunities or adapt to new threats.

Why it matters for Software Development

Many of the programmers I've worked with in my career had great leadership skills, but I've not met many (me included) who also had good instincts for management. They are often good at managing the team to ensure high code quality (which doesn't directly add value to the project as a whole), but they don't manage the people involved. Their view of management seems to be that since it does not directly provide value to a project, team, or company, they focus on leading the team and letting everyone manage themselves.

Since virtually any non-trivial project usually need some sort of management, companies compensate for this by adding a project manager to most software projects. These project managers don't often have development experience themselves, but are tasked with communicating goals to the team and removing obstacles like a good manager should.

But since companies confuse leadership and management, project managers are often asked to lead projects as well. Effective leadership usually requires one to have a deep understanding of the subject matter at hand, and it is extremely difficult being an effective leader of software projects without significant hands on experience. As a result, companies can choose either a software developer to lead their projects, which often leads to a project that is adaptive to change but is extremely chaotic, or they can have a project manager lead projects, which leads to a project execution which is ill-suited to adjust to fast-moving changes in today's business world.

And we wonder why software projects have such an abysmal track record of successful delivery?

To delve further into the problem of leadership within IT, and to discuss solutions, I'm planning the following blog posts:

June: An introduction to Leadership vs. Management
July: Is a project manager the right person to put in charge of your software project?
August: How do you manage an Agile software project?
September: How to leverage a project administrator effectively
October: Getting programmers to see the value in management
November: The Peter Principle and software architects
December: Creating a leadership team to make your software project a success

This article was originally posted here and may have been edited for clarity.