Slide 1

Slide 1 text

@sandimetz Sep 2013 Sandi Metz Rules 1 Sunday, September 15, 13

Slide 2

Slide 2 text

@sandimetz Sep 2013 taboos 2 Sunday, September 15, 13

Slide 3

Slide 3 text

@sandimetz Sep 2013 3 Sunday, September 15, 13

Slide 4

Slide 4 text

@sandimetz Sep 2013 laws 4 Sunday, September 15, 13

Slide 5

Slide 5 text

@sandimetz Sep 2013 5 Sunday, September 15, 13

Slide 6

Slide 6 text

@sandimetz Sep 2013 norms 6 Sunday, September 15, 13

Slide 7

Slide 7 text

@sandimetz Sep 2013 7 Sunday, September 15, 13

Slide 8

Slide 8 text

@sandimetz Sep 2013 obedience? 8 Sunday, September 15, 13

Slide 9

Slide 9 text

@sandimetz Sep 2013 1 self interest 9 Sunday, September 15, 13

Slide 10

Slide 10 text

@sandimetz Sep 2013 10 Sunday, September 15, 13

Slide 11

Slide 11 text

@sandimetz Sep 2013 2 identity status 11 Sunday, September 15, 13

Slide 12

Slide 12 text

@sandimetz Sep 2013 12 Sunday, September 15, 13

Slide 13

Slide 13 text

@sandimetz Sep 2013 13 Sunday, September 15, 13

Slide 14

Slide 14 text

@sandimetz Sep 2013 14 Sunday, September 15, 13

Slide 15

Slide 15 text

@sandimetz Sep 2013 15 Sunday, September 15, 13

Slide 16

Slide 16 text

@sandimetz Sep 2013 16 Sunday, September 15, 13

Slide 17

Slide 17 text

@sandimetz Sep 2013 3 authority 17 Sunday, September 15, 13

Slide 18

Slide 18 text

@sandimetz Sep 2013 18 Sunday, September 15, 13

Slide 19

Slide 19 text

@sandimetz Sep 2013 19 Sunday, September 15, 13

Slide 20

Slide 20 text

@sandimetz Sep 2013 20 Sunday, September 15, 13

Slide 21

Slide 21 text

@sandimetz Sep 2013 4 order 21 Sunday, September 15, 13

Slide 22

Slide 22 text

@sandimetz Sep 2013 22 Sunday, September 15, 13

Slide 23

Slide 23 text

@sandimetz Sep 2013 23 Sunday, September 15, 13

Slide 24

Slide 24 text

@sandimetz Sep 2013 24 Sunday, September 15, 13

Slide 25

Slide 25 text

@sandimetz Sep 2013 5 social sanctions 25 Sunday, September 15, 13

Slide 26

Slide 26 text

@sandimetz Sep 2013 26 Sunday, September 15, 13

Slide 27

Slide 27 text

@sandimetz Sep 2013 6 inherent sanctions 27 Sunday, September 15, 13

Slide 28

Slide 28 text

@sandimetz Sep 2013 28 Sunday, September 15, 13

Slide 29

Slide 29 text

@sandimetz Sep 2013 7 ignorance 29 Sunday, September 15, 13

Slide 30

Slide 30 text

@sandimetz Sep 2013 30 Sunday, September 15, 13

Slide 31

Slide 31 text

@sandimetz Sep 2013 8 habit 31 Sunday, September 15, 13

Slide 32

Slide 32 text

@sandimetz Sep 2013 32 Sunday, September 15, 13

Slide 33

Slide 33 text

@sandimetz Sep 2013 33 Sunday, September 15, 13

Slide 34

Slide 34 text

@sandimetz Sep 2013 34 Sunday, September 15, 13

Slide 35

Slide 35 text

@sandimetz Sep 2013 taboos laws norms 35 Sunday, September 15, 13

Slide 36

Slide 36 text

