Saturday, August 22, 2009

Agile methods versus risk mitigation

Every project as well as software projects are followed by uncertainties and are subject to risk. Agile development methods are business driven and risk driven. Because agile methods are incremental, this project risk should be the main concern of the team when choosing how to deal with high risk areas and how to proceed with the process without loosing time, money and market share.
Though many books for project management offer several practices on dealing with risk in a certain projects and environments, most of these practices are very far from agile.
So, the dilemma that arises here is: how to adapt these traditional risk management approaches meant for different projects into agile iterations that can last seven to 30 days?
Crafting a mitigation involves understanding the root cause of the risk, brainstorming potential ways to prevent the risk, and then breaking them down into WBS (Work Breakdown Structure) elements and individual tasks that can be added to the detailed project plan.
Taking into account the incremental nature of agile methods, they can identify risks in the current iteration and find solutions to mitigate them in the upcoming iteration. Therefore, agile can identify and recognize risks before they can influence the project.
One of the challenges that developers and management may face in mitigating the risk is as follows: what if the items with low priority, which are not prioritized by the business, can contain risk.
Considering the priorities assigned by the stakeholders, the team selects the items with higher priority in the Product Backlog. But, if the remaining items contain any risk, then those items has to be moved up the stack of prioritized feature list and to be processed as soon as possible, as illustrated in Figure below.






This can help teams to balance the risk and the business requirements. Despite the occurrence of not prioritized risk items in Product Backlog, the business side remains actively involved throughout the development process.