SlideShare a Scribd company logo
1 of 39
Sprinkle Dev, Sprinkle Ops, lets make Cake not Mud Pies
Brian Paulsmeyer
Agile Gravy: September 29, 2016
Agile Development Pitfalls
… that warn us of mistakes in our agile implementation
10/4/2016
www.centricconsulting.com 1
Waterfall in 2 Week Iterations
•No ordering of stories
•Gold plating of features
•“Agile Waterfall” Assumptions
• Learning from usage of system won’t change features
• “All features will come together” in last day of last sprint
• “Pause the world for 3+ years for us to finish”
• “Value Proposition: All or Nothing”
• Architecture can be “known” and not change
• Deployments are still hard
•Unfortunate ending for “Agile Waterfall”
• “We ran out of money, and have nothing in production.”
10/4/2016www.centricconsulting.com 2
Constant Redefining of “Definition of Done”
•Done should simply mean done
•Burndown/Burnup no longer reliable
•Feature inversion occurs when time spent on defects and maintenance
overtakes feature work
10/4/2016www.centricconsulting.com 3
20 20 20
18 17 17 16 16 15
13
0 0 0
2 3 3 4 4 5
7
1 2 3 4 5 6 7 8 9 10
FEATURE INVERSION
Features Defects and Hidden Work
Only focusing on Unit Tests and Manual Testing
•Unit tests
• Won’t ensure business workflows
• Only allows minor refactoring
• Failure: Mars Climate Orbiter (1999)
• Team A: Pounds for unit of force
• Team B: Newtons for unit of force (1 lb = 4.45 N)
• Disintegrated in Mars atmosphere!
• Each “Unit”/Component worked in isolation
10/4/2016www.centricconsulting.com 4
Continuous Delivery and DevOps
… simple concept, requires diligent implementation
10/4/2016
www.centricconsulting.com 5
No more “Throw It Over the Wall”
10/4/2016www.centricconsulting.com 6
DevOps enables Continuous Delivery
•Team performs activities across disciplines
•Apply principles from iteration 0 through delivery
10/4/2016www.centricconsulting.com 7
Regression
UAT
Integration
Testing
DevOps – Full Lifecycle Delivery Pipeline and Container Management
Local
Environments
Builds
Unit Tests
Merge
Procedures
Log
Interpretation
Dependency
Mgmt
Dev
Deployments
Traditional DEV activities Traditional OPS activities Traditional QA activities
Prod
Deployments
Performance
Mgmt
Monitoring
QA
Deployments
Branch Mgmt
Change Mgmt
Log
Management
Configurations
Integration
Deployments
Performance
testing
What It Takes
Whether it be security, regulatory, software limitations, etc., there are
many reasons why organizations say CD is impossible
10/4/2016www.centricconsulting.com 8
Tooling
Process
Culture
Architecture
Basic Definitions and Levels of Maturity
Continuous…
10/4/2016www.centricconsulting.com 9
Automated Deployment to ProductionDeployment
Manual Compile/Build, Manual Testing, Manual DeploymentPain
Automated Deployment to Integration/Staging/Pre-Prod
Deployment Toolset Constant across all Environments
Delivery Automated Integration/Workflow Tests
Automated Component Builds
Automated Component Tests*
Integration Automated Unit Tests
* Many teams mistakenly consider Continuous Integration (CI) complete with only automated unit tests
Pipeline
•Recipe for building, deploying, and testing the system
•Grouping of discrete stages for a complete workflow
•Coordinates disparate technologies
•Provides feedback of system state across environments
10/4/2016www.centricconsulting.com 10
Business &
Customer
Develop
Customer
Deploy
to
Production
Deploy
to
Staging
Deploy
to
QA
Build
and Unit Test
Automated
Integration /
Workflow
Testing
Detailed Pipeline
10/4/2016www.centricconsulting.com 11
Business &
Customer
Backlog
Consolidate
Features
and Hotfixes
Iteration
Planning
Build
Server“X”
Stories
Development
1 Active Story
Per Developer
1
Commit
Acceptance
Test
Customer
Build
Artifact
Acceptance Test
Environment
QA
Testing
QA
Environment
Auto-Trigger Pipeline:
Installs To AIT Environment
Executes Smoke and
Acceptance Tests (<10 min)
Manual Trigger Pipeline:
Installs To
QA Environment
Executes Smoke Tests
UAT
Testing
Manual Trigger
Pipeline:
UAT Environment
UAT Smoke &
UAT Tests
Production
Manual Trigger
Pipeline:
Prod Environment
Prod Smoke
Tests
UAT
Environment
Product Pipeline
10/4/2016www.centricconsulting.com 12
Pipeline Workflow Tools
… to speed implementation
10/4/2016
www.centricconsulting.com 13
Pipeline Stage Implementation
•Pipeline workflow steps trigger external tools
10/4/2016www.centricconsulting.com 14
Business &
Customer
Develop
Customer
Deploy
to
Production
Deploy
to
Staging
Deploy
to
QA
Build
and Unit Test
Java
.Net
TypeScript
PHP
etc.
Ant
Maven
MSBuild
Make
etc.
JUnit
Nunit
etc.
Bash
PowerShell
Chef/Puppet
VMs
Docker/CoreOS
etc.
Automated
Integration /
Workflow
Testing
Selenium
Cucumber
JBehave
SpecFlow
Codeception
etc.
Same Tools
as Deploy to QA
Only Configuration
Differences
Same Tools
as Deploy to QA
Only Configuration
Differences
Build Tool Jobs (ex. Jenkins)
Key Pipeline Coordination Tool Features
•Pipeline Triggers
• Automatic on code check-ins to source control
• Manual
• Programmatic API
•Workflow
• Parallel steps
• Sequential steps
• Failure-only steps
• Graphical view of steps
•Artifact Tracking
• Traceability from check-in to final deployment
• View of deployed version in each environment
• History of deployments
• Ability to trigger updates to agile tracking tools (ex. JIRA)
•Environment Support
• Same deploy scripts, allows configuration changes per environment
10/4/2016www.centricconsulting.com 15
Pipeline Workflow Tool : Jenkins
•On-Site
•Version 2.0 Provides Workflow View
•Software Language Agnostic
10/4/2016www.centricconsulting.com 16
Pipeline Workflow Tool : ThoughtWorks Go
•On-Site
•Software Language Agnostic
10/4/2016www.centricconsulting.com 17
Pipeline Workflow Tool : Octopus Deploy
•.Net
10/4/2016www.centricconsulting.com 18
Automated Testing
… so every day can be deployment day
10/4/2016
www.centricconsulting.com 19
Automated Component/Integration/Workflow Testing
•Opinions of why automated testing isn’t needed
• “Manual testing is sufficient”
• “Business only wants to spend money on features”
• “Developers only want to code features”
• “Our <insert technology> is too hard to test with automation”
• “Automated tests run too slow”
10/4/2016www.centricconsulting.com 20
Best Case: Missed Deadline
Worst Case: Catastrophic Failure in Production
Result of skipping
automated tests
Selenium WebDriver
Direct Test using Selenium WebDriver
WebDriver driver = new FirefoxDriver();
// Navigate to webpage
driver.get("http://www.google.com");
// Find the Search Field (UI Locator)
WebElement element = driver.findElement(By.name(“Search"));
// Fill in the data
element.sendKeys(“something interesting");
// Now submit the form. WebDriver will find the form that contains the element
element.submit();
// Assert the test passed
10/4/2016www.centricconsulting.com 21
Selenium
WebDriver
Web Page
Test
Test
Test
Test
Page Object Model
10/4/2016www.centricconsulting.com 22
• Separate Test Code and UI Locators
• Supports Don’t Repeat Yourself (DRY) for Element Locators
• Less Technical Test Case
SearchPage page = new SearchPage(selenium);
// Enter Search information
page.search(“something interesting");
// Now submit the form
page.submit();
// Assert the test passed
Page Object
Model(s)
Web Page
Test
Test
Test
Test
Selenium
WebDriver
ServerAPI
BDD Testing
• Gherkin (English) Text File
• Step Definitions Map Between English Test and System
• Business Readable Test Case
Given user searches for “something interesting”
When user performs the Search
Then assert something is true
10/4/2016www.centricconsulting.com 23
Page Object
Model(s)
Web Page
Step
Definition
Step
Definition
Step
Definition
Selenium
WebDriver
ServerAPITest
Test
Test
Test
Capabilities
… we need to be successful
10/4/2016
www.centricconsulting.com 24
Rapid Response to Changing Business
•Need to be able to react to disruptive technology and business models
•Stagnant architecture limits new technology adoption
• Changes blocked by fear of breaking system
• Inability to deploy new systems to production
• Unable to adopt new security upgrades
• Unable to adopt new software versions
10/4/2016www.centricconsulting.com 25
Drive Defects From Most Used Features
“You can’t test quality in”
At a minimum make sure defects aren’t in the standard user workflows
10/4/2016www.centricconsulting.com 26
Adjustable/Changeable Architecture
•Magic Quadrant Architecture
• “Best” choice today ≠ Best choice tomorrow
• Failed technologies and companies in all parts of magic quadrant
•Natural product End-of-Life requires new architecture
•Continuous Delivery and DevOps allows fluid architecture changes
10/4/2016www.centricconsulting.com 27
(Object-Oriented Database)
Cadence
•What if everyday was a normal day
•What if those normal days were release days
•What if those release days were multiple releases throughout the day
•Low Risk On-Demand Releases
10/4/2016www.centricconsulting.com 28
Deployment Styles
… for production deployment
10/4/2016
www.centricconsulting.com 29
Standard Deployment
•Deployment Steps
• Disable user access
• Upgrade servers from V1 to V2
• Test deployment
• Enable user access
• Upgrade destabilizes running environment
•Problem Mitigation
• Re-Enable backup if possible
• Developer troubleshooting requires
customer downtime
10/4/2016www.centricconsulting.com 30
Blue Green
Router /
Load Balancer
Blue-Green Deployment
•Two Identical Production Environments
• Blue
• Green
•One Active: Router Controlled
•Deployment Steps (Green Active)
• Deploy to Blue environment – No users
affected
• Perform smoke tests on Blue environment
• Optional: Switch subset of users to Blue
(similar to Canary releases)
• Switch all users to Blue environment
•Problem Mitigation
• Don’t switch to 2nd environment
• Developer troubleshooting has no customer
impact
10/4/2016www.centricconsulting.com 31
Canary
Router /
Load Balancer
Canary Deployment
•One Production Environment
•Deployment Steps
• Deploy to 1 server (Canary)
Optional: Provision and build new server from
scratch
• Router sends portion of users to Canary
• Random
• Internal users only
• User-type based (ex. Test users)
• Gradually upgrade servers to V2
• Gradually switch users to V2 servers
•Problem Mitigation
• Don’t switch additional users to Canary
environment
• Developer troubleshooting has no customer
impact
10/4/2016www.centricconsulting.com 32
Case Studies
… that show it can be done
Before Build Automation
•23 Teams
•  150 Team Members (Developers, Quality Engineers, Scrum Masters)
•  100 Developers
•Service Oriented Architecture
• Managers, Engines, Data Access
•Baseline End of PI6 (SAFe)
• PI6 demo system setup
• Two weeks to setup
• Manual Installations – not repeatable
• Individual Teams created “magic instructions” in isolation to install and run solution
• Some teams unable to run full solution
• Custom data loaders used to skip workflow steps
• Developers unable to test full workflow
• Movement of data through workflow steps untested till end of PI
• Update of component versions caused “Day of Downtime” for developers to fix unexpected
issues
10/4/2016www.centricconsulting.com 34
After Build Automation: Jenkins Easy Button Builds
• Starting Point: a machine with Windows — that’s it!
• The rest is automated:
− Provisioning: verify/install tools takes ~50 minutes
− Puppet Agent, PowerShell, 7-Zip, VNC
− SQL Server, .Net, Visual Studio
− Noticia Repono Client
− Install Custom Software takes 5-10 minutes
− Clean system from any previous runs
− Install/Configure Base Components
− Install System
− Install and Run Smoke Tests
At this point the system is ready to be used to do further testing, demos, etc.
• Deploy cycle repeats
ChunkyMonkey
Vanilla
Definition of Done
… that makes our customers happy
10/4/2016
www.centricconsulting.com 36
Continuous Delivery Definition of Done
•Automated Deployments
• Fully Automatic or Push-Button Deploys
• Same Executable Scripts for all Environments
• No Deployment Hero
•Automated Testing
• Unit
• Integration
• Full System
•Always Shippable
• No Temporary Code
• No Untested Code
• Feature Toggles
•One Backlog
• Production Bug Fixes
• New Features
10/4/2016www.centricconsulting.com 37
About Me
10/4/2016www.centricconsulting.com 38
• Our highest priority is building lifelong
relationships with clients based on trust,
respect, and collaboration.
• We invest in our talented team and
support their well being by keeping them
challenged and inspired.
• Our localized company structure allows
us to play very active roles in the lives
of our families and community.
This relationship-centric focus keeps us passionate, committed and
motivated in all facets of our lives. That’s why our team is here to stay.
Centric Consulting
• 17 years as a software developer and architect
• Full stack developer in Java, .Net, TypeScript (Angular 2), and PHP
• DevOps tooling experience including VMs, Docker, Chef, and Puppet
• Continuous Delivery and Automated Testing implementations
• Experience across industries including FDA and SEC regulated
Continue the Journey • http://centricconsulting.com/centric-st-louis-scaled-agile-workshop/
Thank You for Attending!

More Related Content

What's hot

Continuous testing in agile projects 2015
Continuous testing in agile projects 2015Continuous testing in agile projects 2015
Continuous testing in agile projects 2015Fabricio Epaminondas
 
AgileDC15 I'm Using Chef So I'm DevOps Right?
AgileDC15 I'm Using Chef So I'm DevOps Right?AgileDC15 I'm Using Chef So I'm DevOps Right?
AgileDC15 I'm Using Chef So I'm DevOps Right?Rob Brown
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Amazon Web Services
 
Continuous delivery applied
Continuous delivery appliedContinuous delivery applied
Continuous delivery appliedMike McGarr
 
Using JMeter in CloudTest for Continuous Testing
Using JMeter in CloudTest for Continuous TestingUsing JMeter in CloudTest for Continuous Testing
Using JMeter in CloudTest for Continuous TestingSOASTA
 
Testing In Production (TiP) Advances with Big Data & the Cloud
Testing In Production (TiP) Advances with Big Data & the CloudTesting In Production (TiP) Advances with Big Data & the Cloud
Testing In Production (TiP) Advances with Big Data & the CloudSOASTA
 
Soasta | CloudBees webinar 11/12/2015
Soasta | CloudBees webinar 11/12/2015Soasta | CloudBees webinar 11/12/2015
Soasta | CloudBees webinar 11/12/2015SOASTA
 
QA Role in Agile Teams
QA Role in Agile Teams QA Role in Agile Teams
QA Role in Agile Teams Synerzip
 
Continuous delivery applied (DC CI User Group)
Continuous delivery applied (DC CI User Group)Continuous delivery applied (DC CI User Group)
Continuous delivery applied (DC CI User Group)Mike McGarr
 
Continuous Delivery Distilled
Continuous Delivery DistilledContinuous Delivery Distilled
Continuous Delivery DistilledMatt Callanan
 
Accelerate Web and Mobile Testing for Continuous Integration and Delivery
Accelerate Web and Mobile Testing for Continuous Integration and DeliveryAccelerate Web and Mobile Testing for Continuous Integration and Delivery
Accelerate Web and Mobile Testing for Continuous Integration and DeliverySOASTA
 
Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)Mike McGarr
 
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality
Continuous Integration Testing Techniques to Improve Chef Cookbook QualityContinuous Integration Testing Techniques to Improve Chef Cookbook Quality
Continuous Integration Testing Techniques to Improve Chef Cookbook QualityJosiah Renaudin
 
Continuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneContinuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneciberkleid
 
Continuous Testing 2016
Continuous Testing 2016Continuous Testing 2016
Continuous Testing 2016Karim Fanadka
 
SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA Webinar: Process Compression For Mobile App Dev 120612SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA Webinar: Process Compression For Mobile App Dev 120612SOASTA
 
Continuous Testing in DevOps
Continuous Testing in DevOpsContinuous Testing in DevOps
Continuous Testing in DevOpsTechWell
 
Agile Load Testing In The Real World
Agile Load Testing In The Real WorldAgile Load Testing In The Real World
Agile Load Testing In The Real WorldSOASTA
 
Webinar: Load Testing for Your Peak Season
Webinar: Load Testing for Your Peak SeasonWebinar: Load Testing for Your Peak Season
Webinar: Load Testing for Your Peak SeasonSOASTA
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentChristopher Read
 

What's hot (20)

Continuous testing in agile projects 2015
Continuous testing in agile projects 2015Continuous testing in agile projects 2015
Continuous testing in agile projects 2015
 
AgileDC15 I'm Using Chef So I'm DevOps Right?
AgileDC15 I'm Using Chef So I'm DevOps Right?AgileDC15 I'm Using Chef So I'm DevOps Right?
AgileDC15 I'm Using Chef So I'm DevOps Right?
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration
 
Continuous delivery applied
Continuous delivery appliedContinuous delivery applied
Continuous delivery applied
 
Using JMeter in CloudTest for Continuous Testing
Using JMeter in CloudTest for Continuous TestingUsing JMeter in CloudTest for Continuous Testing
Using JMeter in CloudTest for Continuous Testing
 
Testing In Production (TiP) Advances with Big Data & the Cloud
Testing In Production (TiP) Advances with Big Data & the CloudTesting In Production (TiP) Advances with Big Data & the Cloud
Testing In Production (TiP) Advances with Big Data & the Cloud
 
Soasta | CloudBees webinar 11/12/2015
Soasta | CloudBees webinar 11/12/2015Soasta | CloudBees webinar 11/12/2015
Soasta | CloudBees webinar 11/12/2015
 
QA Role in Agile Teams
QA Role in Agile Teams QA Role in Agile Teams
QA Role in Agile Teams
 
Continuous delivery applied (DC CI User Group)
Continuous delivery applied (DC CI User Group)Continuous delivery applied (DC CI User Group)
Continuous delivery applied (DC CI User Group)
 
Continuous Delivery Distilled
Continuous Delivery DistilledContinuous Delivery Distilled
Continuous Delivery Distilled
 
Accelerate Web and Mobile Testing for Continuous Integration and Delivery
Accelerate Web and Mobile Testing for Continuous Integration and DeliveryAccelerate Web and Mobile Testing for Continuous Integration and Delivery
Accelerate Web and Mobile Testing for Continuous Integration and Delivery
 
Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)
 
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality
Continuous Integration Testing Techniques to Improve Chef Cookbook QualityContinuous Integration Testing Techniques to Improve Chef Cookbook Quality
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality
 
Continuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneContinuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOne
 
Continuous Testing 2016
Continuous Testing 2016Continuous Testing 2016
Continuous Testing 2016
 
SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA Webinar: Process Compression For Mobile App Dev 120612SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA Webinar: Process Compression For Mobile App Dev 120612
 
Continuous Testing in DevOps
Continuous Testing in DevOpsContinuous Testing in DevOps
Continuous Testing in DevOps
 
Agile Load Testing In The Real World
Agile Load Testing In The Real WorldAgile Load Testing In The Real World
Agile Load Testing In The Real World
 
Webinar: Load Testing for Your Peak Season
Webinar: Load Testing for Your Peak SeasonWebinar: Load Testing for Your Peak Season
Webinar: Load Testing for Your Peak Season
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous Deployment
 

Viewers also liked

Marketing Automation Done Right 2017
Marketing Automation Done Right 2017Marketing Automation Done Right 2017
Marketing Automation Done Right 2017Centric Consulting
 
Building Out Business Process Capabilities With Business Process Centers of E...
Building Out Business Process Capabilities With Business Process Centers of E...Building Out Business Process Capabilities With Business Process Centers of E...
Building Out Business Process Capabilities With Business Process Centers of E...Centric Consulting
 
The Art & Science of LifeCycle Marketing
The Art & Science of LifeCycle MarketingThe Art & Science of LifeCycle Marketing
The Art & Science of LifeCycle MarketingCentric Consulting
 
Metrics on the Money: The Art & Science of Change Measurement
Metrics on the Money: The Art & Science of Change MeasurementMetrics on the Money: The Art & Science of Change Measurement
Metrics on the Money: The Art & Science of Change MeasurementCentric Consulting
 
Finally, A Voice for the Enterprise!
Finally, A Voice for the Enterprise!Finally, A Voice for the Enterprise!
Finally, A Voice for the Enterprise!Centric Consulting
 
Microservices Application Simplicity Infrastructure Complexity
Microservices Application Simplicity Infrastructure ComplexityMicroservices Application Simplicity Infrastructure Complexity
Microservices Application Simplicity Infrastructure ComplexityCentric Consulting
 
Business Process Excellence: Building Out Business Process Capabilities
Business Process Excellence: Building Out Business Process CapabilitiesBusiness Process Excellence: Building Out Business Process Capabilities
Business Process Excellence: Building Out Business Process CapabilitiesCentric Consulting
 
Modeling Your Applications Based on Airport Operations
Modeling Your Applications Based on Airport Operations Modeling Your Applications Based on Airport Operations
Modeling Your Applications Based on Airport Operations Centric Consulting
 
Mann india SAP Service Offerings- IS Retail
Mann india SAP Service Offerings- IS RetailMann india SAP Service Offerings- IS Retail
Mann india SAP Service Offerings- IS RetailMann-India
 
DevOps Services Offerings from Rational Lab Services
DevOps Services Offerings from Rational Lab ServicesDevOps Services Offerings from Rational Lab Services
DevOps Services Offerings from Rational Lab ServicesIBM Rational software
 

Viewers also liked (20)

How to Run a Hackathon
How to Run a HackathonHow to Run a Hackathon
How to Run a Hackathon
 
Rise of the Wearables
Rise of the WearablesRise of the Wearables
Rise of the Wearables
 
Reclaiming Agile Development
Reclaiming Agile Development Reclaiming Agile Development
Reclaiming Agile Development
 
Marketing Automation Done Right 2017
Marketing Automation Done Right 2017Marketing Automation Done Right 2017
Marketing Automation Done Right 2017
 
Bad metric, bad!
Bad metric, bad!Bad metric, bad!
Bad metric, bad!
 
Building Out Business Process Capabilities With Business Process Centers of E...
Building Out Business Process Capabilities With Business Process Centers of E...Building Out Business Process Capabilities With Business Process Centers of E...
Building Out Business Process Capabilities With Business Process Centers of E...
 
The Art & Science of LifeCycle Marketing
The Art & Science of LifeCycle MarketingThe Art & Science of LifeCycle Marketing
The Art & Science of LifeCycle Marketing
 
Event-driven Architecture
Event-driven ArchitectureEvent-driven Architecture
Event-driven Architecture
 
Metrics on the Money: The Art & Science of Change Measurement
Metrics on the Money: The Art & Science of Change MeasurementMetrics on the Money: The Art & Science of Change Measurement
Metrics on the Money: The Art & Science of Change Measurement
 
Finally, A Voice for the Enterprise!
Finally, A Voice for the Enterprise!Finally, A Voice for the Enterprise!
Finally, A Voice for the Enterprise!
 
Microservices Application Simplicity Infrastructure Complexity
Microservices Application Simplicity Infrastructure ComplexityMicroservices Application Simplicity Infrastructure Complexity
Microservices Application Simplicity Infrastructure Complexity
 
Thinking Fast and Slow
Thinking Fast and SlowThinking Fast and Slow
Thinking Fast and Slow
 
Business Process Excellence: Building Out Business Process Capabilities
Business Process Excellence: Building Out Business Process CapabilitiesBusiness Process Excellence: Building Out Business Process Capabilities
Business Process Excellence: Building Out Business Process Capabilities
 
Modeling Your Applications Based on Airport Operations
Modeling Your Applications Based on Airport Operations Modeling Your Applications Based on Airport Operations
Modeling Your Applications Based on Airport Operations
 
Mann india SAP Service Offerings- IS Retail
Mann india SAP Service Offerings- IS RetailMann india SAP Service Offerings- IS Retail
Mann india SAP Service Offerings- IS Retail
 
Micro-Location with Beacons
Micro-Location with BeaconsMicro-Location with Beacons
Micro-Location with Beacons
 
DevOps Services Offerings from Rational Lab Services
DevOps Services Offerings from Rational Lab ServicesDevOps Services Offerings from Rational Lab Services
DevOps Services Offerings from Rational Lab Services
 
DevOps
DevOpsDevOps
DevOps
 
Introducing DevOps
Introducing DevOpsIntroducing DevOps
Introducing DevOps
 
DevOps 101
DevOps 101DevOps 101
DevOps 101
 

Similar to DevOps: Sprinkle Dev, Sprinkle Ops, Let's make Cake, not Mud Pies

From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]Dynatrace
 
Continuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 MedellinContinuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 MedellinDiego Garber
 
DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013Ethan Ram
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous DeploymentBrian Moon
 
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...Roberto Pérez Alcolea
 
Udvid din test portefølje med coded ui test og cloud load test
Udvid din test portefølje med coded ui test og cloud load testUdvid din test portefølje med coded ui test og cloud load test
Udvid din test portefølje med coded ui test og cloud load testPeter Lindberg
 
FUG Agile software engineering practices
FUG Agile software engineering practicesFUG Agile software engineering practices
FUG Agile software engineering practicesSerena Software
 
6 Top Tips to a Testing Strategy That Works
6 Top Tips to a Testing Strategy That Works6 Top Tips to a Testing Strategy That Works
6 Top Tips to a Testing Strategy That WorksEggplant
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using JenkinsRogue Wave Software
 
Continuous Load Testing with CloudTest and Jenkins
Continuous Load Testing with CloudTest and JenkinsContinuous Load Testing with CloudTest and Jenkins
Continuous Load Testing with CloudTest and JenkinsSOASTA
 
6 Steps to Implementing a World Class Testing Ecosystem Final
6 Steps to Implementing a World Class Testing Ecosystem Final6 Steps to Implementing a World Class Testing Ecosystem Final
6 Steps to Implementing a World Class Testing Ecosystem FinalEggplant
 
An Automation Culture: The Key to Agile Success
An Automation Culture: The Key to Agile SuccessAn Automation Culture: The Key to Agile Success
An Automation Culture: The Key to Agile SuccessTechWell
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery AppliedExcella
 
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Mike McGarr
 
Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Marcin Grzejszczak
 
DevOpsDays Rockies - Living in a Hybrid World
DevOpsDays Rockies - Living in a Hybrid WorldDevOpsDays Rockies - Living in a Hybrid World
DevOpsDays Rockies - Living in a Hybrid WorldCourtney Kissler
 

Similar to DevOps: Sprinkle Dev, Sprinkle Ops, Let's make Cake, not Mud Pies (20)

From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]
 
Continuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 MedellinContinuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 Medellin
 
Journey to the center of DevOps - v6
Journey to the center of DevOps - v6Journey to the center of DevOps - v6
Journey to the center of DevOps - v6
 
DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
 
Continuous Testing
Continuous TestingContinuous Testing
Continuous Testing
 
Udvid din test portefølje med coded ui test og cloud load test
Udvid din test portefølje med coded ui test og cloud load testUdvid din test portefølje med coded ui test og cloud load test
Udvid din test portefølje med coded ui test og cloud load test
 
FUG Agile software engineering practices
FUG Agile software engineering practicesFUG Agile software engineering practices
FUG Agile software engineering practices
 
6 Top Tips to a Testing Strategy That Works
6 Top Tips to a Testing Strategy That Works6 Top Tips to a Testing Strategy That Works
6 Top Tips to a Testing Strategy That Works
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using Jenkins
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
 
Automated Browser Testing
Automated Browser TestingAutomated Browser Testing
Automated Browser Testing
 
Continuous Load Testing with CloudTest and Jenkins
Continuous Load Testing with CloudTest and JenkinsContinuous Load Testing with CloudTest and Jenkins
Continuous Load Testing with CloudTest and Jenkins
 
6 Steps to Implementing a World Class Testing Ecosystem Final
6 Steps to Implementing a World Class Testing Ecosystem Final6 Steps to Implementing a World Class Testing Ecosystem Final
6 Steps to Implementing a World Class Testing Ecosystem Final
 
