Tomorrow on 18th November 2017 is Global Day of Code Retreat 2017 #GDCR17 This will be my 3rd year in a row to attend and practice my craft. After 13 years of experience writing code it still feels like a ride in a theme park to attend Global Day of Code Retreat. In year 2015 I copied all the constraints from the website www.coderetreat.org
Here are the 75 unique constraints that was used on that day
- Introduction to the problem
- Pair Programming
- Test Driven Development
- Small methods (<=5)
- No side-effect methods.
- No if-else
- No conditional statements
- No loop
- Ping Pong
- No constraints
- Babysteps
- Mute ping-pong
- Brutal refactoring game
- Zombies!
- Tell don’t ask
- Hexagonal board
- Simplicity
- No boolean flag
- No array
- Explore, Stabilize, Implement
- Pure Functions Only
- One Level of Indentation Per Method.
- No TDD, Honeymoon round
- TDD, keyboard only
- On paper
- TDD focus on behaviour
- TDD Like you mean it
- Code swapping
- No language primitives across method boundries.
- Make a test list No code in first 0 minutes, make a list of tests, then decide in which order to implement them
- No touchpad, no mouse.
- Intention, naming convention.
- Extreme OO
- First 0 minutes paper only, no arrays and no lists
- Acceptance tests only
- Use no matrix
- No Return statements!
- Pair programing, 0 min test paper only
- Fixed roles one writes tests, the other implements and swap 0 minutes before end all of the sudden 😉
- Maxlines per method
- No predefined datastructures
- Four Rules of Simple Design
- Closing Circle
- Commit every 5 minutes, delete the rest Reduce the time to 3 minutes Last round 1 minute
- Taking baby steps write exactly one test within 2 minutes and commit it if you are in time, if not revert the changes
- Clean code
- Everything is represented by an immutable object, objects cannot change state.
- Primitive Revulsion.
- Three Laws Compliant.
- Total Ego Annihilation.
- So Fresh, So Clean.
- Cells talking to cells De-emphasis on the GoL world / board.
- Pairs can only communicate via tests
- Round Robin dojo
- Legacy code! This is a longer where devs unknowingly write untested legacy code with no restraints and halfway through they need to switch partners and maintain and refactor that code
- Driver gets keyboard
- Shortcuts are not allowed (e.g. ALT-TAB)
- Muted pair!
- Switch to 3 dimensions
- Object Calisthenics
- TDD + Simplicity + Immutable + Hive Board
- Noun Avoidance / Verb It Up, Verby Mc. Verberson
- Procedural (no tests) OR immutable objects
- Mob programming (basic Game of Life, no other constraints)
- Hive board (cell only has 6 neighbors instead of 8, a grid can be represented as a beehive) + mute mode (nobody can talk)
- 4 Verbs Only
- With graph constraints
- Extreme OO
- Evil Coder!
- Tell, don’t ask Only void methods
- Extract ’til you drop
- Exploratory testing
- Healing grid
- Let’s see how many alive cells you have on a 100X100 matrix after 1000 iterations ?
- No exceptions