SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Code retreat 
www.mozaicworks.com
www.mozaicworks.com 
Me 
Adi Bolboaca 
Organizational & Technical 
Trainer & Coach
2009, First time outside US
Why? 
Learn through pairing 
Extend your comfort zone 
Practice 
Experiment 
Learn new practices 
www.mozaicworks.com
How? 
1 day of coding 
Choose a simple problem 
6 pairing partners 
On average 135 minutes of coding 
6 different constraints 
A lot of fun! 
www.mozaicworks.com
How it started 
CodeMash conference 2009 
Gary Bernhardt 
Patrick Welsh 
Nayan Hajratwala 
Corey Haines 
www.mozaicworks.com
How it started 
Repeatable 
Day-long 
Practice the fundamentals of programming 
Intense day of coding 
www.mozaicworks.com
Day structure 
15' introduction 
3 sessions of 45' coding + 15' retro&break 
1h lunch 
3 sessions of 45' coding + 15' retro&break 
15' closing circle 
www.mozaicworks.com
Principles 
Language agnostic 
Do not try to finish the problem 
Delete the code after each session 
Focus on practicing 
Experiment each session 
Have fun! 
www.mozaicworks.com
How to take advantage 
1. 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 
Computer 
Coding environment 
Testing framework 
Source control (git, svn, etc) 
www.mozaicworks.com
The four elements of simple design 
1) Passes its tests 
2) Minimizes duplication 
3) Maximizes clarity 
4) Has fewer elements 
www.mozaicworks.com
Conway's game of life 
Having an infinite 2D orthogonal universe 
Being given an initial generation called a seed 
The following rules are applied simultaneously 
A live cell having less than 2 live neighbors dies 
A live cell having 2 or 3 live neighbors lives 
A live cell having more than 3 neighbors dies 
A dead cell having 3 neighbors becomes alive 
www.mozaicworks.com
Session 1: Understand the problem 
Find a pair 
Choose a programming language 
Setup the environment 
Choose an entry point for the problem 
Start in 5 min 
www.mozaicworks.com
Conway's game of life 
Having an infinite 2D orthogonal universe 
Being given an initial generation called a seed 
The following rules are applied simultaneously 
A live cell having less than 2 live neighbors dies 
A live cell having 2 or 3 live neighbors lives 
A live cell having more than 3 neighbors dies 
A dead cell having 3 neighbors becomes alive 
www.mozaicworks.com
Session 2: Full test coverage 
100% test coverage during the session 
When test is below 100% the facilitator stops you 
from adding functionalities until the coverage is 
back at 100% 
All your tests must contain the assert 
Install a code coverage tool for your language 
www.mozaicworks.com
Session 3: Object calisthenics 
Concepts 
Use only one level of indentation per method 
Don’t use the else keyword 
Wrap all primitives and strings 
Use only one dot per line 
Don’t abbreviate 
Keep all entities small 
Don’t use any classes with more than two instance 
variables 
Use first-class collections 
www.mozaicworks.com 
Don’t use any getters / setters / properties
Code retreat 
1 hour Lunch 
www.mozaicworks.com
Session 4: Taking Baby Steps 
1) Initialize source control repository 
2) Start a timer for 2 minutes 
3) Write exactly one test 
a) Timer rings, the test is red, then revert and go to 2) 
b) The test is green before the timer rings, then commit 
4) Restart timer 
5) Refactor 
a) Timer rings, the refactoring is not complete then revert and 
restart 
b) The refactoring is complete before the timer rings, commit 
and go to 2) 
Obs. 
The timers must run continuously, don't stop to talk! www.mozaicworks.com
Session 5: Brutal Refactoring Game 
www.mozaicworks.com 
1) Lack of tests 
2) Name not from domain 
3) Name not expressing intent 
4) Unnecessary if 
5) Unnecessary else 
6) Duplication of constant 
7) Method does more than 
one thing 
8) Primitive obsession 
9) Feature envy 
10) Method too long (> 6 lines) 
11) Too many parameters (> 3) 
12) Test – not unitary 
13) Test – setup too complex 
14) Test – unclear Act 
15) Test - more than one assert 
16) Test – no assert 
17) Test – too many paths
Session 6: Choose a 
constraint 
Each pair to choose their own constraint 
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 retreat 
Why? 
Learn through pairing 
Extend your comfort zone 
Practice 
Experiment 
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 retreat 
Extend 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