@sandimetz Sep 2013 self interest identity/status authority order social sanctions inherent sanctions ignorance habit 36 Sunday, September 15, 13

Slide 37

Slide 37 text

@sandimetz Sep 2013 5 Rules 37 Sunday, September 15, 13

Slide 38

Slide 38 text

@sandimetz Sep 2013 5 Constraints 38 Sunday, September 15, 13

Slide 39

Slide 39 text

@sandimetz Sep 2013 100 lines per class 39 Sunday, September 15, 13

Slide 40

Slide 40 text

@sandimetz Sep 2013 5 lines per method 40 Sunday, September 15, 13

Slide 41

Slide 41 text

@sandimetz Sep 2013 4 parameters per method 41 Sunday, September 15, 13

Slide 42

Slide 42 text

@sandimetz Sep 2013 1 instance var per rails view 42 Sunday, September 15, 13

Slide 43

Slide 43 text

@sandimetz Sep 2013 2 class names per rails controller action 43 Sunday, September 15, 13

Slide 44

Slide 44 text

@sandimetz Sep 2013 2 class names per rails controller action (business, presenter) 43 Sunday, September 15, 13

Slide 45

Slide 45 text

@sandimetz Sep 2013 44 Sunday, September 15, 13

Slide 46

Slide 46 text

@sandimetz Sep 2013 Dispensation? 44 Sunday, September 15, 13

Slide 47

Slide 47 text

@sandimetz Sep 2013 Dispensation? Convince your pair!* sdf *Rule #6 44 Sunday, September 15, 13

Slide 48

Slide 48 text

@sandimetz Sep 2013 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 45 Sunday, September 15, 13

Slide 49

Slide 49 text

@sandimetz Sep 2013 consequences 46 Sunday, September 15, 13

Slide 50

Slide 50 text

@sandimetz Sep 2013 bias towards small objects 47 Sunday, September 15, 13

Slide 51

Slide 51 text

@sandimetz Sep 2013 bias towards POROs 48 Sunday, September 15, 13

Slide 52

Slide 52 text

@sandimetz Sep 2013 bias away from dependencies 49 Sunday, September 15, 13

Slide 53

Slide 53 text

@sandimetz Sep 2013 rule qualities 50 Sunday, September 15, 13

Slide 54

Slide 54 text

@sandimetz Sep 2013 arbitrary cut-offs 51 Sunday, September 15, 13

Slide 55

Slide 55 text

@sandimetz Sep 2013 consistent goals 52 Sunday, September 15, 13

Slide 56

Slide 56 text

@sandimetz Sep 2013 tension 53 Sunday, September 15, 13

Slide 57

Slide 57 text

@sandimetz Sep 2013 objects 54 Sunday, September 15, 13

Slide 58

Slide 58 text

@sandimetz Sep 2013 objects vs 55 Sunday, September 15, 13

Slide 59

Slide 59 text

@sandimetz Sep 2013 objects vs procedures 56 Sunday, September 15, 13

Slide 60

Slide 60 text

@sandimetz Sep 2013 objects vs procedures 57 Sunday, September 15, 13

Slide 61

Slide 61 text

@sandimetz Sep 2013 objects vs procedures 58 Sunday, September 15, 13

Slide 62

Slide 62 text

@sandimetz Sep 2013 perspective 59 Sunday, September 15, 13

Slide 63

Slide 63 text

@sandimetz Sep 2013 Rails app 60 Sunday, September 15, 13

Slide 64

Slide 64 text

@sandimetz Sep 2013 Rails app vs 61 Sunday, September 15, 13

Slide 65

Slide 65 text

@sandimetz Sep 2013 Rails app vs application that uses Rails 62 Sunday, September 15, 13

Slide 66

Slide 66 text

@sandimetz Sep 2013 why follow rules? 63 Sunday, September 15, 13

Slide 67

Slide 67 text

@sandimetz Sep 2013 self interest 64 Sunday, September 15, 13

