Archive for May, 2009
Special graduation offer!
Is your young artisanal retro-futurist or team-scale anarcho-syndicalist graduating this year? Stumped for a present? Well, ponder no more, because exampler.com is offering this heirloom-quality 3×5 sticker:
It’s the gift they’ll treasure forever.
And that’s not all!
In honor of this year’s graduates, we’re offering the sticker not for $10, not for $5, but absolutely
FREE!*
No hidden charges! No shipping and handling fee! No salesman will call! No saleswoman either!
Operators are standing by. Email marick@exampler.com today!**
* Recipient must display the sticker in such a place and in such a manner as to prompt passersby to ask questions like “I understand and support team-scale anarcho-syndicalism, but might you explain to me how retro-futurism can be artisanal, please?” Offer good while supplies last.
** This is a serious offer. You don’t have to be a graduate or know a graduate. Specify if you want one of my other stickers too. I’m out of posters.
Aristotelian physics, process change, and testing in Agile projects
Here’s a tidbit I got from either Feyerabend or Lakatos, I forget which.
It’s easy to make fun of the Aristotelian theory of motion. It held that each element seeks its natural place. That desire leads to a downward or upward force (depending on where it is). The speed at which an object moves is proportional to its mass.
What a dummy! Why didn’t Aristotle roll some balls down an inclined plane so that he could see that light objects roll at the same speed as heavy ones? Galileo did. Partly as a result, we now have a completely different theory of motion.
The interesting tidbit is that Aristotle’s theory was broader than Galileo’s. Galileo’s could say nothing about why smoke rises or why plants grow upward, questions Aristotle’s theory covered.
Lakatos tells us that, in science, theories often begin by explaining less than the theory they seek to replace. I think that’s probably true in other fields. Consider testing in Agile projects. There were existing theories of testing. Agile came in with its own theory (test-driven design, broadly construed) that, for example, simply ignored an entire class of bug—the fault of omission—that’s extremely important. The result, in many testers’ view, was like Galileo stubbornly refusing to acknowledge the problem of smoke. Outrageous!
But intellectual structures don’t remain stable. In some cases (like plant growth), a question ends up belonging to an entirely different field of study. For others (perhaps smoke), the upstart theory expands its domain enough to once again be relevant. Or the upstart could fade away. And so on.
It’s not clear how testing in Agile projects will shake out. In recent tweets, Michael Bolton has seemed to call for testing and TDD to go their separate ways. Others, like Elisabeth Hendrickson seem to me to be working to weld the two together more tightly.
I like to think that understanding they’re participating in a recurring historical process would make upstarts less overbearing and those facing upstarts less defensive. I like to think lots of things that have zero evidence behind them.
Portland OR trip coming up
From June 16 to ??, I’ll be in Portland to work on Travels in Software. If you’re a person I should interview, mail me.
I’m also interested in observing teams who do something well that they’d like to show off. Since I learn best by doing, I’ll pitch in if I’d be useful. I’d be happy to pair with people, following in Corey Haines’ footsteps.
If you’d like to look at my RubyCocoa tests and help me make them more clear, I’d be grateful. And if people would like to have some sort of Barcamp-ish RubyCocoa/MacRuby get-together, I’m up for that too.
I can also give talks if people’d like. I can repeat the talk I’m doing at Agile Roots or the Mountain West RubyConf talk on test-driving GUI code.
In sum: I’m going to Portland to vacuum up knowledge and skills. If I leave some behind, that’s good too.
Would you have survived in the middle ages?
How about you? How long would you have lived in the middle ages? Ignore all the general risks - like typhoid or the plague or cholera - that everyone would have faced in general. Let’s assume you were lucky and missed those. (Unless by some chance you actually DID face one of them in your life.) Also ignore the fact that your deadly injury might have been caused by modern technology, like an auto accident. Just pretend you were trampled by a horse or something. So, given the injuries and illness you’ve faced in your life so far: Did you make it? Would you have survived to your current age?
I would have died at 13 due to a ruptured appendix.
Distance collaboration: What makes it successful? (Talk near Chicago)
Judy Olson (University of California, Irvine) will be presenting a colloquium entitled “Distance Collaboration: What makes it successful?” on Thursday, May 21st at 4 pm. The colloquium will be held at Frances Searle 2-370.
For more information on the TSB speaker series (and to sign up for announcements), visit http://tsb.northwestern.edu
To add upcoming TSB talks and events to your Google calendar, visit the TSB Colloquium Series Google calendar.
DISTANCE COLLABORATION: WHAT MAKES IT SUCCESSFUL?
Judy OlsonABSTRACT:
Many organizations, many sciences, and many of us have collaborations with people who are not nearby. We and they use various technologies like shared files, email, blogs, instant messenger…to support their work. Some of these collaborations work; others do not. What makes them succeed? We have collected data from 200 collaboratories, deep data from about 30, plus data from 20 sites in corporations, to determine what makes the collaborations work, what makes them fail. I will review this line of work and describe the factors that are apparently most important in both science and corporate long-distance work. All of us may benefit in learning these factors to ensure that our own distance collaborations succeed.
Speaking at Agile Roots conference
I’ll be giving a keynote at the Agile Roots conference:
The topic is, unsurprisingly, Artisanal Retro-Futurism ⊗ Team-Scale Anarcho-Syndicalism. Here’s the blurb:
A problem with the word “Agile” is that everyone already thinks they understand it at a gut level. Worse, everyone already thinks they’re agile in spirit. (After all, the thesaurus tells us the alternative is to be clumsy, stiff, slow, and dull.) So it’s too easy for people to feel free to launch into “doing Agile” without ever having a serious conversation about what that actually means.
This problem is easily fixed. We’ll just stop talking about “Agile” and start speaking of “artisanal retro-futurism crossed with team-scale anarcho-syndicalism.” There is, I think, no danger that anyone will reflexively say, “Yes! That’s just what I’ve been wanting to do all along!”
The new name does more than just encourage conversation. It encourages conversation about those very properties of Agile that have become obscure as Agile has been commodified. In this session, I’ll unpack the meanings of the new phrase and encourage you to rediscover what’s been lost.
I hope to have trinkets.
Artisanal Retro-Futurism crossed with Team-Scale Anarcho-Syndicalism
[UPDATE: I put this post under a new title because the old one broke too many URL-shortening apps.]
I am continuing to try to come up with an odd name for what I consider the roots of Agile. I’m doing that because I believe Agile is being dumbed down, commodified, and is losing its spirit. I’m picking an odd name because people are less likely to assume they already know what an odd name means. They have to ask. You have to have a conversation.
An odd name also lets me indulge my no-doubt-annoying fondness for the exaggerated, obscure, and marginal. Hence the name I’ve picked: “Artisanal Retro-Futurism ⊗ Team-Scale Anarcho-Syndicalism”. (Read the ⊗ as “crossed with” or “cross”.)
There are two halves to the story: an attitude toward technology and an attitude toward the social. To form the Agile attitude, those two attitudes are crossed (hybridized) like lions or tigers are crossed to form ligers. Or perhaps a better analogy would be crosses between chicken and game birds, since those species are less closely related than lions and tigers—just as technology and the social are often (wrongly) considered wildly different things.
Technology
Within technology, artisanal is supposed to connote:
-
Higher quality and a focus on a more demanding customer.
-
A product that’s an unusual variation on a more typical product, typically one that’s not suitable for mass production. (For example, an artisanal apple might not ship as well as common varieties.) To me, “artisanal” therefore suggests our extreme focus on the product director.
-
A craftsmanlike approach to process. That process is sometimes, but not exclusively, “old fashioned” or manual. We are like this artisanal cheese maker:
But [Wajswol] gladly lets technology lend a hand. Twice a day, in the “milking parlor,” a computerized lactation carousel that handles 60 sheep at once—the only one in the U.S. for sheep, Wajswol claims—milks 300 ewes per hour. In the cheese room, vats of milk are heated to the precise temperatures required to activate specific strains of bacteria to produce just the right texture of curd.
“Machinery helps you pay attention to what’s important,” Wajswol says. “In cheese making, there are a couple of things you need to focus on. If you can eliminate the nonsense—the mundane, nonskilled steps, like feeding the animals or warming milk correctly—you can spend more time focusing on the texture of the curd and making sure the product comes out good.”
But artisanal is too broad of a term. It needs to qualify something else. What?
At a workshop once, Pete McBreen said “The Agile methods are methods created by people who like to program.” While that’s not entirely true, I bet it’s more true of them than it is of any previous gaggle of methodologists. And their oddity even goes a step further: a surprising number of the authors of the Agile Manifesto had programmed in Smalltalk. They were technology enthusiasts, and that enthusiasm—a “gosh wow!” enthusiasm for continuous integration tools, refactoring tools, programming languages, testing tools, and the like—has been a continuous part of the growth of Agile. It’s been a touch disreputable, though—many use the Agile Manifesto’s “individuals and interactions over processes and tools” as a weapon—so I’ve chosen the artistic style called retro-futurism to call renewed attention to it.
I am using retro-futurism in one of its senses:
[a] vision of the future as seen through the eyes of the past, often a utopian society characterized by high technology (relative to the base time), unusual or exaggerated artistic, architectural and fashion styles, and an abundance of consumer goods; its spirit of optimism […] is a contrast with cyberpunk […]
(Quote from ibid.)
Another way of looking at the style is as a response to the oft-heard complaint, “It’s the future now. Where’s my flying car?” In the physical world, “garage engineering” was supposed to mean hand-made—artisanal—rocket packs. Instead, it means the Improvised Explosive Device. In the software world, though, we have flying cars. Garage-scale organizations (open source, small companies) have brought us products that still evoke that old sense of wonder.
So. The technology half of the cross casts attention on giddy enthusiasm for both our products and how we build them.
The Social
Agile’s early emphasis on self-organizing teams caused some to brand it anarchic. Soothing those fears has led, in too many cases, to team processes that are externally imposed and therefore ossified. To counter that trend, I want to embrace the anarchic strain in Agile. (What should be done to sooth fears, I believe, is nothing more than producing working software at frequent intervals. So long as a team delivers that which satisfies, I don’t care if an integral part of their process is capering naked in the light of the full moon.)
At the same time, I want to recenter emphasis on the team. Too much of modern-day Agile depends on someone else to make it succeed. Typically that’s upper management, whether via servant leadership, outright command-and-control management, or something in between. While we can’t ignore the world outside the team, I think it better to take the attitude that, while it can make Agile fail, it cannot make it succeed. Agile lives and dies by the team.
Casting about for something odd that would combine “anarchy” and “team”, I came upon anarcho-syndicalism. Anarcho-syndicalism was an economic/political movement from around 100 years ago. The anarcho-syndicalists had laborers as their constituency. Their goal was to end the oppressive power—and very existence—of both the State and large-scale corporations by countering them with self-organizing trades un-ions.1 Anarcho-syndicalism’s concentration on the self-organization and solidarity of the people whose hands make the product is reminiscent of Agile at its best.
I was also taken by anarcho-syndicalism’s emphasis on direct action. Others believed that the route to better working conditions lay in, say, electing representatives who would speak for the workers, but the anarcho-syndicalists rejected that. In that, I hear echoes of my attitude that teams should not wait for Daddymanagement to fix their problems.
Having chosen an outlandish reference—anarcho-syndicalism? a type of omigod socialism??—I needed to add a softening qualifier. Ending the State? Fighting the Corporation? Doing away with wage slavery?—none of these are part of the programme. We’re just trying to develop good software in a pleasant way that makes sense. Therefore: the qualifier team-scale is intended to remind that our message is to the workers of a team, not workers of the world.
So. The social half of the cross casts attention on perfecting the team. Or, rather, on the team perfecting itself.
Summary
To the extent that Agile has lost its way, a slogan that reminds us of the original path will help. To the extent that Agile as a movement now favors bland conformity over scrappiness and outrageous ideas, an outrageous slogan can help us get back to where we once belonged.
[UPDATE: I have no idea why WordPress has closed comments on this post. Best to put them on the original.]
1 Wondering why I wrote “un-ions”? If I remove the dash, WordPress posting fails. Political commentary?
A sticker
Here’s a draft of a sticker for Artisanal Retro-Futurism ⊗ Team-Scale Anarcho-Syndicalism:
And here’s my unpacking:
-
The sticker will be 3×5 inches, the size of the index cards often used in Agile. That connects with the “old-fashioned tools and techniques” part of “artisanal”.
-
The background is the anarcho-syndicalist flag, with the colors reversed as a reminder that we’re talking about team-scale anarcho-syndicalism, not the original.
-
The crude brushwork might remind one of an anarchist hastily spray-painting a symbol or slogan on a wall.
-
The word “artisanal” is often associated with foodstuffs. Like artisanal cheeses. Therefore, “artisanal” is represented by a cheese wheel.
-
The rotating wheel space station has been a staple of science fiction and futurism for over a century. As such, it is a nice symbol for retro-futurism. Although a jet pack, rocket ship, flying car, or some humongous building with elevated walkways would be more recognizably retro-futurist, the shape of the space station echoes the cheese wheel and so ties “artisanal” and “retro-futurism” together.
I desperately need someone to take this concept to four-color art I can have printed as stickers. I could also use someone to produce a “camera-ready” image that I can use to produce posters like the ones I’ve already made. If you can do that, contact me.
Artisanal Retro-Futurism ⊗ Team-Scale Anarcho-Syndicalism
I am continuing to try to come up with an odd name for what I consider the roots of Agile. I’m doing that because I believe Agile is being dumbed down, commodified, and is losing its spirit. I’m picking an odd name because people are less likely to assume they already know what an odd name means. They have to ask. You have to have a conversation.
An odd name also lets me indulge my no-doubt-annoying fondness for the exaggerated, obscure, and marginal. Hence the name I’ve picked: “Artisanal Retro-Futurism ⊗ Team-Scale Anarcho-Syndicalism”. (Read the ⊗ as “crossed with” or “cross”.)
There are two halves to the story: an attitude toward technology and an attitude toward the social. To form the Agile attitude, those two attitudes are crossed (hybridized) like lions or tigers are crossed to form ligers. Or perhaps a better analogy would be crosses between chicken and game birds, since those species are less closely related than lions and tigers—just as technology and the social are often (wrongly) considered wildly different things.
Technology
Within technology, artisanal is supposed to connote:
-
Higher quality and a focus on a more demanding customer.
-
A product that’s an unusual variation on a more typical product, typically one that’s not suitable for mass production. (For example, an artisanal apple might not ship as well as common varieties.) To me, “artisanal” therefore suggests our extreme focus on the product director.
-
A craftsmanlike approach to process. That process is sometimes, but not exclusively, “old fashioned” or manual. We are like this artisanal cheese maker:
But [Wajswol] gladly lets technology lend a hand. Twice a day, in the “milking parlor,” a computerized lactation carousel that handles 60 sheep at once—the only one in the U.S. for sheep, Wajswol claims—milks 300 ewes per hour. In the cheese room, vats of milk are heated to the precise temperatures required to activate specific strains of bacteria to produce just the right texture of curd.
“Machinery helps you pay attention to what’s important,” Wajswol says. “In cheese making, there are a couple of things you need to focus on. If you can eliminate the nonsense—the mundane, nonskilled steps, like feeding the animals or warming milk correctly—you can spend more time focusing on the texture of the curd and making sure the product comes out good.”
But artisanal is too broad of a term. It needs to qualify something else. What?
At a workshop once, Pete McBreen said “The Agile methods are methods created by people who like to program.” While that’s not entirely true, I bet it’s more true of them than it is of any previous gaggle of methodologists. And their oddity even goes a step further: a surprising number of the authors of the Agile Manifesto had programmed in Smalltalk. They were technology enthusiasts, and that enthusiasm—a “gosh wow!” enthusiasm for continuous integration tools, refactoring tools, programming languages, testing tools, and the like—has been a continuous part of the growth of Agile. It’s been a touch disreputable, though—many use the Agile Manifesto’s “individuals and interactions over processes and tools” as a weapon—so I’ve chosen the artistic style called retro-futurism to call renewed attention to it.
I am using retro-futurism in one of its senses:
[a] vision of the future as seen through the eyes of the past, often a utopian society characterized by high technology (relative to the base time), unusual or exaggerated artistic, architectural and fashion styles, and an abundance of consumer goods; its spirit of optimism […] is a contrast with cyberpunk […]
(Quote from ibid.)
Another way of looking at the style is as a response to the oft-heard complaint, “It’s the future now. Where’s my flying car?” In the physical world, “garage engineering” was supposed to mean hand-made—artisanal—rocket packs. Instead, it means the Improvised Explosive Device. In the software world, though, we have flying cars. Garage-scale organizations (open source, small companies) have brought us products that still evoke that old sense of wonder.
So. The technology half of the cross casts attention on giddy enthusiasm for both our products and how we build them.
The Social
Agile’s early emphasis on self-organizing teams caused some to brand it anarchic. Soothing those fears has led, in too many cases, to team processes that are externally imposed and therefore ossified. To counter that trend, I want to embrace the anarchic strain in Agile. (What should be done to sooth fears, I believe, is nothing more than producing working software at frequent intervals. So long as a team delivers that which satisfies, I don’t care if an integral part of their process is capering naked in the light of the full moon.)
At the same time, I want to recenter emphasis on the team. Too much of modern-day Agile depends on someone else to make it succeed. Typically that’s upper management, whether via servant leadership, outright command-and-control management, or something in between. While we can’t ignore the world outside the team, I think it better to take the attitude that, while it can make Agile fail, it cannot make it succeed. Agile lives and dies by the team.
Casting about for something odd that would combine “anarchy” and “team”, I came upon anarcho-syndicalism. Anarcho-syndicalism was an economic/political movement from around 100 years ago. The anarcho-syndicalists had laborers as their constituency. Their goal was to end the oppressive power—and very existence—of both the State and large-scale corporations by countering them with self-organizing trades un-ions.1 Anarcho-syndicalism’s concentration on the self-organization and solidarity of the people whose hands make the product is reminiscent of Agile at its best.
I was also taken by anarcho-syndicalism’s emphasis on direct action. Others believed that the route to better working conditions lay in, say, electing representatives who would speak for the workers, but the anarcho-syndicalists rejected that. In that, I hear echoes of my attitude that teams should not wait for Daddymanagement to fix their problems.
Having chosen an outlandish reference—anarcho-syndicalism? a type of omigod socialism??—I needed to add a softening qualifier. Ending the State? Fighting the Corporation? Doing away with wage slavery?—none of these are part of the programme. We’re just trying to develop good software in a pleasant way that makes sense. Therefore: the qualifier team-scale is intended to remind that our message is to the workers of a team, not workers of the world.
So. The social half of the cross casts attention on perfecting the team. Or, rather, on the team perfecting itself.
Summary
To the extent that Agile has lost its way, a slogan that reminds us of the original path will help. To the extent that Agile as a movement now favors bland conformity over scrappiness and outrageous ideas, an outrageous slogan can help us get back to where we once belonged.
1 Wondering why I wrote “un-ions”? If I remove the dash, WordPress posting fails. Political commentary?