Slide 1

Slide 1 text

@sandimetz Jan 2014 Sandi Metz Rules Tuesday, January 14, 14

Slide 2

Slide 2 text

@sandimetz Jan 2014 taboos Tuesday, January 14, 14

Slide 3

Slide 3 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 4

Slide 4 text

@sandimetz Jan 2014 laws Tuesday, January 14, 14

Slide 5

Slide 5 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 6

Slide 6 text

@sandimetz Jan 2014 norms Tuesday, January 14, 14

Slide 7

Slide 7 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 8

Slide 8 text

@sandimetz Jan 2014 obedience? Tuesday, January 14, 14

Slide 9

Slide 9 text

@sandimetz Jan 2014 1 self interest Tuesday, January 14, 14

Slide 10

Slide 10 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 11

Slide 11 text

@sandimetz Jan 2014 2 identity status Tuesday, January 14, 14

Slide 12

Slide 12 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 13

Slide 13 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 14

Slide 14 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 15

Slide 15 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 16

Slide 16 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 17

Slide 17 text

@sandimetz Jan 2014 3 authority Tuesday, January 14, 14

Slide 18

Slide 18 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 19

Slide 19 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 20

Slide 20 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 21

Slide 21 text

@sandimetz Jan 2014 4 order Tuesday, January 14, 14

Slide 22

Slide 22 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 23

Slide 23 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 24

Slide 24 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 25

Slide 25 text

@sandimetz Jan 2014 5 social sanctions Tuesday, January 14, 14

Slide 26

Slide 26 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 27

Slide 27 text

@sandimetz Jan 2014 6 inherent sanctions Tuesday, January 14, 14

Slide 28

Slide 28 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 29

Slide 29 text

@sandimetz Jan 2014 7 ignorance Tuesday, January 14, 14

Slide 30

Slide 30 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 31

Slide 31 text

@sandimetz Jan 2014 8 habit Tuesday, January 14, 14

Slide 32

Slide 32 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 33

Slide 33 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 34

Slide 34 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 35

Slide 35 text

@sandimetz Jan 2014 taboos laws norms Tuesday, January 14, 14

Slide 36

Slide 36 text

@sandimetz Jan 2014 self interest identity/status authority order social sanctions inherent sanctions ignorance habit Tuesday, January 14, 14

Slide 37

Slide 37 text

@sandimetz Jan 2014 5 Rules Tuesday, January 14, 14

Slide 38

Slide 38 text

@sandimetz Jan 2014 5 Constraints Tuesday, January 14, 14

Slide 39

Slide 39 text

@sandimetz Jan 2014 100 lines per class Tuesday, January 14, 14

Slide 40

Slide 40 text

@sandimetz Jan 2014 5 lines per method Tuesday, January 14, 14

Slide 41

Slide 41 text

@sandimetz Jan 2014 4 parameters per method Tuesday, January 14, 14

Slide 42

Slide 42 text

@sandimetz Jan 2014 1 instance var per rails view Tuesday, January 14, 14

Slide 43

Slide 43 text

@sandimetz Jan 2014 2 class names per rails controller action Tuesday, January 14, 14

Slide 44

Slide 44 text

@sandimetz Jan 2014 2 class names per rails controller action (business, presenter) Tuesday, January 14, 14

Slide 45

Slide 45 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 46

Slide 46 text

@sandimetz Jan 2014 Dispensation? Tuesday, January 14, 14

Slide 47

Slide 47 text

@sandimetz Jan 2014 Dispensation? Convince your pair!* sdf *Rule #6 Tuesday, January 14, 14

Slide 48

Slide 48 text

@sandimetz Jan 2014 100 lines per class    5 lines per method    4 params per method    1 ivar per view    2 class names per controller action No More Than Tuesday, January 14, 14

Slide 49

Slide 49 text

@sandimetz Jan 2014 consequences Tuesday, January 14, 14

Slide 50

Slide 50 text

@sandimetz Jan 2014 bias towards small objects Tuesday, January 14, 14

Slide 51

Slide 51 text

@sandimetz Jan 2014 bias towards POROs Tuesday, January 14, 14

Slide 52

Slide 52 text

@sandimetz Jan 2014 bias away from dependencies Tuesday, January 14, 14

Slide 53

Slide 53 text

@sandimetz Jan 2014 rule qualities Tuesday, January 14, 14

Slide 54

Slide 54 text

@sandimetz Jan 2014 arbitrary cut-offs Tuesday, January 14, 14

Slide 55

Slide 55 text

@sandimetz Jan 2014 consistent goals Tuesday, January 14, 14

Slide 56

Slide 56 text

@sandimetz Jan 2014 tension Tuesday, January 14, 14

Slide 57

