Lessons from Hiking and Agile
I’m a Full Stack Developer and a Scrum Master for Amazee Labs. This means I spend a lot of my days helping with estimations, planning sprints and retrospectives, and generally making sure our agile processes are working for the fantastic scrum team.
In my free time, I enjoy hiking as a way to disconnect. I recently had the opportunity to go on several weekend trips to do just that. I subscribed to a startup service called flatnap.ch which let me stay at hotels that were all at the bottom of some of the most beautiful mountains in Switzerland, located in the canton of Graubünden. If you’ve never hiked in this area, it’s quite breathtaking and many of the mountains have peaks of around 3000 meters.
Hiking and agile have more in common than you might think, here are some of the lessons I’ve learned from both:
Know where you're going
A sprint can be like a mountain, you can see your ultimate goal but you can’t see the entire path to get there. You never know what might be around each corner as you aim for your goal. That goal might be reaching the peak, or it might be getting high enough to enjoy the sunrise from a nice spot halfway up. You should accept that sometimes the scrum team may not achieve their goal, and that’s OK, as that can lead to process adjustments to improve the next sprint.
Be ready to change course
During one of my hikes, before the sunrise at about 4am, I ran into some Swiss cows on the path and inadvertently woke them up with my light. At first, the cattle dispersed so I continued to press on. However, I shortly realised that a few cowbells kept ringing behind me. To my surprise, there were three horned cows following me. I quickly stopped, evaluated the situation, and waved my arm from a right to left motion, they seemed to understand and took off to my left. After this slightly dangerous encounter, as I was alone in the dark, with just 40 cows around, I decided that it was time to re-estimate my path. I doubled back and found a safe, cow-free path to pursue instead.
During a sprint, some tasks might prove more time consuming than planned. Resources or requirements can change while you're working and it is important to remain agile and recalculate your path forward.
Sometimes I realize my hiking goal will be too far, so I will choose something else to aim for while walking. It’s important to keep an eye out in front of you, look ahead for where the trail is leading you to. Similarly, during a sprint, it is important to keep the goals in mind and to make sure that you are moving towards them.
Know which way to fall
When you realize you need to do something differently, you have to make choices very quickly. Never was this more clear to me than a moment when I realized I was going to fall. I wanted to avoid some mud, so I jumped to a small rock at the edge, however, it wasn't stable, so I was suddenly off-balance and I had to choose between falling a long way down onto some sharp rocks, or falling in the mud. Although I didn't want to get covered in mud the choice was clear, and I chose to fall in the way that would be easiest to recover from, fortunately, I only had to step into the mud and dirty my feet and not fall completely into it.
Agile teaches us to be always evaluating and to deal with situations that arise as they are and not how we would like them to be. Choices can sometimes be difficult but can be made with the best information at hand at the time.
When hiking, how far you go can depend on what shoes you are wearing and if you've brought enough water or your lunch along with you. It’s also good to have a map, and even better to go with friends or a group of people.
A tentative plan is essential, however far you go, you may have to go the same length back so it's helpful to decide ahead of time what you will aim for and how you will achieve it. Similarly in sprint planning, where the team huddle and discuss what they want to realistically achieve and how they will implement the more complex tasks. Keep the plan in mind, as you might need to adjust it in case of cows, mud, or scope creep.
Celebrate your accomplishments
Waking up early on the weekends to hike up a mountain might not sound appealing to everyone, but the view from the top makes it worth it every time for me. After a sprint is finished, a goal accomplished, or a project is completed it's important to take time to celebrate and enjoy that.
“Regardless of what we discover, we understand and truly believe that everyone did the best job they could, given what they knew at the time, their skills and abilities, the resources available, and the situation at hand.” - The Prime Directive
I try to ensure retrospectives are a way to look back and reflect on the sprint and celebrate what the scrum team has achieved together as a team, no matter the result, I’m certain they’ve done their best.
When you've enjoyed the moment of accomplishment it’s very helpful to look back on your path, the choices you made along the way and the problems you encountered. The retrospective will help you prepare for your next hike or your next sprint. And often after you celebrate and reflect, you see another mountain and you start preparing for the climb again.