Confessions of an Automation Addict

A presentation at Øredev in November 2016 in Malmö, Sweden by Holly Cummins

Slide 1

Slide 1

Holly Cummins @holly_cummins © 2013 IBM Corporation

Slide 2

Slide 2

#automationconfessions @holly_cummins

Slide 3

Slide 3

? #automationconfessions @holly_cummins

Slide 4

Slide 4

#automationconfessions @holly_cummins

Slide 5

Slide 5

#automationconfessions @holly_cummins

Slide 6

Slide 6

Share yours too. #automationconfessions #automationconfessions @holly_cummins

Slide 7

Slide 7

#automationconfessions @holly_cummins

Slide 8

Slide 8

As developers, we have the power to automate. #automationconfessions @holly_cummins

Slide 9

Slide 9

As developers, we have the power to automate. And that’s cool. #automationconfessions @holly_cummins

Slide 10

Slide 10

#automationconfessions @holly_cummins

Slide 11

Slide 11

My team #automationconfessions @holly_cummins

Slide 12

Slide 12

… My team #automationconfessions @holly_cummins

Slide 13

Slide 13

Can that be automated? … My team #automationconfessions @holly_cummins

Slide 14

Slide 14

Alasdair #automationconfessions @holly_cummins

Slide 15

Slide 15

Look at my cool solution! Alasdair #automationconfessions @holly_cummins

Slide 16

Slide 16

Holly, I give you all the worst jobs. Look at my cool solution! Alasdair #automationconfessions @holly_cummins

Slide 17

Slide 17

Holly, I give you all the worst jobs. Look at my cool solution! ?! Why?? Alasdair #automationconfessions @holly_cummins

Slide 18

Slide 18

Holly, I give you all the worst jobs. I know you’ll automate them. Look at my cool solution! ?! Why?? Alasdair #automationconfessions @holly_cummins

Slide 19

Slide 19

It’s not just me. #automationconfessions @holly_cummins

Slide 20

Slide 20

It’s not just me. [Human history has been slightly simplified. Timeline is not to scale.] #automationconfessions @holly_cummins

Slide 21

Slide 21

It’s not just me. [Human history has been slightly simplified. Timeline is not to scale.] #automationconfessions @holly_cummins

Slide 22

Slide 22

It’s not just me. 1764 Spinning Jenny [Human history has been slightly simplified. Timeline is not to scale.] #automationconfessions @holly_cummins

Slide 23

Slide 23

It’s not just me. 1764 Spinning Jenny [Human history has been slightly simplified. Timeline is not to scale.] #automationconfessions @holly_cummins

Slide 24

Slide 24

It’s not just me. Washing Machine 1858 1764 Spinning Jenny [Human history has been slightly simplified. Timeline is not to scale.] #automationconfessions @holly_cummins

Slide 25

Slide 25

It’s not just me. Washing Machine 1858 1764 Spinning Jenny [Human history has been slightly simplified. Timeline is not to scale.] #automationconfessions @holly_cummins

Slide 26

Slide 26

It’s not just me. Washing Machine 1858 1764 Spinning Jenny 1941 Electromechanical Computer [Human history has been slightly simplified. Timeline is not to scale.] #automationconfessions @holly_cummins

Slide 27

Slide 27

It’s not just me. Washing Machine 1858 1764 Spinning Jenny 1941 Electromechanical Computer [Human history has been slightly simplified. Timeline is not to scale.] #automationconfessions @holly_cummins

Slide 28

Slide 28

It’s not just me. Washing Machine 1858 1764 Spinning Jenny Chef 2012 1941 Electromechanical Computer [Human history has been slightly simplified. Timeline is not to scale.] #automationconfessions @holly_cummins

Slide 29

Slide 29

It’s not just me. Washing Machine 1858 1764 Spinning Jenny Chef 2012 1941 Electromechanical Computer [Human history has been slightly simplified. Timeline is not to scale.] #automationconfessions @holly_cummins