Slide 57 text

@sandimetz Jan 2014 objects Tuesday, January 14, 14

Slide 58

Slide 58 text

@sandimetz Jan 2014 objects vs Tuesday, January 14, 14

Slide 59

Slide 59 text

@sandimetz Jan 2014 objects vs procedures Tuesday, January 14, 14

Slide 60

Slide 60 text

@sandimetz Jan 2014 objects vs procedures Tuesday, January 14, 14

Slide 61

Slide 61 text

@sandimetz Jan 2014 objects vs procedures Tuesday, January 14, 14

Slide 62

Slide 62 text

@sandimetz Jan 2014 perspective Tuesday, January 14, 14

Slide 63

Slide 63 text

@sandimetz Jan 2014 Rails app Tuesday, January 14, 14

Slide 64

Slide 64 text

@sandimetz Jan 2014 Rails app vs Tuesday, January 14, 14

Slide 65

Slide 65 text

@sandimetz Jan 2014 Rails app vs application that uses Rails Tuesday, January 14, 14

Slide 66

Slide 66 text

@sandimetz Jan 2014 why follow rules? Tuesday, January 14, 14

Slide 67

Slide 67 text

@sandimetz Jan 2014 self interest Tuesday, January 14, 14

Slide 68

Slide 68 text

@sandimetz Jan 2014 signal others? Tuesday, January 14, 14

Slide 69

Slide 69 text

@sandimetz Jan 2014 research Tuesday, January 14, 14

Slide 70

Slide 70 text

@sandimetz Jan 2014 Erik O. Kimbrough Alexander Vostroknutov Tuesday, January 14, 14

Slide 71

Slide 71 text

@sandimetz Jan 2014 Using Rules to Screen for Cooperative Types: Rule-Following and Restraint in Common Pool Resource Systems Tuesday, January 14, 14

Slide 72

Slide 72 text

@sandimetz Jan 2014 Using Rules to Screen for Cooperative Types: Rule-Following and Restraint in Common Pool Resource Systems Tuesday, January 14, 14

Slide 73

Slide 73 text

@sandimetz Jan 2014 study Tuesday, January 14, 14

Slide 74

Slide 74 text

@sandimetz Jan 2014 study part 1 Tuesday, January 14, 14

Slide 75

Slide 75 text

@sandimetz Jan 2014 identify followers vs breakers Tuesday, January 14, 14

Slide 76

Slide 76 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 77

Slide 77 text

@sandimetz Jan 2014 Task: Walk---------> Tuesday, January 14, 14

Slide 78

Slide 78 text

@sandimetz Jan 2014 Task: Walk---------> Tuesday, January 14, 14

Slide 79

Slide 79 text

@sandimetz Jan 2014 Task: Walk---------> Tuesday, January 14, 14

Slide 80

Slide 80 text

@sandimetz Jan 2014 given 8€ Tuesday, January 14, 14

Slide 81

Slide 81 text

@sandimetz Jan 2014 lose .08€ per second Tuesday, January 14, 14

Slide 82

Slide 82 text

@sandimetz Jan 2014 red light = 5 seconds Tuesday, January 14, 14

Slide 83

Slide 83 text

@sandimetz Jan 2014 “Wait for green light.” Tuesday, January 14, 14

Slide 84

Slide 84 text

@sandimetz Jan 2014 some folks Tuesday, January 14, 14

Slide 85

Slide 85 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 86

Slide 86 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 87

Slide 87 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 88

Slide 88 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 89

Slide 89 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 90

Slide 90 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 91

Slide 91 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 92

Slide 92 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 93

Slide 93 text

@sandimetz Jan 2014 etc... Tuesday, January 14, 14

Slide 94

Slide 94 text

@sandimetz Jan 2014 other folks Tuesday, January 14, 14

Slide 95

Slide 95 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 96

Slide 96 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 97

Slide 97 text

@sandimetz Jan 2014 study part 2 Tuesday, January 14, 14

Slide 98

Slide 98 text

@sandimetz Jan 2014 separate into like groups Tuesday, January 14, 14

Slide 99

Slide 99 text

@sandimetz Jan 2014 play cooperative game Tuesday, January 14, 14

Slide 100

Slide 100 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 101

Slide 101 text

@sandimetz Jan 2014  4 players Tuesday, January 14, 14

Slide 102

Slide 102 text

@sandimetz Jan 2014  4 players 10 rounds Tuesday, January 14, 14

Slide 103

Slide 103 text

@sandimetz Jan 2014  4 players 10 rounds draw tokens Tuesday, January 14, 14

Slide 104

Slide 104 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 105

Slide 105 text

@sandimetz Jan 2014 Tuesday, January 14, 14

Slide 106

