Continuous Delivery / Continuous Deployment How to automate your Deliveries. Bernhard Keprt 24.02.2014

Similar documents
Agility via Software Engineering Practices

Continuous Integration Processes and SCM To Support Test Automation

When is Agile the Best Project Management Method? Lana Tylka

Introduction to Agile and Scrum

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Introduction to Agile Software Development Process. Software Development Life Cycles

Scrum, User Stories, and More! CSCI 5828: Foundations of Software Engineering Lecture 22 11/06/2014

The Agile Movement An introduction to agile software development

Measuring ROI of Agile Transformation

Driving an agile peg in a CMMI hole

Increasing Business Efficiency and Agility for ATGbased. Systems. the business challenge: upgrading the development pipeline

Maintaining Quality in Agile Environment

Accelerating software testing effectiveness using Agile methodologies..

Applying Agile Project Management to a Customized Moodle Implementation

Best Overall Use of Technology. Jaspersoft

DevOps. Happiest People Happiest Customers

Lean vs. Agile similarities and differences Created by Stephen Barkar -

Agile and Secure: Can We Be Both?

Waterfall to Agile. DFI Case Study By Nick Van, PMP

MANAGER ENGINEER INTEGRATING ENGINEERING ROLES INTOSCRUM MAY Dr. Shalom Cohen, Logic Industries and the Technion

The Continuous Delivery Effect

How we work. Digital Natives working methods

Software Quality Testing Course Material

adopting continuous delivery

Adopting Agile Approaches for the Enterprise

Software Continuous Integration & Delivery

Mitigating Risk with Agile Development. Rich Mironov CMO, Enthiosys

Driving Quality Improvement and Reducing Technical Debt with the Definition of Done

About Me Developer Workspaces Enable Agile Teams

Agile automated software testing into automotive V-Model process:

Mobile App Development: The CD Recipe Jenkins + Functional and Non-functional Testing + Real Devices. Carlo Cadet, Director, Technical Evangelists

Modern practices TIE-21100/

Enabling Continuous Delivery by Leveraging the Deployment Pipeline

Software Development Lifecycle. Steve Macbeth Group Program Manager Search Technology Center Microsoft Research Asia

18/09/2015. DevOps. Prof. Filippo Lanubile. Outline. Definitions Collaboration in DevOps Automation in DevOps. Prof.

Software Engineering and Scientific Computing

Testhouse Training Portfolio

Delivering Security in Continuous Delivery Environment

About me - Joel Montvelisky

Lean Software Development and Kanban

Agile & Scrum: What are these methodologies and how will they impact QA/testing roles? Marina Gil Santamaria Summer 2007

Automated Acceptance Testing of High Capacity Network Gateway

Optimizing Your Software Process

Codeless Test Automation for Web Apps

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

From Traditional Functional Testing to Enabling Continuous Quality in Mobile App Development

Good Agile Testing Practices and Traits How does Agile Testing work?

Client Overview. Engagement Situation. Key Requirements

Business Analysis In Agile A Differentiated Narrative

Quality Assurance in an Agile Environment

Agile Metrics. It s Not All That Complicated

Continuous Delivery - is it from the Devil? Tamas Csako

Scrum in a Large Project Theory and Practice

Agile Fundamentals, ROI and Engineering Best Practices. Rich Mironov Principal, Mironov Consulting

MTAT Software Engineering

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

Leveraging Agile and CMMI for better Business Benefits Presented at HYDSPIN Mid-year Conference Jun-2014

DevOps for CA Plex Automated Testing

The Agile Manifesto is based on 12 principles:

2015 Defense Health Information Technology Symposium Implementation of Agile SCRUM Software Development Methodology

XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories

Agile extreme Development & Project Management Strategy Mentored/Component-based Workshop Series

The Importance of Continuous Integration for Quality Assurance Teams

Applying Lean on Agile Scrum Development Methodology

Test Automation: A Project Management Perspective

Software Engineering I (02161)