Slide 30

Slide 30

It’s not just me. Washing Machine 1858 1764 Spinning Jenny Chef 2012 Docker 2014 1941 Electromechanical Computer [Human history has been slightly simplified. Timeline is not to scale.] #automationconfessions @holly_cummins

Slide 31

Slide 31

It’s not just me. More and more is automated. Washing Machine 1858 1764 Spinning Jenny Chef 2012 Docker 2014 1941 Electromechanical Computer [Human history has been slightly simplified. Timeline is not to scale.] #automationconfessions @holly_cummins

Slide 32

Slide 32

So are we living the dream? #automationconfessions @holly_cummins

Slide 33

Slide 33

So are we living the dream? Well. Not quite. #automationconfessions @holly_cummins

Slide 34

Slide 34

#automationconfessions @holly_cummins

Slide 35

Slide 35

Yes, that’s all the exact same image. #automationconfessions @holly_cummins

Slide 36

Slide 36

Why automate? Automate because we are lazy #automationconfessions @holly_cummins

Slide 37

Slide 37

#automationconfessions @holly_cummins

Slide 38

Slide 38

#automationconfessions @holly_cummins

Slide 39

Slide 39

My manager #automationconfessions @holly_cummins

Slide 40

Slide 40

“Sustainable” My manager #automationconfessions @holly_cummins

Slide 41

Slide 41

“Sustainable” Automate for sustainability Automate for efficiency #automationconfessions My manager @holly_cummins

Slide 42

Slide 42

If it’s boring, automate it. #automationconfessions @holly_cummins

Slide 43

Slide 43

Server farms #automationconfessions @holly_cummins

Slide 44

Slide 44

Server farms #automationconfessions @holly_cummins

Slide 45

Slide 45

Server farms Treat your servers like cattle, not like pets. #automationconfessions @holly_cummins

Slide 46

Slide 46

Slide 47

Slide 47

Slide 48

Slide 48

Slide 49

Slide 49

Scale The more of you there are, the more you need to invest in automation #automationconfessions @holly_cummins

Slide 50

Slide 50

Do a task once. Do it a second time and take notes. Do it a third time, automate. #automationconfessions @holly_cummins

Slide 51

Slide 51

Why Automate? #automationconfessions @holly_cummins

Slide 52

Slide 52

Why Automate? #automationconfessions @holly_cummins

Slide 53

Slide 53

Why Automate? Automate because you care #automationconfessions @holly_cummins

Slide 54

Slide 54

If you care about it, automate it. #automationconfessions @holly_cummins

Slide 55

Slide 55

Why Automate? Automate because you care that it happens at all #automationconfessions @holly_cummins

Slide 56

Slide 56

Why Automate? Automate because you care that it happens at all #automationconfessions @holly_cummins

Slide 57

Slide 57

Marvin #automationconfessions @holly_cummins

Slide 58

Slide 58

Marvin Build breaks (including test failures) should be reverted from the stream #automationconfessions @holly_cummins

Slide 59

Slide 59

Marvin Build breaks (including test failures) should be reverted from the stream No one wanted to be the one who did it #automationconfessions @holly_cummins

Slide 60

Slide 60

Marvin Build breaks (including test failures) should be reverted from the stream No one wanted to be the one who did it It didn’t happen #automationconfessions @holly_cummins

Slide 61

Slide 61

Marvin Build breaks (including test failures) should be reverted from the stream No one wanted to be the one who did it It didn’t happen Solution: Automate! #automationconfessions @holly_cummins

Slide 62

Slide 62

Marvin Build breaks (including test failures) should be reverted from the stream No one wanted to be the one who did it It didn’t happen Solution: Automate! #automationconfessions @holly_cummins

Slide 63

Slide 63

End of iteration demos #automationconfessions @holly_cummins

Slide 64

Slide 64

