What is Continuous Integration. And how do I get there

Similar documents
SUZIE PRINCE ARAVIND S.V. DAVID RICE

Trevor Quinn PaaS and DevOps Practice Lead, North America Red Hat Consulting

Lecture 8 Agile Software Development

Lecture 1. Topics covered. Rapid p development and delivery is now often the most important requirement for software systems.

Conclusion.

The Challenge: Balancing Change and Control of Continuous Delivery at Scale

A DIVISION OF. DevOps Automation. Service Catalogue

CM MatchPoint Agile. Christoph Heinrich, CM First Plex Track A / Session 17

Software Engineering Lecture 5 Agile Software Development

Five DevOps CM Practices

Maintenance is Dead! A path to a New Paradigm

The Changing Roles of BAs and QAs in a SCRUM world

Sample Exam ISTQB Agile Foundation Questions. Exam Prepared By

DASA DEVOPS. Glossary

AUTOMATED TESTING: THE GLUE THAT HOLDS DEVOPS TOGETHER

Agile Manifesto & XP

Achieving Balance: The New Pivotal Points of Software Development

Software Design COSC 4353/6353 D R. R A J S I N G H

D E V O P S T E X A S TEXAS DEVOPS M E E T U P INFLUENCING A DEVOPS CULTURE

Quantifying the Value of Investments in Micro Focus Quality Center Solutions

Agile Software Development:

Why your continuous integration and delivery practices need an edge cloud platform

The Business Case for ALM Transformation ALM

Tools and technology usage in PFMS application lifecycle management process

Delivering Continuous Value with Visual Studio 2012 Application Lifecycle Management

DevOps architecture overview

CORE ELEMENTS OF CONTINUOUS TESTING

Robotic Process Automation

Container Crash Course. Bob Familiar Director, National Practice BlueMetal, An Insight Company

Decomposing SAFe. Saturday, April 30th, 2016 at IIT Chicago Always FREE! Registration is OPEN!

Software Engineering & Project Management Engr. Abdul-Rahman Mahmood MS, PMP, MCP, QMR(ISO9001:2000)

Scrum Testing: A Beginner s Guide

Agile & DevOps Security & Audit

Copyright Intertech, Inc All Rights Reserved. May 18, 2011

Introduction to Agile and Scrum

Agenda. About Me. Goals. Collaborate, Build, Test, Deploy: Essential SCM Practices for Teams. Background. SCM Patterns Questions

Chapter 3 Agile Software Development

AGILE TEST MANAGEMENT WITH VISUAL STUDIO

Frameworks - Which one should you choose?

YOUR GUIDED TRANSFORMATION

10 Steps to Mainframe Agile Development. Mark Schettenhelm, Sr. Product Manager September 28, 2017

Building a DevOps Culture MTUG IT Summit and Tradeshow, June 2 nd 2016

Agile at Mid-Scale. Al Shalloway. Introducing FLow for Enterprise Transformations (FLEX)

Agile Projects 7. Agile Project Management 21

In-House Agile Training Offerings

Thoughts about modelbased test management. Matti Vuori

Exam Name: Delivering Continuous Value with Visual Studio 2012 Application Lifecycle Management

On various testing topics: Integration, large systems, shifting to left, current test ideas, DevOps

What is your definition of DevOps?

COGNITIVE QA: LEVERAGE AI AND ANALYTICS FOR GREATER SPEED AND QUALITY. us.sogeti.com

July Business Transformation: Ness Technology Makes DevOps and Continuous Integration Reality with DevTestOps Center of Excellence

ACCURATE STUDY GUIDES, HIGH PASSING RATE! Question & Answer. Dump Step. provides update free of charge in one year!

THE SHAPE OF CI/CD. Tom Duffield Software Engineer for Chef November 2nd, 2015

How Cisco IT Developed a Self-Service Model for Build and Deploy

Patterns and Practices of Best DevOps Organizations

Michael Koester. Sr. Product Marketing Manager, Visual Studio Online, ALM & DevOps

Foundations of Software Engineering. Process: Agile Practices Michael Hilton

Dynamics NAV Upgrades: Best Practices

Brochure. Application Lifecycle Management. Accelerate Your Business. Micro Focus Application Lifecycle Management Software

AGILE Realities. Presenters: Chris Koo (Edward Jones) Blake Moyer (Edward Jones) Joan Romine (Boeing)

