2. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
NOTE
If you are watching me live, feel free to
drop a question using the Q&A chat
feature
If you’re not, you can always use twitter or
email and catch me later!
4. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
Who am I?
● Started programming in middle school in the 19XXes when my Dad brought
home a PDP-8.
● Computer Science Degree
● Software engineer for [many] years in many languages and contexts
● Various career job titles: Software Engineer, Systems Engineer, Project
Manager, ScrumMaster, and a record store clerk.
● Onyx Point since 2015 (Disclaimer: views here are my own).
Outside of work - baking, hockey, rock concerts, reading, volunteering
(especially in events that promote diversity in tech)
● I have two daughters that are engineers!
5. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
...and what do I do?
● Coding
● Systems Engineering
● Team Lead
● ScrumMaster
● Reporting, general administrative junk
● AND I have hobbies outside of work…
Who has enough time?????
6. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
So… what is Automation?
Automation, or labor-saving technology is the technology by which a process or
procedure is performed with minimal human assistance. (Wikipedia)
A friend calls it, “optimizing
and transformation”
It’s a way to get machines
(computers, specifically) to do
the stuff I don’t have the time
(or want) to do? And with
minimal supervision!!??
7. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
What is DevOps?
DevOps is a set of practices that combines software development (Dev)
and IT operations (Ops). It aims to shorten the systems development life
cycle and provide continuous delivery with high software quality. DevOps
is complementary with Agile software development; several DevOps
aspects came from Agile methodology. (Wikipedia)
9. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
Why is Automation important to DevOps?
My Personal DevOps Process
● Perform manually
● Document
● Script
● Test/Peer Review
● Release
● Monitor
● Retrospect and start again
Every step in this process brings improvement to your process, so even if you do
not get beyond the documentation step, you’re ahead...
10. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
Why do we want to automate?
● Speed
● Consistency
● Cost-savings
● Reduce human error
● As part of CI Process
● Reduce tech debt
● Scalability - creating the ability to operate closer to production
limits (“just in time”)
● Flexibility to make changes on the fly, aided by short feedback loop
11. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
Why do we want to automate
● Simplify startup/training for new employees (or hardware)
● Preserve enterprise knowledge
● Opportunities to update processes and procedures to boost
efficiency by eliminating repetition and/or redistributing staff.
● Allow humans to do less repetitive work and more meaningful work
(also decreasing the chance of negligence due to boredom)
● Learn as you automate (e.g. you are writing a hardware controller; as
you write code, you learn about the attributes you have control over)
13. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
What are some of the tools and processes
● Coding and scripting languages - Ruby, Perl, Python, Java, etc
● Database tools
● CLIs, APIs
● Cron jobs
● Continuous Integration Tools (Jenkins, Travis, Gitlab-CI, etc)
● CM/Provisioning tools such as Puppet, Chef, Salt, Ansible
● ...and many more
14. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
Code!
● “Quick” script
● Languages - C, Java, etc
● Spreadsheet formulas
● Database calls
● Web scripts
● Apps for your phone
● ...
15. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
CLIs and APIs
● Accessibility (screen-readers are happier
with plain text)
● Easy to read and recreate/repeat
● Often too many options to fit on a
readable GUI screen
...or too much output to view at once
● Return data in a format for reuse (.csv,
.json, etc)
16. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
CLIs
Let’s use the windows standard pkzip as an example…
Navigate this gui…
or use options --password --span here -- >
17. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
APIs
● “a set of functions and procedures allowing the creation of applications that
access the features or data of an operating system, application, or other
service.” – Wikipedia
● Get data needed from a function call rather than navigating
● Data is returned in a readable format
● Data can be manipulated before presented to the end user
17
18. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
An API in action
18
19. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
An API in action
19
20. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
CI Tools
....automate the parts of
software development
related to building,
testing, and deploying,
facilitating continuous
integration and
continuous delivery.
21. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
Infrastructure Management Tools
...manage large-scale
server infrastructure
with minimal or no
human interaction.
22. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
Other tools such as IFTTT
...enable your apps and
devices to work together to do
specific things they couldn't do
otherwise.
23. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
Do you need to add Automation tools?
● Evaluate what tools are available to you already before you purchase
● Ensure you do a thorough study (“Analysis of Alternatives”) of what
you need and what is out there
● There are many good open source tools that could save you a lot of
money, but ensure that the capabilities you need are available in the
edition you select
● Note that everyone’s automation needs are slightly different, so even
if something comes highly recommended from another, it may not be
the best for you
25. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
What are some reasons we might not automate
● The time to automate is longer than time to perform the task and
...the task is not performed often
● Interim results and statuses need to be available
● Security risk (e.g. plain-text passwords)
● Correct automation tools not available
● Trying to automate too much at once
● Training/startup costs
26. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
What are some reasons we might not automate
● Human intervention needed
● Creativity
● Human Interface Testing (Testing assumes
creative questioning and automation is not
ready to do that yet)
● Organizations become so dependent on
automation that may lose the ability to rethink
their own processes.
27. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
What about the naysayers
Some people don’t trust automation
● “If it isn’t broken, don’t fix it” mentality
● Don’t trust what they can’t control
● Lack of knowledge of tools
● Fear of losing a job
28. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
What about the naysayers
What do we tell them?
● Show them metrics
● Teach them how to use these tools to their advantage
● Ensure, as co-workers or bosses, that there’s cool stuff they can do
when their boring stuff is automated
● Be part of the solution! A manual tester can document and create
automated versions of their own tests - even this process has been
simplified by automation!
30. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
The Compromise
● Ensure you go through the steps of trying, documenting, etc to decide
whether to automate and how much
● Ensure that your management and team are comfortable with
decisions of what to automate, and, especially, which tools
● If you are converting a larger project, do your changes gradually
● Remember, there are places where it is totally appropriate to use
human creativity
31. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
Automation and Baking...
Some creative tricks that make your store bought box mix
more exciting (in other words, “automate” the boring stuff, and add fun)
● Add crushed oreo cookies to a brownie mix
● Replace the oil in a brownie mix with red wine, or the water with coffee
● Use a cake mix, ⅓ c water and 2 eggs to get a quick cookie dough - add
chips, nuts, whatever looks good
● Brown sugar, pineapple, butter, and maraschino cherries make a boring
yellow cake into a pineapple upside-down cake
● Take a lemon cake mix, add white chocolate chips, bake into cookies, and
sprinkle with lemon kool-aid mixed with confectioners sugar
32. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
My D&I Slide
A look back at some of the ways Automation/DevOps are good for diversity &
Inclusion
● DevOps responsibilities include many that allow a new to the team/tool/field
to ease in (e.g. Documenting, Testing, Code Review)
● Text-based processes not only help CI/CD, but also are simpler for many to
use
● Automation allows for processing at odd hours with less human intervention,
thus less disruptive
● Cooperation, feedback (blameless post-mortem), scrum processes
encourage all to speak and participate
33. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
Quotations
“If you automate a process that has errors, all you’ve done is automate the
generation of those errors.” – W.L.W. Borowiecki
“Automation won’t take your job, but the self-inflicted imprisonment of industrial
isolation will.” – Richie Norton
“Any daily work task that takes 5 minutes will cost over 20 hours a year, or over half
of a work week. Even if it takes 20 hours to automate that daily 5 minute task, the
automation will break even in a year.” – Anthony J. Stieber
"I will always choose a lazy person for a difficult job. Because, he will find an easy
way to do it." – Bill Gates
“You can’t automate stupid!” – Kitt
33
34. Automation Justification judy johnson Twitter: @miz_j GitHub: judyj Agile + DevOps Virtual Summit
Thanks!
● Thanks for listening
● Thanks to the other speakers
● Thank you to my friends and co-workers
● Yay TechWell and xOps
● ...and Onyx Point
https://unsplash.com/ and
https://www.123rf.com/ (for photos)