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

 

 

Comments