AtlasCamp 2015: Confessions of an automation addict
-
Upload
atlassian -
Category
Technology
-
view
94 -
download
1
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
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