Why continuous delivery needs devops, and why devops needs infrastructure-as-code. Sriram 25-Oct-2012

HP Application Lifecycle Management

Continuous Delivery by example.net

Application Lifecycle Management Using Visual Studio 2013 (SCRUM)

Agile Scrum Workshop

Accelerating Time to Market with Agile Testing

Using the Agile Methodology to Mitigate the Risks of Highly Adaptive Projects

IT Home 2015 DevOps 研 討 會

Continuous Delivery. Ariel Alonso, IPC

Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc.

Testing in Agile methodologies easier or more difficult?

NIH PROJECT MANAGEMENT COMMUNITY THE DEVOPS EFFECT DONNA KNAPP ... educate & inspire ITSM Academy

Agile Software Development

Terrace Consulting Services

Sept 10, The Agile Business Analyst

Executive Guide to SAFe 24 July An Executive s Guide to the Scaled Agile Framework.

"Testing in the DevOps World of Continuous Delivery"

A Study of RE Across Different Software Development Lifecycle Models. Afiya Nusrat and Navreet Ghag CS 846 Spring 2015

Agile Project Management By Mark C. Layton

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited

Agile Projects 7. Agile Project Management 21

Git Branching for Continuous Delivery

Continuous Delivery: implementation considerations. Léon Hagenaars-Keus Edwin van Dillen

An Introduction to Continuous Delivery

AGILE vs. WATERFALL METHODOLOGIES

Nova Software Quality Assurance Process

Friday, 10 December How to run a BI project?

Understanding Code Management in a Multi-Vendor Environment. Examples of code management in a multi-team environment

Continuous Integration & Automated Testing in a multisite.net/cloud Project

An Agile Approach to Release Management

VISUAL REQUIREMENTS MANAGEMENT WITH KANBAN. Mahesh Singh Co-founder/ Sr. VP Product, Digite, Inc.

AGILE DEVELOPMENT WITH A CAPITAL A

Accelerating Time to Market:

Agile Software Development

Transcription:

Continuous Delivery / Continuous Deployment How to automate your Deliveries Bernhard Keprt 24.02.2014

Bernhard Keprt Software Developer Teamleader Software Development Job at willhaben.at! Likes Agile Development Test Driven Development Software Architecture Hates Bugs Refill the coffee machine

willhaben.at Austria s largest public portal > 765 Mil. page impressions per month > 22,8 Mil. visits per month > 4,6 Mil. unique clients per month > 33,7% reach > 2,3 Mil. online adverts! Source: owea.at, January 2014! Great Place To Work

Common Feature Lifecycle Continuous Delivery willhaben.at 3

Common Feature Lifecycle Development Continuous Delivery willhaben.at 3

Common Feature Lifecycle Development Continuous Delivery willhaben.at 3

Common Feature Lifecycle Development Code Freeze Continuous Delivery willhaben.at 3

Common Feature Lifecycle Development Code Freeze Continuous Delivery willhaben.at 3

Common Feature Lifecycle Development Code Freeze Testing Continuous Delivery willhaben.at 3

Common Feature Lifecycle Development Code Freeze Testing Continuous Delivery willhaben.at 3

Common Feature Lifecycle Development Code Freeze Testing Deployment Continuous Delivery willhaben.at 3

Common Feature Lifecycle Development Code Freeze Testing Deployment Continuous Delivery willhaben.at 3

Common Feature Lifecycle Development Code Freeze Testing Deployment Tests Continuous Delivery willhaben.at 3

Common Feature Lifecycle Development Code Freeze Testing Deployment Tests Continuous Delivery willhaben.at 3

Common Feature Lifecycle Development Code Freeze Testing Deployment Tests Feature Live Continuous Delivery willhaben.at 3

Common Feature Lifecycle Development Code Freeze Testing Deployment Tests Feature Live Continuous Delivery willhaben.at 3

Common Feature Lifecycle Development Code Freeze Testing Deployment Tests Feature Live Continuous Delivery willhaben.at 3

