Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Brutal Coding Constraints (ITAKE 2017)

620 views

Published on

Coding Dojo/Coding Workshop at ITAKE unconference 2017.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Brutal Coding Constraints (ITAKE 2017)

  1. 1. A Mozaic Works signature event Brutal Coding Constraints Peter Kofler, ‘Code Cop’ @codecopkofler (Martin Klose @martinklose) Copyright Peter Kofler, licensed under CC-BY.
  2. 2. Peter Kofler • Ph.D. (Appl. Math.) • Professional Software Developer for 15+ years • “fanatic about code quality” • Freelance Code Mentor PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  3. 3. I help development teams with PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY ● Professionalism ● Quality and Productivity ● Continuous Improvement
  4. 4. Mentoring PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY ● Pair Programming ● Programming Workshops ● Deliberate Practice, e.g. Coding Dojos
  5. 5. Developing Quality Software Developers
  6. 6. Brutal Constraints? Expectations?
  7. 7. Coding Dojo Mindset ● Safe place outside work ● We are here to learn ● Need to slow down ● Focus on doing it right ● Collaborative Game PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  8. 8. Nathaniel Pryce, http://www.doc.ic.ac.uk/~np2/teaching/ Red Green Refactor
  9. 9. Tic-Tac-Toe PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  10. 10. Assignment ● http://en.wikipedia.org/wiki/Tic-tac-toe ● Board 3x3 ● X plays first, O plays second ● Implement ● 2 Player Game ● Determine Winner ● AI Bot Player PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  11. 11. Constraints ● Challenges during a dojo or coderetreat ● Moving to the extreme is a way of learning ● Examples ● Missing Tool (No Mouse, …) ● Missing Feature (No IFs, …) PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  12. 12. “Brutal” Coding Constraint PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  13. 13. Brutal Coding Constraints 1. No Conditionals (also no ?: ) 2. No Loops 3. TDD as if You Meant It (optional) 4. No Naked Primitives (no Set/Map/List) 5. All functions return something 6. All data is immutable PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  14. 14. Try it!
  15. 15. Short Retrospective ● How did it work out? ● How do you feel? ● What did you learn and want to share with the group? PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  16. 16. Peter Kofler @codecopkofler www.code-cop.org and Martin Klose @martinklose www.klosebrothers.de PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  17. 17. CC Images ● Bruce http://www.flickr.com/photos/sherpas428/4350620602/ ● pairing http://www.flickr.com/photos/dav/94735395/ ● dojo http://www.flickr.com/photos/49715404@N00/3267627038/ ● game http://www.flickr.com/photos/benclinch/476855843/ ● Playmobil http://www.flickr.com/photos/williac/99551756/ ● wants you http://www.flickr.com/photos/shutter/105497713/ PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY

×