A 7-STEP FRAMEWORK TO IMPLEMENT CICD IN ETL TESTING

Engineering Practices for Innovation

Microsoft Exam Delivering Continuous Value with Visual Studio 2012 Application Lifecycle Management Version: 9.0

COPYRIGHTED MATERIAL WHAT S IN THIS CHAPTER?

Delivering Continuous Value with Visual Studio 2012 Application Lifecycle Management

ABN AMRO Transforms with CICD to Accelerate Software Delivery and Improve Security. DevOn Summit Utrecht 14 th Mar 2018 Stefan Simenon

approach to successful project

Session 11E Adopting Agile Ground Software Development. Supannika Mobasser The Aerospace Corporation

Agile Development Doesn t Have to Mean Fragile Enterprise Processes

SCALED CONTINUOUS INTEGRATION & DELIVERY DELIVER WHAT CUSTOMERS WANT, FASTER, WITH AN INTEGRATED CI/CD TOOL

1. Balance Tech Debt. 2. Automate Security. 3. Provide Self-Service Resources. 4. Implement Success Metrics. 5. Automate Continuous Delivery

Chapter 3 Agile Software Development. Part 1b

Microsoft.Examsoon v by.RAMONA.53q

Agile Software Development in a Regulated Environment. Natalie Custer

Closing the Agile Loop Continuous Integration, Continuous Information. Darryl Bowler Senior Systems Architect CollabNet

Enable your Agile Team with Continuous Delivery Pipelines

MICROSOFT EXAM QUESTIONS & ANSWERS

Agile Software Development

Chapter 7. Project Reporting Keeping Everything Visible

Development Operations in the Cloud: A Use Case and Best Practices

Software Product Development Company Reduces Go-To-Market time by 52% through Nitor s DevOps Implementation

Agile Testing - Joe Caravella 1

A Guide to Branching and Merging Patterns

Transforming Business Needs into Business Value. Path to Agility May 2013

IT Career Opportunities. Copyright 2012 CollabNet, Inc. All Rights Reserved.

Case Study: United Airlines Transforms Release Management for Its Modern Software Factory

Avoid the Hype and Find Real Value in Devops and PaaS ABDUL KHALIQ GAFFAR

Succeed with Agile at Scale

Welcome to the webinar. We will begin shortly.

Software Engineering Chap.3 - Agile Software Development

DATASHEET COLLABNET TEAMFORGE

Agile at Scale -Beyond SAFe. John B Hudson, B.Sc., PMP, ACP, CSM, SPC

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

Visit California Digital Solutions, Drupal Development Website Experience. ITRS Case Study.

UForge AppCenter 3.8. Introduction March Copyright 2018 FUJITSU LIMITED

Integrating Configuration Management Into Your Release Automation Strategy

What s next for Traditional Functional QA Managers?

Oh No, DevOps is Tough to Implement!

SQS Agile approach. Accelerating quality software delivery. sqs.com

DEVOPS FUNDAMENTALS - MOCK EXAM

Transcription:

What is Continuous Integration And how do I get there

Related Workshops Introduction to DevOps Transform your Organization with DevOps Concepts DevOps Implementation Boot Camp Comprehensive literacy on transitioning to Agile-Driven DevOps Workshop Teach your teams to manage infrastructure, operations, and production work the Agile way. Test-Driven Development Workshop Learn to implement Test-Driven Development methods by incorporating unit testing, design, refactoring and frameworks into your workflow.

Related Workshops Continuous Integration Boot Camp A fast-paced, practical approach to CI in the real world - skills, tools, processes, and people. Continuous Delivery Workshop Learn to implement Continuous Delivery strategies into your current application workflow. Hands-On Agile Engineering TDD, Continuous Integration, Refactoring, and Emergent Design for Agile technical excellence.

Continuous Integration Bootcamp In this course you will learn how to: Set up and navigate a CI environment that enables automated testing & automated builds Execute releases in test environments prior to product delivery Identify the most efficient CI tools for quick release & reliable maintenance of solutions Integrate Continuous Integration methods & techniques into current workflow for a SCM environment Deliver value from continuous integration in your own organization Examine real world examples of continuous integration benefits http://www.techtowntraining.com/courses/continuous-integration-bootcamp/

