There are many problems organizations face in delivering digital solutions and products. 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, organizations decide to go Agile and take and 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 risk 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. Two principles from the manifesto 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.”https://agilemanifesto.org/principles.html
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: 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.
Also check out the Lean Discovery, Agile Delivery, and DevOps Mindset presentation slides here as well as the entire Digital Service Delivery blog series: