Skip to main content

Value, Quality, and Craft
in Software

Reading: Value, Quality, and Craftin Software

Software

A non-controversial title: Three words that have clear, unambiguous, consistently-understood meanings. If you use one of those words, everyone immediately understands exactly what you mean, and vice versa.

Right?

Well, okay, maybe not so much.

From Three to One

These three words have been bandied around the software community for more years than I can count. That’s because I only have ten fingers. Recent discussions in both meatspace and cyberspace have led me to reconsider their meanings.

It occurs to me we’ve been making a mistake in our discussions of these words; all of us, all these uncounted years. We’ve been discussing them as three separate topics.

They are a single topic.

Obvious Connections

Without craft, there is low quality. Without high quality, there is no value.

As I re-read those last two sentences, they seem right to me, and yet they are not satisfying. Something is missing. But what?

The form is okay: craft leads to quality, quality leads to value. A leads to B, B leads to C. Nothing wrong with the form.

And the words feel okay: craft feels like something that would lead to quality, and quality feels like something that would lead to value.

Not-So-Obvious Meanings

Ah, I think I perceive what’s missing. Value sounds good, but what is it, exactly? And what is quality, and how does it relate to value? Same for craft: what is it, really, and what does it have to do with quality or value?

We toss these words around all the time. Mostly we toss them around as if they mean something good. If we have them it’s a Good Thing. If we lack them it’s a Bad Thing. But what do we have when we have it, and what are we missing when we don’t?

Value to Whom?

I suspect one of the challenges in arriving at a consistent understanding of value is that it’s contextual. In our zeal to transform ourselves from humans into machines, we tend to use the word valueto describe the monetary return to paying customers from their investment in our work, and nothing more.

Paying customers are certainly one sort of entity that has an interest in our work, and their return on investment is certainly an important and desirable outcome of that work. But is it the soledefinition of value?

What if we’re doing work for a non-profit organization or as a community service? Who are the “customers” and what’s the value they’re interested in? Is the work a “failure” if it doesn’t generate cash flow for some corporation or investor?

Who has an interest in our work, whether it’s on behalf of a for-profit venture or not? Does each of these interested parties want the same result from our work? Are their various notions of the value of our work important, or is everything strictly about financial return on investment?

Do we, ourselves, have an interest in our work? Is our own notion of the value of our work important, or are were merely hands that are employed to make things for pay?

What’s the Value of a Jazz Solo?

Who has an interest in a jazz solo? Obviously, the paying customers want something good for their money. So:

  • the audience

Okay. Anyone else? Could be, maybe:

  • the audience
  • the other musicians playing
  • aspiring musicians
  • composers and arrangers
  • the jazz tradition
  • instrument makers
  • promoters and recording companies
  • the soloist

The most obvious “stakeholder” is the audience. But how do they know they’ve received anything good in exchange for the price of admission? There’s nothing they can take home with them apart from memories. No two audience members get the same thing from the performance. How can they tell whether they enjoyed it?

What about those other interested parties? They didn’t “invest” in the solo. Who cares if they got any “value” from the performance? They don’t count, right? Value is just about money.

A jazz solo exists only in the moment it is made. How do you quantify the value of something like that?

Well, one thing that happens is that the audience and the other musicians in the group have a lot to do with the solo. The dynamic between the soloist, the rest of the players, and the listeners is almost tangible in the moment. The same group playing the same charts at the same venue the next night won’t produce the same result.

Aspiring musicians who happen to be in the room are another interested party, or “stakeholder,” if you will. What’s the value they get from the solo? They learn something about how a soloist operates. They take it back with them to the practice room. What they heard continues to add value for them and for their audiences (and other interested parties) long after the last echo of the live performance has died down.

How are composers and arrangers “stakeholders” of the solo? They get ideas for new tunes and new arrangements based on potential they perceive from the soloist’s creation.

Okay, maybe, but what sort of “stakeholder” is “the jazz tradition?” What does that even mean? Well, if the solo was created by a real master, the performance (or maybe the sum total of their performances) will influence the jazz tradition itself. For instance, some of Charlie Parker’s solos have been copied down and practiced note-for-note by aspiring players. Some have been incorporated into written charts, with harmony. He’s not the only one. Solos created on the fly by master players become a new baseline for the next generation of musicians. The tradition builds on itself.

Instrument makers get value from the performance, too. They hear things the rest of us don’t hear, because they’re listening for different things. They hear where the soloist is going next; what they’ll need to be able to do. They take those lessons back to the shop. They design the equipment to take jazz to the next level.