An Automation Culture: The Key to Agile Success
An Automation Culture: The Key to Agile SuccessAn Automation Culture: The Key to Agile Success
An Automation Culture: The Key to Agile Success
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
 
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)
 
Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017
 
DevOpsDays Rockies - Living in a Hybrid World
DevOpsDays Rockies - Living in a Hybrid WorldDevOpsDays Rockies - Living in a Hybrid World
DevOpsDays Rockies - Living in a Hybrid World
 

Recently uploaded

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 

Recently uploaded (20)

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 

DevOps: Sprinkle Dev, Sprinkle Ops, Let's make Cake, not Mud Pies

  • 1. Sprinkle Dev, Sprinkle Ops, lets make Cake not Mud Pies Brian Paulsmeyer Agile Gravy: September 29, 2016
  • 2. Agile Development Pitfalls … that warn us of mistakes in our agile implementation 10/4/2016 www.centricconsulting.com 1
  • 3. Waterfall in 2 Week Iterations •No ordering of stories •Gold plating of features •“Agile Waterfall” Assumptions • Learning from usage of system won’t change features • “All features will come together” in last day of last sprint • “Pause the world for 3+ years for us to finish” • “Value Proposition: All or Nothing” • Architecture can be “known” and not change • Deployments are still hard •Unfortunate ending for “Agile Waterfall” • “We ran out of money, and have nothing in production.” 10/4/2016www.centricconsulting.com 2
  • 4. Constant Redefining of “Definition of Done” •Done should simply mean done •Burndown/Burnup no longer reliable •Feature inversion occurs when time spent on defects and maintenance overtakes feature work 10/4/2016www.centricconsulting.com 3 20 20 20 18 17 17 16 16 15 13 0 0 0 2 3 3 4 4 5 7 1 2 3 4 5 6 7 8 9 10 FEATURE INVERSION Features Defects and Hidden Work
  • 5. Only focusing on Unit Tests and Manual Testing •Unit tests • Won’t ensure business workflows • Only allows minor refactoring • Failure: Mars Climate Orbiter (1999) • Team A: Pounds for unit of force • Team B: Newtons for unit of force (1 lb = 4.45 N) • Disintegrated in Mars atmosphere! • Each “Unit”/Component worked in isolation 10/4/2016www.centricconsulting.com 4
  • 6. Continuous Delivery and DevOps … simple concept, requires diligent implementation 10/4/2016 www.centricconsulting.com 5
  • 7. No more “Throw It Over the Wall” 10/4/2016www.centricconsulting.com 6
  • 8. DevOps enables Continuous Delivery •Team performs activities across disciplines •Apply principles from iteration 0 through delivery 10/4/2016www.centricconsulting.com 7 Regression UAT Integration Testing DevOps – Full Lifecycle Delivery Pipeline and Container Management Local Environments Builds Unit Tests Merge Procedures Log Interpretation Dependency Mgmt Dev Deployments Traditional DEV activities Traditional OPS activities Traditional QA activities Prod Deployments Performance Mgmt Monitoring QA Deployments Branch Mgmt Change Mgmt Log Management Configurations Integration Deployments Performance testing
  • 9. What It Takes Whether it be security, regulatory, software limitations, etc., there are many reasons why organizations say CD is impossible 10/4/2016www.centricconsulting.com 8 Tooling Process Culture Architecture
  • 10. Basic Definitions and Levels of Maturity Continuous… 10/4/2016www.centricconsulting.com 9 Automated Deployment to ProductionDeployment Manual Compile/Build, Manual Testing, Manual DeploymentPain Automated Deployment to Integration/Staging/Pre-Prod Deployment Toolset Constant across all Environments Delivery Automated Integration/Workflow Tests Automated Component Builds Automated Component Tests* Integration Automated Unit Tests * Many teams mistakenly consider Continuous Integration (CI) complete with only automated unit tests
  • 11. Pipeline •Recipe for building, deploying, and testing the system •Grouping of discrete stages for a complete workflow •Coordinates disparate technologies •Provides feedback of system state across environments 10/4/2016www.centricconsulting.com 10 Business & Customer Develop Customer Deploy to Production Deploy to Staging Deploy to QA Build and Unit Test Automated Integration / Workflow Testing
  • 12. Detailed Pipeline 10/4/2016www.centricconsulting.com 11 Business & Customer Backlog Consolidate Features and Hotfixes Iteration Planning Build Server“X” Stories Development 1 Active Story Per Developer 1 Commit Acceptance Test Customer Build Artifact Acceptance Test Environment QA Testing QA Environment Auto-Trigger Pipeline: Installs To AIT Environment Executes Smoke and Acceptance Tests (<10 min) Manual Trigger Pipeline: Installs To QA Environment Executes Smoke Tests UAT Testing Manual Trigger Pipeline: UAT Environment UAT Smoke & UAT Tests Production Manual Trigger Pipeline: Prod Environment Prod Smoke Tests UAT Environment
  • 14. Pipeline Workflow Tools … to speed implementation 10/4/2016 www.centricconsulting.com 13
  • 15. Pipeline Stage Implementation •Pipeline workflow steps trigger external tools 10/4/2016www.centricconsulting.com 14 Business & Customer Develop Customer Deploy to Production Deploy to Staging Deploy to QA Build and Unit Test Java .Net TypeScript PHP etc. Ant Maven MSBuild Make etc. JUnit Nunit etc. Bash PowerShell Chef/Puppet VMs Docker/CoreOS etc. Automated Integration / Workflow Testing Selenium Cucumber JBehave SpecFlow Codeception etc. Same Tools as Deploy to QA Only Configuration Differences Same Tools as Deploy to QA Only Configuration Differences Build Tool Jobs (ex. Jenkins)
  • 16. Key Pipeline Coordination Tool Features •Pipeline Triggers • Automatic on code check-ins to source control • Manual • Programmatic API •Workflow • Parallel steps • Sequential steps • Failure-only steps • Graphical view of steps •Artifact Tracking • Traceability from check-in to final deployment • View of deployed version in each environment • History of deployments • Ability to trigger updates to agile tracking tools (ex. JIRA) •Environment Support • Same deploy scripts, allows configuration changes per environment 10/4/2016www.centricconsulting.com 15
  • 17. Pipeline Workflow Tool : Jenkins •On-Site •Version 2.0 Provides Workflow View •Software Language Agnostic 10/4/2016www.centricconsulting.com 16
  • 18. Pipeline Workflow Tool : ThoughtWorks Go •On-Site •Software Language Agnostic 10/4/2016www.centricconsulting.com 17
  • 19. Pipeline Workflow Tool : Octopus Deploy •.Net 10/4/2016www.centricconsulting.com 18
  • 20. Automated Testing … so every day can be deployment day 10/4/2016 www.centricconsulting.com 19
  • 21. Automated Component/Integration/Workflow Testing •Opinions of why automated testing isn’t needed • “Manual testing is sufficient” • “Business only wants to spend money on features” • “Developers only want to code features” • “Our <insert technology> is too hard to test with automation” • “Automated tests run too slow” 10/4/2016www.centricconsulting.com 20 Best Case: Missed Deadline Worst Case: Catastrophic Failure in Production Result of skipping automated tests
  • 22. Selenium WebDriver Direct Test using Selenium WebDriver WebDriver driver = new FirefoxDriver(); // Navigate to webpage driver.get("http://www.google.com"); // Find the Search Field (UI Locator) WebElement element = driver.findElement(By.name(“Search")); // Fill in the data element.sendKeys(“something interesting"); // Now submit the form. WebDriver will find the form that contains the element element.submit(); // Assert the test passed 10/4/2016www.centricconsulting.com 21 Selenium WebDriver Web Page Test Test Test Test
  • 23. Page Object Model 10/4/2016www.centricconsulting.com 22 • Separate Test Code and UI Locators • Supports Don’t Repeat Yourself (DRY) for Element Locators • Less Technical Test Case SearchPage page = new SearchPage(selenium); // Enter Search information page.search(“something interesting"); // Now submit the form page.submit(); // Assert the test passed Page Object Model(s) Web Page Test Test Test Test Selenium WebDriver ServerAPI
  • 24. BDD Testing • Gherkin (English) Text File • Step Definitions Map Between English Test and System • Business Readable Test Case Given user searches for “something interesting” When user performs the Search Then assert something is true 10/4/2016www.centricconsulting.com 23 Page Object Model(s) Web Page Step Definition Step Definition Step Definition Selenium WebDriver ServerAPITest Test Test Test
  • 25. Capabilities … we need to be successful 10/4/2016 www.centricconsulting.com 24
  • 26. Rapid Response to Changing Business •Need to be able to react to disruptive technology and business models •Stagnant architecture limits new technology adoption • Changes blocked by fear of breaking system • Inability to deploy new systems to production • Unable to adopt new security upgrades • Unable to adopt new software versions 10/4/2016www.centricconsulting.com 25
  • 27. Drive Defects From Most Used Features “You can’t test quality in” At a minimum make sure defects aren’t in the standard user workflows 10/4/2016www.centricconsulting.com 26
  • 28. Adjustable/Changeable Architecture •Magic Quadrant Architecture • “Best” choice today ≠ Best choice tomorrow • Failed technologies and companies in all parts of magic quadrant •Natural product End-of-Life requires new architecture •Continuous Delivery and DevOps allows fluid architecture changes 10/4/2016www.centricconsulting.com 27 (Object-Oriented Database)
  • 29. Cadence •What if everyday was a normal day •What if those normal days were release days •What if those release days were multiple releases throughout the day •Low Risk On-Demand Releases 10/4/2016www.centricconsulting.com 28
  • 30. Deployment Styles … for production deployment 10/4/2016 www.centricconsulting.com 29
  • 31. Standard Deployment •Deployment Steps • Disable user access • Upgrade servers from V1 to V2 • Test deployment • Enable user access • Upgrade destabilizes running environment •Problem Mitigation • Re-Enable backup if possible • Developer troubleshooting requires customer downtime 10/4/2016www.centricconsulting.com 30
  • 32. Blue Green Router / Load Balancer Blue-Green Deployment •Two Identical Production Environments • Blue • Green •One Active: Router Controlled •Deployment Steps (Green Active) • Deploy to Blue environment – No users affected • Perform smoke tests on Blue environment • Optional: Switch subset of users to Blue (similar to Canary releases) • Switch all users to Blue environment •Problem Mitigation • Don’t switch to 2nd environment • Developer troubleshooting has no customer impact 10/4/2016www.centricconsulting.com 31
  • 33. Canary Router / Load Balancer Canary Deployment •One Production Environment •Deployment Steps • Deploy to 1 server (Canary) Optional: Provision and build new server from scratch • Router sends portion of users to Canary • Random • Internal users only • User-type based (ex. Test users) • Gradually upgrade servers to V2 • Gradually switch users to V2 servers •Problem Mitigation • Don’t switch additional users to Canary environment • Developer troubleshooting has no customer impact 10/4/2016www.centricconsulting.com 32
  • 34. Case Studies … that show it can be done
  • 35. Before Build Automation •23 Teams •  150 Team Members (Developers, Quality Engineers, Scrum Masters) •  100 Developers •Service Oriented Architecture • Managers, Engines, Data Access •Baseline End of PI6 (SAFe) • PI6 demo system setup • Two weeks to setup • Manual Installations – not repeatable • Individual Teams created “magic instructions” in isolation to install and run solution • Some teams unable to run full solution • Custom data loaders used to skip workflow steps • Developers unable to test full workflow • Movement of data through workflow steps untested till end of PI • Update of component versions caused “Day of Downtime” for developers to fix unexpected issues 10/4/2016www.centricconsulting.com 34
  • 36. After Build Automation: Jenkins Easy Button Builds • Starting Point: a machine with Windows — that’s it! • The rest is automated: − Provisioning: verify/install tools takes ~50 minutes − Puppet Agent, PowerShell, 7-Zip, VNC − SQL Server, .Net, Visual Studio − Noticia Repono Client − Install Custom Software takes 5-10 minutes − Clean system from any previous runs − Install/Configure Base Components − Install System − Install and Run Smoke Tests At this point the system is ready to be used to do further testing, demos, etc. • Deploy cycle repeats ChunkyMonkey Vanilla
  • 37. Definition of Done … that makes our customers happy 10/4/2016 www.centricconsulting.com 36
  • 38. Continuous Delivery Definition of Done •Automated Deployments • Fully Automatic or Push-Button Deploys • Same Executable Scripts for all Environments • No Deployment Hero •Automated Testing • Unit • Integration • Full System •Always Shippable • No Temporary Code • No Untested Code • Feature Toggles •One Backlog • Production Bug Fixes • New Features 10/4/2016www.centricconsulting.com 37
  • 39. About Me 10/4/2016www.centricconsulting.com 38 • Our highest priority is building lifelong relationships with clients based on trust, respect, and collaboration. • We invest in our talented team and support their well being by keeping them challenged and inspired. • Our localized company structure allows us to play very active roles in the lives of our families and community. This relationship-centric focus keeps us passionate, committed and motivated in all facets of our lives. That’s why our team is here to stay. Centric Consulting • 17 years as a software developer and architect • Full stack developer in Java, .Net, TypeScript (Angular 2), and PHP • DevOps tooling experience including VMs, Docker, Chef, and Puppet • Continuous Delivery and Automated Testing implementations • Experience across industries including FDA and SEC regulated Continue the Journey • http://centricconsulting.com/centric-st-louis-scaled-agile-workshop/ Thank You for Attending!