Agenda The Problem with Delivering Software Becoming Agile Automated Testing Continuous Integration Configuration Management Infrastructure as Code Nonfunctional Requirements Continuous Delivery

The problem with delivering software Changing Priorities Project Visibility Time to market

Changing Priorities Allow changes throughout the project Freeze changes in sprint Prioritize changes Incremental planning

Project Visibility Kanban Board Test Reporting Sprint Burndown Epic and Release Burndown Key Agile Metrics

Time to market Mean Time to Change Mean Time to Recovery

Becoming Agile Agile Manifesto Agile vs Waterfall The Agile Team Agile Practices

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. Agilemanifesto.org, 2001 DEFINING AGILE What is Agile?

DSDM.org, 1994 DEFINING AGILE Why does Agile work?

The Agile Team QA BA Product Owner Scrum Master Development Team Servant Leaders Agile PM UX

Agile Practices Agile Planning Development Sprints Test Driven Development Continuous Inspection

Continuous Inspection Core concepts Developer push back 10 key points

Core Concepts Automated code scans Standard Naming Conventions Variable Declarations Scan on commit

Developer Push back Developers tend to push back on action plans generated from punctual audits, because they: Are generated outside the team, and are seen as a new constraint in daily work Are subjective; findings rely on the judgement of the auditors rather than on objective measures Miss contextual and historical information, and are therefore seen as irrelevant

Developer push back Are invalidated by on-going changes and quickly become out-dated Do not involve developers and other stakeholders in the review & audit process Intervene too late in the process; by the time a feature is audited, developers need to relearn the code to address a finding

10 Key Concepts All stakeholders in the development process not just developers or managers - must have ready access to meaningful data about software quality. Managing software quality must be everyone s concern from the beginning of development, but is the development team's ultimate responsibility. Software Quality must be part of the development process, meaning that meeting quality standards is one of the hard requirements to be able to declare development complete. Software Quality requirements must be objective and not require a subjective pass / fail decision. As much as possible, software quality requirements must be common to all software products, regardless of their specifics.

10 Key Concepts Software Quality data must be up to date, i.e. measured on the very latest version of the code. Software products must be continuously inspected, so that errors are found quickly, when they are easy to correct. Developers must be able to spot new quality flaws as soon as they are introduced, i.e. within the IDE as they write code, similar to how spell checkers highlight misspellings. Whether through push or pull, stakeholders must be alerted when new quality flaws are injected, whether that's by sending email, breaking the build or by other methods. Injection of new issues must be tracked, enabling teams to make quick, informed decisions about quality. Software quality data must be available both as absolute (on all code) and differential (new code only) values so that the development team can be in full control of the incoming flow of issues. All new issues and existing critical issues must be assigned a clear path and timeline for resolution.

10 Key Concepts Software Quality data must be up to date, i.e. measured on the very latest version of the code. Software products must be continuously inspected, so that errors are found quickly, when they are easy to correct. Developers must be able to spot new quality flaws as soon as they are introduced, i.e. within the IDE as they write code, similar to how spell checkers highlight misspellings. Whether through push or pull, stakeholders must be alerted when new quality flaws are injected, whether that's by sending email, breaking the build or by other methods. Injection of new issues must be tracked, enabling teams to make quick, informed decisions about quality. Software quality data must be available both as absolute (on all code) and differential (new code only) values so that the development team can be in full control of the incoming flow of issues. All new issues and existing critical issues must be assigned a clear path and timeline for resolution.

Configuration Management Core concepts Version Control Build Automation

Core concepts Configuration details in version control Lab environments that mirrors production Test / Staging environment that mirrors production Automated configuration Never make manual changes in production

Version Control Version Control is a system that records changes to files, so that one can recall specific versions later. Benefits Terms Backup/Restore Repository: Stores documents Team Collaboration Server: Main file store Accountability Client: user work station with local copy of files Audit trail Trunk: Master location of files Sync across multiple work stations Head: Latest version of files

Version Control Questions to consider: Can new developers setup their environment from one source? Can the operations or testing team duplicate the product from the repo? Can a business user compile the product to demonstrate to a user? Failure to place everything in version control can lead to reduced quality, agility and efficiency. New (and current) developers wasting time setting up environments Reduced testing coverage due to challenges creating the artifacts Loss of opportunities due to lack of easily demonstrable value

Small, Frequent Commits Version Control Less risk Easier to rollback Easier to review Less merge conflicts More frequent test coverage Less disruptive to other outstanding branches in development

