This post is part one of a series on the principles behind the Agile Manifesto, presented by Estyn Edwards, co-founder and partner here at Punchcard Systems.
In 2001, a group of 17 independent thinkers gathered at a ski resort in Utah to ski, eat, and chat about the challenges of software development, a process heavy in documentation and slow to iterate. The outcome of the weekend was a commitment to a new approach to software development that followed the Agile Manifesto and upheld twelve key principles.
Our work at Punchcard uses an agile approach for solving business problems using technology.
Agile Principle #1: Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
The goal of any project is to deliver value. In the case of software development, we need the customer to define value for us, to help us understand the change they want to see.
Some ways we can define value are:
- Increased revenue
- Increased efficiency
- Employee or customer satisfaction
- Environmental impact
- Social impact
- More joy
At Punchcard, we talk a lot about achieving outcomes over creating outputs. That’s because we are committed to delivering value for our customers.
Deploy early and often to get to better, faster.
When you’re making an oven or a television, you need to get it right the first time. Because to add a new feature or improve a component, you must rebuild the entire thing, and then ask your customers to pay again to get the new version.
The benefit of making digital goods is that you can ship features early and often, at a relatively low cost and with minimal disruption to your customers.
Why does “early” matter? Because we don’t know what we don’t know. Our assumptions can only get us so far. By prioritizing the most valuable portions of our solution first, we can:
- Validate our assumptions early
- Collect feedback sooner
- Deliver value at a lower overall cost
Done doesn’t exist.
Users evolve, and with them so do businesses and technology. Therefore, aiming to complete a piece of software or a digital product means you’ll inevitably become obsolete. Agile development doesn’t focus on being done, it focuses on delivering ongoing value to its customers.
Our goal isn’t to get to complete. It is to deliver a piece of software that accomplishes its purpose, which means we have to continuously improve it as conditions change. Those changes don’t need to happen at an unreasonable pace, but it is important to keep a backlog and monitor it periodically so that we can prioritize the most valuable next update.
Remember, at the end of the day, we’re here to satisfy the user. That’s the outcome we always aim to achieve.
You might also like
Subscribe to our Quarterly Briefing
Four times a year, this digest of information will share how technology can enable your organization to be more competitive.