Editor's Notes

  1. Selenium WebDriver is used to manipulate HTML Web Pages by providing the ability to find and manipulate elements on an HTML page. As seen in this example the driver uses a findElement method to identify the element on the HTML page. It is important to add ids into the HTML that can be used to simplify finding the HTML elements on the web page. By making minor changes in the development of the web page the page becomes much simpler to automate with Selenium. With this single test a small change to the web page would be managed by changing the findElement By Name string. With a small number of tests this can be managed without adding a large cost when a UI change occurs. However once hundreds and even thousands of tests are created with findElement searches spread throughout the tests the cost to make a single change to the UI causes a ripple effect in the tests. If the test suites are coded at this “low-level” then a single UI change becomes extremely expensive and the tests become brittle and hard to maintain. In addition “the language of the test” is technical. It is difficult to show the test to a business owner, project manager, or even technical people because the test objective is lost within the technical web driver details.
  2. The Page Object Model pattern can be used to eliminate the duplication of the Find Element locators. In addition the pattern greatly simplifies the test code. However the test is still actual compile-able code. The pattern can also be used to interact with APIs and other parts of the system in addition to directly interacting with the WebDriver.
  3. Behavior Driven Design can be used to test web sites, APIs, as well as other systems. The test cases are written in a language that matches the business. The underlying BDD engine (ex. Cucumber) is used to translate the English text into actions against the system. This allows the Gherkin tests to interact with the system as needed without adding complexity to the actual test case. BDD provides an explicit separation between the test cases and the actual implementation of the system. By writing the tests with a business-centered focus the tests are more stable than if written directly against the UI implementation elements.
  4. Down-time “We’ll Be Back” Landing Page Zero Downtime Blue-Green Canary Releases