Version Control Is your team doing Continuous Integration? Do developers check into trunk every day? Does every check-in trigger testing (unit and regression) and an automated build? If the build is broken or tests fail, is the problem resolved in a few minutes?

Build Tool Use Cases Build Tool Automation 1. It should be possible for a developer to easily reproduce a build on his or her local machine. 2. It is especially beneficial if anyone can trigger a build from a common machine. i.e. Product Owner can trigger builds independently without developer help On Demand - Local builds by a developer by a shell script to ensure compilation Triggered - Build created whenever a commit is accepted into source control Scheduled -Automated builds at some interval such as hourly or daily.

Automated Deployment Benefits 1. Allows anyone to deploy the application 2. New environments can be readily supported 3. Less overhead from deployments 4. More frequent deployments are possible 5. More scalable due to less errors

Configuration management tools: (we will discuss these more later)

Continuous Integration Commit to Source Control Automated Build Automated Tests Gated Check-In Automatic Bug Item Creation and Assignment

The deployment pipeline Commit Stage Manual Testing - Compile - Unit Test - Analysis Automated Acceptance Test Automated Capacity Testing - Showcases - Exploratory testing Release - Build Installers Source: Continuous Delivery, Humble & Farley

The deployment pipeline is enabled by the alignment of testing and automation with the product life cycle Testing The deployment pipeline relies on testing being an integral part of the product. Automation Among the many other areas of IT workflow in which automation serves a transformative role, one of the most important is testing.

The deployment pipeline concept Source: Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation

Automated Testing Test Driven Development Acceptance Test Driven Development Automated Unit and Acceptance Tests Gated Check-in

Test Driven Development Write a failing test Write just enough code to pass the test Refactor as needed

Why Do We Unit Test Reduce bugs in new futures Reduce bugs in existing features Provides documentation as to intent Reduces Fear, Uncertainty, and Doubt (FUD) Cheaper to make future changes Allows for refactoring Helps refine design by creating thinking time Did we think of everything? Does the code respond properly in all scenarios Insulates code from the next guy

Why We Test Early http://www.isixsigma.com/industries/software-it/defect-prevention-reducing-costs-and-enhancing-quality/

What Should We Test http://www.ontestautomation.com/wp-content/uploads/2014/06/pyramid.png

What Too Often Happens http://www.ontestautomation.com/wp-content/uploads/2014/06/pyramid_inverted.png

What Makes A Good Unit Test Automated Test the required behavior not the implementation Isolates the system under test Small units Avoid making these Integration Tests Executed frequently Follows all same code conventions as code under test (maintainable & Readable) Fast!

Infrastructure as Code Reproducible Infrastructure Consistent configuration Reduced deployment time Reduced Mean Time to Recovery All solution artifacts in version control

IaaS and Infrastructure as code The ideal (future) state: Enable the reconstruction of the business from nothing but a source code repository, an application data backup, and bare metal resources. Adam Jacob, CTO at Chef

Infrastructure as code Accepted best practice Solution Migrate infrastructure to reproducible, reliable methods. Iterate until its achieved

Infrastructure as code allows us to Apply many of the processes and tools that work well in development to operations Use common version control repositories and processes for both software and infrastructure Reduce the need for completely different departments and job descriptions between Dev and Ops Give greater access and visibility to developers and operations regarding infrastructure dependencies for application products Allow development projects to accommodate much earlier testing, staging, simulation of final production environments, etc.

Nonfunctional Requirements Be sure to track beyond developer tasks Infrastructure Security Auditing Compliance Testing

Continuous Delivery Be ready and able to deploy Any Version of your solution To any platform At any time

You are succeeding with continuous delivery when: 1. Your software is deployable throughout its lifecycle 2. your team prioritizes keeping the software deployable over working on new features 3. Anybody can get fast, automated feedback on the production readiness of their systems whenever somebody makes a change to them 4. You can perform push-button deployments of any version of the software to any environment on demand.

Moving to DevOps

Part 5: DevOps Implementation Boot Camp Open Discussion, Q and A

Class Feedback Survey Please take a few moments to fill out the class evaluation survey: www.metricsthatmatter.com/aspe You will receive your certificate of completion after filling this out.

Thank you!

Automation https://imgs.xkcd.com/comics/is_it_worth_the_time.pn g