 Definitions  Background/History  Continuous Delivery › How to practice Continuous Delivery  Continuous Integration  Continuous Integration Tools.

Slides:



Advertisements
Similar presentations
Continuous integration, delivery and deployment Primož Gabrijelčič thedelphigeek.com Primož Gabrijelčič thedelphigeek.com.
Advertisements

The Bold, New Extreme Programming Experiment - Now in Its Ninth Year Brian Spears Follett Software Company McHenry, IL 2009 Agile Conference Student: Nick.
E X treme Programming & Agile Modeling Copyright © 2003 Patrick McDermott UC Berkeley Extension
System Analysis & Design Methods V Extreme Programming XP/dX.
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.
Alternate Software Development Methodologies
Agile development By Sam Chamberlain. First a bit of history..
© ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua.
Agile Methods and Extreme Programming CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 23, 2007.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Agile Software Development
It’s tough out there … Outperforming teams are collaborate extensively with their counterparts 54 % more likely to Developers 26.7% No executive.
Agile Testing with Testing Anywhere The road to automation need not be long.
Agile Process: Overview n Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software.
An Agile View of Process
Software engineering Process models Pavel Agejkin.
PopMedNet Software Development Life Cycle Chayim Herzig-Marx Harvard Pilgrim Health Care Institute Daniel Dee Lincoln Peak Partners.
CONTINUOUS DELIVERY / CONTINUOUS INTEGRATION. IDEAS -> SOLUTIONS Time.
CONTINUOUS INTEGRATION, DELIVERY & DEPLOYMENT ONE CLICK DELIVERY.
Continuous Delivery Ajey Gore Head of Technology ThoughtWorks India.
QWise software engineering – refactored! Testing, testing A first-look at the new testing capabilities in Visual Studio 2010 Mathias Olausson.
Application Lifecycle Management and the cloud
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Software Development Landscape
Created by the Community for the Community BizTalk & Build.
Software Engineering Modern Approaches
Agile Programming Principles.
Agile Web Development C. Daniel Chase University of Colorado at Boulder.
Chapter 4 Agile Development
Craig Berntson
Extreme Programming(XP)
T-unit: Tcl Unit Test Package Automated Unit Test Package For Tcl Procedures Final Presentation Joseph Boyle Loyola Marymount University.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
Continuous Processes By Kelvin Zhu CSCI577B Spring 2013.
Continuous Integration
Automated Acceptance Testing and Continuous Delivery Larry Apke Agile Expert
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Confidential Continuous Integration Framework (CIF) 5/18/2004.
Goals for Presentation Explain the basics of software development methodologies Explain basic XP elements Show the structure of an XP project Give a few.
Visual Studio Online Visual Studio.NET Work BuildTest Deploy Insights Code Visual Studio Online.
Extreme Programming Based on and
Anubha Gupta | Software Engineer Visual Studio Online Microsoft Corp. Visual Studio Enterprise Leveraging modern tools to streamline Build and Release.
Virtually Agile Astro Sabre (Matt Ganis) IBM, Senior Technical Staff Member Hawthorne, NY - September 20, 2007.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
UHCS 2005, slide 1 About Continuous Integration. UHCS 2005, slide 2 Why do you write Unit Test ? Improve quality/robustness of your code Quick feedback.
It’s tough out there … Software delivery challenges.
Build and Deployment Process Understand NCI’s DevOps and continuous integration requirements Understand NCI’s build and distribution requirements.
Module 2: What is Agile? Why use it? TLO: Given a DoD program involved in software development, the student will recognize situations where applying agile.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
1 Punishment Through Continuous Delivery If it hurts, do it more often…
Benjamin Day Get Good at DevOps: Feature Flag Deployments with ASP.NET, WebAPI, & JavaScript.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Baby Steps to Agility How to Grow Into Agile. A little about me A little about Agile Growing into Agile Questions Goals.
Continuous Delivery and Quality Monitoring 1 iCSC2016, Kamil Henryk Król, CERN Continuous Delivery and Quality Monitoring Kamil Henryk Król CERN Inverted.
Embedded Systems Software Engineering
Continuous Delivery and Quality Monitoring
Continuous Delivery- Complete Guide
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
X in [Integration, Delivery, Deployment]
How to Successfully Implement an Agile Project
Rosa María Torres de Paz
DAT381 Team Development with SQL Server 2005
Chapter 3: Agile Software Processes
Open Source Tool Based Automation solution with Continuous Integration and end to end BDD Implementation Arun Krishnan - Automation Manager Maria Afzal-
Agile Development – a new way of software development?
Node.js Test Automation using Oracle Developer Cloud- Simplified
Agile Development.
Presentation transcript:

 Definitions  Background/History  Continuous Delivery › How to practice Continuous Delivery  Continuous Integration  Continuous Integration Tools  Continuous Delivery Summary

 Agile Development Process: ”An iterative and incremental (evolutionary) approach to software development which is performed in a highly collaborative manner by self-organizing teams within an effective governance framework with "just enough" ceremony that produces high quality solutions in a cost effective and timely manner which meets the changing needs of its stakeholders.” – Scott Ambler

 Agile Manifesto: Principles that outline the Agile Process  Continuous Delivery: New software development process that aims to build software that is always ready to be deployed into production  Continuous Integration: Technique where every developer on a project must integrate their work daily with every other developer

 Agile Manifesto was written in 2001 › Martin Fowler › Kent Beck  XP Explained › They both wrote about Continuous Integration around the year 1999

 ThoughtWorks Studios  Continuous Delivery: Book written by Jez Humble and David Farley in 2010

 Recall: Build software that is always ready to be deployed into production

 Is this a new idea?  1 st principle of the Agile Manifesto: › “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.“  Goal: Release to production more often › Monthly › Weekly › Daily

 Pros: Receive many benefits from the Agile process as well as others › Build the right product  Constant feedback from customers  Write thorough acceptance tests › Earlier benefits  Get product out before competitors  Find bugs earlier