Slide 68

Slide 68 text

@sandimetz Sep 2013 signal others? 65 Sunday, September 15, 13

Slide 69

Slide 69 text

@sandimetz Sep 2013 research 66 Sunday, September 15, 13

Slide 70

Slide 70 text

@sandimetz Sep 2013 Erik O. Kimbrough Alexander Vostroknutov 67 Sunday, September 15, 13

Slide 71

Slide 71 text

@sandimetz Sep 2013 Using Rules to Screen for Cooperative Types: Rule-Following and Restraint in Common Pool Resource Systems 68 Sunday, September 15, 13

Slide 72

Slide 72 text

@sandimetz Sep 2013 Using Rules to Screen for Cooperative Types: Rule-Following and Restraint in Common Pool Resource Systems 69 Sunday, September 15, 13

Slide 73

Slide 73 text

@sandimetz Sep 2013 study 70 Sunday, September 15, 13

Slide 74

Slide 74 text

@sandimetz Sep 2013 study part 1 71 Sunday, September 15, 13

Slide 75

Slide 75 text

@sandimetz Sep 2013 identify followers vs breakers 72 Sunday, September 15, 13

Slide 76

Slide 76 text

@sandimetz Sep 2013 73 Sunday, September 15, 13

Slide 77

Slide 77 text

@sandimetz Sep 2013 Task: Walk---------> 73 Sunday, September 15, 13

Slide 78

Slide 78 text

@sandimetz Sep 2013 Task: Walk---------> 73 Sunday, September 15, 13

Slide 79

Slide 79 text

@sandimetz Sep 2013 Task: Walk---------> 73 Sunday, September 15, 13

Slide 80

Slide 80 text

@sandimetz Sep 2013 given 8€ 74 Sunday, September 15, 13

Slide 81

Slide 81 text

@sandimetz Sep 2013 lose .08€ per second 75 Sunday, September 15, 13

Slide 82

Slide 82 text

@sandimetz Sep 2013 red light = 5 seconds 76 Sunday, September 15, 13

Slide 83

Slide 83 text

@sandimetz Sep 2013 “Wait for green light.” 77 Sunday, September 15, 13

Slide 84

Slide 84 text

@sandimetz Sep 2013 some folks 78 Sunday, September 15, 13

Slide 85

Slide 85 text

@sandimetz Sep 2013 79 Sunday, September 15, 13

Slide 86

Slide 86 text

@sandimetz Sep 2013 79 Sunday, September 15, 13

Slide 87

Slide 87 text

@sandimetz Sep 2013 80 Sunday, September 15, 13

Slide 88

Slide 88 text

@sandimetz Sep 2013 80 Sunday, September 15, 13

Slide 89

Slide 89 text

@sandimetz Sep 2013 81 Sunday, September 15, 13

Slide 90

Slide 90 text

@sandimetz Sep 2013 82 Sunday, September 15, 13

Slide 91

Slide 91 text

@sandimetz Sep 2013 82 Sunday, September 15, 13

Slide 92

Slide 92 text

@sandimetz Sep 2013 83 Sunday, September 15, 13

Slide 93

Slide 93 text

@sandimetz Sep 2013 etc... 83 Sunday, September 15, 13

Slide 94

Slide 94 text

@sandimetz Sep 2013 other folks 84 Sunday, September 15, 13

Slide 95

Slide 95 text

@sandimetz Sep 2013 85 Sunday, September 15, 13

Slide 96

Slide 96 text

@sandimetz Sep 2013 85 Sunday, September 15, 13

Slide 97

Slide 97 text

@sandimetz Sep 2013 study part 2 86 Sunday, September 15, 13

Slide 98

Slide 98 text

@sandimetz Sep 2013 separate into like groups 87 Sunday, September 15, 13

Slide 99

Slide 99 text

@sandimetz Sep 2013 play cooperative game 88 Sunday, September 15, 13

