Have you ever needed to complete an agile software project, but kept running into issues or hitting walls so you couldn’t move forward?
Our very own CEO Philip Lew just gave a presentation to the Atlanta Quality Assurance Association (AQAA) on managing agile software projects. See his slides and get a teaser to what he covered below.
Understanding Agile Software Project Risks
Getting started on an agile project seems straight-forward. It’s already setup with general guidelines to follow, but those are just the beginning.
First, you need to be aware of what could go wrong:
- Resistance to change
- Lack of customer/user understanding
- Requirements churn
- Retrospectives not valuable
- Frozen requirements
- Lack of test automation
- Agile doing — not being
- Process inconsistency
In order to be able to have success:
- Executive support
- Full focus
- User involvement
- Collaborative behaviors
- Scoped value
- Consistent dev, integration, and release practices
- Skilled players
- High use of automation
- Agile process proficiency
- Clear business objectives
Understanding the risks and ways to succeed all help determine how you approach that risk. Understanding context, analyzing and prioritizing, identifying uncertainties, and engaging stakeholders all play a part in how you eventually manage the software project.
The Realm of Software Project Risks
People, process, and product all play a major role in determining success.
Product – the software to be built
Process – the framework of activities & engineering tasks to get the job done
Gold Plating – can mean both a) waiting to develop an idealized version of the thing to be built and b) continuing to work on something well past the point where the effort is worth the value
And, keep in mind, Alistair Cockburn‘s Realm of Risks:
Business – Are we building the right thing?
Social – Can we work together?
Technical – Portability, scalability, APIs, etc
Cost/schedule – Spikes help understand schedule
There are a lot of behind-the-scenes issues that managers must discuss before developers and testers can truly finish the latest release. Because understanding risk upfront better prevents fails for your team and company after the release gets into the hands of your customers/users.
For a more in-depth analysis of the specific reasons behind why an Agile software project might fail, check out a follow-up post here.