Kevin Lee Technical Consultant kevin.lee@uk.ibm.com. As part of a normal software build and release process



Similar documents
Software Construction

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Continuous Integration Just another buzz word?

Delivering Quality Software with Continuous Integration

Leveraging Rational Team Concert's build capabilities for Continuous Integration

Accelerate Software Delivery

Test Driven Development Part III: Continuous Integration Venkat Subramaniam

Software Configuration Management Best Practices for Continuous Integration

Continuous Integration (CI)

IBM Rational Software

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

Continuous Integration: Put it at the heart of your development

Software Configuration Management.

Realizing Continuous Performance Management

Software Development In the Cloud Cloud management and ALM

SOE. managing change in system development projects: configuration management

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

Continuous Integration with Jenkins. Coaching of Programming Teams (EDA270) J. Hembrink and P-G. Stenberg [dt08jh8

SOFTWARE DEVELOPMENT BASICS SED

Continuous Delivery. Alejandro Ruiz

Agile Development with Jazz and Rational Team Concert

Maven the Beautiful City. Healthy, Viable, and Productive Build Infrastructures

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012

Chapter 13 Configuration Management

Continuous Integration: A case study

Meister Going Beyond Maven

Rational Software White Paper

Best Practices for Java Projects Horst Rechner

Software Configuration Management

How Silk Central brings flexibility to agile development

Java Software Quality Tools and techniques

Coverity Services. World-class professional services, technical support and training from the Coverity development testing experts

Theme 1 Software Processes. Software Configuration Management

Quality Cruising. Making Java Work for Erlang. Erik (Happi) Stenman

Global Software Change Management for PVCS Version Manager

Agile SPL-SCM: Agile Software Product Line Configuration and Release Management

Introducing Continuous Integration

Build management & Continuous integration. with Maven & Hudson

Configuration & Build Management

Continuous Integration For Real: The Perforce Java Platform. Hamish Reid Perforce Software Inc.

Continuous Integration in Kieker

Software Configuration Management. Context. Learning Objectives

Developing Software in a Private workspace PM PMS

One solution for all your Source Configuration Management Needs

Build Management. Context. Learning Objectives

HP SAP. Where Development, Test and Operations meet. Application Lifecycle Management

Automating Software Release Management with IBM Rational ClearCase and IBM Rational ClearQuest

Continuous Integration. CSC 440: Software Engineering Slide #1

IKAN ALM Architecture. Closing the Gap Enterprise-wide Application Lifecycle Management

Continuous Integration

We ( have extensive experience in enterprise and system architectures, system engineering, project management, and

Modern practices TIE-21100/

Software Continuous Integration & Delivery

An introduction to the benefits of Application Lifecycle Management

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda

Successfully managing geographically distributed development

Software Configuration Management (SCM)

Nick Ashley TOOLS. The following table lists some additional and possibly more unusual tools used in this paper.

Continuous Integration Multi-Stage Builds for Quality Assurance

Chapter 5. Choose the answer that mostly suits each of the sentences given:

The 7 Attributes of a Good Software Configuration Management System

Software infrastructure for Java development projects

Continuous Delivery Workshop

Automated performance testing using Maven & JMeter. George Barnett, Atlassian Software

Introduction to Agile Software Development Process. Software Development Life Cycles

Continuous Integration Processes and SCM To Support Test Automation

Delivery. Continuous. Jez Humble and David Farley. AAddison-Wesley. Upper Saddle River, NJ Boston Indianapolis San Francisco

Modernizing enterprise application development with integrated change, build and release management.

The Deployment Pipeline

Table of contents. Performance testing in Agile environments. Deliver quality software in less time. Business white paper

Agile Power Tools. Author: Damon Poole, Chief Technology Officer

Visual Studio - Continuous Integration

Surround SCM Best Practices

In depth study - Dev teams tooling

Continuous Delivery. Anatomy of the Deployment Pipeline (Free Chapter) by Jez Humble and David Farley

WHAT IS CHANGE MANAGEMENT

The Value of Adopting Agile & CI for OBIEE

Introduction to Programming Tools. Anjana & Shankar September,2010

Chapter 13 Configuration Management

CMMI and IBM Rational Unified Process

Nexus Professional Whitepaper. Repository Management: Stages of Adoption

Jenkins on Windows with StreamBase

The Deployment Production Line

STAR JPSS Algorithms Integration Team Configuration Management Plan Version 1.2

Implementing Continuous Integration Testing Prepared by:

SOFTWARE PROCESS MODELS

Test Driven Development with Continuous Integration: A Literature Review

JOURNAL OF OBJECT TECHNOLOGY

White Paper. CCRM Services on Cloud Benefits of Private Cloud for CCRM Services. Abstract. - Krishna Vaddadi

WHITE PAPER. Getting started with Continuous Integration in software development. - Amruta Kumbhar, Madhavi Shailaja & Ravi Shankar Anupindi

Transcription:

Agile SCM: Realising Continuous Kevin Lee Technical Consultant kevin.lee@uk.ibm.com Agenda What is Continuous? Continuous in Context As part of a normal software build and release process Realising Continuous Introduction to CruiseControl Continuous in Practice Examples and suitability References 2 www.bcs-cmsg.org.uk 1

Agenda What is Continuous? Continuous in Context As part of a normal software build and release process Realising Continuous Introduction to CruiseControl Continuous in Practice Examples and suitability References 3 The Two Sides of Software Configuration Management Governance versus Productivity Governance Ensuring Compliance and Control Process: CMM(I), ISO, SPICE Control: Outsourcing, Offshoring Regulatory: Basle II, Sarbanes Oxley Automation Continuous Productivity Delivering Developer Value Reducing build times Enabling parallel development Increasing confidence 4 www.bcs-cmsg.org.uk 2

What is Continuous? or rather what it is NOT! Continuous! It s really refers to an activity that is frequent or continual Dependent on the adoption of Agile Development although it enables such an approach A tool or set of tools although tools are required to implement it Difficult hey, I can do it! NEW! and I ve been sort of doing it for years without knowing it! 5 What is Continuous? let s try some definitions An important part of any software development process is getting reliable builds of the software. Despite it's importance, we are often surprised when this isn't done. We stress a fully automated and reproducible build, including testing, that runs many times a day. This allows each developer to integrate daily thus reducing integration problems. Martin Fowler and Matthew Foemmel, Continuous The macro process of object-oriented development is one of "continuous integration."... At regular intervals, the process of "continuous integration" yields executable releases that grow in functionality at every release.... It is through these milestones that management can measure progress and quality, and hence anticipate, identify, and then actively attach risks on an ongoing basis. Grady Booch, Object-Oriented Analysis and Design with Applications 6 www.bcs-cmsg.org.uk 3

What is Continuous? how about something more tangible A central repository for all members of a team, containing: the latest code (at least) the latest executables An automated process for building AND testing all project assets that can be run many times a day and that is self fulfilling OK, but how does this fit into the rest of SCM? 7 Agenda What is Continuous? Continuous in Context As part of a normal software build and release process Realising Continuous Introduction to CruiseControl Continuous in Practice Examples and suitability References 8 www.bcs-cmsg.org.uk 4

Software Build Profiles Different types of builds Private System Builds Manual/Developers Builds Continuous (Automatic/Tool) Manual/Integrators Release Builds Manual/Release Engineer 9 Software Build and Release Lifecycle A continual process Release Lifecycle release? Build Lifecycle identify report environment define release execute Continuous Loop 10 www.bcs-cmsg.org.uk 5

Software Build and Release Lifecycle Tools In the Java domain identify ClearQuest report CVS environment ClearCase define BugZilla execute 11 Agenda What is Continuous? Continuous in Context As part of a normal software build and release process Realising Continuous Introduction to CruiseControl Continuous in Practice Examples and suitability References 12 www.bcs-cmsg.org.uk 6

Realising Continuous CruiseControl infrastructure CruiseControl Developer Desktop 1. Developer checkin/commit 6. Send Build Results 2. Monitor Repository SCM Repository 3. Update Build Workspace Build Server 4. Execute Build 5. Deploy Application Development Application or Web Server 13 Realising Continuous CruiseControl process Monitors an SCM repository for changes CVS = check for commits in the repository since last build time ClearCase = check for check-ins on integration branch If changes are found, then on a schedule start the build Build your application through your existing Ant or Maven scripts Run your JUnit Test suite Report on the build results send formatted email notifications publish results to a website (Optionally) publish the application Configuration is through a central XML file 14 www.bcs-cmsg.org.uk 7

Realising Continuous The CruiseControl schedule Schedule is the most important definition in Continuous how long can you wait before being informed of integration errors? Continuous means building many times a day, every 20 minutes, every hour but if there is nothing checked in/committed, there will be nothing to build you need to find your own project rhythm However, even if you only want to do a nightly build you can still get benefits from the CruiseControl toolset. 15 Realising Continuous What is a successful build? When is your build successful? When it compiles? When all the unit-tests have run? When it has been deployed? In fact, every failure is a success You have exposed a potential problem early! 16 www.bcs-cmsg.org.uk 8

17 CruiseControl Screenshots HTML email with build results Build Results web 18 www.bcs-cmsg.org.uk 9

Agenda What is Continuous? Continuous in Context As part of a normal software build and release process Realising Continuous Introduction to CruiseControl Continuous in Practice Examples and suitability References 19 Continuous in Practice Will it work on my project? Continuous is only one aspect of an overall process, for it to work best, you need to: Plan iteratively schedule regular releases with evolving levels of functionality (CRs) be wary of inflexible Change Control Boards! Implement incrementally identify and implement small work tasks refactor if necessary! Report proactively identify exactly the contents (CIs) of any build, in both file and content automate reports! 20 www.bcs-cmsg.org.uk 10

Continuous in Practice Will it work on my project? Proven for small-medium sized projects Short integration cycles require a comprehensive unit test suite for validation Large projects can benefit from programme based approach with multiple continuous integration streams, one for each system or component Works best with single mainline development Latest stream, maintenance stream, patch stream at most Developing multiple releases in parallel can be problematic, streams tend to live longer and changes can be potentially integrated to multiple releases You need a development workspace i.e. ClearCase stream/view, CVS checked out workspace, so that ground does not change under your feet Multiple Mainlines Single Mainline 21 Agenda What is Continuous? Continuous in Context As part of a normal software build and release process Realising Continuous Introduction to CruiseControl Continuous in Practice Examples and suitability References 22 www.bcs-cmsg.org.uk 11

References Supporting and alternate tools CruiseControl http://cruisecontrol.sourceforge.net Apache Ant http://ant.apache.org Apache Maven http://maven.apache.org JUnit http://www.junit.org ClearCase http://www-306.ibm.com/software/awdtools/clearcase CVS http://www.cvshome.org 23 References Supporting information Continuous (according to Martin Fowler) http://www.martinfowler.com/articles/continuousintegra tion.html The Continuous Wiki http://c2.com/cgi/wiki?continuous CM Crossroads http://www.cmcrossroads.com The Buildmeister http://www.buildmeister.com 24 www.bcs-cmsg.org.uk 12

Summary What have we learned? Continuous is a variation on an old theme It works best with an incremental approach to software development However, the tools can be used for traditional development Even if you just want to implement an automated nightly build process Using them can potentially yield increased productivity Immediate feedback via email if the build breaks There are no limits to the level of automation that can be achieved Once you have an automated build and testing, you can automate baselining, reporting, deployment It makes software development fun! 25 www.bcs-cmsg.org.uk 13