Common Feature Lifecycle Continuous Delivery willhaben.at 3

Common Feature Lifecycle PM Continuous Delivery willhaben.at 3

Common Feature Lifecycle PM Dev Meetings Continuous Delivery willhaben.at 3

Common Feature Lifecycle PM Dev Meetings Continuous Delivery willhaben.at 3

Common Feature Lifecycle PM Dev Meetings Dev Continuous Delivery willhaben.at 3

Common Feature Lifecycle PM Dev Meetings QA Dev Continuous Delivery willhaben.at 3

Common Feature Lifecycle PM Dev Meetings OPs QA Dev Continuous Delivery willhaben.at 3

Continuous Delivery - DONTs Continuous Delivery willhaben.at 3

Continuous Delivery - DONTs Continuous Delivery willhaben.at 3

Continuous Delivery - DONTs Continuous Delivery willhaben.at 3

Continuous Delivery - DONTs Continuous Delivery willhaben.at 3

Continuous Delivery - DONTs Continuous Delivery willhaben.at 3

Continuous Delivery - DONTs Continuous Delivery willhaben.at 3

Continuous Delivery - DONTs Continuous Delivery willhaben.at 3

Continuous Delivery - DONTs Continuous Delivery willhaben.at 3

Continuous Delivery - DONTs Continuous Delivery willhaben.at 3

Continuous Delivery - DONTs Continuous Delivery willhaben.at 3

Continuous Delivery - DONTs Continuous Delivery willhaben.at 3

Continuous Delivery - DONTs Continuous Delivery willhaben.at 3

Continuous Delivery - DONTs Continuous Delivery willhaben.at 3

Benefits of CI/CD

Benefits of CI/CD Fast feedback

Benefits of CI/CD Fast feedback Improves Quality

Benefits of CI/CD Fast feedback Improves Quality Finding a bug early lowers its costs

Benefits of CI/CD Fast feedback Improves Quality Finding a bug early lowers its costs

Benefits of CI/CD Fast feedback Improves Quality Finding a bug early lowers its costs Every commit is built

Benefits of CI/CD Fast feedback Improves Quality Finding a bug early lowers its costs Every commit is built

Benefits of CI/CD Fast feedback Improves Quality Finding a bug early lowers its costs Every commit is built Every commit is tested

Benefits of CI/CD Fast feedback Improves Quality Finding a bug early lowers its costs Every commit is built Every commit is tested

Benefits of CI/CD Fast feedback Improves Quality Finding a bug early lowers its costs Every commit is built Every commit is tested Every environment is up to date in no time!

Benefits of CI/CD Fast feedback Improves Quality Finding a bug early lowers its costs Every commit is built Every commit is tested Every environment is up to date in no time!

Benefits of CI/CD Fast feedback Improves Quality Finding a bug early lowers its costs Every commit is built Every commit is tested Every environment is up to date in no time! Smaller features get released more often

Benefits of CI/CD Fast feedback Improves Quality Finding a bug early lowers its costs Every commit is built Every commit is tested Every environment is up to date in no time! Smaller features get released more often

Obstacles Technical! Team! Organization! QA! IT-OPs! Hardware

Technical Obstacles Your software architecture is not ready! Your start-up process is inadequate! Your configuration is misplaced! Your database / -connection is not useable for CD! Your build-process is processed manually

Team Obstacles Your team is not using agile methods (waterfall)! You don t use sprints / SCRUM / Kanban! Your team members don t trust each other! Someone in your team owns code! Your team is pointing finger at each other

Organizational Obstacles Team autonomy is a foreign word in your company! Your company divides responsibilities rigorously! Your organization misses courage! New ideas are not welcome

QA Obstacles Your QA uses manual testing only! Your QA don t trust your testing environments

IT-Operations Obstacles Your IT-OPs want to rule the (server-)world! OPs feel useless when implementing CD

Hardware Obstacles You don t have the proper hardware! You can not access the target hardware by scripts

