Coderetreat @AgileFinland Turku 2014 11 15

Preview:

DESCRIPTION

The slides from the coderetreat on the Global Day of Coderetreat 2014 in Turku, Finland

Citation preview

Code retreat

www.mozaicworks.com

www.mozaicworks.com

Me

Adi BolboacaOrganizational & Technical

Trainer & Coach

2009, First time outside US

Why?

Learn through pairingExtend your comfort zone

PracticeExperiment

Learn new practices

www.mozaicworks.com

How?

1 day of codingChoose a simple problem

6 pairing partnersOn average 135 minutes of coding

6 different constraintsA lot of fun!

www.mozaicworks.com

How it started

CodeMash conference 2009

Gary BernhardtPatrick Welsh

Nayan HajratwalaCorey Haines

www.mozaicworks.com

How it started

RepeatableDay-long

Practice the fundamentals of programmingIntense day of coding

www.mozaicworks.com

Day structure

15' introduction3 sessions of 45' coding + 15' retro&break

1h lunch3 sessions of 45' coding + 15' retro&break

15' closing circle

www.mozaicworks.com

Principles

Language agnosticDo not try to finish the problem

Delete the code after each sessionFocus on practicing

Experiment each sessionHave fun!

www.mozaicworks.com

How to take advantage1. Embrace the freedom of deleting the code

2. Do what you always wanted but couldn't

3. Get out of your comfort zone

4. Pair with strangers in languages you don't know

5. What you learn is your responsibility

Prerequisites

ComputerCoding environmentTesting framework

Source control (git, svn, etc)

www.mozaicworks.com

The four elements of simple design

1) Passes its tests2) Minimizes duplication

3) Maximizes clarity4) Has fewer elements

www.mozaicworks.com

Conway's game of life

Having an infinite 2D orthogonal universeBeing given an initial generation called a seedThe following rules are applied simultaneously

A live cell having less than 2 live neighbors diesA live cell having 2 or 3 live neighbors lives A live cell having more than 3 neighbors diesA dead cell having 3 neighbors becomes alive

www.mozaicworks.com

Session 1: Understand the problem

Find a pairChoose a programming language

Setup the environmentChoose an entry point for the problem

Start in 5 min

www.mozaicworks.com

Conway's game of life

Having an infinite 2D orthogonal universeBeing given an initial generation called a seedThe following rules are applied simultaneously

A live cell having less than 2 live neighbors diesA live cell having 2 or 3 live neighbors lives A live cell having more than 3 neighbors diesA dead cell having 3 neighbors becomes alive

www.mozaicworks.com

Session 2: Evil pairing

Ping-pong pairingBe evil, write the bad implementation for test

www.mozaicworks.com

Session 3: Immutable

You cannot change the state of an object during execution

www.mozaicworks.com

Code retreat

1 hour Lunch

www.mozaicworks.com

Session 4: Universe wormholes

Both orthogonal and hexagonal universeTime passes differently

There is a pentagonal transient area between them

www.mozaicworks.com

Session 4: Universe wormholes

www.mozaicworks.com

Session 4: Universe wormholesThere are six 1st tier neighborsThere are six 2nd tier neighbors

Live 1st tier neighbors weight 1.0Live 2nd tier neighbors weight 0.3Each cell has a weighted sum of all

its 12 neighbors

www.mozaicworks.com

Session 4: Universe wormholes

Having an infinite 2D hexagonal universe

Being given an initial generation called a seedThese rules are applied simultaneously on tick

A live cell having less than 2.0 sum diesA live cell having 2.0 – 3.3 sum lives onA live cell having more than sum 3.3 dies

A dead cell having 2.3 - 2.9 sum becomes alive

www.mozaicworks.com

Session 5: Event driven

All the connections are just eventsNo other way of communication is allowed

www.mozaicworks.com

Session 6: New language

Try a new language

www.mozaicworks.com

Closing circle

1) How did you feel? 2) What did you learn today?

3) What will you do differently tomorrow?

www.mozaicworks.com

Code retreatWhy?

Learn through pairingExtend your comfort zone

PracticeExperiment

Learn new practices

www.mozaicworks.com

Contact me● Remote pair-programming● Unit testing workshop● Test driven development workshop● Clean code workshop● Refactoring workshop● Legacy code retreat● Working FAST and Safe with existing

code● Code retreat

www.mozaicworks.com

Code retreatExtend your mentoring & training capacity

Accelerate learning through communities of practice

Grow your functional leaders and top talents

http://www.mozaicworks.com

adrian.bolboaca@mozaicworks.com

@adibolb

Recommended