Managing Software Development Risks in an Agile Environment

By / August 24, 2016 /

Software Development projects involve their own elements of risk. Such risks can differ relying on the nature of the project but can typically be categorized into 5 types:

Personnel Risk: It is the risk of the absence of team members or of losing them. Even if it is for a shorter period, it can result in errors and delays.

Budget Risk: It is the risk of projects crossing budget. This is the most common software development risk and is often connected to other risks.

Productivity Risk: It is a common risk in long projects, especially when goals and deadlines are long term. This risk results in a lack of immediacy which further results in a lack of necessity of work.

Time Risk: Product delays are common phenomena in software development projects and are the result of unrealistic timelines, poor planning and failure to adapt to changing requirements of product.

Knowledge Risk:

Such risks occur when there are knowledge silos or poor information transfer. The re-learning process results in added resources, time and labor.

Managing the risks

managing risks

The Agile methodology addresses most of these risks. The risks are still common in many agile environments mostly because of planning errors, mistakes of project teams, unexpected changes in the product as it evolves and failure in process. Let us address each software development risk and how the risk can be managed to lessen mistakes, delays and other barriers.

Personnel and knowledge risk

Solution- Squad based development

Squads comprise of a co-located team of 10 to 12 persons that share knowledge, work together, complete code reviews and plan together on a project from start to end. They have a maximum capacity and open flow of knowledge that helps address both knowledge and personnel risk by eliminating knowledge silos and offering team members the ability to take on tasks in case somebody is absent or leaves the team.

Budget risk

Solution- Rolling Wave Planning

In product development, we make assumptions that can’t be proven or disproven unless more information is available. As the process of development progresses, goals or objectives may shift or the product may be required to pivot to become viable.

This is why rolling wave planning is designed. Teams make the best of product decisions instead of presenting detailed plans at the initiation of the project. Thus, you get to make actionable decisions that are up-to-date by new knowledge and the succession of the product. This lessens the budget risk as you do not waste resources and time in the process of re-planning.

 

Productivity risk

Solution- Sprint-based development

Sprints are iterative phases of development that help accomplish a demo version of the product within the provided frame of time. They provide actionable objectives and goals to product teams and introduce a sense of short term accomplishment and immediacy. This assists in mitigating complacency and maintaining velocity by isolating work into manageable, smaller tasks.

 

Time risk

Solution- Process

Time risks can result from improper planning, rigid development process or scope creep. A flexible,
replicable process is the most efficient method of dealing with common causes of time risk.

Your chosen process should promote flexibility so that you can easily adapt to the changing needs of the product, contain change management controls, have formalized capacity planning and promote rapid delivery so that you can accurately predict the velocity of the project. The above mentioned practices for risk management help teams manage their time in a better manner to mitigate risk and product delays.

 

This post has been viewed 1,749 times