Agile Project Management
agile: Pronunciation: 'a-j&l, -"jI(-&)l
1 : marked by ready
ability to move with quick easy grace
2 : having a quick
resourceful and adaptable character
project:
Pronunciation: 'prä-"jekt, -jikt also 'prO-
1 : a specific plan
or design : SCHEME
2 : a planned
undertaking
management: Pronunciation:
'ma-nij-m&nt
1 : the conducting
or supervising of something
2 : judicious use of
means to accomplish an end
While the definitions
of individual words may have specific meanings, the implementation
of the phrase is all over the board. Not only are there
numerous tool sets developed specifically to support Agile project
management, there are many more personal and individually developed
techniques to do the same. My APM approach is summarized in
what follows. Agile application development can also be a big
part of the Agile process, see below for a short discussion.
| |
|
Solution Delivery Process |
The methodology mentioned in Solution Delivery Processes
and outlined again to the right, can be Agile, command-and-control
or anything in between. Here we're interested in Agile, where
"activities" are project feature-based (see below, for
instance, for what an Agile Project Launch process might look
like). In an Agile framework, three of the things I try to
focus on are:
lead / manage relationships to reinforce core team values
manage component "builds" based on requirements but influenced by perceived customer value
manage cost/time/quality trade-offs to meet client expectations
A few more term definitions are warranted here. Both leading
and managing deal with trying to "do it right" -- leading
includes "finding the right thing to do" and managing
includes " how to do the right thing ". A customer
is the end-user of the project at hand, while a client is the
organization that pays for the project and is in the position of
interpreting what's most important to the corporation and the
customer (perhaps following the "vision").
With
regard to the first item listed above, some of the core team values
that I like to stress are: mutual respect, mutual trust, mutual
participation on given projects or in the team as a whole, and
mutual commitment toward excellence. And, there are three
kinds of relationships to oversee:
Composition (a.k.a. containment, "has-a"; e.g. a team has member roles)
Specialization (a.k.a. inheritance, "is-a"; e.g. projects inherit corporate structure)
Collaboration (a.k.a. contract, "service"; e.g. interface contracts between project components or team roles)
Of these relationships, collaboration is the most difficult to get a
handle on. (Collaboration = Communication + Trust) Some
management and leadership control points in collaborative
relationships are: rate of information flow, degree of diversity,
richness of connectivity, level of contained personal/team anxiety,
and degree of management power. Typical leadership/management
engagement activities might be to rely on team adaptivity and get
feedback, gauge team member background and temperament, manage the
number/content/context of interpersonal/technical connections, avoid
extreme personal anxiety or complacency and oscillations between
extremes, and position any direct management/leadership control to
impose something between chaos and command-and-control (generally
resulting in an environment that tends toward chaos).
Agile Application Development(5,6)
|
|
|
Agile Project Launch Phase |
On to the Application Development activities of Solution Delivery. The Project Launch process at right (a part of Solution Delivery Processes) might be implemented in an Agile environment. In this representation, stacked activities are undertaken more-or-less concurrently, and side-by-side activities are more-or-less sequential. In the " forming-storming-norming-performing" spirit, the figure at the lower right shows how an Agile process might use this process. It falls to the project manager/leader to organize these activities in a manner consistent with client expectations, perceived customer value, core team values and team experience; and to bring the process together before the client.
| |
|
Team Collaboration |
Bringing the process together in an Agile project environment also requires tool sets and development processes that minimize interruptions and stress, while facilitating problem solution techniques and maximizing team collaboration, trust and respect. For example, to the left is an overview of a Web Team I organized and managed for roughly five years -- an example of a project itself built with an Agile approach, and an environment from which Agile Web projects could be conducted. (Among others, a mult-million dollar, secure, extranet project was completed on time and under budget from this environment. See Internet / Extranet in the Technical Application Development section.) One of the keys to success here was laying a proper hardware/software (tool set) foundation that allowed Team members to be Agile -- some of the tools are listed in the figure, and one of the hardware topologies (test) is shown at the link above.
|
|
|
Agile Solution Delivery |
Another key was the selection of the Team members themselves --
individuals that were extremely competent in their areas of
expertise, committed to product quality, and self confident enough
to be able to collaborate inside and outside of the Team. Note
that Team members are somewhat isolated from direct (daily) client
contact, yet kept informed of important issues and upcoming
projects. As should be evident from the figure, there were
many concurrent projects of varying (and changing, over time)
priorities. From a management perspective, keeping individuals
and sub-teams focused on their own priorities and away from
unnecessary interruptions is, at times, difficult -- but by using
the management techniques outlined at the top of this page, projects
can be consistently successful. As an aside, this Agile
process was successfully modeled and simulated to aid in project
planning, budgeting and staff management. A subsequent
Corporate reorganiztion resulted in the merger of this Team with
other Corporate groups (reference "A
Complex Business Process with Interleaved Labor Resources").
Some useful references:
(1) "Leadership and the One Minute Manager", Blanchard, Kenneth et. al., William Morrow and Company, Inc., 1985.
(2) "Business Engineering with Object Technology", Taylor, David A., John Wyley & Sons, Inc., 1995.
(3) "Roadmap", Meyer, N. Dean, NDMA Publishing, 1998.
(4) "Agile Project Management", Highsmith, Jim, Addison Wesley, 2004.
(5) "Extreme Programming Explained", Beck, Kent, Addison Wesley, April 2005.
(6) "Eclipse Distilled", Carlson, David, Addison Wesley, February 2005.
Site managed with MyEclipse, a multi-language, multi-platform IDE
