testing

Back to quotes table-of-contents

From Perfect Software and Other Illusions About Testing
You have to know what you're expecting before you give meaning to a test report, otherwise everything looks or sounds right. That's why I'm a strong advocate of the test-first philosophy, whereby developers write their tests to include expected results before they write a line of code. It's what we did fifty years ago, but the practice was gradually lost when industry trends separated testing from development.

From Test-driven Development for Embedded C
TDD helps you go faster... Slowing down is exactly what is needed to go fast!

One test result is worth 1,000 expert opinions. [Wernher von Braun]

From Quality Software Management: Vol 4. Anticipating Change
Testing to improve, not to prove.

Testing is not a stage, but part of a control process embedded in every stage.

From The Lady Tasting Tea
What I discovered working at Pfizer was that very little scientific research can be done alone. It usually requires a combination of minds. This is because it is so easy to make mistakes.

No test can be powerful against all possible alternatives.

From Mind and Nature
Other things being equal (which is not often the case), the old, which has been somewhat tested, is more likely to be viable than the new, which has not been tested at all.

From Management of the Absurd
We need to fail often. If we don't, it means we're not testing our limits.

From The Right Stuff
In the military they always said "flight test" and not "test flying".

What people were seeing on television were, in fact, ordinary test events. Blown engines were par for the course in testing aircraft prototypes and were inevitable in testing an entirely new propulsion system, such as jet or rocket engines.

From We Seven
A test-pilot is fiercely proud of his profession. [Walter Schirra]

In combat, for example, you are thinking about what goes on outside of your airplane… But in test flying you have an entirely different problem. You are concerned about what is going on inside the airplane, and what the aircraft itself is doing. [Deke Slayton]

Each part that goes into the capsule has had a prototype tested to destruction to make sure it can stand the rough ride and the temperature changes. The test procedures are extremely painstaking. First, one part is tested; then two parts are linked together and both of them are tested as a unit. The small units are joined into bigger units for further testing, and this process continues until finally the entire machine is ready for a master test. [Malcomn Scott Carpenter]

From The Pragmatic Programmer
Design to Test.

From The Alchemist
'I had to test your courage,' the stranger said. 'Courage is the quality most essential to understanding the Language of the World.'

From The Importance of Living
We must give up the idea that a man's knowledge can be tested or measured in any form whatsoever.

From The Mind of War
He was always testing the limits - of airplanes, people, science, the military, and, most especially, bureaucracies.

From An Introduction to General Systems Thinking
"Proof" in its original sense was a test applied to substances to determine if they are of satisfactory quality... Over the centuries, the meaning of the word "prove" began to shift, eliminating the negative possibilities...

From Safer C
You can't test quality into software.

From The Mythical Man Month
No part of the schedule are so thoroughly affected by sequential constraints as component debugging and system test.

hierarchy

Back to quotes table-of-contents

From Management of the Absurd
The introduction of highly participative systems tends to bring attacks on the stronger members, often the leaders, while more hierarchical systems bring attacks on the weaker members.

It is only when the balance of power is relatively equal that truly candid communication can and should take place.

From The Psychology of Computer Programming
If egoless programming is used, everyone in the group will have the opportunity to examine the work of everyone else at some time, thereby tending to prevent the establishment of strong hierarchy.

From Not Always So
When you practice your own practice together with others, the true ego-lessness happens.

From Situated Learning - Legitimate Peripheral Participation
The fact that the work was done in an interaction between members opened it up to other members of the team.

From Pair Programming Illuminated
Widespread use of pair programming involves a cultural shift in values of the organization - away from individual and toward team recognition and goals.

From Kanban
High-trust cultures tend to have flatter structures than lower-trust cultures.

From Peopleware
The structure of a team is a network not a hierarchy.

From Freedom from Command and Control
Without doubt the most important system condition affecting performance is measurement. It goes hand in hand with command-and-control hierarchical structure.

From Maverick
A conservative bunch, they adhered to a rigid hierarchy, even when complaining.

From The Starfish and the Spider
This is a book about what happens when there is no one in charge. It's about what happens when there's no hierarchy.

From Mind and Nature
In all hierarchies, it is most undesirable to have direct contact between levels that are nonconsecutive.

From The Fifth Discipline
Hierarchy is antithetical to dialogue, and it is difficult to escape hierarchy in organisations.