End of iteration demos Automatic generation on story close #automationconfessions @holly_cummins

Slide 65

Slide 65

Slide 66

Slide 66

Automating to improve the outcome rather than to save effort:

Slide 67

Slide 67

Automating to improve the outcome rather than to save effort:

Slide 68

Slide 68

Automating to improve the outcome rather than to save effort: Write the Rational Team Concert plugin (one-off)

Slide 69

Slide 69

Automating to improve the outcome rather than to save effort: Write the Rational Team Concert plugin (one-off) Close the demo task (every story)

Slide 70

Slide 70

Automating to improve the outcome rather than to save effort: Write the Rational Team Concert plugin (one-off) Close the demo task (every story) Actually do the demo (every story)

Slide 71

Slide 71

Automating to improve the outcome rather than to save effort: Write the Rational Team Concert plugin (one-off) Close the demo task (every story) Actually do the demo (every story) But … we get guaranteed demos now.

Slide 72

Slide 72

Why Automate? Automate because you care that it’s done right #automationconfessions @holly_cummins

Slide 73

Slide 73

Why Automate? Automate because you care that it’s done right #automationconfessions @holly_cummins

Slide 74

Slide 74

Linting #automationconfessions @holly_cummins

Slide 75

Slide 75

Linting A computer can notice problems that a human can’t (like misspelled variable names) #automationconfessions @holly_cummins

Slide 76

Slide 76

Linting We Findbugs A computer can notice problems that a human can’t (like misspelled variable names) #automationconfessions @holly_cummins

Slide 77

Slide 77

Deployment #automationconfessions @holly_cummins

Slide 78

Slide 78

Deployment #automationconfessions @holly_cummins

Slide 79

Slide 79

Deployment Should be easy, right? #automationconfessions @holly_cummins

Slide 80

Slide 80

Deployment Should be easy, right? Always one step that gets forgotten … #automationconfessions @holly_cummins

Slide 81

Slide 81

Swapping a Watson Service #automationconfessions @holly_cummins

Slide 82

Slide 82

Swapping a Watson Service Four weeks ago: 3 configuration errors in one week. Oops. #automationconfessions @holly_cummins

Slide 83

Slide 83

Swapping a Watson Service Four weeks ago: 3 configuration errors in one week. Oops. { “name”: “nlc-classifiers”, “credentials”: { “classifiers”:[ {“classifier_id”:”004a12x110-nlc-922”,”includes”:[null],”excludes”:null}, {“classifier_id”:”e82f62x108-nlc-2895”,”includes”:[null],”excludes”:null}, {“classifier_id”:”e3ca6dx107-nlc-3412”,”includes”:[null],”excludes”:null}, {“classifier_id”:”e3ca6dx107-nlc-3413”,”includes”:[“AAA”],”excludes”:null}, {“classifier_id”:”8aff06x106-nlc-11119”,”includes”:[“EEE”],”excludes”:[“BRD”,”FRP”]}, {“classifier_id”:”e82f62x108-nlc-2896”,”includes”:[“XYZ”,”ABC”],”excludes”:null}, {“classifier_id”:”0877dax111-nlc-558”,”includes”:[“WWW”,”SSS”,”YYY”,”FFF”],”excludes”:null}, {“classifier_id”:”8aff06x106-nlc-11121”,”includes”:[“BBB”],”excludes”:null} ] }} #automationconfessions @holly_cummins

Slide 84

Slide 84

Why automate?

Slide 85

Slide 85

Why automate?

Slide 86

Slide 86

Why automate? Automate because it’s fun

Slide 87

Slide 87

Why not automate thanks (for everything!), xkcd.com

Slide 88

Slide 88

Why not automate? Ross

Slide 89

Slide 89

t a d a m o Why not s t I ge I e m i t h c u m w ho automate? d a h I f i e v a s d l cou . e m i t e mor Ross

Slide 90

