AtlasCamp 2015: Confessions of an automation addict

Post on 10-Aug-2015

94 views 1 download

Tags:

Transcript of AtlasCamp 2015: Confessions of an automation addict

© 2013 IBM Corporation

Holly Cummins @holly_cummins

@holly_cummins#automationconfessions

?

@holly_cummins#automationconfessions

@holly_cummins#automationconfessions

Can that be automated?

My team

@holly_cummins#automationconfessions

Holly, I give you all the worst jobs.

I know you’ll automate them.

?! Why??

Alasdair

Look at my cool solution!

@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.

@holly_cummins#automationconfessions

So are we living the dream?

Well. Not quite.

@holly_cummins#automationconfessions

Fixing a classpath

@holly_cummins#automationconfessions

Fixing 26 classpaths

@holly_cummins#automationconfessions

Why automate?

Automate because we are lazy

@holly_cummins#automationconfessions

Automate for sustainabilityAutomate for efficiency

“Sustainable”

@holly_cummins#automationconfessions

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

Do it a third time, automate.

@holly_cummins#automationconfessions

Scale

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

@holly_cummins#automationconfessions

Treat your servers like cattle, not like pets.

@holly_cummins#automationconfessions

Automate because you

care

Why Automate?

@holly_cummins#automationconfessions

If you care about it, automate it.

@holly_cummins#automationconfessions

Automate because you care that it

happens at all

Why Automate?

@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!

@holly_cummins#automationconfessions

End of iteration demos

@holly_cummins#automationconfessions

End of iteration demos

Automatic generation on story close

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.

@holly_cummins#automationconfessions

Automate because you care that it’s done right

Why Automate?

@holly_cummins#automationconfessions

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

• We love findbugs

Linting

@holly_cummins#automationconfessions

Deployment

• Should be easy, right?

• Always one step that gets forgotten …

Why automate?Automate

because it’s fun

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

thanks (for everything!), xkcd.com

Why not automate

The DreamSuper-helpful automation automaton

The Reality

Think about support.

Think about robustness.

@holly_cummins#automationconfessions

Rosie

@holly_cummins#automationconfessions

Rosie ate the world.

(Well, my corner of it.)

@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?

@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?

@holly_cummins#automationconfessions

Don’t Go Insane.

@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.

@holly_cummins#automationconfessions

Give hefty automations adorable names

@holly_cummins#automationconfessions

Why not automateShould I automate this process…

… or should I change it?

The dumbness problem

• It’s dumb to automate dumb things

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

@holly_cummins#automationconfessions

Defect screening

@holly_cummins#automationconfessions

Ask questions before automatically automating

things which don’t actually need to be done.

Why not automate

Computers don’t always get it right.

@holly_cummins#automationconfessions

Build monitoring

@holly_cummins#automationconfessions

How to automateIt depends.

What are you automating?

What can we automate?

• Machine configuration

• Deployments

• Test environments

• ….

What can we automate?

What can we automate?

Formatting: the most controversial thing one can automate.

What can we automate?

Copyright statements

Maybe.

@holly_cummins#automationconfessions

Tools(an incomplete list)

@holly_cummins#automationconfessions

Tools(an incomplete list)

• Shell scripts

• sed

@holly_cummins#automationconfessions

• Scripting

• python

• ruby

Tools(still an incomplete list)

@holly_cummins#automationconfessions

Tools(still an incomplete list)

• Jenkins, Bamboo, or Rational Team Concert builds

• Chef or Puppet

• Docker, VMWare, and Vagrant images

@holly_cummins#automationconfessions

Tools(still an incomplete list) An ant.

Not a reindeer.

MavenGradle

Plugins Tasks

@holly_cummins#automationconfessions

Tools(still an incomplete list)

• Eclipse plugins

@holly_cummins#automationconfessions

Tools(still an incomplete list)

• Web applications

• If a UI is involved, proceed with caution

@holly_cummins#automationconfessions

It doesn’t have to be fancy

@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)

@holly_cummins#automationconfessions

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

@holly_cummins#automationconfessions

Any Questions?

@holly_cummins