My Session at Agile & Beyond 2019

Yesterday I hosted a workshop at the Agile & Beyond 2019 conference, entitled Come Test Drive With Me (even if you can’t drive yet). I’d love to give a big thanks to everyone who attended, participated, and even tweeted about it.

This session was similar in many ways to the one Amitai and I gave earlier this month, in that it involved attendees mobbing to work on example code. The big difference is that this session specifically targeted non-programmers. Instead of a home-grown SMTP proxy in Python, we used a very simple word-counting program which I adapted from a kata the excellent

Because Agile & Beyond doesn’t have a standard conference mechanism for posting slides and content, I’ll put mine here for any attendees—or anyone at all—to access:

  • Slides – including bits that we added live
  • Code – at the point we left it after the workshop

For this session, I don’t have as detailed a retrospective as the last. I will definitely say that it benefitted from lessons we learned then: I opted out of using a microphone, and succeeded in getting the whole audience to sit within earshot of the mob. The one thing I would like to change for sure: make the code base a bit bigger. In some early runs of this workshop I had used a fully-functioning web app, but that proved to be just too complicated for programming beginners to deal with in the short time-box of a workshop. I decided at the last minute to start over and rewrite a fresh code base, and now I know I made it a bit too simple. I plan to correct that before the next time I deliver it.

As a side-note, I’ll add that I had a great time at Agile & Beyond. For a conference with the word “Agile” in its name, there were a refreshing number of developers among both attendees and speakers, and a robust set of technical talks in every slot. I recommend this conference to others, and plan to come back in future years.

Retrospective: Our Session at Deliver:Agile2019

The Deliver:Agile2019 conference is a wrap. Particularly fresh on my mind: the session which Amitai Schleier and I co-hosted this morning, which was entitled Strangle Your Legacy Code. It was fairly well-attended, particularly given its position in the second-to-last time slot of the entire conference.

I want to give huge thanks to the four intrepid volunteers who staffed the learning mob: Jessica Kerr, Eswaran Balakrishnan, Mihai Popescu, and Llewelyn Falco. You were such an engaged and capable cohort that we did a lot less guiding from the podium than usual.

I have not yet checked on the feedback forms from the conference, but we got a number of very positive reviews on Twitter and in person. Thank you, thank you, thank you to all who provided those. It feels great to know we provided a valuable experience for others. I call out particular thanks to Ted M. Young, who grabbed lunch with me immediately after our session and suggested a number of improvements. Hearing we did well is gratifying. Hearing how we can make it even better: moreso—even the parts that hurt. From one perfectionist to another: thank you, Ted!

Between all the conversations, below is my summary of things we might change to make it even better for the attendees, and why. I definitely plan to do some of these when I do a similar session a few weeks from now at Agile & Beyond. I hope to see some of you there!

If you’re not into bouts of self-reflection, you can stop now. Thanks for reading this far!

Provide Diagrams

At one point during the exercise, Amitai drew a picture on a flip chart of how our strangler app interacted with the underlying SMTP server. This would be a useful thing to pre-draw and to project as part of the presentation bits, possibly as an interaction diagram.

Also: a diagram showing the strangler pattern graphically could make the whole sessions flow more cleanly from the start.

Actually Strangle Something

An audience member called out that none of our demonstrated new features actually replaced existing functions of the System Under Strangulation. Probably good to make it so one of them does, or at least talk explicitly about how a strangler can add value even without actually reducing functions of the old system.

Clearly State the Intent of Each Feature

After completing each test, our highly-motivated mobbers quickly and unceremoniously uncommented the next test and dove into figuring out what functionality it specified. In the interest of keeping the whole audience engaged, we facilitators could have hit the Pause button and then given a brief English explaination of the next desired feature to implement.

Reduce “Background Mob Noise”

This one needs a little explaining: the session’s primary learning goal is to bring about conversation and impart knowledge about factors around using a Strangler to incrementally replace a legacy system: the costs and benefits; the whys and why-nots; etc. The workshop device we use to get this across is a mob—as in mob programming. Instead of just hearing a lecture or watching a live coding session, members of the audience get to actually write and work with a code base, and learn by doing. Pretty sweet, at least in theory. It also means that the session gets a secondary learning topic: we give a quick lesson on the basics of mobbing when we get the volunteers into place.

The trick is that for some members of the audience who aren’t part of the mob, the mob can be hard to follow. They discuss options, try different things, take some wrong turns, and eventually complete the steps which lead to the main learning.

All of this was likely worsened by the high motivation of our volunteer mobbers. They figured a lot out amongst themselves and required very little direction from our microphoned positions. Since they didn’t have microphones, their chatter was hard to hear from the back of the room. Some suggested solutions to try:

