Using Agile for Fitness
Is it possible to apply agile software practices to your fitness regime?
As a software engineer and technical architect, I spend much of my life working in an agile manner, with principles and practices based on the Agile Manifesto which states:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Today though, I wanted to discuss applying this philosophy to an area where I certainly hadn’t thought to use it before and a cursory Google search shows it not be in common use at the very least.
The popularity of agile has grown massively in recent years and has seen its adoption in all sorts of industries in which it was probably never envisaged to be used, such as Human Resources management. Whilst mid hang on a bar, halfway through a set of hanging leg raises, I began pondering about how I have been structuring my own workouts.
Like many others, since the start of the lockdown in the UK on the 23rd of March, I’ve not been able to train at my local gym. Lack of access to the equipment needed to do my usual weight training workouts (that I had fallen into a bit of rut doing quite frankly), meant I had to change how I train. Buying all the equipment I use for the weight training I do just wasn’t an option and a simple home multi gym wasn’t really going to cut it. This led me to go back and completely revisit how I work out and how I can do it differently.
The upshot of all this though was that I was no longer sticking to the same routine for months on end. As I taught myself more and tried out different types of exercises, I adapted and changed my workouts from one week to the next trying to find something that worked (for me). At the beginning I’ll admit this was rather haphazard. There was a lot of new information to digest and I tried a lot of different things. I also hadn’t really settled on what to replace my lifting with. However, over time, my approach became more structured, and since writing this article it has really solidified.
So there I was, legs flailing in the air, trying to pull myself up on the bar attached to my kids’ swings when it occurred to me — how about applying the same agile principles I use day in, day out, to produce software to get fitter .There was also clearly something wrong in my exercising approach if I was thinking about this at the time, but we won’t get into that right now!
Let’s go back to the agile manifesto (even though most blogs about agile never speak of it anymore), and not much of it seems to really apply:
Individuals and interactions over processes
In a locked down world where I’m training in my own back yard, this hardly seemed relevant. What’s really the point around this principle though? To promote things that worked above rules and conventions no matter how well intended they may be. That could work.
Working software over comprehensive documentation
Well I’m certainly not delivering any software during my morning training sessions! The question though, reframes itself to; what am I trying to deliver? What’s the point of me working out? This wasn’t a question I’d ever directly answered, even to myself, but is actually quite important. Realising this not only makes the agile philosophy more applicable, but also made it easier to see when I was meeting my goals and helped to structure my training so that these goals were met more often.
Customer collaboration over contract negotiation
Well in my little locked down world, I’m the customer, the product owner, the scrum master and the developer, so this one seems a bit harder to apply. Let’s rephrase this again; what is the agile methodology really trying to achieve? What we really want is a happy customer which might mean not necessarily delivering what they asked for, but what they wanted instead (the two are often different). I can work with that for structuring my programme.
Responding to change over following a plan
This seemed to apply right off the cuff and was in fact one of the principles that made me start thinking along these lines. Unlike the other three principles above, which required a bit of thought, this one along with some agile practices is the one that really got me thinking about this as a concept.
Great, so structure my training programme such that it puts things that work (for me) above conventions and rules; that delivers to my personal goals and reasons for working out; delivering the results I want even if it’s not with the programme I start out with; and is responsive to change. That’s all very well and good and sounds great but how on earth do you deliver that and what does it even look like?
Speak to most developers, in the trenches writing software, about agile and they probably won’t quote the principles I started this article with. Far more likely is that they’ll talk about some of the ceremonies that they use to implement the above principles or the processes they have in place. Now of course that could be Kanban but I’m going to go with Scrum here. Further I’m actually going to use some of the tools of the Scaled Agile Framework (SAFe) as well.
Of course, front and centre, the two ceremonies I’m talking about are the planning and retrospectives. As crazy as it might sound (especially if you’re working out on your own — I mean who really holds meetings with just themselves!?) I really do mean running a planning session at the start of your fitness programme and a retro at the end of it. I also decided to run a macro and micro cycle, or in SAFe terms a planning increment (PI) as well as the sprints. This means I have a larger planning session at the start of the PI and a more in-depth retro at the end of it.
So how do these translate over? Do I start booking a conference room for two afternoons every two weeks for a retro and planning session of my training? Who else do I invite? In my case no one but you could well be doing this with your personal trainer, nutritionist and physiotherapist in the room if you happen to have those at your disposal. It may sound a little facetious, but the answer is actually yes (ok maybe not the conference room). The most important tools that you’ll want to use from the agile box of tricks are actually retro and the planning, it’s here that you’ll apply the principles we just talked about above.
Enough theory and abstract talk. What does applying agile to my training routine actually look like?
I start with the PI Planning. This involves me deciding my goals for the next one month to six weeks (keep it realistic) be they skills I want to develop, physique changes I want to attain, or anything else. With a long history of hitting they gym and lifting, at the start of the lockdown, I actually changed tack completely and ended up on a path of more functional fitness, bodyweight training and flexibility. This involves a lot of calisthenics, primal movements and yoga and my goals range from physical appearance to attaining certain levels of flexibility, to performing certain gymnastic/calisthenics skills. As I write this my goals for my current PI include being able to do ring muscle ups and be able to place both palms flat on the floor in front of my feet.
Once I have those this lets me come up with a general pattern or template for the workouts for the PI that will help me progress towards them. This needs to include the routine for each week (which days are for strength or cardio and which days are for rest) as well as the exercises for each day. Importantly, this also includes setting your spring length. Unlike most software development sprints, which dure two weeks typically, my fitness sprints are only a week long. This isn’t set in stone but it’s good to have a plan as a starting point. To bring back to a concrete example again my current plan template looks like this:
- Monday: Yoga warm up, Calisthenics Pull strength, 15mins heavy jump rope, stretches
- Tuesday: Yoga warm up, calisthenics legs, 12mins Tyson jump rope squats, stretches
- Wednesday: Yoga warm up, calisthenics push, 15mins heavy jump rope, stretches
- Thursday: Yoga warm up, calisthenics legs, 20mins jump rope footwork, stretches
- Friday: Yoga warm up, calisthenics upper body, 10mins heavy rope, stretches
- Saturday: Light stretching only
- Sunday: 45min yoga flow
I haven’t listed them out above (as we’re focused on the agile side of things here not the fitness) but I include all the individual exercises in this plan too, along with the number of sets and repetitions of each (though this changes through the PI).
The planning for each sprint is then relatively simple and far less time consuming as it involves really only slightly tweaking the programme for the week if required — perhaps swap one type of exercise for another but mostly it’s just about ensuring the number of reps and sets are still at the right level.
The second ceremony I referred to above, the retrospective is an opportunity to analyse and reflect on my performance over the last sprint (week). The exact form this takes will really depend on whether or not you’re using a personal trainer (or other professionals) and importantly on how self-aware you are. I’m not particularly self-aware, but also don’t use a personal trainer, so generally resort to collecting as much data as possible for this process. I use an Apple Watch and a few different applications to measure, not only my performance when training, but also my recovery and body composition changes. The retrospective is where this data is reviewed and the output of that feeds back into the planning for the next sprint.
At the end of the planning increment (or four to six week cycle in this case), I do so the same retrospective but in a little more depth and use that to help determine what the programme for the next cycle should be.
This process lends itself very well to the use of periodization where the planning increment would correspond to a mesocycle and the sprint represents a micro cycle. You’d need to add some kind of macrocycle if you required this of course.
I have, so far, neglected to mention another key ceremony in scrum; one that impacts greatly on the ability to respond to change. I refer of course to the daily stand-up and it is as important here as it is in developing computer software. While a typical stand-up meeting might be up to 15minutes long, mine typically last under a minute or two at most. I train first thing in the morning and as I awake, I will typically check in on my Apple Watch to see what my recovery rate looks like. Based on this and how sore and stiff I feel, I may then adjust the training intensity (either up or down). This may seem a pretty minor point but is in fact probably one of the most important aspects of the adoption of an agile methodology. I say this not only because agile practitioners pride themselves on the responsiveness of agile to changing environment, but also because this small detail allows the use of the marginal gains technique — a technique that has been used by the British Cycling team to great effect.
At a personal level, it’s been very important for me as it has helped to dial down the intensity on days when I haven’t recovered properly but haven’t been self-aware enough to necessarily notice it (especially when its 5:30am and I’m still groggy). This deliberate “stand-up” or “check-in” before training (with data input) has without doubt helped me avoid injury and therefore increase my total volume of training.
If you’re reading this thinking how is that any different to what I already do? Well, it may not be, but I have yet to come across it expressed in this way and thought it would be interesting to share (especially for other software developers or agile practitioners).