Quality and the Great Contraction
From the July 6, 2009 issue of Business Week:
“A new world order is dawning – one in which the West is no longer dominant, capitalism (at least the American version) is out of favor, and protectionism is on the rise… the era of laissez-faire economics is over, and statism, once discredited, is making a comeback – even in the U.S…. global trade is set to fall this year, for the first time in more than two decades.”
We have been conditioned to think that the notion of space – geographic space – does not matter in the new economy. We have the Internet, and ideas can zing from one place to another with ease (and nearly instantaneously, for that matter). Add to this videoconferencing with Skype, and keeping up with your contacts on Twitter and Facebook in near-real time, and it’s no wonder that people have also become accustomed to assuming that materials can move from one place to another with similar relative ease.
Space does matter. We know this when we are designing facilities and plant layouts, for example, because one of our common considerations is to minimize traffic between areas and departments. More often than not, we do this to minimize the time spent moving people or equipment around a plant, so that time is not wasted. But the same concept could apply to our supply chains. Why aren’t we minimizing the time that components or goods spend traveling through the supply chain, when it could lead to reductions in energy costs? Furthermore, why aren’t we shortening our supply chains to strengthen local and regional businesses, and train the next generation of skilled workers (who can actually do something useful for the regional economy)?
The logic has been something like this: energy is cheap, therefore transportation is cheap, and transportation is easily available and accessible through third-party providers like FedEx and UPS. But I can’t shake the feeling that “supply chain status quo” is not good for quality in the long-term – because it encourages us to source the products and components that are most affordable, rather than the ones that might help us cultivate a quality consciousness in our local areas.
Achieving Quality when Something is Always Broken
In the quality profession, we are accustomed to thinking about product and component quality in terms of compliance (whether specifications are met), performance (e.g. whether requirements for reliability or availability are met), or other factors (like whether we are controlling for variation effectively, or “being lean” which is realized in the costs to users and consumers). So this morning I attended Ed Seidel’s keynote talk at TeraGrid 09, and was struck by one of his passing statements on the quality issues associated with a large supercomputer or grid of supercomputers.
He said (and I paraphrase, so this might be slightly off):
We are used to thinking about the reliability of one processor, or a small group of processors. But in some of these new facilities, there are hundreds of thousands of processors. Fault tolerance takes on a new meaning because there will be a failure somewhere in the system at all times.
This immediately made me think of society: no matter how much “fault tolerance” a nation or society builds into its social systems and institutions, at the level of the individual there will always be someone at any given time who is dealing with a problem (in technical terms, “in a failure state”). Our programs that aim for quality on the scale of society should take this into account, and learn some lessons from how today’s researchers will deal with fault tolerance in hugely complex technological systems.
It also makes me wonder whether there is any potential in exploring the idea of quality holography. In large-scale systems built of closely related components, is the quality of the whole system embodied in the quality of each individual part? And is there a way to measure or assess this or otherwise relate these two concepts operationally? Food for thought.
Quality of an Interactive System
Today, I spent some time in a remote visualization tutorial presented by John Clyne of NCAR. He referenced a 2005 answer to the question “What is meant by interactive analysis?” by Mark Rast of the University of Colorado:
Definition: A system is interactive if the time between a user event and [the system's] response to that event is short enough to maintain my full attention.
If the response time is…
1-5 seconds: I’m engaged
5-60 seconds: I’m tapping my foot
1-3 minutes: I’m reading email
>3 minutes: I’ve forgotten why I asked the question!
I liked this because it defines a quality attribute: a high-quality interactive system maintains the user’s attention.
Good Tutorials and Bad Tutorials
This post is about the quality of a tutorial session at a conference. I hope that there is useful information that can help prospective tutorial presenters, because I have lessons learned that are hot off the press.
I’m thinking a lot about how (and how not) to execute a successful tutorial session today. Why? Because I’ve spent 8 hours today in 2 tutorials, and with 25 minutes left to go, I now know that I have wasted about 6.5 of those hours. I want to save you those 6.5 hours in the analog of your life. I could have been doing some productive activity that I would feel great about – but my investment of time in tutorials has come up short. Note that all of these sessions have been about how to use software, computing, or cyberinfrastructure resources.
Characteristics of the 1.5 hours I spent well in these tutorials: I played with code that I was scared of before. I heard why certain tools, utilities, modules and packages could help me – and then the presenter helped get me over the barrier to entry. I was told what I needed to start out with (e.g. the data format, and the “substance” in that data that I would need if I were to use the software), the steps I would need to take to crack open that data and do something useful, a menu of what I might want to try later if I was so inclined, and most importantly – the “what’s in it for me” statement. I now know 2 or 3 new resources I can use, and why I might want to try them. (Doesn’t matter that I don’t have any occasion right now to use them – I’m empowered for the future.) I feel better and more confident about my skills in some areas.
Characteristics of the 6.5 wasted hours: I saw a lot of pictures about what other people’s software can do. I saw no mapping of what can be done to how to do it. I got a lot of explanations of syntax that mean nothing to me without the context of how I am actually going to use it. I heard lackluster stories about programmers in other people’s organizations. I saw long lists of attributions of who did what work, and no idea of why that is useful to me or anyone else. I see a lot of code on the screen, and yet I can’t touch it. Plus, I’ve learned so many computer languages over the past 20 years that I don’t need to know any more syntax… I know the main components are working with file I/O, processing and analyzing data, and storing and then retrieving it. Give me a “quick start guide”. This is all very impressive – these people have done a lot of work and it’s very complex – but I just don’t know what I can do with it. NOR do I know how I can help colleagues who might need to know this stuff – I wouldn’t know how to recognize the opportunity. Most critically, I don’t have any idea about the execution environment. How about you step me through a “Hello World” to give me a feel for how to run the examples?
Tips:
- Make your tutorial simple and multi-modal (pictures + examples + lecture + team activity maybe). Hands-on is good.
- Tell people what’s in it for them; set their EXPECTATIONS
- Tell people what they need to start with (e.g. input data) to flesh out those expectations
- Tell people what ACTIONS they can take (what new commands can they type into their computers now??)
- Tell people how they can learn more, and SUSTAIN their learning
- Then let them know what they’re going to get in the end; help them learn how to EVALUATE their progress.
- Give them something to take away with them, like a quick-start guide, or a new app installed on their laptop that they will be happy to play with when they get home.
And remember to speak up. Technical stuff can be dry, so a nice consolation prize for a dull tutorial is a pleasant speaker with a good voice.
* * *
Important Addendum: I’ve now had over 48 hours to reflect on my tutorial experience and let it all sink in. The impression that will stay with me? That the first tutorial I went to was awesome, and the second ones were not. Note that I balked from the initial “second tutorial” I chose and tried out another one with no luck. Looks like the 1.25-1.5 excellent hours in the first tutorial have now colored my whole experience of it, and I will only remember the awesome parts. The second tutorial(s) are kind of vacuous to me at this point – I just can’t remember anything about them.
Quality vs. Excellence
I was reading through a company’s strategic plan over the weekend and noticed that they had made the decision to shift from a “quality focus” to an “excellence focus” recently. This made me wonder what the difference is, and why a company might want to make such a change in its strategy. Here’s my line of thought.
According to ISO 8402, quality is the “totality of characteristics of an entity that bear upon its ability to satisfy stated and implied needs.” That suggests that in a quality-driven environment, an organization will work to improve the characteristics of its processes, products, and people in order to eventually satisfy the stated an implied needs of its stakeholders (presumably customer, the workforce, and even society if social responsibility is a priority.)
When I searched for the phrase “what is excellence” one of the search results presented this story (the post is copied in full here):
A German once visited a temple under construction where he saw a sculptor making an idol of God. Suddenly he noticed a similar idol lying nearby. Surprised, he asked the sculptor, “Do you need two statues of the same idol?” “No,” said the sculptor without looking up, “We need only one, but the first one got damaged at the last stage.” The gentleman examined the idol and found no apparent damage. “Where is the damage?” he asked. “There is a scratch on the nose of the idol.” said the sculptor, still busy with his work. “Where are you going to install the idol?”
The sculptor replied that it would be installed on a pillar twenty feet high. “If the idol is that far, who is going to know that there is a scratch on the nose?” the gentleman asked. The sculptor stopped his work, looked up at the gentleman, smiled and said, “I will know it.”
The desire to excel is exclusive of the fact whether someone else appreciates it or not. “Excellence” is a drive from inside, not outside. Excellence is not for someone else to notice but for your own satisfaction and efficiency…
(I note that these ideas are reiterated by other bloggers as well, e.g. in http://how2bgenius.blogspot.com/2007/12/what-is-excellence.html.)
What I take away from this is that quality is driven from the outside (fueled by the needs of customers and other stakeholders) whereas excellence emerges from within an individual. A company that changes its strategy from a quality focus to an excellence focus must, as a result, have mastered the dynamics of being driven externally – and recognizes that additional process improvement requires turning inward.
With that said, why can’t we just craft organizational strategies that focus on both quality and excellence? I think many organizations actually do take this approach. My point here is that quality and excellence are different, and should not be treated as one and the same, but as a dynamic duo that can catalyze and organization to quality consciousness.
Not Invented Here
If you are part of the software development world, no doubt you are familiar with “not invented here” (NIH) syndrome. It is the scourge of the software development culture, the unfortunate tendency within a group of software-minded people to attribute value to the code that members of the group or the group itself has written, while devaluing code, modules or COTS packages that have not been written by members of the group.
“Not invented here” is so prominent that it has a wikipedia entry, with text that assures us that this tendency is indeed a facet of many a social, corporate or institutional culture. Bloggers and even Harvard Business Review have touted its benefits, suggesting that this characteristic of a culture may catalyze innovation.
Today, I attended a meeting where I had an even bigger revelation about NIH. About 10 people attended, and we talked about how to search a large archive of metadata across multiple data sources. Attendees spoke of the problem as something that really needs to be done, as something that our organization really needs to spend time on – and we need resources to do it. There’s only one problem with this picture – a couple of people within the organization have been working on this problem for the past 18 months, have produced a prototype that’s consistently getting about 100 hits a day (which is substantial given the problem domain), and have received positive reviews and helpful suggestions for moving forward from the user community. The releases have been published in inter-organizational emails, the company newsletter, and other venues where it would be very easy for everyone in this meeting to have learned of the new functionality and used it. But apparently no one has bothered to pay attention!
The moral of the story: when a NIH culture is observed, perhaps the resources and opportunities that are available to a group or an organization that could use them are truly invisible to the people who need them. The people can not see the opportunities because they are not looking; they are not paying attention.
Is paying attention to opportunities a value within your software development organization? It requires conscious effort.
Autocatalytic Strawberries
Warning: This post contains wild, imaginative speculation which I considered (nonetheless) pretty fun.
I was reading yesterday about autocatalytic sets – described, on Wikipedia, as “a collection of entities, each of which can be created catalytically as a whole is said to be autocatalytic.” by other entities within the set, such that as a whole, the set is able to catalyze its own production. In this way the set The example given in yesterday’s reading was the egg – an egg can produce a chicken, which is then in the business of producing more eggs. The “chicken and egg” problem is thus embodied by the notion of the autocatalytic set.
Today, I picked up my local vegetable share which had a whole bunch of strawberries in it. I cleaned them, cut the green tops off, and sliced them each in two or three parts. And then, when I was about to pop one in my mouth – I saw it. Not a tasty strawberry, but an autocatalytic set. The seeds on the outside of the strawberry are in the business of making more strawberries, which are in the business of making more strawberries, and so on and so forth.
And then I wondered: if that little seed is where thousands of generations of strawberries are destined to come from, is a single atom eventually to be the source of a future solar system? Now: re-read the first line of this post.