Mic the Mob

A microphone could at least mitigate the issue of people not hearing what the mob members say.

Navigate Every Step From the Podium

Even when the mob doesn’t need step-by-step direction, it might be worth offering anyway it for the sake of everyone else in the room.

Narrate the Mob’s Step-By-Step Activity

This one really intrigues me as an option: whenever we let the mob do its own figuring out, provide a sort of play-by-play, explaining each decision and action they take, but for all to hear.

Pre-Seed an Experienced Mob

An of-the-audience mob spends a notable chunk of its time fumbling through the specific platform, language, and toolchain that we happened to choose for our example. Given that mobbing is not our session’s primary learning objective, this effectively becomes noise for much of the crowd. What if we instead provide a pre-seeded set of mobbers who already know those tools? Then the rest of the audience could focus on the ins and outs of the Strangler.

Ditch the Mob For a Regular Live Coding Show

It follows from the above that if we choose to de-emphasize the mobbing in order to focus on the primary learning goal, and we consider having a “hired mob” as part of the show, then perhaps we may as well not even have a mob—just do is as a more traditional live-coding session. I admit, though, that the mobbing feels to me like an important element of the experience we’re trying to provide.

Other Ideas?

Did you attend this session, or a different instance of Strangle Your Legacy Code which Amitai has done over the last year? Do you like or dislike one of the above suggestions, or have some of your own to offer? Tweet at us, or add a comment here.

Getting Back Into Things

My cancer-induced pause from public speaking lasted longer than I expected.

Two years ago, I had just reached a state of full remission from leukemia. I still got arsenic trioxide infusions five days each week, and I still had about two months left before I would return to work. I really did not know how long it would take to get back to a semblance of my previous “normal.”

It was probably around November of 2017 that I was truly working full-time again.

It was November 2018 that I managed to return to independent consulting, after a couple years as a large-corporation employee (albeit, at a very good large corporation, as such things go!).

Today, it pleases me to report that my conference pause finally comes to an end this week. I just arrived in Nashville for the deliver:Agile2019 conference, where I will co-host a workshop with my dear friend and colleague Amitai Schleier. If you’re here at the conference it would delight me to see you in our session Wednesday morning.

Next month, I also host a programming workshop, this one at Agile & Beyond in Detroit.

It already feels really good to be back with the community, in the capacity that I enjoy. I look forward to more of that—and more software-realted posts here on this blog—in the future.

Quitting Time

After a deep, honest look at myself and my lifestyle, I have decided to make a big change, beginning tomorrow. Sure—in the early days, that arsenic trioxide killed the cancer cells in my blood and bone marrow. Recently, though, all it seems to do is make me feel exhausted and sometimes queasy. I can do without that habit, and I hereby pledge that after today’s infusion, I am getting off of the sauce and back onto the wagon.

It’s true: today I had my final chemo infusion. On my way out of the clinic I got to ring the I’m-all-done bell, and got hugs from multiple clinic staff members. Most patients come in weekly or less. My regimen of five-days-a-week made me a very familiar presence there.

After nine and a half months of life arranged around leukemia, I find it a bit surreal to think that my treatment has completed. Wow. Now the process of true recovery can begin. We’ll see how long it takes to regain something like my normal strength and energy. However long that is, I look very much forward to it.

Here’s hoping that the path is relatively smooth.


Cross-posted to Facebook:

Recovery’s Long Tail

After a pause of nearly four months since my last Cancer post, my really good news is that I am still cancer-free, and all continues to go according to plan. The sad and somewhat frustrating news is that that plan changed a little bit, and my treatment is going to last eight weeks longer than expected. This is fortunately due to an administrative error rather than a change in my health: the clinical study, upon which my treatment is based, has a tricky bit of wording which led both my doctor and me to think that it only included three eight-week cycles of arsenic trioxide and ATRA. When the doc reviewed the study last week sometime he realized that it actually prescribes four cycles, and he adjusted my course accordingly.

According to the original plan, today would have been my last infusion. I found out on Monday (9/4) that I will instead have one more round of eight weeks, spanning from early October to early November. Sigh. I had very much been looking forward to being done, and to finally building my strength and energy back toward something approaching normal. Instead I get a fresh opportunity to practice patience and positive thinking in the face of sudden change. I suppose that’s also a good thing to have.