Which roles are affected by CD? Product Owner Product Manager / Project Manager Scrum Master Developer QA IT-Operator Customer!! What are the motivations for each role?

Product Owner / Product Manager Time to market increased Short feedback loop for features Smaller features means more control Feature-Pipeline will not be blocked Planning becomes more feature oriented Smaller planning iterations Less specification at a time => Specification on demand Immediate technical feedback Lower risk High PO satisfaction High customer satisfaction

Scrum Master Small sized, release-able features! Higher sprint success rate! Less time spent for planning / retro-meetings

Developer Code for Testing vs. Code for Production Every Code is potentially deployed to production environment Test Driven Development More important than ever Fast Feedback is necessary from QA, PM Releasing features is routine! Fast feedback improves quality

QA Testing is more focused! Testing effort is reduced within a sprint! High quality and even improving! Test automation is a useful assistant! More trust in software quality

IT-Operator Standardized methods for deployment! No manual effort necessary for a release! Focus on stabilizing deployment process! Focus on monitoring

How can you tame the QA dragon?

How can you tame the QA dragon?

How can you tame the QA dragon? A lot of justified arguments:

How can you tame the QA dragon? A lot of justified arguments: Developers produce bugs!

How can you tame the QA dragon? A lot of justified arguments: Developers produce bugs! Environments are not the same!

How can you tame the QA dragon? A lot of justified arguments: Developers produce bugs! Environments are not the same! What about cascaded bugs?

How can you tame the QA dragon? A lot of justified arguments: Developers produce bugs! Environments are not the same! What about cascaded bugs? You don t have enough coverage!

How can you tame the QA dragon? A lot of justified arguments: Developers produce bugs! Environments are not the same! What about cascaded bugs? You don t have enough coverage! What if you forget about config?

How can you tame the QA dragon? A lot of justified arguments: Developers produce bugs! Environments are not the same! What about cascaded bugs? You don t have enough coverage! What if you forget about config? That s not enough specification!

How can you tame the QA dragon? A lot of justified arguments: Developers produce bugs! Environments are not the same! What about cascaded bugs? You don t have enough coverage! What if you forget about config? That s not enough specification! Yeah of course The bug is fixed now

How can you tame the QA dragon? A lot of justified arguments: Developers produce bugs! Environments are not the same! What about cascaded bugs? You don t have enough coverage! What if you forget about config? That s not enough specification! Yeah of course The bug is fixed now

How can you tame the QA dragon? A lot of justified arguments: Developers produce bugs! Environments are not the same! What about cascaded bugs? You don t have enough coverage! What if you forget about config? That s not enough specification! Yeah of course The bug is fixed now They do their job:

How can you tame the QA dragon? A lot of justified arguments: Developers produce bugs! Environments are not the same! What about cascaded bugs? You don t have enough coverage! What if you forget about config? That s not enough specification! Yeah of course The bug is fixed now They do their job:

How can you tame the QA dragon? A lot of justified arguments: Developers produce bugs! Environments are not the same! What about cascaded bugs? You don t have enough coverage! What if you forget about config? That s not enough specification! Yeah of course The bug is fixed now They do their job: Don t trust developers!

Integrate QA to development process

Integrate QA to development process Test automation REST-tests Selenium

Integrate QA to development process Test automation REST-tests Selenium Specification / Test Cases

Integrate QA to development process Test automation REST-tests Selenium Specification / Test Cases

Integrate QA to development process Test automation REST-tests Selenium Specification / Test Cases Estimation, planning, releasing

Integrate QA to development process Test automation REST-tests Selenium Specification / Test Cases Estimation, planning, releasing Earn their trust! Enable CD for individual environments one after another Every reported bug leads to an automated test

Integrate QA to development process Test automation REST-tests Selenium Specification / Test Cases Estimation, planning, releasing Earn their trust! Enable CD for individual environments one after another Every reported bug leads to an automated test Their feedback is essential!

