30 Apr 2019
What Is Agile Development?
New to Agile Development? Or perhaps you've heard of it but don't know what it's all about? Allow us to explain exactly what Agile Development is and help you determine if it's a good fit for your company. In a fast-paced digital world, a company's success can be dependent on its ability to ship an initiative, and then adapt and meet the response from the market. When developing a website, the waterfall model of project management is a well-established model for digital project management, but for larger more complicated projects, it's not well suited to the adaptive requirements of projects where the problem space is not fully understood, or where innovation is fast-paced. Agile development is a different way of structuring development activity that embraces uncertainty and continual improvement. The key difference with Agile is how it divides the project up into short 'sprints', resulting in a usable system that can be launched into the market. But that's not all there is to know about Agile development. Read on to find out more.
What are the benefits of Agile Development?
Agile Development is not necessarily the next step in digital project management methodology, it's a different approach where the situation requires it. Agile Development ensures that the project is always able to present results, can adapt to changes in the environment and can also adapt to information gathered through the use of the application. Agile has a range of other benefits:
Embraces a continual-improvement data-centric view of planning and execution
If your company has an action-oriented management mindset, Agile can start delivering results sooner
Allows for strategies to be tweaked to adapt to competitor movements or to improve data intelligence
Guarantees that a working version of the project is always available
Agile vs Fixed Project
Compared to a traditional fixed project, the Agile methodology allows for development to start faster and with less certainty about the specifics of the final solution. A pure Agile process is different from the fundamentals of the standard waterfall project methodology, and you'll need to be aware of these before considering pure Agile. The key differences between Agile and Waterfall relate to:
Development scheduling and output
Project scope and definition
Costing structure
Agile Development Pros & Cons
Pros
Aligned to producing a deployable package after every sprint cycle (usually 2 weeks)
Aligned to maximise velocity
Fixed locked-away resourcing while in sprints - Continual pre-scheduled development activity
Enables for a developing suite of priorities that are responsive to changes in the business environment and project velocity
Cons
Generally will cost more
Involves a continual spend, independent of fixed outputs
Greater involvement in project updates and decision-making
Requires a strong internal project lead that is disciplined about the project outcomes
How does Agile Development work?
The planning and development of Agile projects occur in sprints. Each sprint is usually two weeks long. At the start of the sprint a "sprint goal" is set by the product owner, and tasks from the backlog are allocated to the sprint. As you can see in the diagram below, a fixed project requires less interaction with the company that the product or solution is being developed for. All functional requirements have been gathered before development starts and a functional specification will have been completed and signed off on by the client. An Agile project differs from waterfall because all features are mapped out in a "Backlog". Ideally, this backlog will contain user stories, acceptance criteria and estimates from the development team of how difficult the tasks are using a Fibonacci sequence.
Development schedule: “Sprints”. Sprints are (usually) a 2-week cycle of development and each cycle is sequentially executed. On each sprint, development attempts to work through planned user stories.
Project scope. The project scope is not set out in complete detail up front, rather a model of progressive discovery and enhancement is utilised.
Costing structure. Agile is charged on fixed blocks of hours – not scope. It is usually charged at the end of each sprint (or as otherwise agreed).
Examples of when we recommend Agile
We recommend an Agile development process when:
An organisation has a legacy of not being able to complete large projects
The details of the final solution are not yet known or are not yet known with a high degree of confidence
Where the ability to react to opportunities or a change in the working environment is important
When the need to get a working minimum viable product to market is critical such as a greenfield opportunity
We do not recommend Agile for small engagements or for examples of systems that lack complexity or have completely knowable outcomes. We also have found that Agile can be a very hard sell in traditional management that is not data-centric or focused on continual improvement. Discussions about budgets can result in repeated circular discussions about fixing scope and time - In an Agile environment, neither scope nor time is fixed.
Key factors when considering Agile
As you can see, being involved in an Agile project is different from a waterfall project. By going ahead with this option, you can expect to be much more involved in the ongoing definition and refinement of the project. But before you go ahead with Agile Development, there are a few key things you need to consider:
Does the project have sufficient complexities to warrant an Agile approach?
Is the solution to the problem difficult to define without data from working data?
Do you have the time to facilitate project inputs and rapid decision-making?
Do you have the data in place, or can the data be put in place to assist in driving the project's direction?
Can you get this type of engagement approved? Management tends to have a 'give me a cost and a timeframe' mentality, which philosophically does not align with Agile.
Ultimately, Agile can be a breath of fresh air for an organisation that has historically been stuck on delivering large projects. But it does take a leap in thinking and expectations to make it happen. Tell us what you think! If you would like to talk to us about this article, drop us a line at greg@lamb.com.au.
Greg is the Managing Director of Lamb Agency, a digital agency focused on creating industry-leading websites.