Since my last post, the entire summer has flown by in a flash. My medical leave formally ended in late June, meaning I returned to working at least twenty hours per week. During weeks without chemo I have worked close to a full-time forty hours; during chemo weeks it has been much closer to twenty. Between sleeping, working, family time, and getting infusions, I have found very little energy for anything else such as social interactions or outings. I tried to push through the fatigue a few times, and quickly fell ill (strep throat in summer!) and then lost out on a few days completely. Ergo: no pushing myself. I still yield to my body, for the most part, when it demands rest. Which is a lot. Days and weeks tend to just flow by, and I don’t get out as much on Facebook, Twitter, or real life as I did in spring.

Bright spots in my recent months included bike rides with the kids, beach time with family, catching up with remote colleagues at the Agile2017 conference, and learning to sail in June. We might even be on the verge of buying a small, used sailboat this month! Because today’s arsenic infusion was the last before a four-week break, I do look forward to having a bit more energy for the next month or so.

Another fun note: today marks eleven years since Tricia and I were married. Eleven years of awesome! 🙂

Still I wait eagerly for the time when I can feel only the normal levels of being tired, and when I can begin to build up some level of fitness again. Just as it was eight weeks ago, that time is now eight weeks away.


Cross-posted to Facebook:

Sleep and Shingles

For the last few weeks, my pattern has been to (1) say that “next week I think I’ll be up to 50% work” and then the following week (2) I sleep through all of two or three work days, and barely get in a couple hours of actual work during the remaining days, and then (3) repeat. I feel for my Leave and Disability person, who has had to jump through administrative hoops every time my return-to-work schedule changes.

My ambition to work, and disappointment at falling short, probably comes about because when I’m not dead tired I look and feel normal—complete with energy and wit. When people see me for the first time since diagnosis, the universal reaction is to say, “you look great! I wouldn’t even have known you were ill just from looking at you.“ It feels as though I should be able to work normally, yet it just doesn’t happen.

To my immense gratitude, my colleagues at Target also have a universal response when they hear of my efforts: they urge me to relax, rest, take care of myself first and worry about work when my body is ready. That universality includes management—a clear sign of a healthy work environment. To all my Target peeps: thank you! I’m doing my best to just relax and not worry.

If you inferred something new from the above paragraph, you were right: last week I physically made it into the office at Target for the first time since my diagnosis in January. I also made it in once this week. After so long away it was weird and nice to be back, also it was great to see so many colleagues again in person. Since I was only there for an hour or so each time, I would not say I contributed much value to the team’s efforts; but since my current sub-team mobs most of the time I was at least able to participate. Yay, mobbing!

Symptom-wise, last week I also got an itchy and painful sore on my forehead. My doctor suspected it was shingles and gave me an antiviral prescription to treat it. Since then, those sores have retreated somewhat and become less irritated. At the same time, I have had some other, less-visible spots break out in a rash which is both itchy and painful (and not at all fun). Going after that with an anti-fungal creme. My skin seems to be extra-sensitive all over. Any time I sweat, I get what seems to be a heat rash (splotchy-red and itchy) in every place with both sweat and constant clothing contact. While I was in bed this morning, Schmutzig the cat licked the left side of my forehead in a gambit for my attention. Her tongue left a red rash behind. Apparently I have a case of “princess skin.”

I am very pleased to report that the numbness in my feet is almost entirely gone at this point. There’s just a touch of tingling there, and even that is intermittent.

Today’s great cause for celebration is that when my arsenic infusion wraps up in less than an hour, I will have a four-week break from arsenic trioxide, from any IV infusions, and in fact from any scheduled, cancer-related clinic appointments. Four weeks! This will set a new record since my diagnosis in January. Hopefully it will also provide a respite from this crazy fatigue, and allow me to spend a little more time among work colleagues. Fingers crossed.

And that’s my recent news. It’s growing less dramatic over time, and that is a very good thing.


Cross-posted to Facebook:

More Fatigue, More Rest, and a Tough Choice

After my landing and infusion on Monday, I went home and pretty much slept the entire afternoon and evening. Tuesday I saw my oncologist, and after that the jury came back in: I pushed myself too hard with the weekend in NYC. I have done very little other than sleep since arriving home, and still my body feels like sleeping more.

My tough decision came after talking to my doctor about the wisdom of hopping onto another plane to attend another conference in another city. He did not order me not to go. The choice remained mine to make. He did, however, advise that my body has been through a lot in recent weeks and months, and that pushing it more ran the risk of disrupting my therapy—which in turn could run the risk of a cancer relapse. Although there is no way to quantify the risk, he suggested that staying home to rest was clearly the lower-risk move for my ongoing recovery and health.


To my great relief and gratitude, the conference organizers were more than okay with my last-minute withdrawal: aware of my recent health situation, they suggested that I had made the right choice and urged me to get rest and not to worry. Organizers of Agile & Beyond: THANK YOU! I hope to attend and present in some future year, and I have some great ideas for sessions to give there.