Integrate QA to development process Test automation REST-tests Selenium Specification / Test Cases Estimation, planning, releasing Earn their trust! Enable CD for individual environments one after another Every reported bug leads to an automated test Their feedback is essential!

Combine CD with Scrum

Combine CD with Scrum Scrum emphasizes working product at the end of the sprint that is really done ; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. (wikipedia)

Combine CD with Scrum Scrum emphasizes working product at the end of the sprint that is really done ; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. (wikipedia)

Combine CD with Scrum Scrum emphasizes working product at the end of the sprint that is really done ; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. (wikipedia) Use short sprint durations!

Combine CD with Scrum Scrum emphasizes working product at the end of the sprint that is really done ; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. (wikipedia) Use short sprint durations!

Combine CD with Scrum Scrum emphasizes working product at the end of the sprint that is really done ; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. (wikipedia) Use short sprint durations! User stories / features within the sprint are going to be released!

Combine CD with Scrum Scrum emphasizes working product at the end of the sprint that is really done ; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. (wikipedia) Use short sprint durations! User stories / features within the sprint are going to be released!

Combine CD with Scrum Scrum emphasizes working product at the end of the sprint that is really done ; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. (wikipedia) Use short sprint durations! User stories / features within the sprint are going to be released! Size matters!

Combine CD with Scrum Scrum emphasizes working product at the end of the sprint that is really done ; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. (wikipedia) Use short sprint durations! User stories / features within the sprint are going to be released! Size matters!

Combine CD with Scrum Scrum emphasizes working product at the end of the sprint that is really done ; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. (wikipedia) Use short sprint durations! User stories / features within the sprint are going to be released! Size matters! Design your features small enough:

Combine CD with Scrum Scrum emphasizes working product at the end of the sprint that is really done ; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. (wikipedia) Use short sprint durations! User stories / features within the sprint are going to be released! Size matters! Design your features small enough: Specified and documented

Combine CD with Scrum Scrum emphasizes working product at the end of the sprint that is really done ; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. (wikipedia) Use short sprint durations! User stories / features within the sprint are going to be released! Size matters! Design your features small enough: Specified and documented They finish within the sprint

Combine CD with Scrum Scrum emphasizes working product at the end of the sprint that is really done ; in the case of software, this means a system that is integrated, fully tested, end-user documented, and potentially shippable. (wikipedia) Use short sprint durations! User stories / features within the sprint are going to be released! Size matters! Design your features small enough: Specified and documented They finish within the sprint They can be tested by QA

Combine CD with Scrum

Combine CD with Scrum Don t branch!

Combine CD with Scrum Don t branch!

Combine CD with Scrum Don t branch! Use feature trigger instead Configuration enables features Use bridge-pattern: Build a new bridge Redirect traffic Tear down old bridge

Combine CD with Scrum Don t branch! Use feature trigger instead Configuration enables features Use bridge-pattern: Build a new bridge Redirect traffic Tear down old bridge Configuration is part of a deployment!

Combine CD with Scrum

Combine CD with Scrum Your feature toggle comes first Need a hotfix? No problem!

Combine CD with Scrum Your feature toggle comes first Need a hotfix? No problem! There is no step back, we just deploy forward

Use the power of communication

Use the power of communication Encourage communication

Use the power of communication Encourage communication

Use the power of communication Encourage communication Claim for early feedback Both ways (PM <-> Dev)

Use the power of communication Encourage communication Claim for early feedback Both ways (PM <-> Dev) QA creates test scenarios along with specification

Use the power of communication Encourage communication Claim for early feedback Both ways (PM <-> Dev) QA creates test scenarios along with specification

Use the power of communication Encourage communication Claim for early feedback Both ways (PM <-> Dev) QA creates test scenarios along with specification Got a question during a sprint? Ask right away!

Use the power of communication Encourage communication Claim for early feedback Both ways (PM <-> Dev) QA creates test scenarios along with specification Got a question during a sprint? Ask right away!

Will DANKE sagen für die Aufmerksamkeit