AtlasCamp 2015: Confessions of an automation addict

59
© 2013 IBM Corporation Holly Cummins @holly_cummins

Transcript of AtlasCamp 2015: Confessions of an automation addict

Page 1: AtlasCamp 2015: Confessions of an automation addict

© 2013 IBM Corporation

Holly Cummins @holly_cummins

Page 2: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

?

Page 3: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Page 4: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Can that be automated?

My team

Page 5: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Holly, I give you all the worst jobs.

I know you’ll automate them.

?! Why??

Alasdair

Look at my cool solution!

Page 6: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

[Human history has been slightly simplified.][Timeline is not to scale.]

1764 Spinning Jenny

Washing Machine 1858

1941 Electromechanical Computer

Chef 2012

It’s not just me.

More and more is automated.

Page 7: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

So are we living the dream?

Well. Not quite.

Page 8: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Fixing a classpath

Page 9: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Fixing 26 classpaths

Page 10: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Why automate?

Automate because we are lazy

Page 11: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Automate for sustainabilityAutomate for efficiency

“Sustainable”

Page 12: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Do a task once.Do it a second time and take notes.

Do it a third time, automate.

Page 13: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Scale

The more of you there are, the more it is worth investing in automation

Page 14: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Treat your servers like cattle, not like pets.

Page 15: AtlasCamp 2015: Confessions of an automation addict
Page 16: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Automate because you

care

Why Automate?

Page 17: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

If you care about it, automate it.

Page 18: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Automate because you care that it

happens at all

Why Automate?

Page 19: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

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!

Page 20: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

End of iteration demos

Page 21: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

End of iteration demos

Automatic generation on story close

Page 22: AtlasCamp 2015: Confessions of an automation addict

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.

Page 23: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Automate because you care that it’s done right

Why Automate?

Page 24: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

• A computer can notice problems that a human can’t (like misspelled variable names)

• We love findbugs

Linting

Page 25: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Deployment

• Should be easy, right?

• Always one step that gets forgotten …

Page 26: AtlasCamp 2015: Confessions of an automation addict

Why automate?Automate

because it’s fun

Page 27: AtlasCamp 2015: Confessions of an automation addict

Why not automate?

I get so mad at how much time I could save if I had more time.

The automation paradox

Ross

Ross’s bootstraps

Page 28: AtlasCamp 2015: Confessions of an automation addict

thanks (for everything!), xkcd.com

Why not automate

Page 29: AtlasCamp 2015: Confessions of an automation addict

The DreamSuper-helpful automation automaton

Page 30: AtlasCamp 2015: Confessions of an automation addict

The Reality

Think about support.

Think about robustness.

Page 31: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Rosie

Page 32: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Rosie ate the world.

(Well, my corner of it.)

Page 33: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Questions to ask before automating

• Who can maintain this automation?

• Who can manage this automation?

• Will it be robust? What if things change?

• How much will it cost?

Page 34: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Checkpoint during automation

• How do I define success?

• Have I got completion criteria?

• Is this still worth it?

• Am I still saving time?

Page 35: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Don’t Go Insane.

Page 36: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Remember the busA clever automation isn’t so clever if only

one person understands it…… and they get hit by a bus.

Page 37: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Give hefty automations adorable names

Page 38: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Why not automateShould I automate this process…

… or should I change it?

Page 39: AtlasCamp 2015: Confessions of an automation addict

The dumbness problem

• It’s dumb to automate dumb things

• Automation allows you to do dumb things at a greater speed

Page 40: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Defect screening

Page 41: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Ask questions before automatically automating

things which don’t actually need to be done.

Page 42: AtlasCamp 2015: Confessions of an automation addict

Why not automate

Computers don’t always get it right.

Page 43: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Build monitoring

Page 44: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

How to automateIt depends.

What are you automating?

Page 45: AtlasCamp 2015: Confessions of an automation addict

What can we automate?

• Machine configuration

• Deployments

• Test environments

• ….

Page 46: AtlasCamp 2015: Confessions of an automation addict

What can we automate?

Page 47: AtlasCamp 2015: Confessions of an automation addict

What can we automate?

Formatting: the most controversial thing one can automate.

Page 48: AtlasCamp 2015: Confessions of an automation addict

What can we automate?

Copyright statements

Maybe.

Page 49: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Tools(an incomplete list)

Page 50: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Tools(an incomplete list)

• Shell scripts

• sed

Page 51: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

• Scripting

• python

• ruby

Tools(still an incomplete list)

Page 52: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Tools(still an incomplete list)

• Jenkins, Bamboo, or Rational Team Concert builds

• Chef or Puppet

• Docker, VMWare, and Vagrant images

Page 53: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Tools(still an incomplete list) An ant.

Not a reindeer.

MavenGradle

Plugins Tasks

Page 54: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Tools(still an incomplete list)

• Eclipse plugins

Page 55: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Tools(still an incomplete list)

• Web applications

• If a UI is involved, proceed with caution

Page 56: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

It doesn’t have to be fancy

Page 57: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

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)

Page 58: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

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

Page 59: AtlasCamp 2015: Confessions of an automation addict

@holly_cummins#automationconfessions

Any Questions?

@holly_cummins