Global Day of Code Retreat 2018
For those of you who are wondering what this is, Coderetreat is a day-long, intensive practice event, focusing on the fundamentals of software development and design. By providing developers the opportunity to take part in focused practice, away from the pressures of 'getting things done', the coderetreat format has proven itself to be a highly effective means of skill improvement. Practicing the basic principles of modular and object-oriented design, developers can improve their ability to write code that minimizes the cost of change over time.
The world comes together, once a year to celebrate this day and during the event we share our experiences with others from around the world.
Last Saturday, 35 of us got together at the Forge in Ann Arbor, Michigan to spend the day pairing and coding and what a blast that was! The event was lead by Bob Allen and myself. Here is a summary of the various stages we went through.
Introduction
For a majority of the folks who joined us that day, they had neither test driven (TDD) nor pair programmed much. Introduction is conducted very much like a stand up with all of us standing in a circle and getting the download on the programming for the day. We had a few options - we could test drive Conway's game of life or use CyberDojo to test drive a simple problem like FizzBuzz.
First Pairing
The first time we paired that day, we looked at people who were comfortable in pairing, test driving and programming with those who were new to it. We found pairs who wanted to work in Javascript, Java, Python and C# and let them go at it for 45 mins.
Stand Up - After the First Pairing
- Roses - Everyone enjoyed working with their pair. Not a lie - The emphasis on learning made them comfortable. They began understanding the fundamentals of Red, Green & Refactor. They found themselves coaching and having to communicate their design patterns verbally. Those who used Cyber Dojo were able to focus more on learning easily without worrying about setup. Learning new short cut keys.
- Thorns - Many had IDE issues, computer issues. They realized they were trying to do too much instead of breaking the steps into little chunks.
- Buds - We learned the value of writing minimal code, the exponential learning that comes from Ping Pong Pairing. The value of modular code.
Global Video Stand Up
We used Zoom to setup a call with six teams from London-England, Johannesburg - South Africa, Gran Canaria - Spain, Belo Horizonte - Brazil and Columbus - Ohio, USA. Teams shared the various constraints that they'd used all day to work on Conway's Game of Life. For example, using only paper, using immutables only, using no mouse, no conditionals or loops, etc,...
Second Pairing
For the second pairing, the constraint was to switch partners. Now that people had gotten more comfortable with the intent of CodeRetreat, they were eager to pair with those more experienced to get feedback on how they were thinking about code. Craftsmanship practices such as pass all test, clear intention, minimum lines of code, DRY (Don't Repeat Yourself) that removed duplication and KISS (Keep It Stupid Simple) were all repeatedly mentioned during the day.
Mob Programming
Towards the end of the day, we had two groups practicing mob programming. This approach relies on the whole team being involved in the output, with continuous code review, collaboration to share the thought effectively. Everyone gets to rotate around being the driver and navigator.
Agile takes practice
As with everything else, to do the right thing takes tenacity, patience and a lot of practice. I am very fortunate to be surrounded by a group of people who want to do the right thing for product, for people and the business. To have folks you can consult with on these very difficult problems is a blessing that I am personally thankful for, this season.
For further opportunities to learn more about agile programming, reach us at Code Craftsman Saturdays.
Credits for this event and article content go to Pillar Technology, Bob Allen, Nicole Arruda, Jeff Hoover, Fred Estabrook, Todd Flanders, Kevin Wei, Chris Gallivan & his Team, Agile Alliance, Global Day of Code Retreat, Corey Haines and CyberDojo.
Executive Director at Empact Parenting, LLC
6 年Good job, Jeeva!