Exploration Through Example

Example-driven development, Agile testing, context-driven testing, Agile programming, Ruby, and other things of interest to Brian Marick
191.8 167.2 186.2 183.6 184.0 183.2 184.6

Wed, 03 Aug 2005

Prelude to an explanation of a fear

In my Agile2005 co-keynote, I talked about why I think Agile is akin to cybernetics, at least the British cybernetics of the late 40's and on. They share an emphasis on these things:

Performance over representation

Rosh Ashby wrote in 1948 that "...to the biologist the brain is not a thinking machine, it is an acting machine; it gets information and then it does something about it." What we usually think of as thinking - building a model in the brain of the world outside it - is secondary; a tool that can be used when useful, ignored when not.

Similarly, an Agile team doesn't depend on a requirements document - a model of a solution - for success. The team is gets a demand for more features and does something about it: it uses whatever tools and internal resources generate the features and keep the paychecks flowing. A good model of the end product turns out not to be such an important tool.

Adaptation

In an as-yet-unpublished manuscript, Andrew Pickering writes that, to these cyberneticians, "... the brain's special role [is] to be an organ of adaptation. The brain is what helps us to get along in situations and environments we have never encountered before."

Similarly, the Agile team's job is to produce a steady stream of working software. Whenever the environment changes and upsets that steadiness, the team adapts until it reaches equilibrium (steady productivity or consistent growth in productivity).

Surprise

The cyberneticians were fond of building complex things, working with them, and opportunistically taking advantage of their unplanned capabilities. I gave the example of Gordon Pask's ear: a device that was trained like a neural net. It took in electrical inputs, sent out electrical outputs, and the outside world's judgments on the outputs trained it to get better and better at producing favored outputs. One way it differed from neural nets is that it didn't start with artificial neurons and connections. It grew them from an undifferentiated soup.

This device had one sense designed in: the ability to detect electrical inputs. In what seems to me a later bout of whimsy, the experimenters attached a microphone to it. By vibrating the whole assembly, the experimenters provoked it to grow a sense of hearing - a wholely unplanned and unexpected sense good enough for it to distinguish 50 cycle from 100 cycle sounds.

In agile programming, it's considered unsurprising if the coding takes you in an unexpected direction and even causes the team to develop new concepts. (See Ward Cunningham's story of Advancers.)

And then I said that's not what I wanted to talk about.

What I wanted to talk about is the fact that cybernetics fizzled. If we share its approaches, might we also share its fatal flaws?

More tomorrow.

## Posted at 16:34 in category /conferences [permalink] [top]

About Brian Marick
I consult mainly on Agile software development, with a special focus on how testing fits in.

Contact me here: marick@exampler.com.

 

Syndication

 

Agile Testing Directions
Introduction
Tests and examples
Technology-facing programmer support
Business-facing team support
Business-facing product critiques
Technology-facing product critiques
Testers on agile projects
Postscript

Permalink to this list

 

Working your way out of the automated GUI testing tarpit
  1. Three ways of writing the same test
  2. A test should deduce its setup path
  3. Convert the suite one failure at a time
  4. You should be able to get to any page in one step
  5. Extract fast tests about single pages
  6. Link checking without clicking on links
  7. Workflow tests remain GUI tests
Permalink to this list

 

Design-Driven Test-Driven Design
Creating a test
Making it (barely) run
Views and presenters appear
Hooking up the real GUI

 

Popular Articles
A roadmap for testing on an agile project: When consulting on testing in Agile projects, I like to call this plan "what I'm biased toward."

Tacit knowledge: Experts often have no theory of their work. They simply perform skillfully.

Process and personality: Every article on methodology implicitly begins "Let's talk about me."

 

Related Weblogs

Wayne Allen
James Bach
Laurent Bossavit
William Caputo
Mike Clark
Rachel Davies
Esther Derby
Michael Feathers
Developer Testing
Chad Fowler
Martin Fowler
Alan Francis
Elisabeth Hendrickson
Grig Gheorghiu
Andy Hunt
Ben Hyde
Ron Jeffries
Jonathan Kohl
Dave Liebreich
Jeff Patton
Bret Pettichord
Hiring Johanna Rothman
Managing Johanna Rothman
Kevin Rutherford
Christian Sepulveda
James Shore
Jeff Sutherland
Pragmatic Dave Thomas
Glenn Vanderburg
Greg Vaughn
Eugene Wallingford
Jim Weirich

 

Where to Find Me


Software Practice Advancement

 

Archives
All of 2006
All of 2005
All of 2004
All of 2003

 

Join!

Agile Alliance Logo