Code Agility : Do - Reflect - Learn
As adults, we learn by experiences, more than we learn by reading/writing/talking/listening.
This has always inspired me to come up with interactive games/workshops to help people change their mindset. All my games/workshops are intended towards helping people understand any practice through "Experiential learning".
This game is an attempt at helping participants understand one of the many great practices that are required to make a team Agile, with respect to coding.
Outline/structure of the Session
The game is inspired by the African game of Jenga. Through multiple iterations, participants learn the thought process around some great engineering practices. The Game starts with the first iteration, where teams are required to build a certain structure with Jenga blocks. Subsequent iterations, teams are asked to better the structure that was already built (Equivalent of code refactoring) and then build on top of it. At this point, teams realize the need of building a simple an easy to reuse piece of code.
Sharing the slides with the participants will give away the intent of the game, and learning might not be as effective. There is an element of surprise in the game. It will be best enjoyed when the slides are not known.
I have facilitated this game at various conferences. I have the slides, as well as the video recording of the same.
I can share it with the organizers. Sharing with participants, before the event, will take the Fun-Learning out of the workshop
After this workshop, participants will experience the benefits of great coding, and its importance in having code agility.
Since the participants learn all this through their experience, this leads to a mindset shift
All participants will go back, learning -
> Simple Design
> Refactoring and the need for it
> Incremental design
Developers, QA, Development Managers, Scrum Masters, Architects