Coderetreat: The toughest constraint

Coderetreat: The toughest constraint

Ask the attendees what they want

During the Global Day of Coderetreat 2014 (GDCR) I facilitated the event in Turku, Finland. That is when I presented the toughest constraint ever in any coderetreats I facilitated until now.

Since I have a lot of constraints in the list, some time ago I started to ask the attendees how difficult would they want the constraints to be. I am asking them on scale from 1 to 5, 1 being boring, and 5 being extremely difficult, what would they want to do as difficulty.

Another thing I’m doing, stealing the idea from Alex, is to ask the attendees of the coderetreat about the expectations they have. They write one expectation on a sticky note and we look at them and they choose what they want to practice. I tell them about constraints that will generate the kind of learning they want.

Usually during coderetreats the attendees want constraints of the difficulty between 2 and 3. Probably because 1 seems boring and 5 seems scary.

The constraint

Now it was different. They wanted the scary constraints. And they insisted. So here is the constraint.

universe-with-wormholes

Conway’s Game of Life

Conway’s Game of Life (GoL) is a cellular automata, that has specific rules as you can find in the wikipedia article. John Conway worked for tens of years to create these rules for the orthogonal two-dimensional universe. But after that some smart people came-up with the rules for a two-dimensional hexagonal universe. And the rules are very similar, find them in the pictures below.

hex-conways-1

hex-conways-2

Dynamic space structure

My idea was to mix those two concepts into one universe. The universe has worm holes. The cells can pass from one part of the universe to the other. But the space changes when you enter the worm hole. The orthogonal cells change into pentagonal cells at the gate of the worm hole (the transient area). After passing the gate, the cells change into hexagons and they live as hexagons until they get out of the worm hole in the other part of the universe.

Time is not constant

To make things even simpler, the time passes differently. If you have one tick in the orthogonal space, in the gate (the transient area) you have that 1 tick equivalent to 7.6. When you pass into the hexagonal space, the 1 tick is equivalent to 0.72.

Nice, right? 🙂

Design considerations

For a couple of years now I am changing the requirements of GoL during software events to show the attendees how changeability should be a focus when doing software development. If you have high coupling between design elements (can be classes, interfaces, prototypes, etc) like Universe, Rules, Space, Cells, etc then it will be very hard or impossible to have a design that is easy to change. Another thing I am focusing is the Single Responsibility Principle. If these design elements are not cohesive and have more than one responsibility, then the design is more rigid and thus more difficult to change.

The main purpose of this session was to highlight better the cohesive design structures one could have when optimizing for changeability of the design for any software solution.

Any other ideas?

If you have any ideas on how to improve this session or any other ideas, please drop me a comment.

Subscribe

If you want to receive an email when I write a new article, subscribe here:

Subscribe for new articles

2 Thoughts on “Coderetreat: The toughest constraint

  1. codesmithkarl on March 13, 2015 at 05:13 said:

    Hi – a very tough constraint!

    Do you have a list anywhere public of your constraints sorted by difficulty?
    I would love to use it

    BTW in our coding dojo last week we used the list of your posts on legacy code as a TODO list. Thank you!

    • Thanks, I tried to make it difficult enough 🙂

      I have a list of constraints, but it is not public, because the constraints are not documented. I plan to write about each coderetreat constraint I know in a blog post series. But that might take a while…

      Wow, I am glad to hear that my blog posts helped you. Please tell me how your dojo sessions went, if my blog posts were clear enough for you.

Leave a Reply

Your email address will not be published. Required fields are marked *

Post Navigation