Winning JULO Virtual Run Using Scrum — Part 1

Sprint and scrum events implemented at JULO but explained using a personal life experience.

Arnoldus Bramantyo
julotech
8 min readAug 20, 2023

--

Background Context

We have our own annual Olympics at JULO. We are divided into 4 houses, just like in Harry Potter, and we compete in various games & sports to accumulate points for our own house. The top house with the most points at the end of the year wins the Olympics. The last sport that we had in the 2022 Olympics was running. We call it the JULO Virtual Run (JVR).

JVR went for 10 days in December 2022. We could run anywhere and anytime we wanted, as long as we track our running sessions with Adidas Run app (runtastic) and submit the daily run result to the committee to make them count.

I personally knew I wouldn’t win the JVR because most of the JULOvers (JULO employees) are younger than me 😅 and probably were in a better physical shape than I was. But, I decided to still compete with them using one thing that I know best, Scrum. Yes, I’m a Scrum Master in JULO.

I’m aware that some people don’t care about Scrum or find it difficult to understand. Most probably, it’s because most of them can’t see how it benefits their job or even their personal life. Let’s forget about the fancy Scrum terms like you can find in other Medium articles for a moment. Let’s go back to the basics. People usually think of Scrum as only for software development, just another form of Project Management, while actually we can also apply Scrum in other fields or in life. To that point, I am going to share how I won a medal in JVR by applying Scrum framework. My hope is that it would help you to understand Scrum easier, especially if you don’t know Scrum yet. There will be some checkpoints too so you can check your own Scrum team’s health.

Let’s start with the simplest things first. The routines, The Scrum Events.

The Sprint

Although Scrum uses the term “Sprint”, it doesn’t mean we have to “run at full speed for a short distance” as defined in the dictionary. We only refer to the “short distance” part, not the full speed part. Sprints in Scrum are time-boxed, usually 1 month or shorter. It’s meant to be short enough so we can deliver value and also get the feedback sooner. At the same time we have to keep it long enough so we can complete the full cycle from planning, coding, testing, to ensure we deliver a high quality product.

🏃‍♂️ In JVR, I set the Sprint to be one day, because the JVR committee announced the runner standings every day, so I could review my achievement, my position, and plan the next Sprint based on those data.

❓ Check point: Is your Sprint length long enough to do the full development cycle and short enough to deliver value sooner?

In JULO, we have a two-week Sprint as commonly used in software development. From the first few Sprint Retrospectives most of the teams thought 2-week is the perfect Sprint length, but one of them decided on 3 weeks because their product backlog items are bigger in general and couldn’t be sliced down to smaller tasks and dependent on 3rd party. Some people in JULO belong to multiple teams, so we arrange the Sprint schedules accordingly so they can always attend the Sprint events. Some scrum teams start on Tuesday, others on Wednesday, and so on.

Sprint Planning

Sprint Planning is an event when we will inspect the Product Backlog that we have and choose some of them to create the Sprint Backlog. Based on what we set as the Sprint Goal, we pick items to work on in the next Sprint to achieve that goal. Furthermore, we also plan how to do them. All Product Backlog Items must be ready (all the relevant flows, acceptance criteria, design must be clear enough, and the efforts have already been estimated) before the Sprint Planning.

🏃‍♂️ In JVR, before starting to run on a particular day, I made sure that all were ready. I got to prepare my shoes, charge my mobile phone (so I could track the run session), apply sunblock if needed, etc. I also analyze the data first. Where’s my current position in the runner standings and how many kilometers were the gap between each runner? Besides that, I also consider all factors like the current condition at that time, weather condition (hot/cloudy/light rain/heavy rain), how many hours available to run, etc. From there, I created my plan, how many kilometers at minimum should I run on that day to make sure I’m still in the top 3. The plan must be realistic. Planning to run 50 km in a day wouldn’t be realistic for my body even if it’s going to be great to secure my place in the top 3. Next time, I’ll write about keeping a realistic plan.

❓ Check point: What about your Scrum Team? Are all product backlog items already well refined before the Sprint Planning? Do all team members understand the cards well? Are the Story Points taken into the Sprint really realistic?

For Sprint Planning in JULO, we check our Product Backlog items, their completeness, their priority, and align them to our OKR. From there, we set our Sprint Goal and pick specific product backlog items that will help us to achieve it based on our team velocity. I’ll write more about velocity next time. We also plan how to complete those tasks. We put all of them into the Sprint Backlog.