Weitere ähnliche Inhalte

Andere mochten auch

Behind Agile Practices
Behind Agile PracticesBehind Agile Practices
Behind Agile PracticesAdi Bolboaca
 
Refactoring Dojo @AgileWorks Bucharest 21 May 2014
Refactoring Dojo @AgileWorks Bucharest 21 May 2014Refactoring Dojo @AgileWorks Bucharest 21 May 2014
Refactoring Dojo @AgileWorks Bucharest 21 May 2014Adi Bolboaca
 
Architecture for Disaster Resistant Systems @I TAKE Unconference 29 05 2015
Architecture for Disaster Resistant Systems @I TAKE Unconference 29 05 2015Architecture for Disaster Resistant Systems @I TAKE Unconference 29 05 2015
Architecture for Disaster Resistant Systems @I TAKE Unconference 29 05 2015Adi Bolboaca
 
Legacy Coderetreat @Budapest 2013 02 16
Legacy Coderetreat @Budapest 2013 02 16Legacy Coderetreat @Budapest 2013 02 16
Legacy Coderetreat @Budapest 2013 02 16Adi Bolboaca
 
Coderetreat Slides on the Global Day of Coderetreat, Bucharest, December 2013
Coderetreat Slides on the Global Day of Coderetreat, Bucharest, December 2013Coderetreat Slides on the Global Day of Coderetreat, Bucharest, December 2013
Coderetreat Slides on the Global Day of Coderetreat, Bucharest, December 2013Adi Bolboaca
 
Juego lucioni y crespo 3°b
Juego lucioni y crespo  3°bJuego lucioni y crespo  3°b
Juego lucioni y crespo 3°badriano0101
 
Sherlock Holmes and Pairing @Romanian Testing Conference 2014 05 15
Sherlock Holmes and Pairing @Romanian Testing Conference 2014 05 15Sherlock Holmes and Pairing @Romanian Testing Conference 2014 05 15
Sherlock Holmes and Pairing @Romanian Testing Conference 2014 05 15Adi Bolboaca
 
Welcome to roger’s park v.2
Welcome to roger’s park v.2Welcome to roger’s park v.2
Welcome to roger’s park v.2ssyversen
 
Terral River Service | Logistics Services
Terral River Service | Logistics ServicesTerral River Service | Logistics Services
Terral River Service | Logistics ServicesTerral River Service
 
Disclosure.waiver.gwc.2013
Disclosure.waiver.gwc.2013Disclosure.waiver.gwc.2013
Disclosure.waiver.gwc.2013amojiminiyi
 
TDD Dojo - Test Driven Development Coding Dojo
TDD Dojo - Test Driven Development Coding DojoTDD Dojo - Test Driven Development Coding Dojo
TDD Dojo - Test Driven Development Coding DojoRoberto Bettazzoni
 

Andere mochten auch (12)

Behind Agile Practices
Behind Agile PracticesBehind Agile Practices
Behind Agile Practices
 
Refactoring Dojo @AgileWorks Bucharest 21 May 2014
Refactoring Dojo @AgileWorks Bucharest 21 May 2014Refactoring Dojo @AgileWorks Bucharest 21 May 2014
Refactoring Dojo @AgileWorks Bucharest 21 May 2014
 
Architecture for Disaster Resistant Systems @I TAKE Unconference 29 05 2015
Architecture for Disaster Resistant Systems @I TAKE Unconference 29 05 2015Architecture for Disaster Resistant Systems @I TAKE Unconference 29 05 2015
Architecture for Disaster Resistant Systems @I TAKE Unconference 29 05 2015
 
Legacy Coderetreat @Budapest 2013 02 16
Legacy Coderetreat @Budapest 2013 02 16Legacy Coderetreat @Budapest 2013 02 16
Legacy Coderetreat @Budapest 2013 02 16
 
