The Iterative Approach to Agile Project Management
Lather, Rinse, Repeat. Lather, Rinse, Repeat. This is a classic example of an iterative approach to getting something done. These instructions found on the back of many shampoo bottles offer an iterative method for using their product. Lather, Rinse, Repeat. A very simple iterative process model. Although managing a project will never be that simple with an agile project management methodology it can be simplified.
Project Managers might just be able to learn something from the back of a shampoo bottle. There is an increasing shift toward an iterative approach to project management. This approach acknowledges the fact that it’s next to impossible to know everything up front. The iterative approach is designed to figure out the details along the way and then make the best decisions possible based upon the current information available.
Why is the Iterative Approach to Agile Project Management Necessary?
There used to be a time when project managers would delude themselves that all of the requirements for a particular project would be known up-front. This meant that there was a tremendous amount of time spent on gathering requirements and compiling all kinds of design documentation. Reality then hit. It was discovered that there was really no way to obtain and document this type of knowledge about a project. This was for a number of reasons:
- Users Are Not Sure What they Want – I worked for a number of years in a web development shop that provided custom websites and the administrative tools to manage these sites. This meant that there was a lot of graphic design that was up-front in the process of creating a web site. We would typically provide three concepts that the client would review.
They would then pick one concept of which there were then up to three additional tweaks to the design to get it to what the client wanted their website to look like. A common sentiment expressed by most clients was “I’ll know what I like when I see it”. This led to many challenges because it basically meant that they didn’t know what they wanted. It was up to our designers to come up with something that would resonate with the client enough that a path could be established to go further down the design phase.
The above is a reality in many project environments today. It is hard for clients to articulate exactly what they want until they see it. This means a tremendous amount of time could be spent in up-front planning only to find out it’s really not what the client had in mind at all. That’s why an iterative approach to agile project management is a must. It allows “baby steps” to be taken as the client uncovers and discovers exactly what it is that they are looking for their project to accomplish.
- Business Needs Change – Another reason why there needs to be an iterative approach to agile project management is that business needs change. Project durations can last anywhere from a couple of weeks up to many years. During this time there are all sorts of pressures that can be exerted on a company and the projects that are currently underway. For example, there may be pressure exerted by the marketplace. A competitor could have recently introduced a new product that is undermining your customer base. Or, there may be financial pressures from within your company that necessitate revising the scope of a project to make it more affordable. Perhaps resource contentions with other departments make it necessary to adjust the duration of the project. These are all things that are many times discovered as a project is underway and adjustments need to be made in mid-stream.
- Technologies Change – A third area where an iterative approach to agile project management comes into play is that companies need to keep with up new technologies that are offered. The project could have started under the umbrella of one technology, but it soon becomes apparent that a better technology has just emerged. It is beneficial for the project to take advantage of this new technology, but this will require some adjustments while the project is already underway.
The Principles of the Iterative Approach to Agile Project Management
Agility means that something or someone is quick, nimble, and able to respond to the present circumstances at a moment’s notice. It is these qualities that agile project management strives to embrace. In doing so, the following agile project management principles will help an agile project manager keep up with change as it occurs:
- Deliver a Working Product Early and Often –One of the only ways that you will be able to determine what a client really wants is to show them what you have. In order for you to show them what you have sooner rather than later, you must use the iterative approach to project management. Former times would have held back the goods for the client to see until near the very end of the project. This was many times met with disappointment as the results were nothing like the client had imagined up front.What can prevent this from happening? Deliver small, bite-size pieces of working software or project deliverables whereby the client can provide their feedback. They may absolutely HATE what it was that was delivered. No problem. Well, perhaps the more accurate expression would be “smaller problem”. It’s at this point that you can readjust the plan or deliverable accordingly and get the project back on track before it’s way too late.
- Test Along the Way – Another important concept of the iterative approach to agile project management is to test and fix bugs along the way. Development methods such as the Waterfall Method would have all of the development work complete before the testing group would ever lay their hands on the project. This many times led to costly rework from a bug that had snaked its way through the rest of the application.Agile project management will have those bugs found out and exterminated early on in the project. There is a clear understanding that a bug that is fixed as soon as it is found is much less costly to fix than one that has spread through the entire system.
- Document What You Need – Some project managers will take documentation to an EXTREME level of an administrative burden. There are volumes written about each and every nuance of a project. The problem with this is that while there may be volumes written, there are only a couple of pages referenced. Team members will rarely reference everything that has been written about a project. They need to reference what they need to get the job done.The iterative approach to agile project management will provide just enough information for that particular cycle of a project. Then, more documentation will be provided once it is needed for the next cycle of the project. It’s this approach that keeps the administrative burden to a minimum and at the same time provides team members with exactly what they need to complete the project.
- Break Down Silos – A final concept around the iterative approach to agile project management is that small groups of people from across disciplines are pulled together to get the job done. This prevents just one group or team of people from holding up the project, but rather allows others to work on the project concurrently.
It would be nice if projects were as simple as Lather, Rinse, Repeat…but they’re not. There are dozens of people and countless activities that need to be managed across multiple locations and environments. This can quickly become very challenging use conventional methods of project management. Try an iterative approach and take one small step at a time and you’ll be surprised at how much progress you can make.
Employ agile methodology and document your iterative project steps by using ProjectManager.com FREE for 30 days. Creating project plans is a snap using ProjectManager.com. Our Project Planner offers you all of the Microsoft Project features for managing tasks, and much more. You can build a new task list, schedule your tasks, allocate resources and monitor progress. Find out today how easy it is to create an agile project management plan and track your next project!