Had I gone through with the conference plan, I would have landed in Detroit just a few minutes ago and would now be connecting with friends and fellow speakers to share a ride to the venue. To my Agile & Beyond colleagues: have a great event and enjoy the camaraderie. I am sorry not to be with you. In particular I am sorry to miss those who weren’t in New York last weekend. Hopefully we can catch up at Agile2017 this summer.

Back on the health front, the days of solid rest seem to be paying off: I had a low-grade temp for most of the last week, but today I was down at normal again. The black circles also seem to have faded from beneath my eyes. Still I tire quickly. Having gotten the conferences behind me, my next focus (other than continuing to get enough rest) will be on really getting myself back to work.


Cross-posted to Facebook:

Fatigue and Travel

Contrary to plan, last week I logged into work even less than the week before. Apparently the resumption of chemo took an immediate toll. Again. Why would this surprise me? Maybe I’m just afflicted with unreasonable hope. 🙂

The really interesting bit is that last week also marked the arrival of my first scheduled conference of the year: Agile Coach Camp US, which just wrapped up in New York City. I’ll put event details into a separate post. On the cancer topic this event is interesting because it marks the first time that I have really pushed myself to do things that require sustained energy: flying to NYC, attending Coach Camp events, visiting family and a couple of friends (sorry we couldn’t see more!), and generally being out and about for the entirety of Saturday.

To compensate, I did take a brief nap after lunch on Saturday. I opted to go back to the hotel relatively early each night rather than staying out late with friends. Sunday morning I chose to miss Morning News so that I could get an extra hour of sleep. After the event wrapped up Sunday afternoon I returned to the hotel for a longer nap, rather than enjoying New York with fellow campers or with family. Despite all of these measures, I can tell I have pushed my body a bit hard: dark circles under the eyes, lots of yawns, and the sense that I might be on the edge of catching a cold or something.

I do worry on one hand that I might be pushing myself a little harder than I ought to right now—especially given that I am flying out again in two more days to the Agile & Beyond conference in Michigan. On the other hand and on the bright side: if I come through it feeling okay, this may tell me I am ready to ramp up my work re-engagement a little faster than I thought. At least after recovering from this week. We’ll see how things go.

After I land in Minneapolis this afternoon, I head straight to the oncology clinic for another arsenic infusion.


Cross-posted to Facebook:

Consolidation: Inching My Way Towards Normalcy

My two weeks off of all therapies ended today, with the beginning of my consolidation phase. Now I sit in the oncology clinic’s infusion center, again receiving arsenic trioxide through an IV tube. When people have asked me recently how I felt, I have responded that yesterday was likely the pinnacle of my physical state for a while: my body had two weeks to flush out all the toxins, and most side effects has subsided. Today the toxins flow again, so I expect to feel a bit less well over the following weeks.

My exact regimen is a little different than I had thought before. Here’s the sequence. All of it is weekdays only.

  • Two weeks of arsenic trioxide and all-trans retinoic acid (ATRA)
  • Two weeks of just arsenic trioxide
  • Two weeks of just ATRA
  • Two weeks of no treatment

That whole cycle happens three times, ending in September.

How have I felt in recent days? Not too bad. My physical strength continues to build, gradually. I can run and jump now—although still not very fast or high. I am still prone to running out of energy fairly quickly and needing a nap. My vision is still quite blurred. At night I have trouble falling asleep before midnight, and still seem to need 10-11 hours per night (even after napping). So mornings have basically been shot every day. The numbness in my feet has abated just a little bit, but is unfortunately still quite present and noticeable.

I have been logging into the systems at work every weekday, getting caught up on mail, calendars, and other things. This week I plan to increase that to a couple hours a day, hopefully getting back in sync with what the team is doing. I know a lot has changed and progressed dramatically since I went ill; at my limited rate it will take a while to really feel like I’m contributing. Unless I join up with a sub-team that does a lot of mob programming, of course. 🙂

This weekend I will be in New York City for Agile Coach Camp, and next week in Ypsilanti, MI to speak at Agile & Beyond. I really did expect to be fully back at work and living a mostly-normal life by the time those events came along. As I always say with software teams: When reality doesn’t match your plan, go with reality! During those conferences I may need to take some rest breaks, but I will be sure to be at my most alert when I give my own talk(s).

Also in the near future, I look forward to this blog having more entries in the Software category and fewer in Cancer.

Cheers and happy spring to all (or happy autumn for any southern-hemisphere peeps)!


Cross-posted to Facebook: