SlideShare a Scribd company logo
@BillyGarnet
Deliver:Agile 2018

Austin, Texas
Home DevOps
Doing all the right things on a small scale



1
Bryan Beecham
@BillyGarnetIceberg Ideas
Programming with Rick
• Met once a week
• Desktop game in VB6
• Map tiles, turned based
• Manual version control
• Much effort, little results
THE NEW STUFF
What has changed in software development?
@BillyGarnetIceberg Ideas
Update Frequency
@BillyGarnetIceberg Ideas
Update Frequency
@BillyGarnetIceberg Ideas
# of contributors
@BillyGarnetIceberg Ideas
# of contributors
@BillyGarnetIceberg Ideas
Storage + Collaboration
@BillyGarnetIceberg Ideas
Storage + Collaboration
@BillyGarnetIceberg Ideas
Memory
@BillyGarnetIceberg Ideas
Memory
@BillyGarnetIceberg Ideas
Waterfall
@BillyGarnetIceberg Ideas
Agile Manifesto
We are uncovering better ways of developing

software by doing it and helping others do it.

Through this work we have come to value:



Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan



That is, while there is value in the items on

the right, we value the items on the left more.

@BillyGarnetIceberg Ideas
Scrum
@BillyGarnetIceberg Ideas
Extreme Programming
@BillyGarnetIceberg Ideas
Lean Software Development
1. Eliminate Waste
2. Amplify Learning
3. Decide as late as possible
4. Deliver as fast as possible
5. Empower the team
6. Build integrity in
7. See the whole
@BillyGarnetIceberg Ideas
Lean Startup
Entrepreneurs are everywhere
Entrepreneurship is management
Validated learning
Innovation accounting
Build-measure-learn
@BillyGarnetIceberg Ideas
DevOps
Flow
Feedback
Continuous Learning
@BillyGarnetIceberg Ideas
DevOps
@jezhumble
@BillyGarnetIceberg Ideas
Microservices
Microservices is a software development technique—a
variant of the service-oriented architecture (SOA)
architectural style that structures an application as a
collection of loosely coupled services. In a
microservices architecture, services are fine-grained and
the protocols are lightweight.
@BillyGarnetIceberg Ideas
API
An Application Programming Interface (API) is a set of
functions, procedures, methods or classes used by
computer programs to request services from the operating
system, software libraries or any other service providers
running on the computer.
@BillyGarnetIceberg Ideas
Stress!!!
Decision Anxiety
WHAT CAN WE DO ABOUT IT?
A NEW APPROACH
@BillyGarnet
Identify - Prepare - Improve - Clean
Process for making change
24
@BillyGarnetIceberg Ideas
Process for making changes
Identify
Prepare
Improve
Clean
@BillyGarnetIceberg Ideas
Refactoring Process
Identify
Prepare
Improve
Clean
@BillyGarnetIceberg Ideas
Refactoring Process
Identify
Prepare
Improve
RestoreRealign
Reset
Ready
@BillyGarnetIceberg Ideas
Step 1 - Identify
• Recognize a change that
can be made

• Find a pattern

• Come up with a hypothesis

• Notice a problem

@BillyGarnetIceberg Ideas
Step 2 - Prepare
• Make the change easy, then make the
easy change

• Adjust to match a pattern

• Create an experiment

• Take one step backwards

• Disrupt current system

• Unlocking potential
@BillyGarnetIceberg Ideas
Step 3 - Improve
• Make the change

• Extract duplication

• Run the experiment

• Take two steps forward
@BillyGarnetIceberg Ideas
Step 4 - Clean
• Remove any
extraneous items

• Delete duplicate code

• Clean up experiment

• Leave things cleaner
then you found them

• Ready environment for
new observations
@BillyGarnetIceberg Ideas
Example
• Identify - I’m hungry

• Prepare - Get food out, slice tomato, toast
bread, etc… and create a sandwich 

• Improve - Take care of that hunger by eating the
sandwich

• Clean - Put the food away, clean your dishes.
@BillyGarnetIceberg Ideas
Example
• Identify - These walls need to be painted

• Prepare - Clear items out of room, tape edges,
put down drop cloth

• Improve - Paint the walls

• Clean - Remove tape, wash brushes, put extra
paint away
@BillyGarnetIceberg Ideas
Code Example
• Identify - Notice two pieces of code are similar

• Prepare - Make the pieces of code identical

(extract variable, etc.)

• Improve - Use extract method