Coderetreat Slides on the Global Day of Coderetreat, Bucharest, December 2013
Coderetreat Slides on the Global Day of Coderetreat, Bucharest, December 2013Coderetreat Slides on the Global Day of Coderetreat, Bucharest, December 2013
Coderetreat Slides on the Global Day of Coderetreat, Bucharest, December 2013
 
Juego lucioni y crespo 3°b
Juego lucioni y crespo  3°bJuego lucioni y crespo  3°b
Juego lucioni y crespo 3°b
 
225 x195 layout mr
225 x195 layout mr225 x195 layout mr
225 x195 layout mr
 
Sherlock Holmes and Pairing @Romanian Testing Conference 2014 05 15
Sherlock Holmes and Pairing @Romanian Testing Conference 2014 05 15Sherlock Holmes and Pairing @Romanian Testing Conference 2014 05 15
Sherlock Holmes and Pairing @Romanian Testing Conference 2014 05 15
 
Welcome to roger’s park v.2
Welcome to roger’s park v.2Welcome to roger’s park v.2
Welcome to roger’s park v.2
 
Terral River Service | Logistics Services
Terral River Service | Logistics ServicesTerral River Service | Logistics Services
Terral River Service | Logistics Services
 
Disclosure.waiver.gwc.2013
Disclosure.waiver.gwc.2013Disclosure.waiver.gwc.2013
Disclosure.waiver.gwc.2013
 
TDD Dojo - Test Driven Development Coding Dojo
TDD Dojo - Test Driven Development Coding DojoTDD Dojo - Test Driven Development Coding Dojo
TDD Dojo - Test Driven Development Coding Dojo
 

Ähnlich wie Coderetreat @AgileFinland Helsinki 2014 11 13

Coderetreat @AgileWorks Bucharest 2012 07 06
Coderetreat @AgileWorks Bucharest 2012 07 06 Coderetreat @AgileWorks Bucharest 2012 07 06
Coderetreat @AgileWorks Bucharest 2012 07 06 Adi Bolboaca
 
Code retreat @AgileWorks Bucharest 7 September 2013
Code retreat @AgileWorks Bucharest 7 September 2013Code retreat @AgileWorks Bucharest 7 September 2013
Code retreat @AgileWorks Bucharest 7 September 2013Adi Bolboaca
 
Coderetreat @Sofia 2012 10 27
Coderetreat @Sofia 2012 10 27Coderetreat @Sofia 2012 10 27
Coderetreat @Sofia 2012 10 27Adi Bolboaca
 
Global Day of Coderetreat'14 - Istanbul Event
Global Day of Coderetreat'14 - Istanbul EventGlobal Day of Coderetreat'14 - Istanbul Event
Global Day of Coderetreat'14 - Istanbul EventLemi Orhan Ergin
 
Coderetreat - Practice to Master Your Crafts
Coderetreat - Practice to Master Your CraftsCoderetreat - Practice to Master Your Crafts
Coderetreat - Practice to Master Your CraftsLemi Orhan Ergin
 
Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)wolframkriesing
 
Introduction to TDD
Introduction to TDDIntroduction to TDD
Introduction to TDDNacho Cougil
 
Code retreat @BMW Car IT
Code retreat @BMW Car ITCode retreat @BMW Car IT
Code retreat @BMW Car ITSebastian Benz
 
Kata Your Way to SW Craftsmanship
Kata Your Way to SW CraftsmanshipKata Your Way to SW Craftsmanship
Kata Your Way to SW CraftsmanshipCamille Bell
 
Global Day of Coderetreat Munich 2017
Global Day of Coderetreat Munich 2017Global Day of Coderetreat Munich 2017
Global Day of Coderetreat Munich 2017David Völkel
 
Bye Bye Cowboy Coder Days! (Legacy Code & TDD)
Bye Bye Cowboy Coder Days! (Legacy Code & TDD)Bye Bye Cowboy Coder Days! (Legacy Code & TDD)
Bye Bye Cowboy Coder Days! (Legacy Code & TDD)Kaunas Java User Group
 
Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)Danny Preussler
 