From Management 3.0
The hierarchy is needed for authorization; the network is needed for communication.

From Thinking in Systems - A Primer
Among all possible complex forms, hierarchies are the only ones that have had time to evolve.
In hierarchical systems, relationships within each subsystem are denser and stronger than relationships between subsystems.
Hierarchical systems evolve from the bottom up.

people

Back to quotes table-of-contents

From The Secrets of Consulting
It's always a people problem.

From Switch - how to change things when change is hard
What looks like a people problem is often a situation problem.

From Taiichi Ohno's workplace management
Let idle people play rather than do unnecessary work.

From Quality Software Management: Vol 1. Systems Thinking
The software industry tends to focus on tools rather than on people.

People's language often reveals when they believe that they are victims of events, rather than having a choice of reactions to the event. Learn to listen for falsely deterministic key words.

From Nudge
Roughly speaking, losing something makes you twice as miserable as gaining the same same thing makes you happy. In more technical language, people are 'loss averse'... Loss aversion helps produce inertia.

From Adapt - why success always starts with failure
A central point of the corporation, as a legal structure, is that it is supposed to be a safe space in which to fail. Limited liability companies were developed to encourage people to experiment, to innovate, to adapt - safe in the knowledge that if their venture collapsed, it would merely be the abstract legal entity that was ruined, not them personally.

From Being Wrong
When we ask people to look for something specific they develop a startling inability to see things in general.

From Becoming a Technical Leader
If you are a leader, people are your work.

From Measuring and Managing Performance in Organizations
You manage things, and you lead people. You control things, and you release people. [Ed Tilford]

From All I need to know about manufacturing I learned in Joe's garage
Like most computer people would have, he had stayed close to his electronic toy rather than come to the garage to watch the production operation.

From Patterns of Software
My overall bias is that technology science, engineering and company organization are all secondary to the people and human concerns in the endeavor.

From Peopleware
If you find yourself concentrating on the technology rather than the sociology, you're like the vaudeville character who loses his keys on a dark street and looks for them on the adjacent street because, as he explains, "The light is better there."

From The Mythical Man Month
The Mythical Man Month is only incidentally about software but primarily about how people in teams make things.

From The Wisdom of Crowds
People are more overconfident when facing difficult problems than when facing easy ones.

Encouraging people to make incorrect guesses actually made the group as a whole smarter.

From Management of the Absurd
When people feel responsible for handling some situation in which they are, in fact, largely helpless, a dangerous combination of feelings is created: responsibility plus helplessness leads to abuse.

Training makes people more alike... Education... tends to make people different from each other.

From Understanding the Professional Programmer
If you want people to change what they're doing, make sure they are fed back the consequences of what they're doing.

patterns

Back to quotes table-of-contents

From The Nature and Art of Workmanship
No two leaves of the same tree are precisely alike, each is individual: yet every one of them conforms to a recognizable pattern characteristic of the species.

From The Unknown Craftsman
If the material is poor the pattern will suffer.

From Quality Software Management. Vol 1. Systems Thinking
A culture is a self-sustaining pattern that has remarkable powers of resistance to change.

The essence of a pattern is what it can do consistently.

From Quality Software Management: Vol 1. Systems Thinking
A locked-on system tends to hold itself to an existing pattern, even against logical reasons to change. … Lock-ons occur in clusters.

The quickest and surest way to classify organisations into similar patterns is by the way people think and communicate.

From Quality Software Management: Vol 2. First-Order Measurement
One of the most sensitive measures of the cultural pattern of any organization is how quickly it finds and removes problems.

Culture makes its presence known through patterns that persist over time.

From An Introduction to General Systems Thinking
And with this shift in time there occurs a shift in the entity of concern - from an object, a pattern of matter in space, to a behavior, a pattern of events in time. [R.W.Gerard]

From An Ecology of Mind
He was often accused of talking in riddles and never coming to the point. The question he posed "What is the pattern that connects?" was never meant to be answered, because the patterns are changing. It was the act of questioning that he was pushing for. Knowing that the eyes behind that curiosity will be the most apt to give the patterns of connection room to wiggle as they perpetually self correct. And to see the beauty in that process. [Nora Bateson]

From Mind and Nature
To be meaningful - even to be recognized as pattern - every regularity must meet with complementary regularities.