› Ability to react quickly to change  Not a huge amount of time and money can be abandoned to adopt new requirements › Save money and time  Save money and time is project goes bad  Save money and time with automation  As deploying to production becomes easier, more time can be spent developing valuable features

 Pros cont: › Reliability

 Basics to start practicing Continuous Delivery › Configuration Management › What needs to be kept under CM?  Everything!  Code  Tests  Configuration Files  Build Scripts  Environments  Documentation  Etc.

 Stay away from branching except in special cases › Branch on releases › Horror story example  You must always check into the trunk! › Otherwise you’re not continuously integrating

 What if your project team is releasing to production every week, but you’re working on a feature that will take longer than the release cycle to implement?  First option: › Gradually release feature into production  Second option: › Feature toggle

 Must have multiple environments when developing software  Need to be able to duplicate environments with ease  Environments configurations to take consideration of: › Operating systems including their framework and settings › Packages needed to be installed for the application to function properly › Network settings

 Tools to help configure environments in an automated fashion:

 Vital step when practicing CD  Recall: To practice CI, every developer on a project must integrate their work daily with every other developer › Everyone on the team needs to practice this for it to work  Continuous integration is not a tool, but a technique › But there are many open source tools to help practice CI

 Things a CI server can do: › After you check-in code it can:  Run build/test scripts  Notify developers of a failed build or failed tests › Can show all past check-ins and if they failed or passed all the tests › Can keep track of multiple projects › Plus much more!!

 Demo open source CI tools TeamCity and Hudson

 Heart of Continuous Delivery  Will give immediate feedback for how ready your software is for production  Automate everything(unit tests, acceptance tests, performance tests,…) to the point of just being able to click a button to deploy to production

 Continuous Delivery Assembly Line Metaphor Continuous Delivery Assembly Line Metaphor

 Agile Modeling (AM) Home Page: Effective Practices for Modeling and Documentation. (n.d.). Agile Modeling (AM) Home Page: Effective Practices for Modeling and Documentation. Retrieved April 15, 2013, from  Waters, K. (n.d.). 7 Reasons why Continuous Delivery needs to be a BUSINESS initiative | All About Agile. All About Agile | Agile Development Made Easy!. Retrieved April 16, 2013, from delivery-needs-to-be-a-business-initiative/  Martin Fowler. (n.d.). Martin Fowler. Retrieved April 16, 2013, from  Shore, James. "James Shore: Continuous Integration on a Dollar a Day." James Shore: The Art of Agile. N.p., n.d. Web. 19 Mar

 Agile ALM for Software Development from ThoughtWorks Studios. (n.d.). Agile ALM for Software Development from ThoughtWorks Studios. Retrieved April 17, 2013, from  Puppet Labs. (n.d.). Puppet Labs: IT Automation Software for System Administrators. Retrieved April 16, 2013, from  Configuration management software | Open source configuration management - CFEngine - Distributed Configuration Management. (n.d.). Configuration management software | Open source configuration management - CFEngine - Distributed Configuration Management. Retrieved April 17, 2013, from  Allspaw, J. (n.d.). Ops Meta-Metrics: The Currency You Pay For Change. Upload & Share PowerPoint presentations and documents. Retrieved April 17, 2013, from you-pay-for-change

 Selenium - Web Browser Automation. (n.d.). Selenium - Web Browser Automation. Retrieved April 17, 2013, from  Three Rivers Institute. (n.d.). Three Rivers Institute. Retrieved April 17, 2013, from  "Continuous Integration for Everybody — TeamCity." JetBrains :: World's Leading Vendor of Professional Development Tools. N.p., n.d. Web. 19 Mar

 Manifesto for Agile Software Development. (n.d.). Manifesto for Agile Software Development. Retrieved April 14, 2013, from  Humble, Jez, and David Farley. Continuous delivery. Upper Saddle River, NJ: Addison-Wesley, Print.