2012 is fairly quickly becoming “the year I spent rethinking everything I knew about Test”. I don’t know what it’s like for you, but I believe Test is undergoing another reformation. This week alone I have been in far more than normal conversations around this phenomena. I find this hit count interesting. I view it as an expression of anxiety in the discipline AND as a problem seeking a solution. This year, though, unlike last year, there’s an aura of acceptance around this reformation. As folks are trying to work through how to handle what they view as inevitable change, they are trying to discover the value of the Test Discipline and what it should be. I see a dichotomy of opinion forming between the Proven and the Possible.
- The Proven camp knows how Test has always added value (asking questions, finding bugs, writing automation, etc) and trying to find ways to keep that value alive, but as ‘speed to release’ increasingly becomes a competitive advantage, they are struggling to scale cost-effectively (and therefore maintain their value).
- The Possible camp has a vision of the future, but a clear path for shifting the workforce to the new paradigm is really hard. First, most are not trained in behavior management and second, there are too many variants for “the vision” right now. It’s hard to tell when a technique works for a business context or not. It’s hard to tell if it will work unless you try it, and some may not be able to afford to experiment. Catch-22.
Within my own environment, I would estimate that there is another 2 to 3 years from a major tipping point. I believe we will see some of these new variants rise to the top as highly successful and models of success. Once these variants can be shifted from “possible” to “proven” at the business level, change will occur rather rapidly.
I have spent the majority of my career as a manager of Testers. IMHO, *NOW* is the time to put systems/practices into place that will help the team manage the future.
As I mentioned in A Tester’s Job, I believe a Tester’s job is to “to accelerate the achievement of shippable quality“. Please note: I did not state “to prevent the achievement of shipping crap“. This is, far too often, too theoretical. I believe the secret to moving forward as a discipline will be in changing our repertoire of techniques. Focus on delivering good to our users, instead of preventing bad. In order to do this, I believe we have to be reminded what it means to have achieved quality.
QWANtum Leap Forward?
Today’s article follows up from my last post. It is about the question of Quality. “What is it?” I am going to share some insight from one of the more important (my humble opinion) “fathers” of Modern Computer Science. You may know about Design Patterns and especially the book published by the “Gang of Four”. In addition, you may also know about Christopher Alexander, the inventor of design patterns.
For those who don’t, please note the use of lowercase there. What Alexander created was a system for identifying, cataloging, and using patterns in life for the purpose of design. Alexander, by training, was an Architect, Author, and until recently, a Professor. He is now retired, but in his work life, he contributed greatly to helping students learn better how to design and build houses, towns, buildings and the like through a set of principles he called The Pattern Language. The Gang of Four recognized that the principles he applied to architecture also applied to computer programming. The result of that connection was their book.
You may *not* know that Alexander’s designs and practices are an attempt to create and sustain something he calls Quality without a Name (often referred to as QWAN). Everyone in software engineering should learn, understand, and use Design Patterns. They offer many great benefits to you in order to create software.
However, I am reminded of a tweet:
I think Alexander would agree and further add they are looking for QWAN.
Described in A Timeless Way of Building, the “quality without a name”, which feels like a Taoist concept, is described as “the central quality which is the root of life and spirit”. As David Sheen synthesizes it, achieving QWAN “make us feel most alive, the most true to ourselves, the most unselfconscious, the most whole, the most complete, the most free”. Alexander calls it quality without a name as no single emphasis can be identified as the most important. All of these and in the right combination and context are needed.
QWAN can be, perhaps, expressed simply as “the feeling you get when interacting with a living design”. We are trying feel alive and by doing so we create life. Achieving QWAN is hard, but Alexander gives us some food for thought. For the purposes of today’s post, I present this in bullet form along with my own interpretation of meaning. Note: I am only presenting a subset of points that really reasonated with me. I highly encourage you to read the whole book for yourself.
Alexander tells us:
There is *no* objective difference between a good or bad design.
- This means Quality is subjective. QWAN comes from recognizing how designs make us feel.
A design comes to life (is high quality) only to the degree life chooses to interact with it.
- This means you can only understand Quality by observing how people interact with your design.
- This also means you can only know Quality of your product reactively, by studying how life is interacting with it.
- This also means Quality is measured by interaction level. Bugfree code that no one uses is low quality. Interaction level is measured both in terms of # of users, and depth of interaction.
A design is given it’s character by a pattern of events
- This means *how* life interacts with the components within the design helps to influence Quality.
- A way to determine quality would be to study how life interacts with your design, enumerate those interaction patterns, and determine their quality level.
Patterns that free us or entertain us are alive. (alive here means life is interacting with it in a way that it has itself become part of life. Eg. Texting is now an interaction pattern that is “alive”)
- This means designs that enable personal freedom and/or entertainment have the potential to take on a “life of their own”.
- This implies designs that are forced or feel “like work” will have a much lessor potential.
The more living patterns a design has the more likely that it’s QWAN will be self-maintaining; it will feel like a part of nature.
- By understanding the interactions, you understand the forces at play within the design/human interaction.
- These forces can push quality in multiple directions, by replacing “deadening” patterns with “living” ones, you reinforce the design positively. It is not unlike planting grass on a hill to prevent erosion. Gravity and rain are working hard to destroy the hill, but by understanding these “forces” you can come to ‘planting grass’ solution.
You can’t know QWAN during the moment you are experiencing it. Conscious thought causes it to dispel. It forces you to shift from living to analyzing.
You can not know when your design has achieved QWAN by yourself. You can only know this by observing others.
Quality is life
I encourage you to come to your own conclusion, but in my mind, achieving quality is not about delighting your customers then, it’s about helping them to feel alive.
On another note: I adore Alexander’s continual push towards trying to think of architecting designs in a light similar to that of the story Geppetto and Pinocchio. Viewing it this way: Isn’t Agile just another version of Natural Selection?