posted on Tuesday, October 18, 2005 9:13 PM
by
chrisdonnan
Agile Project Leadership stuff
An article in this month's Software Development Magazine has gotten me thinking about what
it means to service clients effectively. At the end of the day - that is the
end game - to service a client in a way that will make them want to let you
service them again.
From the Agile Project Leadership
Network
Core
Principles (on the Project Leadership front)
In order
to consistently deliver successful results, great project leaders embrace the
following practices:
·
Relentlessly Focus on Value. Focus efforts on generating organizational value rather
than managing tasks.
·
Be Situational Specific. Use situationally specific strategies, not a
one-size-fits-all approach.
·
Manage Uncertainty. Manage uncertainty through client focused collaborative exploration
and proaction.
·
Continuously Align to Changing Situations. Choose strategies for leading
within a dynamic environment.
·
Lead with Courage. Confront reality with conviction and a dedication to purpose.
·
Build Strategies that Leverage People. Challenge team members with
opportunities to grow professionally.
·
Design Strategies Based on Teamwork. Develop and sustain a collaborative team
environment.
·
Communication Through Immediate and Direct Feedback. Maintain control through
feedback, not prescriptive plans.
From the
Declaration of
Interdependence
·
We
increase return on investment by making continuous flow of value our
focus.
·
We
deliver reliable results by engaging customers in frequent interactions
and shared ownership.
·
We
expect uncertainty and manage for it through iterations, anticipation,
and adaptation.
·
We
unleash creativity and innovation by recognizing that individuals are
the ultimate source of value, and creating an environment where they can make a
difference.
·
We
boost performance through group accountability for results and shared
responsibility for team effectiveness.
·
We
improve effectiveness and reliability through situationally specific
strategies, processes and practices.
Both of these were quoted in this
month's Software
Development Magazine and it got me to thinking. What are the real core things that we are
trying to achieve for clients? How do we do these things? What is a reduced -
short list of our goals for clients and the means to do it?
- Focus on increasing ROI/ Value for the client - this must be the topmost
item. If this is not achieved, all is lost. As an organization employing
an agency - you will never do so again with the specific vendor. As a
vendor, you will never get back into that client and word will spread that
you cannot provide value.
- Exercise situational specificity - We can improve
effectiveness in general by being agile with processes and practices -
within bounds. Processes and practices can change and be adapted to the
specific client's need. This is somewhat of a slippery slope- altering
process and practice too much can become - chaotic. That being said,
organizations are all different. Situations vary. Circumstances happen. I
think that certain things are like religion however... Sometimes people
get caught up in religion and basically lose the ideas that are presented
by the religion. At the end of this road - you have people rigidly
following some religion construct - and missing the things that the
originator(s) of the religion intended. Process and practices I believe
can be the same - people get so accustomed to the process that they become
it's slave. This is of course the worst case scenario, but I believe that
to some extent - this is partially the case in many places. We must simply
be able to understand what we are trying to accomplish with our agile
methods - and utilize the tools that are presented by the many frameworks
for agility (XP, Scrum, Crystal,
etc) and be flexible with our clients.
- Manage and expect uncertainty - THINGS CHANGE. Difficult
software issues come up that could not have been foreseen. Resources come
and go. New products come out. Requirements change. Organizations have
re-orgs. Project owners change. There are so many possible points of
uncertainty that it is irresponsible to NOT expect uncertainty. This
uncertainty is to some degree manageable as long as it is expected and not
ignored.
- Teamwork/ Leverage People/ Group
Accountability
- People, People, People - individually and collectively. Teams are amazing.
Teams - the whole exceeds the sum of the parts. That being said; teams can
also have the 'Babe Ruth'. Teams can certainly have people that can hit
home runs in their areas, the best teams certainly have these superstars.
Superstars - together in a supportive - interdependent group of other team
players is just plain powerful. When people feel supported - they feel
empowered. When people are smart and empowered, they will be immensely
creative and yes - innovative. As long as the team is coordinated - the
team players will be able to bring home a project that all players are
proud of. This makes people want to come to work. People that want to come
to work - do great work. At the same time - the client will actually get a
piece of software that is actually maybe innovative! The likelihood of
this situation winning is huge, compared to a situation when the stars are
not allowed to shine, and there is no (or even weak) teamwork.
- Continual feedback with client - "client focused
collaborative...", "engaging customers in frequent
interactions..." This point is crucial. The need to have continual
visibility with the client and to have frequent releases is just key. This
is an excellent risk management tool for software projects. Clients will
have changes - when there is an environment when feedback is EXPECTED -
you will get good feedback. If feedback is expected on a monthly basis,
then clients will be more open to allow those requests to wait till a
'comfortable juncture' - it will never be > 1 month away. The feedback
loop can effect process and practice, it can also effect the requirements,
it can also give the client more actual value when they are amidst the
project. The feedback process allows the real opportunity to increase the
value of the software to the client.
Whatever
the 'method' being applied - learn the things that the agile camps are trying
to sell - these items listed above!!!! Accomplish these goals with your
clients. Vary as needed - but the processes and methods that are out there HAVE
already made solutions to many of these issues. Do not just pick and choose
pieces from the agile camp - take an actual method - craft it to your way of
doing business and just be flexible enough to not let the process run you - but
make the process help you to increase the value to the client, manage the risk/
uncertainty and just plain deliver excellent software that people are proud to
have been a part of.
Enough of my Babel....
-CD