The first principle of the Agile Manifesto is “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”
Easier said than done
This principle is deceptively simple and simply radical. I don’t believe it’s an accident that it’s the first principle and it’s first 3 words ensure that what we pay it detailed attention.
So let’s pick it apart!
There are five major ideas embedded inside this 16 word sentence:
- Highest Priority
- Customer Satisfaction
- Early Delivery
- Continuous Delivery
- Valuable Software
All five of these ideas deserve a blog post or two (the highest praise one can give in the 21st century). But a paragraph each will have to do.
To have a “highest priority” is not a foregone conclusion. Usually you have competing priorities. The classic problem with software development priorities is expressed in the consultant’s conundrum:
Fast, cheap, or good — Pick any two!
The consultant’s conundrum has no “highest priority” and thus an impossible problem to resolve. I’m going to tell you a secret. No matter what the consultant (or Jakob Neilsen) says, you can’t pick all three, or even any two. You can only pick one priority. This is the first principle of agile development and the lack of a single highest priority is the root cause of why projects fail.
To focus on “customer satisfaction” is another tragically overlooked value in the real world. Most business, except the ones that succeed for the long term, focus on everything but happy customers. Even though really smart people write books like Patricia Seybold’s Customers.com, revenue or awards or downloads are still made into objectives in and of themselves. Another secret: SUSTAINABLE REVENUE FOLLOWS CUSTOMER SATISFACTION! (Sorry for the caps–my shift key got stuck.)
The third and forth ideas, “Early Delivery” and “Continuous Delivery”, are difficult to do because they go against many humans’ natures. Some of us naturally crave feedback and offer up unfinished works for critical review early and often. But that type of human seems not to get into software development. It’s the lonely author, or lonely blogger, who seems to dominate our industry. He wants to knock the socks off his audience so he waits until every thing is done before revealing his magnum opus to the world. This behavior in a business context is rationalized by the idea that you only get one chance to make a first impression. I feel my shift key being to stick as I prepare to refute this idea–but I will resist shouting in type because of the overwhelming evidence supporting early and continuous delivery: Microsoft, Google, Adobe, Apple, Salesforce. When these companies (and any other tech companies) are successful, it’s when they release incrementally and improve over time guided by customer feedback. When these companies fail, it’s when they hold off for the big bang.
The final idea of the first principle of the Agile Manifesto is the hardest to define. What is “Valuable Software”? What is value? The wikipedia.org article on Value (economics) is messy and ultimately not helpful. Like truth, value is subjective and only understood when time and multiple perspectives are integrated. So let us go back the classic definition and say that valuable software is that which “saves labor” (which leaves out gaming and entertainment, but I consider walking away from my computer a form of labor).
If the software you are building does not “save labor” then perhaps you shouldn’t be creating it. I’m serious. There is plenty of software out there that is not valuable by this definition. Yes, I’m thinking of you MS Project! At the end of the day software is about automation and by that I mean the automation of labor.
To me, and many others, the Agile principles are not a silver bullet to cure all the ills of software development. They are a recognition that the software development process is not separate from software being produced. A product that is not valuable can not benefit from Agile development anymore than quackery can benefit from healthcare reform. Our highest is priority is not to make it fast, cheap, or good. Our highest priority is to make it valuable.