Slide 90

t a d a m o Why not s t I ge I e m i t h c u m w ho automate? d a h I f i e v a s d l cou . e m i t e mor Ross’s bootstraps Ross

Slide 91

Slide 91

t a d a m o Why not s t I ge I e m i t h c u m w ho automate? d a h I f i e v a s d l cou . e m i t e mor The automation paradox Ross’s bootstraps Ross

Slide 92

Slide 92

Fixing a classpath #automationconfessions @holly_cummins

Slide 93

Slide 93

#automationconfessions @holly_cummins

Slide 94

Slide 94

find something | exec something {} + ; ?! #automationconfessions @holly_cummins

Slide 95

Slide 95

find something | exec something {} + ; ?! for … then sed something; mv $i.bak $i; … ? #automationconfessions @holly_cummins

Slide 96

Slide 96

find something | exec something {} + ; ?! for … then sed something; mv $i.bak $i; … ? sedder.sh and dosed.sh and … ? #automationconfessions @holly_cummins

Slide 97

Slide 97

find something | exec something {} + ; ?! for … then sed something; mv $i.bak $i; … ? sedder.sh and dosed.sh and … ? perl … um .. something? #automationconfessions @holly_cummins

Slide 98

Slide 98

find something | exec something {} + ; ?! for … then sed something; mv $i.bak $i; … ? sedder.sh and dosed.sh and … ? perl … um .. something? #automationconfessions @holly_cummins

Slide 99

Slide 99

#automationconfessions @holly_cummins

Slide 100

Slide 100

Fixing 26 classpaths #automationconfessions @holly_cummins

Slide 101

Slide 101

Fixing 26 classpaths #automationconfessions @holly_cummins

Slide 102

Slide 102

Epilogue perl -pi -w -e ‘s/SEARCH_FOR/REPLACE_WITH/g;’ *.txt #automationconfessions @holly_cummins

Slide 103

Slide 103

Andrew #automationconfessions 14:29, November 9th. Holly @holly_cummins

Slide 104

Slide 104

Holly, you need to stop working on automating this process. Andrew #automationconfessions 14:29, November 9th. Holly @holly_cummins

Slide 105

Slide 105

Holly, you need to stop working on automating this process. Andrew #automationconfessions 14:29, November 9th. But why?! Holly @holly_cummins

Slide 106

Slide 106

Holly, you need to stop working on automating this process. But why?! The contract finished last week. We’re not working for that client anymore. Andrew #automationconfessions 14:29, November 9th. Holly @holly_cummins

Slide 107

Slide 107

Holly, you need to stop working on automating this process. The contract finished last week. We’re not working for that client anymore. Andrew #automationconfessions But why?! But … there’s stuff still to automate. 14:29, November 9th. Holly @holly_cummins

Slide 108

Slide 108

The Dream Superhelpful automation automaton

Slide 109

Slide 109

The Reality

Slide 110

Slide 110

The Reality

Slide 111

Slide 111

The Reality Think about support.

Slide 112

Slide 112

The Reality Think about support.

Slide 113

Slide 113

The Reality Think about support. Think about robustness.

Slide 114

Slide 114

Rosie #automationconfessions @holly_cummins

Slide 115

Slide 115

Rosie ate the world. #automationconfessions @holly_cummins

Slide 116

Slide 116

Rosie ate the world. (Well, my corner of it.) #automationconfessions @holly_cummins

Slide 117

Slide 117

Give hefty automations adorable names #automationconfessions @holly_cummins

Slide 118

Slide 118

Questions to ask before automating #automationconfessions @holly_cummins

Slide 119

Slide 119

Questions to ask before n a c Who s i h automating t n i a t n i a m ? n o i t a m o t u a #automationconfessions @holly_cummins

Slide 120

Slide 120

Questions to ask before n Who can a c Who s i h automating t manage this n i a t n i ma ? n o i t a m o t u a #automationconfessions automation? @holly_cummins

