In our previous post, we looked at common problems organizations face in delivering digital solutions. These problems might be due to the long concept to deployment cycles and the lack of feedback loops in our traditional waterfall software development approach.
To solve these problems, many organizations decide to go Agile and take an iterative and incremental approach to software development. However, Agile is not just about development. It is not just about iterating over the development phase while maintaining a long big upfront requirements phase and a long testing and deployment phase at the end.
This approach is way too common in organizations that believe they are Agile. It might reduce some of the technical risks as some development, integration, and testing is tackled early on, but it does not address the end to end cycle. Agile is about iterative and incremental delivery and not just development. It is a mindset that embraces Agile values and principles. The Agile Manifesto is crucial to understanding that mindset. Two principles from it state:
Principle 1: “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”
Principle 3: “Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.”
In other words, focus on continuously delivering high-quality working software that satisfies the customer. When we actually do that, we truly take advantage of the Agile value proposition of:
- Faster return on investment: Because we are continuously delivering, the team is constantly working on delivering high value working software that is production ready and potentially shippable. By incrementally delivering features sets to our customers, our value curve increases throughout the project.
- Reduced risk: By delivering frequently, the team is addressing high-risk items first. This is both from a business risk perspective in terms of ensuring that we are building the right high-value features first as well as from a technical perspective by addressing any unknown technical risks. Each deliverable allows the team to get real and early feedback on potential risks.
- Increased visibility: Since the team delivers frequently there is constant visibility into a working product and constant feedback on what to build next.
- Increased adaptability: By building small feature sets the team’s ability to change these small features is easier than when dealing with a massive product. Also, the team’s ability to change upcoming features is easier as not much work has been invested in those. This allows for constant pivoting along the way based on new learning and changing market conditions.
In our next blog, we will take a look at MVP (minimal viable product) and MMF (minimal marketable feature) which will help us determine how to build a release plan that is focused on continuous delivery of customer valued functionality.
Is Agile the Answer? is the third in an 8-part series “Succeeding with Digital Service Delivery” from Excella Software Development Lead Fadi Stephan.
Part 1: What is Digital Service Delivery
Part 3: Is Agile the Answer?
Part 5: Lean Discovery Practices
Part 6: Agile Delivery Practices
Part 7: A DevOps Mindset