Late Night with Ward & Tim

Tim Tischler has clued me in to the evolution in incident review. I've been trying to relate this work, especially David Wood's Graceful Extensibility to our best work in agile and its roots in my own experience. Here I typed to Tim when I woke up thinking about this problem in the middle of the night March 10th.

3:36 AM Ward Cunningham I'm trying to figure out where agile fits into the modern software development. I have this idea that software can be anything but what we choose to make with software depends on our ability to feed back what we learn from the computer into what we ask of it next. It is the nature of this loop that captures the style of an era. I will define three, based on what we expect computers to do.

The first era of interest is that of the read-eval-print loop.

The second era I'll call the agile era was that of the iterative delivery loop.

The third era, that which we now study, is dominated by the incident recovery loop.

3:49 AM Ward Cunningham If you think about how we approach any computer application we will see all three of these loops present. A programmer can be distinguished from a non-programmer in their ability to operate a read-eval-print loop. The repl era began when computer operators could type and computers read more than just numbers. Lisp, APL and Unix are standout achievements of the era.

3:59 AM Ward Cunningham The agile era began with desktop computing and was inaugurated by adding repeatable tests to programming environments. Basic was an environment but didn't have tests. Excel was an environment but didn't have them either. Smalltalk was a fabulous environment but didn't have tests until we added them. Now one could continuously deliver without ever leaving the environment.

4:11 AM Ward Cunningham The third era comes in the SaaS age where whole data centers serve its users through the internet. Neither repl nor test suites disappear but learning from incidents becomes the dominant step in the loop. It makes sense that Wood's theory of graceful extensibility replaces the agile manifesto because it more correctly characterizes the loop. Repl and agile won't go away in this era because we still need what they do. But the mistake one could make is to believe that they alone, or some small extension of what they do will be sufficient for orderly progress in today's software world.

4:20 AM Ward Cunningham How, you might ask, have I come to this conclusion in the middle of the night and find the need to write to you immediately. Yesterday I made a test video and posted it on #agile-cop as a teaser for a keynote I will give, perhaps electronically, at their offsite next week. Go have a look. It is 2-1/2 minutes. So tonight I was dozing and thinking about how this talk, really a talk about having perfected the agile loop, would fit into todays world. The good news is that it still fits so I can give the talk with pride. But I had to get up and think out this evolution of practices that I have here called ages. I didn't have this worked out at 3:36 when I started typing. It helped me think to be typing to you. I appreciate your assistance at this late hour. Now back to bed.

4:24 AM Addendum: There are other trends that dominate the evolution in how we employ computers. The big data, machine learning people could just as rightly claim the current era. Maybe the smart phone and the video game can claim their dominating influence on how we think. I'll save these refinements for some other dreamy night.


8:55 AM Oh wow, this is great. Lots of thoughts. I think this is spot on, and i have lots of supporting ideas/thoughts/papers. The era of REPLs was fundamentally about speeding up the feedback loop of an individual. The era of agile was about speeding up the feedback loop of a team of individuals. The era of complex systems/graceful extensibility is about the feedback loops of teams of teams.

The ML/big data is more about "how we get feedback" and less about the shape of the system --its more of a tool than a fundamental state of the system.