Slide 121

Slide 121

Questions to ask before n Who can a c Who s i h automating t manage this n i a t n i ma ? n o i t a m o t u a automation? How much will it cost? #automationconfessions @holly_cummins

Slide 122

Slide 122

Questions to ask before n Who can a c Who s i h automating t manage this n i a t n i ma ? n o i t a m o t u a How much will it cost? #automationconfessions automation? Will it be robust? What if things change? @holly_cummins

Slide 123

Slide 123

Checkpoint during automation #automationconfessions @holly_cummins

Slide 124

Slide 124

I o Checkpoint during d w Ho e n fi de automation ? s s e c c su #automationconfessions @holly_cummins

Slide 125

Slide 125

I o Checkpoint during d Have I got w o H completion e n fi de automation ? s s e c c su #automationconfessions criteria? @holly_cummins

Slide 126

Slide 126

I o Checkpoint during d Have I got w o H completion e n fi de automation ? s s e c c su criteria? Am I still saving time? #automationconfessions @holly_cummins

Slide 127

Slide 127

I o Checkpoint during d Have I got w o H completion e n fi de automation ? s s e c c su Am I still saving time? #automationconfessions criteria? Is this still worth it? @holly_cummins

Slide 128

Slide 128

Don’t Lose Your Perspective. #automationconfessions @holly_cummins

Slide 129

Slide 129

Remember the bus #automationconfessions @holly_cummins

Slide 130

Slide 130

Remember the bus A clever automation isn’t so clever if only one person understands it… #automationconfessions @holly_cummins

Slide 131

Slide 131

Remember the bus A clever automation isn’t so clever if only one person understands it… #automationconfessions @holly_cummins

Slide 132

Slide 132

Remember the bus A clever automation isn’t so clever if only one person understands it… … and they get hit by a bus. #automationconfessions @holly_cummins

Slide 133

Slide 133

Why not automate #automationconfessions @holly_cummins

Slide 134

Slide 134

Why not automate Should I automate this process… #automationconfessions @holly_cummins

Slide 135

Slide 135

Why not automate Should I automate this process… … or should I change it? #automationconfessions @holly_cummins

Slide 136

Slide 136

The dumbness problem

Slide 137

Slide 137

The dumbness problem It’s dumb to automate dumb things …

Slide 138

Slide 138

The dumbness problem It’s dumb to automate dumb things … … and …

Slide 139

Slide 139

The dumbness problem It’s dumb to automate dumb things … … and … … Automation allows you to do dumb things at a greater speed

Slide 140

Slide 140

Defect screening #automationconfessions @holly_cummins

Slide 141

Slide 141

Ask questions before automatically automating things which don’t actually need to be done. #automationconfessions @holly_cummins

Slide 142

Slide 142

Why not automate

Slide 143

Slide 143

Why not automate

Slide 144

Slide 144

Why not automate Computers don’t always get it right.

Slide 145

Slide 145

https://www.youtube.com/watch?v=hulnz902gWo

Slide 146

Slide 146

Build monitoring #automationconfessions @holly_cummins

Slide 147

Slide 147

Slide 148

Slide 148

DevOps

Slide 149

Slide 149

Slide 150

Slide 150

Slide 151

Slide 151

Slide 152

Slide 152

Slide 153

Slide 153

Slide 154

Slide 154

What is DevOps?

Slide 155

Slide 155

Old way #automationconfessions @holly_cummins

Slide 156

Slide 156

Old way #automationconfessions @holly_cummins

Slide 157

Slide 157

Old way #automationconfessions @holly_cummins

Slide 158

Slide 158

Old way #automationconfessions @holly_cummins

Slide 159

Slide 159

Old way People who break stuff #automationconfessions @holly_cummins

Slide 160

Slide 160

Old way People who break stuff “developers” #automationconfessions @holly_cummins

Slide 161

Slide 161

Old way People who break stuff People who deal with consequences “developers” #automationconfessions @holly_cummins

Slide 162

Slide 162

Old way People who break stuff People who deal with consequences “developers” “ops team” #automationconfessions @holly_cummins

Slide 163

Slide 163

Old way People who break stuff People who deal with consequences “developers” “ops team” #automationconfessions @holly_cummins

Slide 164

Slide 164

Old way People who break stuff People who deal with consequences “developers” “ops team” #automationconfessions @holly_cummins

Slide 165

Slide 165

Old way People who break stuff People who deal with consequences “developers” “ops team” #automationconfessions @holly_cummins

Slide 166

Slide 166

New way People who break stuff People who deal with consequences “dev elopers” “ops team” #automationconfessions @holly_cummins

Slide 167

Slide 167

New way People who break stuff People who deal with consequences “dev elopers” “ops team” #automationconfessions @holly_cummins

Slide 168

Slide 168

New way People who break stuff People who deal with consequences “dev ops team” #automationconfessions @holly_cummins

Slide 169

Slide 169

New way People who break stuff and deal with consequences “dev ops team” #automationconfessions @holly_cummins

Slide 170

Slide 170

New way People who break stuff less and deal with consequences “dev ops team” #automationconfessions @holly_cummins

Slide 171

Slide 171

New way People who break stuff less and deal with consequences “dev ops team” #automationconfessions @holly_cummins

Slide 172

Slide 172

What is DevOps?

Slide 173

Slide 173

What is DevOps? Automation

Slide 174

Slide 174

What is DevOps? 100% Automation

Slide 175

Slide 175

What DevOps is not

Slide 176

Slide 176

What DevOps is not A job title

Slide 177

Slide 177

What DevOps is not A job title for the IT department

Slide 178

Slide 178

What DevOps is not A job title for the IT department A criteria for chatting up job candidates on a train

Slide 179

Slide 179

What DevOps is not A job title for the IT department A criteria for chatting up job candidates on a train The only reason to automate

Slide 180

Slide 180

How to automate #automationconfessions @holly_cummins

Slide 181

Slide 181

How to automate It depends. What are you automating? #automationconfessions @holly_cummins

Slide 182

Slide 182

What can we automate?

Slide 183

Slide 183

What can we automate? Delivery pipeline

Slide 184

Slide 184

What can we automate? Code Push Test Delivery pipeline Live

Slide 185

Slide 185

What can we automate? Code Push Test Delivery pipeline Live

Slide 186

Slide 186

What can we automate?

Slide 187

Slide 187

What can we automate? Infrastructure

Slide 188

Slide 188

What can we automate? Infrastructure should be code.

Slide 189

Slide 189

What can we automate? Infrastructure should be code.

Slide 190

Slide 190

What can we automate? Infrastructure should be code. Machine configuration

Slide 191

Slide 191

What can we automate? Infrastructure should be code. Machine configuration Servers

Slide 192

Slide 192

What can we automate? Infrastructure should be code. Machine configuration Servers Test environments

Slide 193

Slide 193

What can we automate? Infrastructure should be code. Machine configuration Servers Test environments ….

Slide 194

Slide 194

What can we automate?

Slide 195

Slide 195

What can we automate? Some Tests

Slide 196

Slide 196

What can we automate? Some Tests

Slide 197

Slide 197

What can we automate? Some Tests

Slide 198

Slide 198

What can we automate?

Slide 199

Slide 199

What can we automate? Automatically generated

Slide 200

Slide 200

What can we automate? Automatically generated

Slide 201

Slide 201

What can we automate? Automatically generated

Slide 202

Slide 202

What can we automate? Automatically generated Formatting: the most controversial thing one can automate.

Slide 203

Slide 203

What can we automate?

Slide 204

Slide 204

What can we automate? Copyright statements

Slide 205

Slide 205

What can we automate? Maybe. (The second most controversial thing one can automate.) Copyright statements

Slide 206

Slide 206

#automationconfessions @holly_cummins

Slide 207

Slide 207

Tools (an incomplete list) #automationconfessions @holly_cummins

Slide 208

Slide 208

Tools (an incomplete list) #automationconfessions @holly_cummins

Slide 209

Slide 209

Tools (an incomplete list) Shell scripts #automationconfessions @holly_cummins

Slide 210

Slide 210

Tools (an incomplete list) Shell scripts sed #automationconfessions @holly_cummins

Slide 211

Slide 211

Tools (an incomplete list) Shell scripts sed awk #automationconfessions @holly_cummins

Slide 212

Slide 212

Tools (still an incomplete list) Scripting python ruby #automationconfessions @holly_cummins

Slide 213

Slide 213

Tools (still an incomplete list) #!/usr/bin/env node const path = require(‘path’); const fs = require(‘fs’); const cp = require(‘cp’); if (process.argv.length < 3) { console.log(“Usage: usefulScript something somethingElse”); process.exit(1); } // Do something useful #automationconfessions @holly_cummins

Slide 214

Slide 214

Tools (still an incomplete list) #automationconfessions @holly_cummins

Slide 215

Slide 215

Tools (still an incomplete list) Jenkins #automationconfessions @holly_cummins

Slide 216

Slide 216

Tools (still an incomplete list) Jenkins #automationconfessions @holly_cummins

Slide 217

Slide 217

Tools (still an incomplete list) Jenkins Concourse #automationconfessions @holly_cummins

Slide 218

Slide 218

Tools (still an incomplete list) Jenkins Concourse #automationconfessions @holly_cummins

Slide 219

Slide 219

Tools (still an incomplete list) Jenkins Concourse Rational Team Concert #automationconfessions @holly_cummins

Slide 220

Slide 220

Tools (still an incomplete list) Jenkins Concourse Rational Team Concert Bluemix Build and Deploy #automationconfessions @holly_cummins

Slide 221

Slide 221

Tools (yep, still an incomplete list) #automationconfessions @holly_cummins

Slide 222

Slide 222

Tools (yep, still an incomplete list) Chef #automationconfessions @holly_cummins

Slide 223

Slide 223

Tools (yep, still an incomplete list) Chef Puppet #automationconfessions @holly_cummins

Slide 224

Slide 224

Tools (yep, still an incomplete list) Chef Puppet sprout-wrap #automationconfessions @holly_cummins

Slide 225

Slide 225

Tools (you’ll never guess - still an incomplete list) #automationconfessions @holly_cummins

Slide 226

Slide 226

Tools (you’ll never guess - still an incomplete list) #automationconfessions @holly_cummins

Slide 227

Slide 227

Tools (you’ll never guess - still an incomplete list) Docker, VMWare, and Vagrant images #automationconfessions @holly_cummins

Slide 228

Slide 228

It doesn’t have to be fancy #automationconfessions @holly_cummins

Slide 229

Slide 229

It doesn’t have to be fancy #automationconfessions @holly_cummins

Slide 230

Slide 230

Tools (still an incomplete list) #automationconfessions @holly_cummins

Slide 231

Slide 231

Tools (still an incomplete list) An ant. #automationconfessions @holly_cummins

Slide 232

Slide 232

Tools (still an incomplete list) An ant. Not a reindeer. #automationconfessions @holly_cummins

Slide 233

Slide 233

Tools Ant (still an incomplete list) An ant. Not a reindeer. #automationconfessions @holly_cummins

Slide 234

Slide 234

Tools Ant Maven (still an incomplete list) An ant. Not a reindeer. #automationconfessions @holly_cummins

Slide 235

Slide 235

Tools Ant Maven Gradle (still an incomplete list) An ant. Not a reindeer. #automationconfessions @holly_cummins

Slide 236

