Traditional
teamwork has the project manager controlling everything. The manager is
given responsibility
and authority over all decisions and plans. If you can only trust one
person with power then this makes sense. But, if you have a team of
good people it becomes inefficient and inhibits working at your full
potential. Don't bottle neck decisions with a single authority. Change
from one person controlling everything
to empowering the entire team.
Who
is responsible, who has authority? Everyone.
The most
important thing on a project is good leadership; the least important
thing is who leads. Leadership and management are two very different
things. Leadership is about seeing a problem then getting people
together to solve it. Any team member who knows enough to foresee a
problem also knows enough to lead the solution. It is your
responsibility to do so.
It
may be counter intuitive, but a team that is calm and confident about
their work is very decisive without a single person as boss. There are
plenty of jokes about committees being unable to produce a good design.
Bad designs can happen to any team if the product vision isn't strong
and well voiced. That is the responsibility of the customer/product
owner.
Being the customer on an Agile project isn't
easy. You will find yourself almost constantly in a leadership role.
You must be actively involved in most discussions to make sure your
vision is followed. You will often be put in the unenviable
position of breaking hotly debated deadlocked discussions. You will
decide when the team's code is ready for deployment. The
most difficult part will be setting priorities and making
the hard decision of what will get done and what won't. This is a
far different role
from signing the front page of a requirements specification.
If
your customer is too valuable to spend time with your software team
then maybe
you are building the wrong software. Ask the customer what would be
valuable and exciting enough to make him want to be there with the team.
The
role of developer/team member includes programmers, architects, DBAs,
testers, all
of us digital construction workers. Our responsibilities now include
deciding how to get organized and what to do next. We will accept the
responsibility of leading ourselves and looking for potential problems
while mitigating risks. This is different than just writing code as
directed.
The
manager/scrum
master will have many new responsibilities. The biggest change is just
watching the team interact and being there in the middle of it. If
relationships are broken then the
manager must repair them. If the customer isn't leading with a
consistent product vision the manager must act. An unsuitable customer
can lead a team in circles and get nothing done. A developer that
breaks the process can slow the entire project down. Replacing
customers or