Slide 106 text

@sandimetz Jan 2014 ∞ Tuesday, January 14, 14

Slide 107

Slide 107 text

@sandimetz Jan 2014 1 1 1 1 ∞ Tuesday, January 14, 14

Slide 108

Slide 108 text

@sandimetz Jan 2014 1 1 1 1 ∞ Tuesday, January 14, 14

Slide 109

Slide 109 text

@sandimetz Jan 2014 1 1 1 1 360 ∞ Tuesday, January 14, 14

Slide 110

Slide 110 text

@sandimetz Jan 2014 1 1 1 1 360 2 ∞ Tuesday, January 14, 14

Slide 111

Slide 111 text

@sandimetz Jan 2014 each player draws 60 tokens per round Tuesday, January 14, 14

Slide 112

Slide 112 text

@sandimetz Jan 2014 Round 1 Tuesday, January 14, 14

Slide 113

Slide 113 text

@sandimetz Jan 2014 Round 1 120 Tuesday, January 14, 14

Slide 114

Slide 114 text

@sandimetz Jan 2014 120 Regeneration Tuesday, January 14, 14

Slide 115

Slide 115 text

@sandimetz Jan 2014 120 * .5 Regeneration Tuesday, January 14, 14

Slide 116

Slide 116 text

@sandimetz Jan 2014 180 Regeneration Tuesday, January 14, 14

Slide 117

Slide 117 text

@sandimetz Jan 2014 Regeneration Tuesday, January 14, 14

Slide 118

Slide 118 text

@sandimetz Jan 2014 Regeneration Tuesday, January 14, 14

Slide 119

Slide 119 text

@sandimetz Jan 2014 30 Regeneration Tuesday, January 14, 14

Slide 120

Slide 120 text

@sandimetz Jan 2014 30 Regeneration Tuesday, January 14, 14

Slide 121

Slide 121 text

@sandimetz Jan 2014 Round 2 180 remain?? Tuesday, January 14, 14

Slide 122

Slide 122 text

@sandimetz Jan 2014 Round 2 180 - 30 = 150 Tuesday, January 14, 14

Slide 123

Slide 123 text

@sandimetz Jan 2014 Round 2 180 - 30 = 150 150 / 4 = 37.5 Tuesday, January 14, 14

Slide 124

Slide 124 text

@sandimetz Jan 2014 Round 2 37! Tuesday, January 14, 14

Slide 125

Slide 125 text

@sandimetz Jan 2014 180 Round 2 1 1 1 1 2 Tuesday, January 14, 14

Slide 126

Slide 126 text

@sandimetz Jan 2014 Round 2 Tuesday, January 14, 14

Slide 127

Slide 127 text

@sandimetz Jan 2014 Round 2 32 Tuesday, January 14, 14

Slide 128

Slide 128 text

@sandimetz Jan 2014 32 Regeneration Tuesday, January 14, 14

Slide 129

Slide 129 text

@sandimetz Jan 2014 32 * .5 Regeneration Tuesday, January 14, 14

Slide 130

Slide 130 text

@sandimetz Jan 2014 48 Regeneration Tuesday, January 14, 14

Slide 131

Slide 131 text

@sandimetz Jan 2014 (current - 30) / 4 Tuesday, January 14, 14

Slide 132

Slide 132 text

@sandimetz Jan 2014 Round 3 4 Tuesday, January 14, 14

Slide 133

Slide 133 text

@sandimetz Jan 2014 results Tuesday, January 14, 14

Slide 134

Slide 134 text

@sandimetz Jan 2014 followers Tuesday, January 14, 14

Slide 135

Slide 135 text

@sandimetz Jan 2014 followers cooperate for mutual long term gain Tuesday, January 14, 14

Slide 136

Slide 136 text

@sandimetz Jan 2014 breakers Tuesday, January 14, 14

Slide 137

Slide 137 text

@sandimetz Jan 2014 breakers throw team under bus Tuesday, January 14, 14

Slide 138

Slide 138 text

@sandimetz Jan 2014 60! 60! 60! 60! Tuesday, January 14, 14

Slide 139

Slide 139 text

@sandimetz Jan 2014 mixed groups Tuesday, January 14, 14

Slide 140

Slide 140 text

@sandimetz Jan 2014 mixed groups behave like breaker groups Tuesday, January 14, 14

Slide 141

Slide 141 text

@sandimetz Jan 2014 30! 30! 30! 50! Tuesday, January 14, 14

Slide 142

Slide 142 text

@sandimetz Jan 2014 50! Tuesday, January 14, 14

Slide 143

Slide 143 text

@sandimetz Jan 2014 60! 60! 60! 50! Tuesday, January 14, 14

Slide 144

Slide 144 text