Daily Scrum

We do Daily Scrum meetings to inspect our progress. Are we still on track? Is there any impediment? If so, then we have to adapt. We have to unblock the blockers or even find a workaround, to make sure that we can achieve the Sprint Goal.

🏃‍♂️ In JVR, every kilometer I run, I check the conditions. Did I run too slow in the last km? Did I feel any pain in my legs? Am I out of breath or is my heart rate still normal? Is the weather still good or did it start raining? After checking all of them, if there’s a problem, I adjust my plan. For example, if I was too slow, then I would start running faster. If my legs hurt, I would run slower.

❓ Check point: How good is your Daily Scrum? Just a progress update or do you communicate all blockers/impediments/anything to the others? Is the impediment solved directly or just noted in the Jira card’s comment?

However, Daily Scrum is not the only time Developers can adjust their plan. If it suddenly rains hard, I would stop running right away, no need to run under the heavy rain just to reach the next kilometer checkpoint, right?

For the daily scrum in JULO, we have them every weekday morning at the same time for 15 minutes to minimize the complexity. The developers take turns leading the session. While every scrum team has their own style in conducting daily scrum meetings, the goal is the same, which is to inspect the progress, identify blockers, and make necessary adaptations, not only updating status or telling each other what to do next. They’re trained to manage without Scrum Master’s supervision and it’s going well. However, we are always ready to join when they need our advice.

Sprint Review

We need the Sprint Review to inspect the result of the Sprint and determine future adaptations. The Scrum Team presents the result of their work to the Stakeholders and discusses any updates from Stakeholders including the progress towards the Product Goal.

🏃‍♂️ In JVR, after I submitted my run session result to the committee, I reviewed it. Did I run far enough that day? Should I change the plan for the next sprints or just continue the current plan.

❓ Check point: Are Stakeholders aware of your Scrum Team’s Sprint results? Do you review the existing Product Backlog with the Stakeholders?

In JULO, every scrum team presents the Sprint result and discusses the next Sprint’s plan with the Stakeholders, who will also share some feedback and business updates to the team.The Sprint Reviews are usually led by the Product Owner and take an hour or less. In addition, we always create a short & simple 1 page report in Confluence, summarizing how the sprint went, its outcome, and any discussion points for reference in the future.

Sprint Retrospective

The purpose of the Sprint Retrospective is to plan ways to increase quality and effectiveness. We don’t review the deliverables in this event, but rather how we work together as a team. We inspect our last Sprint and try to identify our achievements as well as our problems, and if there’s any room for improvement. Then we’ll adapt by setting some action plans to improve our way of work.

🏃‍♂️ In JVR, I inspect what happened in the last run session. Not the result, but the process itself, how I ran. For example, was there any body or leg pain? If so, what’s the cause? Did I run too fast or too long? Lack of warm up? Based on that, I set some action points for the next Sprint, such as remembering to warm up enough before running.

❓ Check point: How is your Retro? Can your squad identify what didn’t go well in the last Sprint? Then, does your squad analyze the root cause? After that, does your squad set some action points to improve it in the next sprint? Or… no one speaks in the meeting? 😏

In JULO, Sprint Retrospective is quite challenging, especially because we work remotely. Every scrum team also has their own character, style, and dynamics, so we apply different approaches, especially to encourage openness and respect. Krisna, one of our Scrum Masters, describes it in great length in How to do Retrospectives with your Remote Teams.

Key Takeaways

Let me pause here to give you time to understand and digest the knowledge. So far, here some key takeaways you can put on your note:

  • Scrum is not only a Software Development framework. You can apply it in many other fields, even in your daily life if you want.
  • Sprints are fixed time boxes, enough to deliver tangible results of value, but short enough to get feedback early.
  • Sprint Planning is important for defining and planning what you’re going to do in the next Sprint.
  • Daily Scrum meetings are essential to keep you on track to achieve the Sprint Goal.
  • Sprint Review is an opportunity to keep you on track at a higher level, to achieve the Product Goal.
  • Sprint Retrospective is key for improving your way of working.

Coming up next:

Is doing those 4 Sprint Events enough to win the JULO Virtual Run?

See you in the next episodes of Winning JULO Virtual Run Using Scrum 👋

--

--