Implementing Software with Agility

Topics: Agility, Craig Larman, Development, Implementation, Kanban, Scrum, Agile, Collaboration, Projects, Software, Standish Group


How to improve the success of Software Implementation with Agility

Agile, in its Scrum, Kanban or other variations, is now widely recognised as an extremely successful software development methodology, working within self-organising teams to deliver a number of key benefits:

  • Prioritisation of tasks
  • Clear deliverables understood by all team members
  • Structured and regular communication
  • Enhanced collaboration with all stakeholders
  • Increased productivity through short, iterative working cycles
  • Improved quality

Based on the lessons learned from applying agile software development, is there now an opportunity to apply these same principles to enhance the success of software implementation projects?

Historically, software implementation projects have earned a less than favourable reputation as a direct result of time and cost overruns, failure to deliver against customer expectations and ‘scope creep’, often resulting in an onerous change control process.

Drowning in the waterfall

The traditional ‘waterfall’ method of implementing software inevitably involves detailed specifications, lengthy business process analysis engagements and customer stage gate authorisation and sign off.

So is it any surprise that out-turn results can be disappointing?

Adopting a waterfall methodology can, by its very nature, force a customer to over specify their requirement. As the customer only has one chance to influence the specification they are inclined to include all and every possible requisite. However, this process is usually undertaken with little knowledge or experience of the software itself. As you might expect, this will potentially lead to uninformed and unintentionally poor decision making.

With the risk of inappropriate decisions at such an early stage in the implementation process the project is perhaps destined for a future of risk management and change control. At best this results in customer disappointment and - at worst - a failed project!

Given all of these issues, why would you choose to adopt an approach that injects unnecessary tension at the very start of the customer/supplier relationship?

Shaping up for an Agile approach

Consider an alternative ‘agile’ approach, one where the overall goal is to deliver working software to the customer as quickly and efficiently as possible.

agile prjects quote

This gives the client the earliest possible exposure to the software during implementation, enabling informed decisions to be undertaken in a collaborative manner, within a flexible engagement framework.

The likelihood for successful outcomes is thereby dramatically improved!

agile projects

In his book Agile and Iterative Development: A Manager’s Guide, Craig Larman describes agile development as being:

“Mainly targeted at complex systems and projects with dynamic, non-linear characteristics, where accurate estimates, stable plans and predictions are often hard to get in early stages.”

That certainly describes many software implementation projects!

Principles into practice

In terms of putting these principles of software implementation into practice there are a number of key factors that underpin the concept of working to an agreed minimum scope (‘minimum viable go live’):

  • There must be open and collaborative engagement with customers
  • Short iterative cycles must consistently deliver against measurable outcomes
  • Gain early feedback from end-users
  • Achieve early ‘buy-in’ from key stakeholders through clear demonstrable successes

A customer’s decision to invest in additional professional services to further enhance the deployment then becomes a simple value-based decision. One that is made against a backdrop of a successful, collaborative engagement with quantifiable successes.

The diagram below highlights a staged implementation approach adopting Agile, iterative principles achieving a ‘Minimum Viable Go Live’.

client delivery

It is important to understand that software implementation projects rarely fail due to lack of functionality within the software itself. Functionality is after all usually scrutinised in considerable detail during the evaluation process.

By far the majority of failed implementation projects can be traced back to the quality of the implementation approach itself.

Therefore, when considering your next IT investment, it is advisable to dedicate adequate time and effort to evaluate the implementation approach. In particular, you should ensure that potential suppliers understand how to deliver software projects and have a demonstrable, proven track record.

This will enable you to realise the benefits you anticipate from your investment.

Further reading

Waterfall vs. Agile Methodology

Implementing Agile, Craig Larman

Ready to transform commercial performance across your front line?

Let's Talk