Unit Testing Best Practices
Unit Testing Best PracticesUnit Testing Best Practices
Unit Testing Best PracticesTomaš Maconko
 
Adopting tdd in the workplace
Adopting tdd in the workplaceAdopting tdd in the workplace
Adopting tdd in the workplaceDonny Wals
 
Adopting tdd in the workplace
Adopting tdd in the workplaceAdopting tdd in the workplace
Adopting tdd in the workplaceDonny Wals
 
Perth codedojo 2-checkout
Perth codedojo 2-checkoutPerth codedojo 2-checkout
Perth codedojo 2-checkoutWill Webster
 
Code smells quality of code
Code smells   quality of codeCode smells   quality of code
Code smells quality of codeHasan Al Mamun
 
Test-Driven Development
 Test-Driven Development  Test-Driven Development
Test-Driven Development Amir Assad
 
QA Best Practices
QA  Best PracticesQA  Best Practices
QA Best PracticesJames York
 

Ähnlich wie Coderetreat @AgileFinland Helsinki 2014 11 13 (20)

Coderetreat @AgileWorks Bucharest 2012 07 06
Coderetreat @AgileWorks Bucharest 2012 07 06 Coderetreat @AgileWorks Bucharest 2012 07 06
Coderetreat @AgileWorks Bucharest 2012 07 06
 
Code retreat @AgileWorks Bucharest 7 September 2013
Code retreat @AgileWorks Bucharest 7 September 2013Code retreat @AgileWorks Bucharest 7 September 2013
Code retreat @AgileWorks Bucharest 7 September 2013
 
Coderetreat @Sofia 2012 10 27
Coderetreat @Sofia 2012 10 27Coderetreat @Sofia 2012 10 27
Coderetreat @Sofia 2012 10 27
 
Global Day of Coderetreat'14 - Istanbul Event
Global Day of Coderetreat'14 - Istanbul EventGlobal Day of Coderetreat'14 - Istanbul Event
Global Day of Coderetreat'14 - Istanbul Event
 
Coderetreat - Practice to Master Your Crafts
Coderetreat - Practice to Master Your CraftsCoderetreat - Practice to Master Your Crafts
Coderetreat - Practice to Master Your Crafts
 
Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)
 
Introduction to TDD
Introduction to TDDIntroduction to TDD
Introduction to TDD
 
Code retreat @BMW Car IT
Code retreat @BMW Car ITCode retreat @BMW Car IT
Code retreat @BMW Car IT
 
Kata Your Way to SW Craftsmanship
Kata Your Way to SW CraftsmanshipKata Your Way to SW Craftsmanship
Kata Your Way to SW Craftsmanship
 
Global Day of Coderetreat Munich 2017
Global Day of Coderetreat Munich 2017Global Day of Coderetreat Munich 2017
Global Day of Coderetreat Munich 2017
 
Bye Bye Cowboy Coder Days! (Legacy Code & TDD)
Bye Bye Cowboy Coder Days! (Legacy Code & TDD)Bye Bye Cowboy Coder Days! (Legacy Code & TDD)
Bye Bye Cowboy Coder Days! (Legacy Code & TDD)
 
Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)
 
Unit Testing Best Practices
Unit Testing Best PracticesUnit Testing Best Practices
Unit Testing Best Practices
 
Adopting tdd in the workplace
Adopting tdd in the workplaceAdopting tdd in the workplace
Adopting tdd in the workplace
 
Adopting tdd in the workplace
Adopting tdd in the workplaceAdopting tdd in the workplace
Adopting tdd in the workplace
 
Perth codedojo 2-checkout
Perth codedojo 2-checkoutPerth codedojo 2-checkout
Perth codedojo 2-checkout
 
Intro to TDD
Intro to TDDIntro to TDD
Intro to TDD
 
Code smells quality of code
Code smells   quality of codeCode smells   quality of code
Code smells quality of code
 
Test-Driven Development
 Test-Driven Development  Test-Driven Development
Test-Driven Development
 
