The Magic of Cards


I was exposed to the XP idea of using index cards as a preferred tool back in 1999. For a while, I still preferred whiteboard work to cards, just for the large visibility. But I quickly came to recognize the simple power of things like deletion-by-ripping, rapid ordering, arbitrary grouping, simplicity of shared communication and agreement, and also the power of mobility--they go everywhere, even through an airport metal detector. (Water, often found in washing machines, is a bit of a problem.)


Once a week or so, I run through the dozen or so cards tucked in my jeans or shirt pocket. I scratch out useless or already ingrained information, consolidate the really useful information, and delete the completely used or otherwise useless cards. So much quicker than a BlackBerry!


I keep a small number of reference cards handy; one is a vi card. Despite what you might think, the vi card changes frequently. I'm often seeking better ways to do things, and of course note those on my vi card. But once I do something often enough and thus ingrain it (I now know to rotate my split screens with ctrl-w-r), it doesn't really need to appear on the card. I scratch it off, and after enough scratchings or when there's no room left, I rebuild the card.


Apropos of little: Despite our best attempts otherwise, many of us end up being just like our parents. A few years ago, and by then well addicted to the cards, I caught myself in the mirror. I realized that I was like my father in many ways: political philosophy, appearance, and demeanor. I had to laugh when I noted what made the transformation seem complete: scribbled notes on a stack of index cards stuffed into my shirt pocket, sitting alongside a couple pens. I am my father.

Agile Manifesto

Card for Agile Manifesto

Source: http://agilemanifesto.org

This is where it all started, on February 11-13, 2001, at the lodge at Snowbird ski resort in the Wasatch mountains of Utah. The original signers met to talk, ski, relax, and try to find common ground. These are the original seventeen:
  • Kent Beck
  • Mike Beedle
  • Arie van Bennekum
  • Alistair Cockburn
  • Ward Cunningham
  • Martin Fowler
  • James Grenning
  • Jim Highsmith
  • Andrew Hunt
  • Ron Jeffries
  • Jon Kern
  • Brian Marick
  • Robert C. Martin
  • Steve Mellor
  • Ken Schwaber
  • Jeff Sutherland
  • Dave Thomas

The result wasn't a scathing attack on business-as-usual, nor a rubber-stamp for the eXtreme Programming or Scrum. It was a simple statement of values. The statement of values is important because the practices without the values are empty.

These values are pragmatic and practical, arising from many combined decades of actual software practice. The preamble (not quoted on the card) says:
We are uncovering better ways of developing software by doing it and helping others do it.


If a company is devoted to following a plan, fighting changes to scope or priority, purchasing expensive and opinionated tools, following a rigid process, and producing copious documentation then that company certainly may continue to do so. It may even be successful. But it will not be agile. In fact, such a company should not waste time and money attempting to adopt an agile process. Agile is for companies devoted to simplicity, iterative development, time-to-market, and quality.

Failing to adopt the values is the first and greatest failure mode.

Intro

Working at Object Mentor (where I'm a double-alumnus) I learned the value of brevity and the patience to seek teaching opportunities. I realized that I need to have information not only in my head, but in a form that I can hand out to my clients.

As an Agile coach, I tend to have a lot of index cards handy. I glommed onto a habit of teaching by having a student (or class full of them) bring three index cards and a marker to a session. I would explain enough information to fill three index cards, and the meeting was over. They left with a good reminder of the information I had explained.

I blogged about my TDD reference cards at Object Mentor's blog and a little while later found that a reader produced the same blog, but with pictures. I found his because it got a great reddit score, much better than the reddit score on my own original article. The pictures matter (though it may also be that Brian Di Croce is a more entertaining writer).

Another ingredient came when my friend Glen introduced me to Brian Eno's concept of Oblique Strategies. These are little cards that provide some advice out of context. Eno and Peter Schmidt

... tended to keep a set of basic working principles which guided them through the kinds of moments of pressure - either working through a heavy painting session or watching the clock tick while you're running up a big buck studio bill. Both Schmidt and Eno realized that the pressures of time tended to steer them away from the ways of thinking they found most productive when the pressure was off. The Strategies were, then, a way to remind themselves of those habits of thinking - to jog the mind.

I found that when I was facing difficult times or pressures or sleeplessness, I could pull out a card that explained the canonical way to do something. The brief explanation would anchor my thinking and remind me of the essential simplicity I need to approach difficult tasks. This is because it is as General Carl Von Clausewitz said of war:

"In war everything is simple, but it's the simple things that are difficult."

The final ingredient for the index card mania is that I picked up a gig working with Jeff Langr, the author of Agile Java. I immediately enjoyed the way we argue, discuss, work, and learn together. I decided to pair up with someone who has been through book publishing (more than just my chapter of Clean Code) before and Jeff was my first choice of collaborator.

After working under the radar for a while, we decided to open up and start getting content in front of developers. Here you will see the results of our efforts, and be able to contribute via comments and tasty arguments.

I hope you'll join us.

Agile In a Flash


The notion of the magical number of 7 (plus or minus 2) was devised by George Miller in 1956. (No, not that Mad-Max movie-producing-George Miller.) The Wikipedia page illuminates that the "7+/-2" concept is simply a hypothesis--not something for which you can find extensive scientific research.


That's ok--you won't find extensive scientific research for agile either, or for that matter, much of anything to do with software process. But we have stories! We have anecdotes! We have seen agile work, and we've also seen it fail. We've also noted that it doesn't "work" overnight: The whole point of agile is that you start somewhere, bite off a small chunk of work, and then continually reflect and adapt.


There are lots of elements in agile to learn and remember. Uncle Bob defines three laws for TDD. Kent Beck devised the four rules of simple design. The agile manifesto defines four values. And so on. We found at least a full deck's worth of such lists, and have started capturing and using these lists to prod ourselves when our memories fail. The goal of our "Agile In a Flash" project is to produce a web resource, a book, and a replenishable index card deck, all to use as tools in your day-to-day application of agile.


And we will go George Miller two better! Most of the lists fall into the "5 plus or minus two" category.


So who are we? My name is Jeff Langr; you can find more about me here. I've known Tim Ottinger for only a little over a year, so I'll let him speak for himself in his own blog entry. Tim and I are both Object Mentor alumni (and both of us contributed to Uncle Bob's Clean Code). Tim and I also don't see eye to eye on everything and we're both pretty picky, which is what I think will help make the Agile In a Flash cards the best possible set. Stay tuned.