• Clean - Delete any unneeded code and spaces
(GUIs are getting better at helping here)
@BillyGarnetIceberg Ideas
Code Examples
• Industrial Logic blog: 

https://www.industriallogic.com/blog/inside-refactoring-
prepare-improve-and-clean/

• Llewellyn Falco video:

https://www.youtube.com/watch?v=Fw-knDwOZTU

• Martin Fowler blog:

https://martinfowler.com/articles/preparatory-
refactoring-example.html
@BillyGarnetIceberg Ideas
What to do?
• What do I want to build?

• What language?

• Web, Mobile?

• Uh-oh graphics? Sketches?

• Goals? Plans? 

• Why am I doing this again?
@BillyGarnetIceberg Ideas
Step 1 - Identify
• Make a web based game

• Use python

• Use micro-services

• Learn more about APIs

• Use DevOps

• Use Agile Technical Practices

@BillyGarnetIceberg Ideas
Step 2 - Prepare
• Read up on things

• Find technology to help with
hosting, storage

• Install necessary software

• Update software on my system

• Ability to grow in the future
(hopefully!!!)
@BillyGarnetIceberg Ideas
Get Inspired!!!
@BillyGarnetIceberg Ideas
Upgrade everything
@BillyGarnetIceberg Ideas
Just enough design
API Gateway Dice Rolls
Map
Hello, world!
random.org
JSON files
Image DB
@BillyGarnetIceberg Ideas
What would be cool?
Dungeon Imp
Others?
My Game
Your Game
Stories
@BillyGarnetIceberg Ideas
More issues
• Web Hosting

• Source Control

• Build

• Deliver

• Monitor

• Scale
@BillyGarnetIceberg Ideas
@BillyGarnetIceberg Ideas
@BillyGarnetIceberg Ideas
Heroku
@BillyGarnetIceberg Ideas
Heroku
@BillyGarnetIceberg Ideas
Heroku
@BillyGarnetIceberg Ideas
@BillyGarnetIceberg Ideas
Agile Principles
Our highest priority is to satisfy the customer through early and continuous
delivery of valuable software.

Deliver working software frequently…

Working software is the primary measure of progress.

Continuous attention to technical excellence and good design enhances
agility.

Simplicity--the art of maximizing the amount of work not done--is essential.
@BillyGarnetIceberg Ideas
Improve
• Create some code

• Push the code

• Check it in production
@BillyGarnetIceberg Ideas
Enough presentation
already…let’s see
some code!!!
@BillyGarnetIceberg Ideas
Clean
• Simplify the process

• Clean up the code

• Remove any unneeded items

• Boy scout rule

• Might be the most important
step
@BillyGarnetIceberg Ideas
Manage your workflow
• Question your process
• Work in small pieces
• Get more feedback
• Simplify
• Embrace new techniques
@BillyGarnetIceberg Ideas
Refactor everything
• Work in small pieces

• Simplify
• Identify-Prepare-Improve-Clean
• Use a good IDE
@BillyGarnetIceberg Ideas
Make testing more important
• Test Driven Development (TDD)

• Behaviour Driven Development (BDD)

• Organize tests by speed not type

• Once tests take longer run them

less frequent or break them up
@BillyGarnetIceberg Ideas
Good things
• Feature flags

• Continuous Integration

• Small changes at a time

• Lots of testing

• Flow

• Breaks
@BillyGarnetIceberg Ideas
Conclusion
• Deploy code as soon and often
as you can

• Do the simplest thing that can
possible work

• Work in small pieces

• #nobranch

• Use your app a lot
@BillyGarnet
Identify - Prepare - Improve - Clean
Process for making change
59
@BillyGarnetIceberg Ideas
Questions?

More Related Content

Similar to Home TDD, Refactoring and DevOps

Nitobi/PhoneGap at Bootup 2011
Nitobi/PhoneGap at Bootup 2011Nitobi/PhoneGap at Bootup 2011
Nitobi/PhoneGap at Bootup 2011
Brian LeRoux
 
Refactoring Legacy Code - true story
Refactoring Legacy Code - true storyRefactoring Legacy Code - true story
Refactoring Legacy Code - true story
Aki Salmi
 
Reproducible Research with R, The Tidyverse, Notebooks, and Spark
Reproducible Research with R, The Tidyverse, Notebooks, and SparkReproducible Research with R, The Tidyverse, Notebooks, and Spark
Reproducible Research with R, The Tidyverse, Notebooks, and Spark
Adaryl "Bob" Wakefield, MBA
 
