Upload
holly-cummins
View
416
Download
0
Tags:
Embed Size (px)
Citation preview
@holly_cummins#automationconfessions
Holly, I give you all the worst jobs.
Alasdair
Look at my cool solution!
@holly_cummins#automationconfessions
Holly, I give you all the worst jobs. ?! Why??
Alasdair
Look at my cool solution!
@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
1764 Spinning Jenny
Washing Machine 1858
1941 Electromechanical Computer
It’s not just me.
@holly_cummins#automationconfessions
1764 Spinning Jenny
Washing Machine 1858
1941 Electromechanical Computer
It’s not just me.
@holly_cummins#automationconfessions
1764 Spinning Jenny
Washing Machine 1858
1941 Electromechanical Computer
Chef 2012
It’s not just me.
@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.
@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
Automate for sustainability!Automate 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
Marvin• Build breaks (including
test failures) should be reverted from the stream
@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
@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
@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
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!
Automating to improve the outcome rather than to save effort:• Write the Rational Team Concert plugin (one-off)
Automating to improve the outcome rather than to save effort:• Write the Rational Team Concert plugin (one-off)• Close the demo task (every story)
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)
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
Linting
• A computer can notice problems that a human can’t (like misspelled variable names)
@holly_cummins#automationconfessions
Linting
• A computer can notice problems that a human can’t (like misspelled variable names)
• We love findbugs
@holly_cummins#automationconfessions
Deployment
• Should be easy, right?
• Always one step that gets forgotten …
Why not automate?
I get so mad at how much time I could save if I had more time.
Ross
Ross’s bootstraps
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
@holly_cummins#automationconfessions
Questions to ask before automating
• Who can maintain this automation?
@holly_cummins#automationconfessions
Questions to ask before automating
• Who can maintain this automation?
• Who can manage this automation?
@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?
@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?
@holly_cummins#automationconfessions
Checkpoint during automation
• How do I define success?
• Have I got completion criteria?
• Is this still worth it?
@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
Remember the busA clever automation isn’t so clever if only
one person understands it…
@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
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
Ask questions before automatically automating
things which don’t actually need to be done.
@holly_cummins#automationconfessions
Tools!(still an incomplete list)
• Jenkins or Rational Team Concert builds
@holly_cummins#automationconfessions
Tools!(still an incomplete list)
• Jenkins or Rational Team Concert builds
• Chef or Puppet
@holly_cummins#automationconfessions
Tools!(still an incomplete list)
• Jenkins 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.
Maven
Gradle
@holly_cummins#automationconfessions
Tools!(still an incomplete list) An ant.
Not a reindeer.
MavenGradle
@holly_cummins#automationconfessions
Tools!(still an incomplete list) An ant.
Not a reindeer.
MavenGradle
@holly_cummins#automationconfessions
Tools!(still an incomplete list) An ant.
Not a reindeer.
MavenGradle
@holly_cummins#automationconfessions
Tools!(still an incomplete list) An ant.
Not a reindeer.
MavenGradle
Plugins Tasks
@holly_cummins#automationconfessions
Tools!(still an incomplete list)
• Web applications
• If a UI is involved, proceed with caution
@holly_cummins#automationconfessions
Rolling your own• Beware not-invented-here
• Are you sure no one else has done this?
@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?
@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
@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?