Slide 100

Slide 100 text

@sandimetz Sep 2013 89 Sunday, September 15, 13

Slide 101

Slide 101 text

@sandimetz Sep 2013  4 players 89 Sunday, September 15, 13

Slide 102

Slide 102 text

@sandimetz Sep 2013  4 players 10 rounds 89 Sunday, September 15, 13

Slide 103

Slide 103 text

@sandimetz Sep 2013  4 players 10 rounds draw tokens 89 Sunday, September 15, 13

Slide 104

Slide 104 text

@sandimetz Sep 2013 90 Sunday, September 15, 13

Slide 105

Slide 105 text

@sandimetz Sep 2013 90 Sunday, September 15, 13

Slide 106

Slide 106 text

@sandimetz Sep 2013 ∞ 90 Sunday, September 15, 13

Slide 107

Slide 107 text

@sandimetz Sep 2013 1 1 1 1 ∞ 90 Sunday, September 15, 13

Slide 108

Slide 108 text

@sandimetz Sep 2013 1 1 1 1 ∞ 90 Sunday, September 15, 13

Slide 109

Slide 109 text

@sandimetz Sep 2013 1 1 1 1 360 ∞ 90 Sunday, September 15, 13

Slide 110

Slide 110 text

@sandimetz Sep 2013 1 1 1 1 360 2 ∞ 90 Sunday, September 15, 13

Slide 111

Slide 111 text

@sandimetz Sep 2013 each player draws 60 tokens per round 91 Sunday, September 15, 13

Slide 112

Slide 112 text

@sandimetz Sep 2013 Round 1 92 Sunday, September 15, 13

Slide 113

Slide 113 text

@sandimetz Sep 2013 Round 1 120 92 Sunday, September 15, 13

Slide 114

Slide 114 text

@sandimetz Sep 2013 120 Regeneration 93 Sunday, September 15, 13

Slide 115

Slide 115 text

@sandimetz Sep 2013 120 * .5 Regeneration 94 Sunday, September 15, 13

Slide 116

Slide 116 text

@sandimetz Sep 2013 180 Regeneration 95 Sunday, September 15, 13

Slide 117

Slide 117 text

@sandimetz Sep 2013 Regeneration 96 Sunday, September 15, 13

Slide 118

Slide 118 text

@sandimetz Sep 2013 Regeneration 96 Sunday, September 15, 13

Slide 119

Slide 119 text

@sandimetz Sep 2013 30 Regeneration 97 Sunday, September 15, 13

Slide 120

Slide 120 text

@sandimetz Sep 2013 30 Regeneration 97 Sunday, September 15, 13

Slide 121

Slide 121 text

@sandimetz Sep 2013 Round 2 180 remain?? 98 Sunday, September 15, 13

Slide 122

Slide 122 text

@sandimetz Sep 2013 Round 2 180 - 30 = 150 99 Sunday, September 15, 13

Slide 123

Slide 123 text

@sandimetz Sep 2013 Round 2 180 - 30 = 150 150 / 4 = 37.5 100 Sunday, September 15, 13

Slide 124

Slide 124 text

@sandimetz Sep 2013 Round 2 37! 101 Sunday, September 15, 13

Slide 125

Slide 125 text

@sandimetz Sep 2013 180 Round 2 1 1 1 1 2 102 Sunday, September 15, 13

Slide 126

Slide 126 text

@sandimetz Sep 2013 Round 2 103 Sunday, September 15, 13

Slide 127

Slide 127 text

@sandimetz Sep 2013 Round 2 32 103 Sunday, September 15, 13

Slide 128

Slide 128 text

@sandimetz Sep 2013 32 Regeneration 104 Sunday, September 15, 13

Slide 129

Slide 129 text

@sandimetz Sep 2013 32 * .5 Regeneration 105 Sunday, September 15, 13

Slide 130

Slide 130 text