Promoters and recording companies get value from the performance. They find players and groups they think a lot of people will want to hear, and they get those performers in front of people by arranging concerts and tours and by producing and marketing recordings. That, in turn, has a ripple effect throughout the musical world and the world at large. What do the ripples carry? Value.

Last but not least (or maybe least, depending on whom you ask), the soloist gets value from the performance. Composing on the fly in real time, like performing on the trapeze without a net, making something out of nothing, something with structure and content, something not heard before. The soloist is a “stakeholder,” and the value is the experience of making the music.

How does quality play into all that? It’s hard to quantify in concrete terms, but it’s easy to imagine that if the quality of the performance is low, it won’t yield any value for any of the interested parties. Quality is so closely tied to value that they might just as well be two words for the same thing.

So I’m going to say they are.

And craft? What is it, and what’s its relationship to quality and value?

In this context, craft is the skill and artistry the soloist puts into the work. It comes from years of mindful practice and study. It comes from experience over years, and focus in the moment. It’s hard to quantify, but it’s easy to imagine that if craft is lacking, quality will be low, and value will be absent. Craft is so closely tied to quality and value that they might just as well be three words for the same thing.

So I’m going to say they are.

What Does This Have to Do with Anything?

I happened to come across an old blog post of mine, For and Against and For Software Craftsmanship. I’d slept since writing it (several times, actually), so I didn’t quite remember it. I re-read the post and the comments.

I noticed a comment from one Terry Zenner that led me to think again. He writes, “If you have a psychological need to be called a craftsman, take up stained glass design, cabinet making, or another craft that will endure generations of use and admiration. The software you are working on today will have to value whatsoever 75 years from now.”

I don’t know Terry Zenner and I don’t know his background. His optimistic appraisal of the longevity of the value of software suggests he may not be involved in the field directly. It occurred to me the software I’m working on today will lose its value much earlier than 75 years from now. It may have no value at all by this time tomorrow. It wouldn’t be the first time.

When I mentioned that observation to my son, who is also a software developer, he said I was wrong. The value of a software product doesn’t end when the product is retired from service. (That’s not the way he talks, it’s just the way I type. He talks like a millennial, I type like an old fart.)

That piece of code might be used as a reference or a model for future developers. They might take ideas from that code and expand on them, build on them, create new and useful things from them. The value lives on after the immediate stakeholders have forgotten about it.

There were compilers called A and B before there was C. And look at all the things C has led to. C eventually led to C++ and Objective C, and those influenced Java and C#. Today, Java is regarded as fairly verbose and clunky; the quest to improve it has led to Groovy, Scala, Clojure, and Kotlin, each of which builds on and improves on Java in one way or another. Clearly, the value of software isn’t limited to the immediate uses its early stakeholders envisioned. The payback from the initial development project was only the beginning. I don’t suppose the designers of A were intentionally laying the foundation for Kotlin.

What about the notion of longevity? Jazz solos don’t last 75 years, except as recordings. The Pyramids of Egypt have lasted thousands of years, but they have not been in continuous use for their originally-intended purpose for all that time. They didn’t actually last very long at all, from an end user perspective. The stones are still standing, mostly, but that’s all. The burial chambers were looted almost immediately, and no one has been spending their afterlife within. And I’ve seen plenty of cabinets that have held together, somehow, for many years, despite poor quality. So, what of the cabinet-maker analogy?

What Does This Have to Do with Software?

Software development doesn’t seem to have much in common with a jazz solo.

Or does it?

Who has an interest in a software development initiative? Could be, maybe:

  • the audience (the users)
  • the other musicians playing (the rest of the development team)
  • aspiring musicians (student and apprentice developers)
  • composers and arrangers (product managers, project managers, investors, software architects)
  • the jazz tradition (the software development community & industry)
  • instrument makers (the makers of development, testing, and deployment tools)
  • promoters and recording companies (marketers, promoters, recruiters)
  • the soloist (the developer in the act of making)

I’ll leave it to you to ponder the commonalities.

All the Same Thing

On some level of abstraction it’s all the same thing, really: stained glass, music, software, restoring classic cars, brain surgery, rocket science, sweeping the floor, mending your socks…anything. And in whatever field of endeavor, the words value, quality, and craft all refer to the same essense.

None of those words has any practical meaning without the other two. Maybe that’s the reason we’ve never been able to agree on separate meanings.

Next Zen and Code Maintenance

Leave a comment

Your email address will not be published. Required fields are marked *