In response to a comment that I left to a blog post of his in Herding Cats, Glen Alleman said "... phrase Agile Project Management, were so clearly defined". While I'm not an official source of definitions, I would like to take a stab at answering "What is Agile Project Management?". There are really four questions here:
- What is Agile?
- What is a Project?
- What does it mean to manage a project?
- How does one manage a project in an Agile fashion?
What is Agile?
Agile is a mindset, a philosophy, for software development. The Agile Manifesto lays it out quite clearly. Any software development, product management, project management or other methods that claims to be Agile must embody the mindset laid out in the Agile Manifesto. You really must read the whole manifesto. I won't copy it here, but I will discuss the main ideas. The emphasis in the Agile Manifesto is on satisfying the customer and responding to changing user needs for competitive advantage. Self-organizing teams, ongoing communication and working end products are preferable to formalized, stultifying processes. Supportive environments for sustainable efforts using simplicity, technical excellence and good design allow the sponsors, developers and users to maintain a constant pace indefinitely. Reflection on the process at regular intervals allows for continual and appropriate tuning and adjustments to the agile process.
Most of this isn't strange to project management, though the concept of "self-organizing teams" might seem a bit odd to a traditional, hierarchical organization.
What is a Project?
A project is a temporary, collaborative effort to achieve a specific goal in a set time. At least, this paraphrases the definition I first saw in my first project activities in the Aerospace & Defense industry back in 1979. I've seen definitions that add things like "create a unique product", but the end result can be almost anything: a product, a pyramid, a rocket engine, a scientific advancement, a data warehouse, etc, etc, etc.
The emphasis for a project is that people and other resources come together temporarily to deliver a well-defined result by a specified due date.
What does it mean to manage a project?
Whips often come to mind. That was the main tool to manage the various pyramid building projects. Ok, maybe not.
Project management is the skill of leading people and controlling the expenditure of resources to achieve specified goals on-time and within budget.
There are a variety of schools of thought, methodologies and guides to managing a project. I agree with Glen in that a good starting point is the Project Management Institute (PMI) Guide to the Project Management Body of Knowledge (PMBoK). I would also add PRINCE2 to that. The Prince2 link given is to a USA based training organization; Jay gives a link in his comments, which redirects to a UK based training and accreditation organization, APMG-UK.
I also need to step onto one of my favorite soap boxes for a moment. Project Management does not equal Product Management. Program and Portfolio Management are also unique and separate disciplines. These four professions often get confused. Product Management is a blend of marketing and engineering with the goal of translating user needs into technical specifications that result in marketable goods or services. Program Management specifies, implements and governs large initiatives that impact cross-disciplinary groups within a organization, and changes the process by which an organization conducts its daily affairs; examples are things like a Quality Program or a Decision Support program. Portfolio Management is the art and science of prioritizing and coordinating a set of Projects, often large capital projects, that may or may not overlap in goals, but definitely compete for money, people and resources. Ok, stepping down off the soap box and getting back on point now.
How does one manage a project in an Agile fashion?
Ah, well now. This is the point isn't it? Agile project management requires reconciling the discussion of Agile above with the definition of a Project and Project Management and developing a methodology that uses the Agile mindset of customer satisfaction, responding quickly to changing market needs for competitive advantage with self-organizing teams that reflect upon how they work and change their processes on the fly, while delivering working, valuable, as-specified results in an incremental fashion, on-time and in-budget.
Hmm, that doesn't sound so hard, does it?
Over time, we have evolved our project management methodology for delivering data warehousing, business intelligence and MDM solutions in such a way that, in the words of Todd McGrath of supergloo, inc. have become quite agile, and are now deliberately agile. We've gone from five dimensions of a project to eight over the eight years that IASC has been in existence.
Here's a mindmap that gives you an idea of what we're doing. Though there's a lot more to discuss about this, including the strategic, tactical and implementation tracks, and how iterative waterfall and agile mindset must work together to keep everything and everyone working a sustainable fashion, without burn-out and without missed deadlines, while learning from each iteration, and responding to changing user needs.
Excellent, outstanding post.
Can you reconcile how a company which deploys large “end products” such as a turned-up telecom network, AS OPPOSED TO A SOFTWARE DEVELOPMENT, can implement Agile Methodologies? I realize that is one of your main questions here, has it been somewhat answered?
In other words, how do the methodologies of Agile lend themselves to general project maangement?
Rich Maltzman, PMP
First, let me say that Agile was envisioned as a body of software development methodologies, and neither as a product nor a project management methodology, per se. However, there are quite a lot that can be learned from Agile methodologies, especially for the implementation and operational stages of a system.
We have been developing methodologies for project, program and product management that include Agile elements. Generally, we establish processes for three tracks: strategic, tactical and implementation. In general, the Agile elements come in for the implementation track, whether we are implementing a software product, doing integration into an enterprise, or deploying a large, complex system.
One must identify those components that lend themselves to agile-like iterations, and those that require compliance with “set-in-stone” standards. The purpose of Agile Methods is to improve quality (compliance to specifications) and user satisfaction, while reducing complexity and decreasing delivery time. If you can identify those elements of your system, and treat each set accordingly, while communicating to all involved persons, then you’ll likely have win in applying Agile to Project Management methods.
First of all, nice blog! I saw a list of useful links on your blog, and I thought at you probably meant to link to the PRINCE2 official website using PRINCE2 text. You might want to know that the official website for prince2 is actually prince2.org.uk. I thought this link might be more beneficial for your visitors.
Thank you for the link. I’ve updated the post. As noted in the update, both links for Prince2 actually go to training and accreditation sites.