QA Best Practices
QA  Best PracticesQA  Best Practices
QA Best Practices
 

Mehr von Adi Bolboaca

Evolutionary Design - NewCrafts Paris 18 May 2018
Evolutionary Design - NewCrafts Paris 18 May 2018Evolutionary Design - NewCrafts Paris 18 May 2018
Evolutionary Design - NewCrafts Paris 18 May 2018Adi Bolboaca
 
Stop Task Switching
Stop Task SwitchingStop Task Switching
Stop Task SwitchingAdi Bolboaca
 
Evolutionary Design: Take Only One Decision at a Time
Evolutionary Design: Take Only One Decision at a TimeEvolutionary Design: Take Only One Decision at a Time
Evolutionary Design: Take Only One Decision at a TimeAdi Bolboaca
 
Evolutionary Design - Refactoring Heuristics
Evolutionary Design - Refactoring HeuristicsEvolutionary Design - Refactoring Heuristics
Evolutionary Design - Refactoring HeuristicsAdi Bolboaca
 
TDD Mini Workshop @ Bucharest JUG 2014 04 24
TDD Mini Workshop @ Bucharest JUG 2014 04 24TDD Mini Workshop @ Bucharest JUG 2014 04 24
TDD Mini Workshop @ Bucharest JUG 2014 04 24Adi Bolboaca
 
Sherlock Holmes and Pairing @Bucharest JUG 2013 11 21
Sherlock Holmes and Pairing @Bucharest JUG 2013 11 21Sherlock Holmes and Pairing @Bucharest JUG 2013 11 21
Sherlock Holmes and Pairing @Bucharest JUG 2013 11 21Adi Bolboaca
 
Sherlock Holmes and Pairing @Wlidcard Conference 2013 09 13
Sherlock Holmes and Pairing @Wlidcard Conference 2013 09 13Sherlock Holmes and Pairing @Wlidcard Conference 2013 09 13
Sherlock Holmes and Pairing @Wlidcard Conference 2013 09 13Adi Bolboaca
 

Mehr von Adi Bolboaca (7)

Evolutionary Design - NewCrafts Paris 18 May 2018
Evolutionary Design - NewCrafts Paris 18 May 2018Evolutionary Design - NewCrafts Paris 18 May 2018
Evolutionary Design - NewCrafts Paris 18 May 2018
 
Stop Task Switching
Stop Task SwitchingStop Task Switching
Stop Task Switching
 
Evolutionary Design: Take Only One Decision at a Time
Evolutionary Design: Take Only One Decision at a TimeEvolutionary Design: Take Only One Decision at a Time
Evolutionary Design: Take Only One Decision at a Time
 
Evolutionary Design - Refactoring Heuristics
Evolutionary Design - Refactoring HeuristicsEvolutionary Design - Refactoring Heuristics
Evolutionary Design - Refactoring Heuristics
 
TDD Mini Workshop @ Bucharest JUG 2014 04 24
TDD Mini Workshop @ Bucharest JUG 2014 04 24TDD Mini Workshop @ Bucharest JUG 2014 04 24
TDD Mini Workshop @ Bucharest JUG 2014 04 24
 
Sherlock Holmes and Pairing @Bucharest JUG 2013 11 21
Sherlock Holmes and Pairing @Bucharest JUG 2013 11 21Sherlock Holmes and Pairing @Bucharest JUG 2013 11 21
Sherlock Holmes and Pairing @Bucharest JUG 2013 11 21
 
Sherlock Holmes and Pairing @Wlidcard Conference 2013 09 13
Sherlock Holmes and Pairing @Wlidcard Conference 2013 09 13Sherlock Holmes and Pairing @Wlidcard Conference 2013 09 13
Sherlock Holmes and Pairing @Wlidcard Conference 2013 09 13
 

