Today I’m siting at an internal presentation and we’re discussing how organisations adopt software development frameworks. We’re talking about how it can be useful to start with a framework and to follow it diligently until people feel comfortable. Once you reach that point you can take the “training wheels” of a prescriptive framework off and start changing and adopting to optimise for your particular needs. People suggest that starting with “Scrum by the book”, for example, gets you to a good place from which you can evolve.
Last week at Lean Agile Scotland, together with Seb, we gave a talk called “Your agile is dead” sharing our experience of building a small agile team. The main premise of our talk was that we first threw all the conventional practices out of the window and started from scratch. No planning, no stand-ups, no iterations, no visualisation of work! Sounds crazy, right? Well, we kept some components – a tight feedback loop with honest and thorough retrospectives and some basic engineering practices. We evolved and added more practices as we needed them and reached a pretty good state.
It was our twins’ birthday last weekend. They are turning five and we got them both new bicycles. They had some bicycles before but these are the first proper bikes. Interestingly, one of the bikes had the training wheels on but we didn’t put them on the other one. Sure it was a horrible few minutes trying to ride on a new bike with breaks, pedals, handlebars and no stabilisers (aka training wheels). As to the other bike, the experience was smooth straight away but the stabilisers are limiting and it’s going to be a good few weeks I suspect (or maybe months) before we can take them off the other bike.
What do stabilisers on a bike have to do with software development process then? I think of them a little bit like the support of a fully-formed framework. It can be easy to start with scrum and the ride is smooth but you will never take sharp corners or ride full speed down a hill. Your options are somewhat limited. And when you try to change the rules – it’s painful and sometimes things fall apart.
Does that mean we should put no support in place? Should we throw everyone in the deep end every time? Sure, some will swim, but some will sink.
What can you do to prepare for riding a real bike that doesn’t involve training wheels? You can start with a balance bike. You don’t need to worry about breaks or pedals or steering so much but you get to experience the balance. And balance, it turns out, is the key skill when it comes to riding a bike well.
When learning a new skill or introducing a brand new way of working look for transitions that ease people in but don’t rob them of experiencing the core principles. Make sure that you leave the most fundamental feedback loops in place.
For your cycling skills it is the feedback about how your position and speed affect your balance. Training wheels almost completely remove that feedback. In software development it’s perhaps the feedback about how your interactions as a team of individuals translate into working software. Iterate, reflect, retrospect, adapt. Put boundaries in such a way as not to impede future learning and improvements.