@sandimetz Sep 2013 48 Regeneration 106 Sunday, September 15, 13

Slide 131

Slide 131 text

@sandimetz Sep 2013 48 Regeneration Etc... 106 Sunday, September 15, 13

Slide 132

Slide 132 text

@sandimetz Sep 2013 (current - 30) / 4 107 Sunday, September 15, 13

Slide 133

Slide 133 text

@sandimetz Sep 2013 results 108 Sunday, September 15, 13

Slide 134

Slide 134 text

@sandimetz Sep 2013 followers 109 Sunday, September 15, 13

Slide 135

Slide 135 text

@sandimetz Sep 2013 followers cooperate for mutual long term gain 109 Sunday, September 15, 13

Slide 136

Slide 136 text

@sandimetz Sep 2013 breakers 110 Sunday, September 15, 13

Slide 137

Slide 137 text

@sandimetz Sep 2013 breakers throw team under bus 110 Sunday, September 15, 13

Slide 138

Slide 138 text

@sandimetz Sep 2013 60! 60! 60! 60! 111 Sunday, September 15, 13

Slide 139

Slide 139 text

@sandimetz Sep 2013 mixed groups 112 Sunday, September 15, 13

Slide 140

Slide 140 text

@sandimetz Sep 2013 mixed groups behave like breaker groups 112 Sunday, September 15, 13

Slide 141

Slide 141 text

@sandimetz Sep 2013 30! 30! 30! 50! 113 Sunday, September 15, 13

Slide 142

Slide 142 text

@sandimetz Sep 2013 50! 114 Sunday, September 15, 13

Slide 143

Slide 143 text

@sandimetz Sep 2013 60! 60! 60! 50! 114 Sunday, September 15, 13

Slide 144

Slide 144 text

@sandimetz Sep 2013 consequences (reprise) 115 Sunday, September 15, 13

Slide 145

Slide 145 text

@sandimetz Sep 2013 bias towards small objects 116 Sunday, September 15, 13

Slide 146

Slide 146 text

@sandimetz Sep 2013 bias towards POROs 117 Sunday, September 15, 13

Slide 147

Slide 147 text

@sandimetz Sep 2013 bias away from dependencies 118 Sunday, September 15, 13

Slide 148

Slide 148 text

@sandimetz Sep 2013 bias towards collaboration 119 Sunday, September 15, 13

Slide 149

Slide 149 text

@sandimetz Sep 2013 bias towards collaboration 119 Sunday, September 15, 13

Slide 150

Slide 150 text

@sandimetz Sep 2013 self interest identity/status authority order social sanctions inherent sanctions ignorance habit 120 Sunday, September 15, 13

Slide 151

Slide 151 text

@sandimetz Sep 2013 9 signal cooperation 121 Sunday, September 15, 13

Slide 152

Slide 152 text

@sandimetz Sep 2013 rules matter 122 Sunday, September 15, 13

Slide 153

Slide 153 text

@sandimetz Sep 2013 write better software 123 Sunday, September 15, 13

Slide 154

Slide 154 text

@sandimetz Sep 2013 find trustworthy humans 124 Sunday, September 15, 13

Slide 155

Slide 155 text

@sandimetz Sep 2013 Thanks 125 Sunday, September 15, 13

Slide 156

Slide 156 text

@sandimetz Sep 2013 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 126 Sunday, September 15, 13

Slide 157

Slide 157 text

@sandimetz Sep 2013 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 127 Sunday, September 15, 13

Slide 158

Slide 158 text

http://poodr.com Sandi Metz @sandimetz @sandimetz Sep 2013 128 Sunday, September 15, 13

Slide 159

Slide 159 text

@sandimetz Sep 2013 Questions? 129 Sunday, September 15, 13

Slide 160

Slide 160 text

http://poodr.com Sandi Metz @sandimetz @sandimetz Sep 2013 130 Sunday, September 15, 13