@sandimetz Jan 2014 consequences (reprise) Tuesday, January 14, 14

Slide 145

Slide 145 text

@sandimetz Jan 2014 bias towards small objects Tuesday, January 14, 14

Slide 146

Slide 146 text

@sandimetz Jan 2014 bias towards POROs Tuesday, January 14, 14

Slide 147

Slide 147 text

@sandimetz Jan 2014 bias away from dependencies Tuesday, January 14, 14

Slide 148

Slide 148 text

@sandimetz Jan 2014 bias towards collaboration Tuesday, January 14, 14

Slide 149

Slide 149 text

@sandimetz Jan 2014 bias towards collaboration Tuesday, January 14, 14

Slide 150

Slide 150 text

@sandimetz Jan 2014 self interest identity/status authority order social sanctions inherent sanctions ignorance habit Tuesday, January 14, 14

Slide 151

Slide 151 text

@sandimetz Jan 2014 9 signal cooperation Tuesday, January 14, 14

Slide 152

Slide 152 text

@sandimetz Jan 2014 rules matter Tuesday, January 14, 14

Slide 153

Slide 153 text

@sandimetz Jan 2014 write better software Tuesday, January 14, 14

Slide 154

Slide 154 text

@sandimetz Jan 2014 find trustworthy humans Tuesday, January 14, 14

Slide 155

Slide 155 text

@sandimetz Jan 2014 Thanks Tuesday, January 14, 14

Slide 156

Slide 156 text

@sandimetz Jan 2014 Credits http://www.flickr.com/photos/paul-w-locke/1792803096/ Cannibal Pumpkins http://www.flickr.com/photos/john_pp/3155064087/ 100K Speed limit sign on cliff with hiker http://www.flickr.com/photos/paphio/272769602/ Cops cheek kissing http://www.flickr.com/photos/pixel8-rcrd/5791227393/ kid winning contest http://www.flickr.com/photos/fluffy_steve/2537798898/ two goths http://www.flickr.com/photos/bobjagendorf/3064198102/ wall street shuffle http://www.flickr.com/photos/pdsphil/278060802/ rubyconf room 2006 http://www.flickr.com/photos/danicuki/6319528505/ konstanin and jose http://www.flickr.com/photos/lucasrenan/5142409437/ 3 ruby nerds, 10/26/2010 http://www.flickr.com/photos/85529750@N00/5200928365/ pope barcelona http://www.flickr.com/photos/nathaninsandiego/3783772122/ umpire http://www.flickr.com/photos/rrrodrigo/4664885112/ matz http://www.flickr.com/photos/85529750@N00/5200928365/ pope barcelona http://www.flickr.com/photos/nathaninsandiego/3783772122/ umpire http://www.flickr.com/photos/rrrodrigo/4664885112/ matz http://www.flickr.com/photos/z_wenjie/7820625836 pansies http://www.flickr.com/photos/haikugirl/4813516858/ trees http://www.flickr.com/photos/emsef/2407145479/ bus stop queue http://www.flickr.com/photos/theretrographer/9228096325/ rows of jail cells brightly lit Tuesday, January 14, 14

Slide 157

Slide 157 text

@sandimetz Jan 2014 Credits http://www.flickr.com/photos/jakebouma/102485568/ Car cliff warning http://www.flickr.com/photos/burge009/5215723703/ free tatoos http://www.flickr.com/photos/singularitysummit/6261754179/ one swarming robot http://www.flickr.com/photos/singularitysummit/6262287656/ swarming robots swarming http://www.flickr.com/photos/osakasteve/17178084/ swarming robots in a line http://en.wikipedia.org/wiki/Social_rule_system_theory Kinbrough, Erik O., Vosroknutov, Alexander (2012 draft), Using Rules to Screen for Cooperative Types: Rule-Following and Restraint in Common Pool Resource Systems Tuesday, January 14, 14

Slide 158

Slide 158 text

http://poodr.com Sandi Metz @sandimetz @sandimetz Jan 2014 Tuesday, January 14, 14

Slide 159

Slide 159 text

@sandimetz Jan 2014 3-day public OOP class, Durham March 12-14, 2014 http://sandimetz.com Tuesday, January 14, 14

Slide 160

Slide 160 text

@sandimetz Jan 2014 3-day public OOP class, Durham March 12-14, 2014 http://sandimetz.com * triangle.rb discount * http://bit.ly/mar2014_99bottles Tuesday, January 14, 14

Slide 161

Slide 161 text

@sandimetz Jan 2014 Questions? Tuesday, January 14, 14

Slide 162

Slide 162 text

http://poodr.com Sandi Metz @sandimetz @sandimetz Jan 2014 Tuesday, January 14, 14