Over the last couple of months I have been thinking a lot about the way agile and Scrum training can be improved. One fundamental difference between traditional certification courses and the approach I typically strive for lies in the emphasis I place on the 4 agile values and 12 agile principles as the foundational building blocks for the way teams should define and refine their agile working agreements. While how teams work together can change over time, the core agile values and principles remain a steadfast guide they can use to ensure team agility is never compromised. Most traditional agile and Scrum certification courses breeze through this critical portion, jumping straight to the Scrum process instead of strongly emphasizing the core agile philosophies. Where they zig, I zag.
Given the importance of these values and principles as the agents and anchors for change, I’d like to spend the next 12 weeks covering what the principles mean to me, how they play out in developer’s day-to-day lives, and how you can use them to refine your team’s processes within your own context.
Without further adieu…
Agile Principle #1: “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”
It’s #1 for a reason — nothing else matters if the customer isn’t satisfied. Let’s deconstruct this principle into its key components:
Our highest priority…
Teams have a lot of priorities, but only one is the highest. It’s the one that, when faced with tradeoffs, you prefer most because it points you in a direction that has the organization’s best interests in mind and will lead to optimal outcomes most of the time.
…is to satisfy the customer…
If customers aren’t satisfied, they’re not going to stick around. If they’re not sticking around, you’re not making money. If you’re not making money, I’m fairly certain you’ll be out of a job in short order.
Amazon, arguably the most successful r̵e̵t̵a̵i̵l̵ company ever created, is obsessively maniacal about their dedication to customer satisfaction — so much so that their mission is “to be the Earth’s most customer-centric company.” Their now infamous 6-page memo is just one example of how focusing on the solving the customers real problems by adding value both for them and Amazon, rather than selling cool solutions that we think they’ll love, has paid off time and time (and time and time…) again. This focus on creating the best customer experience has helped them reach a $1.6T valuation, making CEO Jeff Bezos the world’s richest person in 2020 worth over $200B, with no end to their meteoric growth in sight — sounds like a pretty sweet deal to me.
Your organization is no different. In a crowded market with intense competition, an obsessive focus on customer satisfaction is how you can win. To that end, I challenge you to understand what this means within your context by asking yourself the following questions:
- Who is my customer? Whether you’re a user-facing product team or an internal team serving others within your organization, everyone has a customer (often multiple). Define who yours are. If you’re stuck, try this guide for creating user personas as a starting point.
- How do I know if they are satisfied? Do you have methods of gathering direct feedback from your customer? Are these methods manual or automated? Reduce the barrier to getting feedback wherever possible. Increase the number of channels to allow different user types to provide feedback in different ways and at different points in their journey. How do you know you‘re asking the right questions or have the right metrics to gauge the customer’s satisfaction level?
- How often do I get feedback from them? Continuous feedback is integral to agile software development. Strive for feedback as often as possible, preferably at least once per sprint, to better inform what makes it into the product backlog and the prioritization therein.
The key difference between waterfall and agile development methodologies is acceptance of the fact that you can’t possibly know with absolute certainty what the customer actually needs (not wants!). Instead of spending huge amounts of time in long development cycles of Requirements Gathering > Planning > Development > Integration > Testing > Deployment (*cough* waterfall *cough*), strive to release smaller chunks of working end-to-end functionality as early in the process as possible so as to get feedback from the customer and iterate.
…and continuous delivery…
Instead of one “big bang” release at the end of the development lifecycle, agile encourages rapid experimentation in the form of small iterations whereby working functionality is released to customers in short 1-to-4 week iterations. By doing so, you ensure feedback is sought from real users at least once every couple of weeks rather than months or *gasp* years.
…of valuable software.
In order to satisfy the customer and succeed as a business, what you’re building has to be valuable — both to the customer and to your organization. By ensuring value is mutually created for all parties, you create an ecosystem upon which a scalable business can be built.
Within your team, ask yourself the following questions:
- What does value mean to my customers? Is it money into their bank account? Perhaps they desire to be viewed as a domain expert in their field and followers, read time, etc. mean more to them. Maybe an easier, low-friction way to develop software for other developers in their organization is their primary concern. It’s important that your team understand what motivates your customers to ensure you’re focused on developing the right things at the right time. Work with them to scope the problem and validate that you’ve defined it correctly first, then collaboratively brainstorm creative solutions to meet their needs.
- What is the value to the organization of what my team produces? There’s more to value than just dollars and cents. While everything may boil down to increasing revenue or cutting costs, getting more granular with how your team impacts the business is critical. Do you help improve conversions, increase retention, or improve site speed and reliability? Try to understand the value levers available to you and which ones you leverage to create value for your organization.
- How am I measuring the value to the organization and to my users? Measuring value can be hard. Not everything is directly traceable to a line item on the balance sheet. Get creative and implement a low-friction method of quantifying and measuring the value your team strives to create. This allows you to gauge progress over time and assess whether what you’re releasing actually has the intended impact or if you need to roll back and try something different.
“Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”
A deceivingly simple statement, the first agile principle reminds us of why you’re here in the first place — to build an amazing experience for your users. To do this, invite them to join you throughout the journey of discovering and shaping what that experience will be. You don’t know what it is today, but through listening to your customers and continuously iterating on the product with them you avoid wasting time building the wrong thing and ensure that what you’re building is valuable and more closely aligned with their true needs.
What does this principle mean to you? How does your team live out this principle in your day-to-day lives? How can your team do better demonstrating this principle in practice? Head over to the responses where I highly encourage a healthy discussion/debate to help fine-tune these recommendations in the name of spreading the agile love!