Apply Recursion Concepts to Agile Transformation
How does the computer science concept of recursion tie into an agile business transformation? Recursion reduces the complexity of change, so teams evolve at a speed that is balanced with their abilities and offers the best chance for success.
When a business initiates an agile transformation, the task can seem daunting. There are so many areas which may need improvements and where an agile framework needs to be applied. It may be hard to identify and prioritize the improvements.
By human nature, many teams will be resistant to change. For these types of reasons, it’s a good idea to break down the transformation into smaller, incremental steps. On the way to becoming agile, take an agile approach to determine where to focus the incremental changes: Recursion!
Agile uses an empirical model in an iterative process. An understanding of how things are working in the business needs to be realized in an open and transparent manner. This understanding needs to be inspected and analyzed. From this, an informed decision is made to adapt the business.
What is Recursion?
In the analog world, an example of using recursion involves a game with three wooden pegs. Some number of disks of increasing size are stacked on one peg, with the largest disk on the bottom of the stack. The purpose of the game is to move all the stacked disks from the initial peg to another peg. By the rules, you can only move one disk at a time, and you can never place a larger disk onto a disk of smaller size.
In computer science, a recursive function is a coded algorithm that calls itself. The computer science recursive concept solves the analog puzzle digitally by breaking down the movements into smaller subsets of actions. These actions are then executed with the same bit of code, simply the function to move a disk following the rules, building upon one another repetitively to complete the puzzle. A typical example which is used in a Computer Science 101 course involves the Tower of Hanoi.
This example of recursion helps to represent the idea of using a concept to lead to and from the same concept. In other words, the same concept is used within the larger version of the concept. It’s a brilliant and efficient way to code these types of jobs. Once this first step is completed, it is repeated, building upon itself.
Determine Where to Adapt
Initially, you may want to focus on adapting a process that is the least complex, as there may be best methods and guidelines that can be quickly adopted and implemented. Always consider the value the changes bring to the business.
With each iteration, you always need to consider the vision for the business with an understanding of the business processes. With this transparency, you can begin to break down what changes might be implemented. Make sure all the teams understand the vision and values of the changes. Engage with employees for an open and respectful discussion, working together with mutual purpose.
The recursive approach allows you to take small steps in an efficient and transparent manner, gradually applying improvements. Employee engagement with the advancements help guarantee the changes are lasting. Once a change is implemented, step back and look at the impact on the business, and then start the same process again.
Look at the data, analyze and make choices, and adapt. An agile coach can provide guidance and an understanding of where you may want to focus, and how to make changes with best practices.
Agile is not the Towers of Hanoi
Although the Towers of Hanoi nicely expresses the idea of recursion, it implies that at some point the job will be done. That is, all the disks will be moved from one peg to another. However, in applying agile, the business never comes to a state where we can say, “Our work is complete!”
Agile is a mindset and an expanding journey. Continual improvement is ever present in agile and is especially relevant in today’s modern digitized market and workplace where constant change is forced upon businesses at multiple levels.
With the idea of recursion and repetition behind your agile journey, you can reduce the complexity of the changes and see improvements evolve at a speed that is balanced with your employees and abilities, and with the best value for your business and the customer.
Love this post? Then subscribe to our mailing list!
We guarantee 100% privacy. Your data will not be shared.
Erik Major is a Product Owner, Systems Engineer, and Agile Advocate with a background in computer science, telecommunications, and SDLC.
Contact: erik.j.major@gmail.com
LinkedIn: http://www.linkedin.com/in/erik-major/
What a great way at looking at a complex problem. Excellent explanation, if a little esoteric in a couple of places, on how to use Scrum and or OODA loop to help with an agile journey
Thanks Joe. It’s fun to geek out on these topics. You never know where the discussion will lead.
Thanks I can see the value in dealing with COMPLICATED change but not COMPLEX Change. The difference lies in a plate of pasta, which is complex, vs. a nuclear reactor, which is complicated. The complex aspects of Change are usually the people ones, these are often messy and incredibly inter-related, variable, dynamic…….etc. Breaking this down may simply not be possible and another approach needed. Complicated Change components may be systematically addressed.
Oh and yes……Agile as applied to project, programme etc. management is MUCH more than a life-cycle. An Agile managed project does not have to have an iterative life-cycle, but MAY have any, or a mix.
Excellent way to describe the concepts. Thanks Adrian.
Love it! I still believe that an all-in approach to Agile is best, but getting there is definitely a recursive process. It’s the only way to build the trust and self-ownership that you need to be successful, and the best way to pick apart the organization’s unique challenges. You can only hope to approach an ideal state asymptotically.
Well said Emily! Thanks.