“Care and Quality are internal and external aspects of the same thing. A person who sees Quality and feels it as he works is a person who cares. A person who cares about what he sees and does is a person who’s bound to have some characteristic of quality.”
A line from Zen and the Art of Motorcycle Maintenance by Robert M. Pirsig. One of the best book recommendations of my life (thank you, Dr. Shepherd).
I’ve been thinking about how Pirsig’s ideas on Quality relate to modern day application development, and more specifically, site reliability.
First, an interesting question:
What makes an application Quality?
- The solving of a real, felt problem for the user.
- The amount of pleasure derived from use.
- Aesthetic attractiveness from the user’s perspective.
- Reliable use across a span of time.
I would argue these four, in general, are the Big Four in application development.
Reliability’s Relationship In the Big Four
With no reliable use, the other points become moot. This idea elaborates on the famous Google quote that “reliability is the most important feature of any system.” A truism among folks in the industry. Although, for those deeply ingrained in other disciplines, while they don’t disagree with the statement, it often doesn’t land. At least not in the full sense. Reliability is commonly treated as something separate. The typical “throw it over the wall” trope, seen especially in large enterprises where ownership can be much more difficult to pin down compared to a small team.
There’s a lot going on, everywhere: competing priorities, hard-charging bosses, deadlines, you know the drill. Running a Quality product is a game of prioritizing which tenets of Quality you are going to pursue, and how much that pursuit will impact the tenets you give less focus to. The fourth tenet (Reliable use) being, arguably, the one with the largest share of importance.
The full gravity of the Google statement can fall on deaf ears in the daily din of strife of product development. In a technology landscape dominated by microservices and shared compute platforms, deriving a sense of ownership and responsibility for the Quality of an application can be difficult. Too often, reliability work falls on some “other” party.
However, painting the image of an application’s being through the lens of these four tenets together gives us a more complete ideal of what it is to develop and maintain a successful product over a moderately long span of time. It combines all of the core facets of a lovely-to-use product in one overarching concept. By embracing the concept of wholistic Quality, the application development vs. reliability enhancements conflict is flattened.
We all know when we feel, or experience, something of Quality. This is Pirsig’s Dynamic Quality. When something just feels right. It does what is expected, when expected. This is what we are all striving for when we provide a service to any customer.