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.)
Leadership
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.
Management
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 Leaders | Skilled Leaders | |
---|---|---|
Skilled Managers | A well-run and consistent company, but lacks the ability to respond to changes when needed | A well-run company that is poised to succeed in the 21st century |
Unskilled Managers | Doomed | A 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 administratoreffectively
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
No comments:
Post a Comment