Our Highest Priority

Labor is greater than money

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:

  1. Highest Priority
  2. Customer Satisfaction
  3. Early Delivery
  4. Continuous Delivery
  5. 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.

Comments

9 responses to “Our Highest Priority”

  1. Parshu Avatar

    OMG! Are you saying twitter is not valuable? That is what you are saying. I think that is the whole point of this post, isn’t it? 🙂

  2. pav Avatar

    If Twitter saves some labor then I’m ok with it!

  3. James Avatar

    Marvelous article. The ultimate measure of value is use. If people use it, want more of it, want to use it again, then it is valuable. Customers may use software because it saves labor and, in some cases, labor savings is the value it offers, but customers can value a product (including software) for reasons other than labor savings. Twitter is an example. Game software is another. OTOH, software that saves labor but is never used is not valuable. Early home automation applications are an example.

  4. pav Avatar

    Thanks James! I would love to find a workable definition of value that includes both saving labor and entertainment (avoiding labor?).

  5. pav Avatar

    I got feedback on this post from Parshu, Josh, James, and Gareth (in person, in email, and on facebook) and I want to consolidate my responses here. First, thanks everyone for your comments! Second I just want to clarify a couple of things: A.) Utility is hard to measure. Automation of a task is not. So that is the only reason I went with the idea that value == labor and the value of software is the labor saved. B.) Agile has it’s warts and one of them is how to deal with big projects: Especially where value can’t be perceived (i.e., measured) until a large deliverable of work is released. Thus the idea of breaking large projects into smaller continuous deliverables means the value might not be realized with each release and thus not valuable at all. This issue is addressed in later principles (#3 and #7 specifically). I’ll get to those principles eventually but if you are impatient the measure of progress is not value in Agile but rather the delivery of working software. As long as with each release I give you a system that works that’s progress we can measure. Value will come eventually! Trust me 🙂

  6. Andrey Fedorov Avatar
    Andrey Fedorov

    Re: “a workable definition of value that includes both saving labor and entertainment”, how about Paul Graham’s definition of “wealth”:

    “Wealth is what people want. I don’t mean that as some kind of philosophical statement; I mean it as a tautology.”

    A lot of people want to save their labor – they want whatever it is that they’re doing manually to be automated (and if they don’t, their bosses certainly do).

  7. pav Avatar

    Good point Andrey. Wealth, as defined by Graham seems to be an expansive concept. I’ll have to dig deeper into his essay but I like a lot of what I see. Mostly though I want to measure value independent of dollars and sense. I don’t know how to measure fun. (six flags… more fun?)

  8. […] This post was mentioned on Twitter by Fabio Akita, Diego Carrion, Rodrigo Panachi, Maurício Fagundes, Felipe Pedrini and others. Felipe Pedrini said: Our (software developers) highest priority http://bit.ly/byMaE9 […]

  9. Social comments and analytics for this post…

    This post was mentioned on Twitter by AkitaOnRails: Thoughts on Agile Manifesto’s 1st principle: http://bit.ly/bMvSsS and http://bit.ly/cNupct