Agile software development is an umbrella term for a set of frameworks and practices based on the values and principles expressed in the Manifesto for Agile Software Development and the 12 Principles behind it. When you approach software development in a particular manner, it’s generally good to live by these values and principles and use them to help figure out the right things to do given your specific context.
Agile’s four central values are:
Teams choose agile to respond quickly to marketplace changes or customer feedback without derailing a year’s worth of plans. Most agile development methods break product development work into small increments that minimise the amount of up-front planning and design. “Just enough” planning and shipping in small, frequent increments let your team gather feedback on each change and integrate it into projects at a minimal cost.
But it’s not just a numbers game—first and foremost, it’s about people. The Agile Manifesto describes authentic human interactions as more important than rigid processes. Collaborating with customers and teammates is more important than predefined arrangements. And delivering a working solution to the customer’s problem is more important than hyper-detailed documentation.
There have been many practical outcomes of the agile manifesto. For instance, instead of developing software sequentially from one phase to the next, which is how the waterfall method ensures product quality, an Agile methodology can promote development and testing as concurrent and continuous processes. Put another way, waterfall development holds that an entire phase should be completed before moving on to the next, whereas agile supports multiple sequences simultaneously.
Agile forms the basis of many of today’s digital workflows. With its flexible, scalable IT infrastructure, cloud computing has grown up in parallel with the demands of agile software development. Cloud-native development embraces an agile-like notion of software as a series of interconnected services that scale to meet business needs.
DevOps as a concept breaks down the old wall between software development and operations. SRE is an implementation of DevOps that uses software to manage systems and automate operations tasks. CI/CD methods accept that software will change continuously and gives developers tools to accelerate the speed at which they can deploy new code.
A successful Agile implementation requires decentralised control to deliver value in the shortest and most sustainable lead time.
When implementing Agile in your organisation, make sure that you set up a process where you continuously sync your work results with your customers and get their feedback on it. This will allow you to adjust your direction for developing a product or service in a timely fashion and thus better meet your customer’s expectations.