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

Fri, 13 Feb 2004

Mangle: Disciplinary agency

[In this blog category, I'll be explaining my understanding of Andrew Pickering's The Mangle of Practice, toward the end of helping me think through a paper.]

In this essay, I'll describe Pickering's notion of "disciplinary agency". I'll use the same mathematical example Pickering uses. In the next essay, I'll use a coding example I stumbled over while happily hacking on the plane to San Francisco. My hope is that Pickering's notion gives some insight into the semi-common idea that "the code is telling us where it wants to go".

 

Let's define agency as "the capacity to do things". People have agency. I use my agency to write this essay. You have the ability - the agency - to read it or to turn aside.

Generally, we think of agency as being something that humans have. In his book, Pickering proposes that it's useful to think of nonhumans as having agency. For example, in an experiment a scientist creates a machine, turns it on, and watches it. While creating it, the scientist is exhibiting agency. But when watching the machine, the scientist is passive while the machine does whatever it is that it does. We can say the machine exhibits material agency. It's no longer manipulated by the human; instead, it's in control while the human sits back.

Another type of agency is disciplinary agency, in which a human gives up control to a routine way of reacting to patterns in the world. We can say that that routine has agency. It has the ability to do things in the world that the human doesn't expect, that the human can only observe and then react to.

This pattern of humans exercising agency, then sitting back and watching while something else exercises agency, Pickering rather fancifully calls the dance of agency. He claims it's a common pattern in intellectual practice.

Pickering uses Hamilton's quaternions as a case study. In the 1800's, mathematicians had established a correspondence between algebraic equations involving imaginary numbers, like x+iy, and 2D geometry. Such an equation corresponded to a vector from the origin to the point (x,y). (x+iy)+(u+iv) corresponded to the vector (x+u, y+v). Multiplication of algebraic equations corresponded to a two-part rule: multiply the lengths of the two vectors, and add their angles.

That's fine for two dimensions. What a mathematician named Hamilton wanted to do was figure out how to link algebra and geometry in three dimensions. How can we talk about a point (x, y, z) algebraically?

Hamilton first modeled 3D after 2D. If a point (x,y) corresponds to x+iy, perhaps (x, y, z) corresponds to x+iy+jz. The z axis is perpendicular to the x axis the way the y axis is, so he said that j is an imaginary number like i. That is, jj=-1 as well as ii=-1.

That's fine, but does it work? One way to tell is to repeat what you already know how to do in the new context. That is, you apply - rotely - a discipline you already know. Hamilton knew the rules for algebra, so he started manipulating equations and seeing if the results corresponded to any sensible extrapolation (from 2-space to 3-space) of multiplying two vectors.

A first thing he did was consider the square of a point in 3-space. According to the normal rules of algebra, the square of x+iy+jz is:

x2 - y2 - z2 + 2ixy + 2jxz + 2ijyz

This is an example of disciplinary agency. Having decided on his representation, Hamilton had no choice about how to proceed: the rules of algebra controlled, and they produced the result that they produced. Everything is straightforward, except there is a bit of a question: what does ij mean? He knew that ii=-1 and he'd assumed that jj=-1, but what was ij? He wasn't forced to answer that question yet, so he could move on.

Now Hamilton turned to geometry. He needed to extrapolate the rules for 2D into 3D, keeping fixed the idea that multiplication means multiplying lengths and adding angles. A problem arises in adding angles. When you square, there are multiple points that satisfy the addition constraint. Which to choose? Hamilton chose the one that lay on the plane connecting the original point and the x-axis.

Hamilton has here taken back agency from the discipline of algebra. But once, he makes his decision, he surrenders again to the discipline of geometry. You can now square a point and, moreover, translate the result back into algebraic notation:

x2 - y2 - z2 + 2ixy + 2jxz

Since this formula and the previous one represent the same point (just gotten at by two different disciplines of multiplication), we know that:

2ijyz=0

Having given discipline free reign to get this result, Hamilton entertained two possibilities. The first was that ij=0. The other was bolder, abandoning commutivity so that ij=-ji. (If you go back and multiply out the algebraic formula under that assumption, you'll see that the you get the same result as the geometric multiplication.)

I'll cut the story short here. The abbreviated version is that he assumed either possibility held and kept multiplying. This time he multiplied two different points rather than squaring the same point. He ran into another problem that required him to accept that ij=0 couldn't work, that it had to be that ij=-ji. The problem further helped him to make the leap to thinking that ij was equal to a new imaginary k. Once he had worked out all the combinations of multiplications of i, j, and k, he'd succeeded: he had a description that allowed algebraic and geometrical multiplication to come to the same answer... except that the new imaginary k meant that he was working in four dimensions rather than the three he'd intended. He'd had one goal, but his assumptions and the results of disciplinary agency had pushed him away from it toward what he came to call quaternions. (The way goals mutate in practice is a theme of Pickering's.)

So we see a pattern:

  • Use your human agency to make some extension of what you know.
  • Yield to disciplinary agency to see where that takes you.
  • When you run into resistance - something isn't working - start thinking. Make a new extension.
  • Yield to disciplinary agency again, and see where it takes you now.
  • Repeat until you're happy.

That's a dance of agency.

## Posted at 06:19 in category /mangle [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