Slide 236

Tools Ant Maven Gradle Non-Java build tools I don’t know :) #automationconfessions (still an incomplete list) An ant. Not a reindeer. @holly_cummins

Slide 237

Slide 237

Tools (still an incomplete list) #automationconfessions @holly_cummins

Slide 238

Slide 238

Tools (still an incomplete list) Plugins Tasks #automationconfessions @holly_cummins

Slide 239

Slide 239

Tools (still an incomplete list) Plugins Tasks Know your build tool. #automationconfessions @holly_cummins

Slide 240

Slide 240

Tools (still an incomplete list) Plugins Tasks Know your build tool. Extend your build tool. #automationconfessions @holly_cummins

Slide 241

Slide 241

Tools (still an incomplete list) Plugins Tasks Know your build tool. Extend your build tool. #automationconfessions @holly_cummins

Slide 242

Slide 242

Tools (still an incomplete list) #automationconfessions @holly_cummins

Slide 243

Slide 243

Tools (still an incomplete list) Chat integrations #automationconfessions @holly_cummins

Slide 244

Slide 244

Tools (still an incomplete list) #automationconfessions @holly_cummins

Slide 245

Slide 245

Tools (still an incomplete list) Eclipse plugins #automationconfessions @holly_cummins

Slide 246

Slide 246

Tools (still an incomplete list) #automationconfessions @holly_cummins

Slide 247

Slide 247

Tools (still an incomplete list) Web applications #automationconfessions @holly_cummins

Slide 248

Slide 248

Tools (still an incomplete list) Web applications (If a UI is involved, proceed with caution) #automationconfessions @holly_cummins

Slide 249

Slide 249

Rolling your own #automationconfessions @holly_cummins

Slide 250

Slide 250

Rolling your own Beware not-invented-here #automationconfessions @holly_cummins

Slide 251

Slide 251

Rolling your own Beware not-invented-here Are you sure no one else has done this? #automationconfessions @holly_cummins

Slide 252

Slide 252

Rolling your own Beware not-invented-here Are you sure no one else has done this? If not, maybe there’s a good reason? #automationconfessions @holly_cummins

Slide 253

Slide 253

Rolling your own Beware not-invented-here Are you sure no one else has done this? If not, maybe there’s a good reason? Beware fun #automationconfessions @holly_cummins

Slide 254

Slide 254

Rolling your own Beware not-invented-here Are you sure no one else has done this? If not, maybe there’s a good reason? Beware fun But do innovate (and have fun) #automationconfessions @holly_cummins

Slide 255

Slide 255

Finally … #automationconfessions @holly_cummins

Slide 256

Slide 256

Finally … Aren’t we lucky to have careers where automation is not just allowed, but encouraged? #automationconfessions @holly_cummins

Slide 257

Slide 257

Finally … Aren’t we lucky to have careers where automation laziness is not just allowed, but encouraged? #automationconfessions @holly_cummins

Slide 258

Slide 258

Finally … Aren’t we lucky to have careers where automation laziness fun is not just allowed, but encouraged? #automationconfessions @holly_cummins

Slide 259

Slide 259

Why are we here? #automationconfessions @holly_cummins

Slide 260

Slide 260

Why are we here? To make things better. #automationconfessions @holly_cummins

Slide 261

Slide 261

Automate stuff … #automationconfessions @holly_cummins

Slide 262

Slide 262

Automate stuff … … so we can use our power for what really matters. #automationconfessions @holly_cummins

Slide 263

Slide 263

… and then … #automationconfessions @holly_cummins

Slide 264

Slide 264

… and then … … take the love and good luck in our jobs that we have and share it. #automationconfessions @holly_cummins

Slide 265

Slide 265

#automationconfessions @holly_cummins

Slide 266

Slide 266

Any Questions? @holly_cummins www.bluemix.net www.wasdev.net #automationconfessions @holly_cummins