Coderetreat @AgileFinland Helsinki 2014 11 13

  • 2. www.mozaicworks.com Me Adi Bolboaca Organizational & Technical Trainer & Coach
  • 3. 2009, First time outside US
  • 4. Why? Learn through pairing Extend your comfort zone Practice Experiment Learn new practices www.mozaicworks.com
  • 5. How? 1 day of coding Choose a simple problem 6 pairing partners On average 135 minutes of coding 6 different constraints A lot of fun! www.mozaicworks.com
  • 6. How it started CodeMash conference 2009 Gary Bernhardt Patrick Welsh Nayan Hajratwala Corey Haines www.mozaicworks.com
  • 7. How it started Repeatable Day-long Practice the fundamentals of programming Intense day of coding www.mozaicworks.com
  • 8. Day structure 15' introduction 3 sessions of 45' coding + 15' retro&break 1h lunch 3 sessions of 45' coding + 15' retro&break 15' closing circle www.mozaicworks.com
  • 9. Principles Language agnostic Do not try to finish the problem Delete the code after each session Focus on practicing Experiment each session Have fun! www.mozaicworks.com
  • 10. How to take advantage 1. 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
  • 11. Prerequisites Computer Coding environment Testing framework Source control (git, svn, etc) www.mozaicworks.com
  • 12. The four elements of simple design 1) Passes its tests 2) Minimizes duplication 3) Maximizes clarity 4) Has fewer elements www.mozaicworks.com
  • 13. Conway's game of life Having an infinite 2D orthogonal universe Being given an initial generation called a seed The following rules are applied simultaneously A live cell having less than 2 live neighbors dies A live cell having 2 or 3 live neighbors lives A live cell having more than 3 neighbors dies A dead cell having 3 neighbors becomes alive www.mozaicworks.com
  • 14. Session 1: Understand the problem Find a pair Choose a programming language Setup the environment Choose an entry point for the problem Start in 5 min www.mozaicworks.com
  • 15. Conway's game of life Having an infinite 2D orthogonal universe Being given an initial generation called a seed The following rules are applied simultaneously A live cell having less than 2 live neighbors dies A live cell having 2 or 3 live neighbors lives A live cell having more than 3 neighbors dies A dead cell having 3 neighbors becomes alive www.mozaicworks.com
  • 16. Session 2: Full test coverage 100% test coverage during the session When test is below 100% the facilitator stops you from adding functionalities until the coverage is back at 100% All your tests must contain the assert Install a code coverage tool for your language www.mozaicworks.com
  • 17. Session 3: Object calisthenics Concepts Use only one level of indentation per method Don’t use the else keyword Wrap all primitives and strings Use only one dot per line Don’t abbreviate Keep all entities small Don’t use any classes with more than two instance variables Use first-class collections www.mozaicworks.com Don’t use any getters / setters / properties
  • 18. Code retreat 1 hour Lunch www.mozaicworks.com
  • 19. Session 4: Taking Baby Steps 1) Initialize source control repository 2) Start a timer for 2 minutes 3) Write exactly one test a) Timer rings, the test is red, then revert and go to 2) b) The test is green before the timer rings, then commit 4) Restart timer 5) Refactor a) Timer rings, the refactoring is not complete then revert and restart b) The refactoring is complete before the timer rings, commit and go to 2) Obs. The timers must run continuously, don't stop to talk! www.mozaicworks.com
  • 20. Session 5: Brutal Refactoring Game www.mozaicworks.com 1) Lack of tests 2) Name not from domain 3) Name not expressing intent 4) Unnecessary if 5) Unnecessary else 6) Duplication of constant 7) Method does more than one thing 8) Primitive obsession 9) Feature envy 10) Method too long (> 6 lines) 11) Too many parameters (> 3) 12) Test – not unitary 13) Test – setup too complex 14) Test – unclear Act 15) Test - more than one assert 16) Test – no assert 17) Test – too many paths
  • 21. Session 6: Choose a constraint Each pair to choose their own constraint www.mozaicworks.com
  • 22. Closing circle 1) How did you feel? 2) What did you learn today? 3) What will you do differently tomorrow? www.mozaicworks.com
  • 23. Code retreat Why? Learn through pairing Extend your comfort zone Practice Experiment Learn new practices www.mozaicworks.com
  • 24. 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
  • 25. Code retreat Extend 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