Having served as a Project and Program Manager for many years in my professional career, I have first-hand experience with the ups and downs of the “traditional” project delivery model that is commonly known as “Waterfall” in recent years. After investing a lot of my time gaining a deeper understanding and appreciation for Agile principles and techniques, I discovered that there are many Agile practices that will improve the probability of success for any project, even if it is managed in a sequential, waterfall-like manner.
If we borrow from the basic principles of Agile Manifesto, which encourages inspection and adaptation, we know that there is value in regularly evaluating completed work and making adjustments accordingly. A good example of this can be found in models such as Rational Unified Process (RUP), which injects inspection at specific stage-gates within the overall execution framework.
Let’s take a closer look at “traditional” project management practices, such as Issue Management, Risk Management, Change Management, etc., and try to integrate these activities with an “Agile” mindset. Below are a few ideas that you might consider if you are currently managing a waterfall project and would like to apply a few basic Agile techniques to improve your chances for a successful outcome.
Tip #1 – Manage issues and risks iteratively
Most sequential/predictive project plans assume the Project Manager will actively manage risks and issues throughout the life of the project, and escalate when necessary to ensure proper resolution. One possible enhancement to this approach is to address issues and respond to risks in an incremental fashion. For example, establish a Scrum-like approach to risk and issue management by reviewing, communicating, and resolving these items in a short timebox of 1 to 2 weeks. Schedule the necessary time and resources to proactively work on these items and reviewing results on a regular cadence.
Tip #2 – Manage change iteratively
If you are managing a project schedule that follows the traditional lifecycle model, I would assume that you are probably following these general steps: Requirements Analysis, Design, Implementation, Test/Verification, Deployment/Delivery. So how would you manage change iteratively in this structure? What you might consider is to introduce specific checkpoints within this schedule to review any change requests and allow for discussion to occur in an organized manner instead of allowing change to come in organically, which is likely to be more difficult to manage. Naturally, this approach assumes that you can convince your stakeholders and sponsors to follow this cadence, so you may need to gradually introduce this process.
Tip #3 – Reflect on successes (and failures/challenges) more frequently
Most traditional Project Managers are accustomed to holding a “project post-mortem” or “lessons learned” meeting at the conclusion of the project, when everyone is ready to move on to the next most important thing. I strongly encourage you to try to leverage the retrospective process earlier in your project in an effort to reinforce positives as well as identify opportunities to improve current processes and approaches. Don’t wait till the project is over to talk about what is working and not working, because it will be too late to reap much value from those conversations. One possible option is to hold the retrospective discussion at each critical milestone, which could be at the end of each lifecycle stage (e.g. Requirements Complete).
Making a transition from the traditional approach for managing projects to an “Agile” approach is no simple task. However, if you are able to apply some of the basic practices to your current projects, it may improve the team’s overall understanding of Agile principles, which could lay the foundation for bigger and broader efforts to adopt such practices in the future!