Letting the cards speak: Agile planning for SharePoint
Letting the cards speak: Agile planning for SharePointLetting the cards speak: Agile planning for SharePoint
Letting the cards speak: Agile planning for SharePoint
Enrique Lima
 

Similar to Home TDD, Refactoring and DevOps (20)

Hiten Shah and Marie Prokopets - Lessons Learned from Building 5 Products in ...
Hiten Shah and Marie Prokopets - Lessons Learned from Building 5 Products in ...Hiten Shah and Marie Prokopets - Lessons Learned from Building 5 Products in ...
Hiten Shah and Marie Prokopets - Lessons Learned from Building 5 Products in ...
 
Embracing Imperfection: When Good Enough is the Perfect Solution
Embracing Imperfection: When Good Enough is the Perfect SolutionEmbracing Imperfection: When Good Enough is the Perfect Solution
Embracing Imperfection: When Good Enough is the Perfect Solution
 
Untangling spring week2
Untangling spring week2Untangling spring week2
Untangling spring week2
 
iPhone game development - Joash Chee
iPhone game development - Joash CheeiPhone game development - Joash Chee
iPhone game development - Joash Chee
 
Makeshift Process v0.1
Makeshift Process v0.1Makeshift Process v0.1
Makeshift Process v0.1
 
The 10 Things the Most Successful Bookkeepers will be Doing in 2020
The 10 Things the Most Successful Bookkeepers will be Doing in 2020The 10 Things the Most Successful Bookkeepers will be Doing in 2020
The 10 Things the Most Successful Bookkeepers will be Doing in 2020
 
Designing the Right Product
Designing the Right ProductDesigning the Right Product
Designing the Right Product
 
Inside3DPrintingSantaClara_JoshJacobson
Inside3DPrintingSantaClara_JoshJacobsonInside3DPrintingSantaClara_JoshJacobson
Inside3DPrintingSantaClara_JoshJacobson
 
Make Your Ideas Happen
Make Your Ideas HappenMake Your Ideas Happen
Make Your Ideas Happen
 
Product Management for Designers @ Interaction19
Product Management for Designers @ Interaction19Product Management for Designers @ Interaction19
Product Management for Designers @ Interaction19
 
Nitobi/PhoneGap at Bootup 2011
Nitobi/PhoneGap at Bootup 2011Nitobi/PhoneGap at Bootup 2011
Nitobi/PhoneGap at Bootup 2011
 
Refactoring Legacy Code - true story
Refactoring Legacy Code - true storyRefactoring Legacy Code - true story
Refactoring Legacy Code - true story
 
Make contentassetstc slides
Make contentassetstc slidesMake contentassetstc slides
Make contentassetstc slides
 
Gerrit Coetzee “Thou Shalt Write Things Down. And Other Rules for Managing Pr...
Gerrit Coetzee “Thou Shalt Write Things Down. And Other Rules for Managing Pr...Gerrit Coetzee “Thou Shalt Write Things Down. And Other Rules for Managing Pr...
Gerrit Coetzee “Thou Shalt Write Things Down. And Other Rules for Managing Pr...
 
Reproducible Research with R, The Tidyverse, Notebooks, and Spark
Reproducible Research with R, The Tidyverse, Notebooks, and SparkReproducible Research with R, The Tidyverse, Notebooks, and Spark
Reproducible Research with R, The Tidyverse, Notebooks, and Spark
 
Letting the cards speak: Agile planning for SharePoint
Letting the cards speak: Agile planning for SharePointLetting the cards speak: Agile planning for SharePoint
Letting the cards speak: Agile planning for SharePoint
 
Git censored.key
Git censored.keyGit censored.key
Git censored.key
 
NetSquared DC Presentation 101612
NetSquared DC Presentation 101612NetSquared DC Presentation 101612
NetSquared DC Presentation 101612
 
NYC Open Data Meetup-- Thoughtworks chief data scientist talk
NYC Open Data Meetup-- Thoughtworks chief data scientist talkNYC Open Data Meetup-- Thoughtworks chief data scientist talk
NYC Open Data Meetup-- Thoughtworks chief data scientist talk
 
No Estimates - Hai Dang
No Estimates - Hai DangNo Estimates - Hai Dang
No Estimates - Hai Dang
 

Recently uploaded

Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
mbmh111980
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
Alluxio, Inc.
 

Recently uploaded (20)

Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
iGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockiGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by Skilrock
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting software
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 

Home TDD, Refactoring and DevOps