From The Silent Language
A pattern is only meaningful if analyzed on its own level.

From Leverage Points
Self-organization is basically the combination of an evolutionary raw material - a highly variable stock of information from which to select possible patterns - and a means for experimentation, for selecting and testing new patterns.

From Patterns of Software
In most types of abstraction the common pattern is replaced by a name, such as a function name, a macro name, a class name...

Dr Deming

is an excellent book by Rafael Aguayo, subtitled The American Who Taught The Japanese About Quality (isbn 0-671-74621-9). This book is also the source of the story about the coffee roasters. As usual I'm going to quote from a few pages
To improve output, production, sales, profit, quality, or any other important factor, every part of the organization had to improve.
Lowering the number of defects in a stable system can only be achieved by working on the system.
A perfectly good system can be ruined by overadjustment and trying too hard.
Overadjustment of a stable system invariably makes things worse. This deserves a special name - tampering.
We are ruined by best efforts. Best efforts without guidance from profound knowledge are oftentimes tampering, ruining perfectly good systems.
The causes of common cause problems cannot be attacked directly.
Good organization is hardly felt and hardly seen. If it is seen and felt, it is most likely the source of problems and therefore the source of loss.
Deming states unequivocally that merit reviews, by whatever name, including management by objectives, are the single most destructive force in American management today.
Running a company by proft alone is like driving a car by looking in the rearview mirror. It tells you where you've been, not where you are going.
The most important thing to know about any tool, including financial reports, is its limitations.
The usual assumption is that each number is due to one cause.
The specification may call for no more than 20 percent defective beads being delivered, which guarantees exactly 20 percent defectives.
Objective observers will only see what they're trained to see.
Because of excessive competition they have been left unable to compete.
If any of us were to purchase everything in our personal lives based on lowest price, we would soon go broke.

organization

Back to quotes table-of-contents

From Ackoff's Best
Organisms and organisations are systems that usually have purposes of their own. However, the parts of an organism (i.e., hearts, lungs, brain) do not have purposes of their own, but the parts of an organisation do … An organisation with purposeful parts almost inevitably generates internal conflict … An organisation is a system whose major deficiencies arise from the ways its parts interact, not from their actions taken separately.

From Dr Deming
To improve output, production, sales, profit, quality, or any other important factor, every part of the organization had to improve.

From Adapt - why success always starts with failure
A central point of the corporation, as a legal structure, is that it is supposed to be a safe space in which to fail. Limited liability companies were developed to encourage people to experiment, to innovate, to adapt - safe in the knowledge that if their venture collapsed, it would merely be the abstract legal entity that was ruined, not them personally.

From Quality Software Management: Vol 1. Systems Thinking
The quickest and surest way to classify organisations into similar patterns is by the way people think and communicate.

From Quality Software Management: Vol 2. First Order Measurement
One of the most sensitive measures of the cultural pattern of any organization is how quickly it finds and removes problems.

