DEV Community

Cover image for Agile way to solve Rubik’s Cube in 10 steps
Yogesh Dipankar for OCP

Posted on • Originally published at linkedin.com

Agile way to solve Rubik’s Cube in 10 steps

My 2023 New Year Resolution is to continue learning at least one new thing every month :-), Just like in 2020, my now 9-year-old daughter (Shreya) and I started the year by taking on solving the Rubik's cube as our first learning challenge. We still remember how we discovered a helpful YouTube video from WIRED, which taught us how to solve it systematically.

After going through the video multiple times and writing down the steps(or algorithm) on a piece of paper, we realized that to solve the Rubik's Cube, we must break the problem into small steps and solve it one layer at a time. And while doing this, I realized that the approach is very similar to what we follow in Agile!, so here I am writing my understanding in form of a blogpost

The approach of breaking a problem in small, achievable yet challenging tasks or goals is at the heart of Agile.

When breaking down complex problems into manageable steps, it's essential to approach the process with patience and attention to detail. For teams using the Waterfall Model for years, shifting to a more incremental approach can take some adjustment. However, small tasks are the key to success.

I often tell my team to imagine these smaller tasks as steps on a staircase. By carefully and methodically making their way up each step, they increase their chances of reaching their target within the desired timeline. On the other hand, paying attention to even a single step can lead to a misstep and, ultimately, fail to achieve the desired outcome. So, always be mindful of each step along the way.

Research suggests that organizations new to agile find it challenging to cope with; it's basically due to the waterfall conditioning of teams and leaders over the decades; it's difficult for them to see the benefits in small steps. Most of us are only worried about the outcome; instead of understanding how the problem can be broken in small steps, we tend to see this process of iterations as an overhead, and they question if Agile works; due to lack of clarity, they are not motivated to implement agile. Instead, they make resources slog and work unplanned instead of following a clean agile approach.

In waterfall there is a lot of uncertainty which adds artificial pressure, on the other hand in agile, it gives complete visibility of task at hand and bandwidth from day 1 as its considerably a smaller time-frame and smaller target.

Applying Agile methodology to solving the Rubik's cube can be valuable in efficient problem-solving. The process is broken down in Agile projects into smaller iterations known as Sprints. These Sprints can range in length from one week to four weeks, depending on the project and team bandwidth.

Here are the critical rituals involved in an Agile project:

  • Sprint Planning: This is where the team finalizes the goals and deliverables for Sprint and identifies the Product Backlog Items (PBIs) that need to be tackled.
  • Sprint Grooming: The Scrum Master and team members go through the PBIs, estimate their effort, and allocate tasks.
  • Sprint Refinement: Midway through the Sprint, the team takes a step back to assess their progress and make any necessary adjustments for the next Sprint.
  • Sprint Review: The team demonstrates their progress to stakeholders and business outcome owners and reviews the Sprint goals.
  • Sprint Retrospective: The team reflects on what went well and didn't go well during the Sprint and identifies opportunities for improvement.
  • Daily Stand-ups: The team holds a quick 10-minute call every morning to check the status of the PBIs and move them from "To Do" to "In-Progress" to "Done."

By following these Agile rituals, teams can work more efficiently and effectively to solve the Rubik's cube or any other complex problem.

To solve Rubik's cube, we broke the problem into multiple Sprints; first sprint - is a high-level understanding of the approach, knowledge of different cube notations, and other moves like a left trigger, right trigger, left pull, proper pull, to get comfortable with the cube to some extent.

Sprint 0: Get Familiar with the Cube / some intro:

Sprint 1: Make the Daisy ( shown in the image ):

Daisy Step

Sprint 2: Create the White Cross

White cross stage in cube

Sprint 3 : (Learn to Hold the Cube): This process can be thought of as further understanding how to efficiently handle cube

Sprint 4: Solve the Bottom Layer & 1st Layer ( 1 on 1 free :-) )

Bottom Layer solved

Bottom Layer solved

Sprint 5: Solve the Second Layer:

Second Layer solved

Sprint 6: Create the Yellow Cross:

Yellow Cross

Sprint 7: (Cube Notation):

Up until this point, the process of solving the Rubik's cube has been relatively straightforward. However, from this point on, the team will need to follow more complex algorithms, which require a good understanding of cube notations, such as F and F', R & R', Left Pull, and Right Pull.

Sprint 8: Solve the Yellow Face / Yellow Top:

Yellow Top

Sprint 9: Position the Corners:

Position the Corners

Sprint 10: Position the Edges, Final Step and its solved

solved

The approach here is to solve one layer at a time only.

Solving a Rubik's cube can be seen as a metaphor for solving complex problems using an Agile methodology. My daughter and I started our journey by learning the basic steps and algorithms in the first week, spending 40-50 minutes solving the cube. As we progressed to the second week, our understanding of the cube notations and algorithms improved, and we solved the cube within 30 minutes by following the notes.

By the third week, our confidence and understanding had grown to the point where we could solve the cube without relying on the notes, taking only 15-20 minutes. In the fourth week, my daughter had become a pro, solving the cube in just 1.5 minutes.

This example highlights the importance of breaking complex problems into smaller, manageable tasks, just as one would break down the Rubik's cube into smaller steps. The Agile process requires discipline, dedication, and patience to achieve the desired results. Just like solving the Rubik's cube after the seventh step can be challenging, building an Agile mindset can also be difficult, but with determination and discipline, it is possible.

Agile development process is a disciplined process, without discipline you cannot achieve agile mindset!

To conclude, the principles of Agile are not limited to software development alone. Its concept of breaking down complex problems into smaller, manageable tasks can be applied to a wide range of goals and objectives, making it a versatile and powerful tool. By adopting an Agile mindset, you can increase your chances of success and achieve your targets in a more efficient and organized manner.

Thank you for taking the time to read this article. I hope you found it informative and inspiring in regards to the Agile mindset. I would appreciate it if you could share your feedback and opinions to help me gauge my understanding. I particularly invite Agile coaches, product owners, Scrum Masters, and anyone working with Agile to provide their honest input. Your input will be greatly appreciated and contribute to the improvement of the content.

Cheers !
Yogesh

Top comments (0)