There are a number of areas that need to be addressed if an agile project is to deliver the expected results within the available budget. First and foremost, a decision needs to be made at the start of a project as to whether agile is in fact the right way to deliver it.
With all the talk of the benefits around agile, it can be easy to lose sight of the fact that there are still situations where traditional development is a valid choice. For example, where there is a clear and static definition of the requirements and how the organisation wants to deliver them, agile is unlikely to be the best option.
To help make this important decision, some organisations choose to work with a consultancy partner to assess the project and the landscape in which it will be operating. This doesn't need to be either costly or time-consuming – and given that getting this decision right can be key to the project's success, it's a worthwhile thing to do.
If it's decided that agile is the most appropriate development methodology to use, then the three key things that will enable the project to be a success are: collaboration, constant focus on business value, and appropriate level of quality. We'll discuss those elements now…
There are multiple facets to collaboration on agile projects, and all involved need to understand their responsibilities, appreciate why their part in the jigsaw is crucial, and then ensure they deliver.
Stakeholders around the organisation need to collaborate with the Product Owner to provide feedback on the software as it's demonstrated. At the same time, the Product Owner has to collaborate with these stakeholders to provide the interface to the project team. Where relevant, the Scrum Master needs to collaborate with both the Product Owner and the delivery team to organise and facilitate the smooth running of each iteration.
Lastly, the entire delivery team needs to collaborate with one another to ensure the software is delivered within the allocated time.
Constant focus on business value
One of the central benefits of agile projects is their promise to deliver a solution that truly meets the needs of the organisation, as underlined by the first guiding principle behind the Agile Manifesto, which states that: "Our highest priority is to satisfy the customer through early and continuous delivery of valuable software."
To make sure this happens – and that the system delivers real business value – the Product Owner needs to keep clear in their mind what the desired business outcomes are and ensure these are communicated clearly to the delivery team.
These business outcomes will need to be reassessed on an ongoing basis to ensure they remain relevant. Feedback from the customer is key to this, and the review with business users at the end of each iteration is important in obtaining this.
Appropriate level of quality
It's absolutely essential to ensure an appropriate level of quality assurance remains part of the project, which must fit within the time available in each iteration. One of the principles behind the Agile Manifesto stresses that "continuous attention to technical excellence and good design enhances agility."
Overcoming common challenges
Problems can arise if the organisation where the project is being run does not fully understand agile or how to support agile projects. Firstly, from a governance perspective, there can be an expectation of traditional PRINCE2 or waterfall 'gates', through which the process must pass for visible quality assurance purposes.
Agile projects tend not to have such formal structures, but that does not mean there is no governance or visibility to the customer; indeed, the review at the end of each iteration provides regular insight for the customer on how the project is progressing (and the frequency of these reviews means that the customer typically gets a view of progress much more frequently than they would in a waterfall project). Agile projects also produce artefacts such as burndown charts and cumulative flow diagrams, which give further visibility of progress to the customer.
Other difficulties can arise if an inexperienced or powerless Product Owner is appointed. This role is absolutely critical, and having the wrong person can result in input from the business being weak or non-existent, leading to the failure of the project. Some organisations that are just starting out in agile choose to work with an experienced partner, who can assist the Product Owner, or even provide a suitable candidate to fill the role.
Experience is key
In summary, there are challenges when it comes to delivering agile projects, particularly in inexperienced organisations.
But these are not insurmountable when approached in the right way. Experience counts for a lot, and by working with a partner who has run successful agile projects in a range of situations, organisations who are new to agile can make their first foray into this type of development a successful one.
- Simon Boichat is a certified Scrum Master and Product Owner who has used agile approaches to deliver software systems and mobile applications across a variety of industry sectors