From Quality Software Management: Vol 4. Anticipating Change
Organization inhibits reorganization (Minot's Law).

From Implementing Lean Software Development
The mark of an excellent organization is not that they are without problems; it is that they are without systemic problems.

From Patterns of Software
My overall bias is that technology science, engineering and company organization are all secondary to the people and human concerns in the endeavor.

From Adrenaline Junkies and Template Zombies
Organizational lines exists for control and decision-making. They don't usually exist to accelerate work throughput.

From Understanding the Professional Programmer
Rules are not made to be broken, but neither are they made to be not broken. Rules are made so that the organization operates more efficiently.

From Consilience
Complexity theory can be defined as the search for algorithms used in nature that display common features across many levels of organisation.

From Principles of Product Development Flow
The Marines, and all other elite organisations, maintain continuity in their organisational units.

From The End of Certainty
Once we have dissipative structures we can speak of self-organization.

Order can only be maintained by self-organization.

From Complexity and postmodernism - understanding complex systems
A self-organising system will try to balance itself and a critical point between rigid order and chaos.

From The Tao of Business
Taoism believes in a kind of self-organizing system, that there are patterns to the world and its affairs, and that it is best to let these patterns operate without interference.

From Smart Swarm
Unlike our systems, which are tuned for efficiency, the termites' systems have been tuned for robustness, which they demonstrate by building mounds that are constantly self-healing.

From Linked
The theory of phase transition told us loud and clear that the road from disorder to order is maintained by the powerful forces of self-organization.

From Thinking in Systems - A Primer
This capacity of a system to make its own structure more complex is called self-organization.

From Leverage Points
The ability to self-organize is the strongest form of system resilience. A system that can evolve can survive almost any change, by changing itself.

From Simple and Useable
Simple organization is about what feels good as you're using the software, not what looks logical in a plan.

From Beating the System
Implicit assumptions lead to behaviours that are carried out automatically, without thought, and these behaviours constitute an organisation's or a society's culture.

Most assumptions made in and about organisations usually go unquestioned, and their validity is taken to be self-evident, despite Ambrose Bierce's (1967,289) admonition that "self-evident" means evident to oneself and no one else. "Obvious" does not mean "requiring no proof" but "no proof is desired."

From Pair Programming Illuminated
Widespread use of pair programming involves a cultural shift in values of the organization - away from individual and toward team recognition and goals.

From Peopleware
Most organizations don't set out consciously to kill teams. They just act that way.

From A little book of f-LAWS
The best organisations aim to remove the expectation of compliance and eliminate the fear of getting things wrong.

Organizations fail more often because of what they have not done than because of what they have done.

software blending

Here's a story from the book Dr Deming by Rafael Aguayo.
In the early 1950s, American coffee roasters faced a dilemma. The price of coffee beans had risen dramatically, and they were faced with two distasteful choices: either absorb the increased price, partially or totally, hurting profitability; or pass the cost on to their customers and risk losing market share or having customers switch to other beverages.

They came up with an innovative alternative. The coffee roasters' business consists of buying, ageing, roasting, and blending coffee beans to achieve the desired state and smell. Coffee beans, like all agricultural commodities, are highly variable. Two beans can be quite distinct. Even beans picked at the same time from the same tree can be different. A bean picked from the top of the tree, which receives more sunshine, tastes different than a bean from the bottom of the tree.

Blending is a critical part of the process. The leading roaster of the time tried experimenting with different formulations. It found that gradually changing the formulation, substituting lower quality beans, was unnoticeable to the customer. It begins to slowly change the blend. Every two weeks a few more of the less expensive beans were substituted for the heartier, more expensive ones. Most consumers couldn't notice the difference in coffees bought two weeks apart. But if they had tasted, side by side, two batches made six weeks apart, they would have noticed a slight difference.

In effect, the roaster started training customers to accept an inferior blend of coffee. The other roasters noticed what was going on and responded in kind to avoid losing market share. In a few years the American consumer's standards for a decent cup of coffee were radically altered. The managers did their jobs and enjoyed their bonuses. At the time this response was viewed as a triumph of ingenuity. But a funny thing began to happen. Per capita consumption of coffee began a slow but steady decline. The business stopped growing. The roaster that started it all began to experience profitability problems. It is now part of a huge conglomerate and is still experiencing problems in its coffee business. Consumers have discovered gourmet coffees. But ironically, the coffee drunk by Americans during the 1940s was on a par with what we now call gourmet coffees.
Isn't it great! It reminds me of the Fast Food Fallacy from Jerry Weinberg's The Secrets of Computing:
No difference plus no difference plus no difference plus ... eventually equals a clear difference
I emailed the story to Jerry and he replied:
Great story. Even though I've never had a cup of coffee in my life, I can appreciate the dynamic. Indeed, the same dynamic has occurred over and over. I've written about white bread's deterioration - and now we have "gourmet" breads.

And, I suspect, the same thing is now happening in software - gradually lowering the quality of apps, as expectations lower. Then we will have software selling on the basis of freedom from those annoying bugs. Same thing in security, I think.

time

Back to quotes table-of-contents

From Adrenaline Junkies and Template Zombies
On most development projects, time is a scarcer resource than money.

From Consilience
Consilience among the biological sciences is based on a thorough understanding of scale in time and space.

From Nudge
Self-control issues are most likely to arise when choices and their consequences are separated in time.

From The Principles of Product Development flow
Opportunities get smaller with time, and obstacles get larger.

From Zen and the art of motorcycle maintenance
Impatience is close to boredom but always results from one cause: an underestimation of the amount of time the job will take.

From Kluge
What can evolve at any given point in time is heavily constrained by what has evolved before.

People are more likely to accept falsehoods if they are distracted or put under time pressure.

Organisms tend to value the present far more than the future.

From The End of Certainty
There is a necessary trade off between certainty at a given time for continuity through time.

From How Buildings Learn: Chapter 2 - Shearing Layers
Hummingbirds and flowers are quick, redwood trees slow, and whole redwood forests even slower. Most interaction is within the same pace level.

The dynamics of the system will be dominated by the slow components, with the rapid components simply following along. Slow constrains quick; slow controls quick.

From Agile Development in the Large
Quick feedback should be the first thing you introduce.

From Beating the System
Time is our only absolutely nonrenewable and, thus, most highly valued resource. To place a low value on another's time is to show a lack of respect for that person.

From Hackers and Painters
Paying attention is more important to reliability than moving slowly.

mind and nature

is an excellent book by Gregory Bateson (isbn 1-57273-434-5). As usual I'm going to quote from a few pages:
If you want to understand mental processes, look at biological evolution and conversely if you want to understand biological evolution, go look at mental processes.
How is the world of logic, which eschews "circular argument," related to a world in which circular trains of causation are the rule rather than the exception?
Perception operates only on difference. All receipt of information is necessarily the receipt of news of difference, and all perception is necessarily limited by threshold. Differences that are too slight or too slowly presented are not perceivable.
The universe is characterized by an uneven distribution of causal and other types of linkage between its parts; that is, there are regions of dense linkage separated from each other by regions of less dense linkage.
We should define "stability" always by reference to the ongoing truth of some descriptive proposition.
Notoriously it is very difficult to detect gradual change because along with our high sensitivity to rapid change goes also the phenomenon of accommodation. Organisms become habituated. To distinguish between slow change and the (imperceptible) unchanging, we require information of a different sort; we need a clock.
Stability may be acheived either by rigidity or by continual repetition of some cycle of smaller changes, which cycle will return to a status quo ante after every disturbance.
Every given system embodies relations to time, that is, was characterized by time constants determined by the given whole. These constants were not determined by the equations of relationship between successive parts but were emergent properties of the system.
The shape of what it deposits is determined by the shape of the previous growth.
What characterizes those adaptations that turn out to be disasterous, and how do these differ from those that seem to be benign and, like the crab's claw, remain benign through geological ages?
Above all, in sexual reproduction, the matching up of chromosomes in fertilization enforces a process of comparison. What is new in either ovum or spermatozoon must meet with what is old in the other, and the test will favour conformity and conservation. The more grossly new will be eliminated on grounds of incompatibility.
It is very easy to fall into the notion that if the new is viable, then there must have been something wrong with the old. This view, to which organisms already suffering the pathologies of over rapid, frantic social change are inevitably prone, is, of course, mostly nonsense. What is always important is to be sure that the new is not worse than the old.

fun with feedback frequency

I'm currently reading Brain of the Firm, by Stafford Beer. On page 36 he writes:

The outcome is startling ... ... the total system is dominated, not by the forward network, but by the feedback network ... The output signals will be of greater 'purity' than we had any right to expect.

The word feedback caught my eye.
Feedback is a key principle of complex adaptive systems.
Feedback is also one of the 4 values of eXtreme Programming.
Feedback also gets several mentions in the official Scrum Guide.
So I've been playing around with Feller's walk (named after William Feller) some more...

Feller's Walk

Each Feller's walk is 1000 steps long, and at each step I flip a fair coin.
As I walk I keep a running total (starting at zero):
  • adding one each time I flip a head
  • subtracting one each time I flip a tail
What will the total look like as the walk progresses?
Here's the plot of the step (x-axis) against the total (y-axis) during one simulated walk.


It starts at a total of zero on the far left and wanders along, edging upwards when a head is thrown, edging downwards when a tail is thrown, and ending at about -26 indicating that overall there were 487 heads and 513 tails (487-513=-26, 487+513==1000).

Apparently, most people's intuition is that the total will hover around zero.
But it doesn't.
You cannot rely on randomness to correct the problems that randomness creates.
Without constraints variance will accumulate.
If the total happens to be +24 the coin isn't going to throw more tails for a while to try to balance things up.
Without feedback the coin has no memory.

To help see this I simulated 5000 walks and plotted the frequency of the total (y-axis) against the total (x-axis) at various points along the walks:
  • after 10 steps in gold
  • after 100 steps in blue
  • after 1000 steps in red
  • I chop the x-axis to +- 2 standard deviations

step freq[0] max
abs(total)
std.dev
10 1204 -10 3.19
100 405 36 10.15
1000 121 140 31.71

Over all the walks, at the 10th step:
  • the total was zero 1204 times (5 heads, 5 tails, 5-5=0, 5+5=10)
  • the total farthest from zero was -10 (0 heads, 10 tails, 0-10=-10, 0+10=10)
  • the standard deviation of the total was 3.19
Over all the walks, at the 100th step:
  • the total was zero 405 times (50 heads, 50 tails, 50-50=0, 50+50=100)
  • the total farthest from zero was 36 (68 heads, 32 tails, 68-32=36, 68+32=100)
  • the standard deviation of the total was 10.15
Over all the walks, at the 1000th step:
  • the total was zero 121 times (500 heads, 500 tails, 500-500=0, 500+500=1000)
  • the total farthest from zero was 140 (570 heads, 430 tails, 570-430=140, 570+430=1000)
  • the standard deviation of the total was 31.71
The further along the walk I progress, the less likely my total is to be zero.
Without constraints variance will accumulate.

Once again, with feedback

Every Nth step, instead of flipping the coin, I look at the total and:
  • if the total is negative (more tails than heads) I pretend I've flipped a head, and add one to the total.
  • if the total is positive (more heads than tails) I pretend I've flipped a tail, and subtract one from the total.
This feedback increases the likelihood of the total staying nearer to zero.
The smaller the value of N, the greater the effect.

Estimating feedback effectiveness

Using the simulation I can measure how good (or bad) people's estimates are of how effective feedback is. For example, I can:
  • run the simulation with some feedback (N==10 say) and display the results
  • gather estimates with no feedback (N==never) of, eg
    • freq[0], or
    • max abs(total), or
    • std.dev, etc
  • run the simulation with no feedback and see how the actual results compare.
Or
  • run the simulation with no feedback and display the results
  • gather estimates of the least feedback needed to, eg
    • triple freq[0], or
    • quadruple max abs(total), or
    • half std.dev, etc
  • run the simulation with various amounts of feedback and see how the actual results compare.
I've put the simulation source up on https://github.com/JonJagger/Fellers-1000-coin-tosses.
The simulation runs directly from this URL https://rawgithub.com/JonJagger/Fellers-1000-coin-tosses/master/fellers.html so you can try out various values of N if you want to before reading on...

A little feedback goes a long way

Here's 5000 simulations of a 1000 step walk with N==25.
That means, that every 25th step instead of flipping the coin, the simulation nudges the total towards zero as described above.


step freq[0] max
abs(total)
std.dev
10 1379 -10 2.97
100 553 32 8.04
1000 387 84 15.18

The effectiveness of one feedback nudge every 25 steps amazes me.
  • freq[0] tripled from 121 to 387
  • max abs(total) shrank from 140 to 84
  • std.dev halved from 31.71 to 15.18
Startling! Just as Stafford Beer said.
Let's hear it for feedback!

observing

Back to quotes table-of-contents

From The Psychology of Computer Programming
If egoless programming is used, everyone in the group will have the opportunity to examine the work of everyone else at some time, thereby tending to prevent the establishment of strong hierarchy.

From Toyota Production System
Sometimes I would spend all day watching the grandmother next door weaving. I came to understand the way the weaving machine worked. [Toyoda Sakichi]

Stand on the production floor all day and watch - you will eventually discover what has to be done. I cannot emphasize this point too much.

From The Way of the Leader
Listen carefully. Observe closely.

From Zen and the Art of Motorcycle Maintenance
By far the greatest part of his [the mechanic's] work is careful observation and precise thinking.

From Non Violent Communcation
Observing without evaluating is the highest form of human intelligence.

From Wit and Wisdom from Poor Richard's Almanac
Observe all men; thyself most.

From The Mind of War
He observed very carefully.

From Quality Software Management. Vol 2. First-Order Measurement
In the end, it's not the observation that counts, it's the response to the observation. That's why Zen masters teach patience in response.

What power corrupts most thoroughly is the ability to make meaning of observations.

No other observational skill may be more important to software engineering than precision listening.

The switch from cost observation to value observation is the strongest indication that an organization has made the transition from Pattern 2 [Routine] to Pattern 3 [Steering].

A fact becomes a feeling as soon as you observe it.

From An Introduction to General Systems Thinking
We drive more slowly at night to give us more time to observe potentially dangerous situations.

From Zen Mind, Beginner's Mind
The true purpose is to see things as they are, to observe things as they are, and to let everything go as it goes.

From The Book of Five Rings
You should observe reflectively, with overall awareness of the large picture a well as precise attention to small details.

From Pragmatic Thinking and Learning
Much of perception is based on prediction.

From General Principles of Systems Design
Complexity is a relationship between system and observer.

what should all tests passing look like?

I was fixing a fault in cyber-dojo the other day and I happened to be looking at the starting test code for C++. I'd written it using an array of function pointers. At the end of a practice the array might look like this (in main I simply iterate through the array and call each of the functions):
typedef void test();

static test * tests[ ] =
{
    a_recently_used_list_is_initially_empty,
    the_most_recently_added_item_is_always_first,
    items_can_be_looked_up_by_index_which_counts_from_zero,
    items_in_the_list_are_unique,
};
I imagined it written like this instead:
int main()
{
    a_recently_used_list_is_initially_empty();
    the_most_recently_added_item_is_always_first();
    items_can_be_looked_up_by_index_which_counts_from_zero();
    items_in_the_list_are_unique();
}
I wondered why I was putting the function pointers into an array at all. The most obvious thing I lose by not using an array is that I can no longer print out the number of tests that have passed. I thought about that a bit. I started to wonder what benefits I actually get by being told how many tests had run. It's a 100% quantity and 0% quality measurement.

The most obvious benefit I can think of is that, after writing a new test, I can verify it has run by seeing the number of tests increase by one. The problem is I don't think that's a benefit at all. I think that interaction could easily encourage me to not start with a failing test.

If all tests passing produces any output I will look at the output and start to rely on it. That doesn't feel right for a supposedly automated test.

If each passing test introduces any new output, even if it's just a single dot, then I'm in danger of falling into a composition trap. Those dots don't make a difference individually, but sooner or later they will collectively.

If the code I'm testing doesn't produce any output when it runs (which is very likely for unit-tests) then is it right for my tests to introduce any output?

If I want to time how long the tests take to run shouldn't that be part of the script that runs the tests?

I think there is something to be said for all tests passing producing no output at all. None. Red means a test failed and the output should be as helpful as possible in identifiying the failure. No output means green. Green means no output.

Thoughts?

visibility

Back to quotes table-of-contents

From The Secrets of Consulting
Most of what a plant is doing is out of sight.

From The Toyota Way
Extra inventory hides problems... Ohno considered the fundamental waste to be overproduction, since it causes most of the other wastes… big buffers (inventory between processes) lead to other suboptimal behaviour, like reducing your motivation to continuously improve your operation.

From Quality Software Management. Vol 4. Anticipating Change
Without action things will only get less visible over time.

A measurement system helps makes the software product visible.

Software is invisible only when we have not developed the correct engineering measurements. A hundred years ago electricity was considered invisible. We only knew of its existence when it shocked us.

From Leverage Points
They [feedback loops] may not be very visible. But their presence is critical to the long-term welfare of the system. One of the big mistakes we make is to strip away these "emergency" response mechanisms because they aren't used often and they appear to be costly.

From Situated learning - Legitimate peripheral participation
A window's invisibility is what makes it a window, that is, an object through which the outside world becomes visible.

From Implementing Lean Software Development
The behaviours that ranking systems encourage are competition, hiding information so as to look good, and hiding problems so as not to look bad.

From Toyota production system
The vicious cycle of waste generating waste hides everywhere in production.

From The Silent Language
Culture hides much more than it reveals, and strangely enough what it hides, it hides most effectively from its own participants.

From Brain Rules
Vision is by far our most dominant sense, taking up half of our brain's resources.

From Mending a bike puncture
Air, like software, is invisible. To get the hole to reveal itself I switched to a different medium, from air to water.

From What Did You Say?
We structure our world so we will not receive feedback that threatens our view.

From General Principles of Systems Design
Regulation is invisible - when it works.

From the DevOps Handbook
The principle of small batch sizes also applies to code reviews.

kanban push-me pull-you



This is the slide-deck for the presentation I gave at the Lean Kanban UK conference. Many thanks to David for giving me the opportunity and impetus to put some of my thoughts together on this.


adapting

Back to quotes table-of-contents

From The Aesthetics of Change
In the [predator/prey] example, the battle over food and territory between two species is only one half of the story. The larger cybernetic picture is that the battle is a means or process of generating, maintaining, and stablizing an ecosystem.

From Surfing the Edge of Chaos
The defining feature of a complex adaptive system is its ability to learn.

Recent study of evolution, both in the natural world and in computer based complex systems, has demonstrated the surprising result that the presence of parasites in a system accelerates evolution dramatically.

From Growing a Business
Businesses that grow too fast or in the wrong way overwhelm the adaptive capacity of the people who work there.

From Sense and Respond
Adaptiveness… cannot just be added on to an organisation's existing capabilities: the organisation itself must become adaptive.

From Adapt - why success always starts with failure
Tight coupling means the unintended consequences proliferate so quickly that it is impossible to adapt to the failure or to try something different.

From The Gift of Time
Jerry warns us that when a system that continues to change or that is in a changing environment is subjected to a fixed set of tests, it will inevitably over-adapt to those tests, leading to a higher probability of severe or surprising failures in the field. [James Bach]

From The Art of War
Victory in war is not repetitious, but adapts its form endlessly.

From How Buildings Learn: Chapter 5 - Magazine Architecture: No Road
The specious old-box is old because it is profoundly adaptive.

From The Silent Language
Theodosius Dobzhansky, the great human geneticist, once observed that life was the result of neither design nor chance but the dynamic interaction of living substance with itself. He meant that life, in a changing environment, places such strains on the organism to adapt that, if this does not take place constantly, the organism as a species dies out. ... Different cultures are analogous to different species in the sense that some of them survive whilst others perish. Some are more adaptive than others. The study of change, therefore, is the study of survival.

From How to use Conscious Purpose Without Wrecking Everything
What is involved is not simply survival of the fittest, but survival of the fitting-in-est.

Evolution always means Co-evolution.

From Brain Rules
Charles Darwin noted… the brains in wild animals were 15 to 30 percent larger than those of their tame, domestic counterparts.

From Agile Development in the Large
It is important that instead of the process being adopted it is adapted.

From Leverage Points
The most stunning things living systems and social systems can do is to change themselves utterly by creating whole new structures and behaviours. In biological systems that power is called evolution. In human society it's called technical advance or social revolution. In systems lingo, it's called self-organization.

From Obliquity
Evolution is smarter than you are.

teams

Back to quotes table-of-contents

From Quality Software Management: Vol 3. Congruent Action
In all Steering (Pattern 3) organisations, the team is the fundamental unit of production.

From The Psychology of Computer Programming
In the end though, it's their method of learning that distinguishes teams from groups… team members always have a common goal, regardless of the product - the goal of helping each other learn to perform better.

From Pair Programming Illuminated
Widespread use of pair programming involves a cultural shift in values of the organization - away from individual and toward team recognition and goals.

From Wooden on Leadership
I rarely assigned one player to a basket. Basketball is a team sport, and I felt it was unwise to allow players to practice by themselves. Always I wanted them to be interacting with their teammates.

From Situated Learning - Legitimate Peripheral Participation
The fact that the work was done in an interaction between members opened it up to other members of the team.

From The Fifth Discipline
The total absence of meaningful practice or rehearsal is probably the predominant factor that keeps most management teams from being effective learning units.

In great teams conflict becomes productive.

From Peopleware
Most organizations don't set out consciously to kill teams. They just act that way.

The structure of a team is a network, not a hierarchy.

From The Deming Route to Quality
Time and again I see the benefits of using a team.

Teamwork characteristics ... cannot be determined if you interview ... one at a time.

From The Mythical Man Month
The Mythical Man Month is only incidentally about software but primarily about how people in teams make things.

From Toyota Production System - Beyond Large Scale
In modern industry, harmony among people in a group, as in teamwork, is in greater demand than the art of the individual craftsman.

From The Starfish and the Spider
The Toyota assembly line... if an employee stopped the line a pleasant "ding-dong" would sound and teams would carefully study what was going on.