Disorganization and Changing Your Mind are Both Expensive
Ron DuPlain forwarded me an interesting post from November 2008 (via @duanegran, I believe) called How much do websites cost? It’s a great comprehensive overview of the different kinds of web sites that can be built – the spectrum of customization, interactivity, and intent that dictate whether a web site will cost $200 or $2 million. But what really struck me about this article was one tiny little section that talks about value, emphasizing the relationship between quality, waste, and the changeability of human wants, needs, and desires:
2.) A small company site that has 5 to 10 pages describing the products/services offered by the company. $500 to $2,000 depending on how prepared you are, and also on how clear in your own head you are about what you want. Disorganization and changing your mind are both expensive.
Disorganization is expensive because it blocks action. When your house is disorganized, you waste time and energy trying to find stuff. When the processes you use in the workplace are disorganized, time and physical energy can be wasted engaging in non-value-adding activities, and mental and emotional time and energy wasted in unproductive communications. Wasting time and energy can generate short-term real costs (for example, moving parts or products around a factory or supply chain can delay time-to-market while costing more in fuel for transport), long-term real costs (e.g. reinforcing negative behaviors that lead to breakdowns in interpersonal relationships, teamwork, or morale) or opportunity costs.
Changing your mind is expensive for the same reason: it either blocks new action from taking place, or it eliminates the value that could have been added by prior work. A task is not actionable unless you have the 1) resources to do the job, 2) the information and interest to complete it, 3) the skills and capabilities to make it happen, as well as a clear idea of what needs to be done, and 4) an execution environment that supports getting things done. Changing your mind can erode #2 or #3.
To reduce the risk associated with development, and to control the costs of the project, find out:
- How much do you really know about what you want?
- What essential elements are you pretty sure you’ll still want or need in 3 months, 6 months, 1 year, 5 years?
- What parts do you have the resources, information/interest, capabilities/skills/clarity, and execution environment to get done now? (I call this RICE to make it easier to remember)
The lesson: to get higher quality and lower costs (that is, greater value), focus on those parts of a project that are least likely to change and do those first. This is, of course, if you have the luxury to be agile (highly regulated environments may impose restrictions or limits). Then stop – figure out what your experience working on those parts tells you about how you can approach the problem more systematically and effectively- and repeat the cycle until you iterate to the desired solution. This is the essence of applying organizational learning to your day to day tasks.
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.

