Continuous Integration. Slava Imeshev Viewtier Systems, Inc.



Similar documents
Achieving business benefits through automated software testing. By Dr. Mike Bartley, Founder and CEO, TVS

Software Construction

Better Automation Environments

Solr Cloud vs Replication

Implementing Continuous Integration Testing Prepared by:

16 Common Backup Problems & Mistakes

Cell Phone vs. Vehicle-Installed GPS Tracking: Get The Right Tools to Track Your Fleet

While You Were Sleeping - Scheduling SAS Jobs to Run Automatically Faron Kincheloe, Baylor University, Waco, TX

Agile SCM Build Management for an Agile Team. Some Definitions. Building and Agility. Steve Berczuk, Brad Appleton, and Steve Konieczka October 2003

Enhancing SQL Server Performance

Software Configuration Management Best Practices for Continuous Integration

Test What You ve Built

LOCKSS on LINUX. Installation Manual and the OpenBSD Transition 02/17/2011

For more about patterns & practices: My blog:

A Guide To Evaluating a Bug Tracking System

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Chronon: A modern alternative to Log Files

a new generation software test automation framework - CIVIM

Secrets From OfflineBiz.com Copyright 2010 Andrew Cavanagh all rights reserved

LOCKSS on LINUX. CentOS6 Installation Manual 08/22/2013

Licensing for BarTender s Automation Editions

Mapping Your Path to the Cloud. A Guide to Getting your Dental Practice Set to Transition to Cloud-Based Practice Management Software.

Test Driven Development Part III: Continuous Integration Venkat Subramaniam

The Nuts and Bolts of Autodesk Vault Replication Setup

Eurobackup PRO Exchange Databases Backup Best Practices

Title: Continuous Delivery and Continuous Integration. Conference: 13 th Annual Software Testing Conference 2013

Help Centre. 'What time did you start work today...?'

THE ROULETTE BIAS SYSTEM

How To Backup Your Data From A Datatron Tape To A Backup From A Backup To A Disk Drive

[Handout for L6P2] How to Avoid a Big Bang: Integrating Software Components

RecoveryVault Express Client User Manual

TeamCity A Professional Solution for Delivering Quality Software, on Time

Nexus Professional Whitepaper. Repository Management: Stages of Adoption

NORTON MEDICAL CENTRE PATIENT SURVEY OF NEW APPOINTMENT SYSTEM

Online Backup Client User Manual

Do you know with certainty if you will achieve your next sales goal? Introduction to Followuppower.net

Set Up Instructions

Software Configuration Management

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

Warm Market Scripts Ideas.

Each section has handy hints and advice on completing your plan along with links to further information which you can download and print.

Online Backup Linux Client User Manual

FACT A computer CANNOT pick numbers completely at random!

Online Backup Client User Manual

PRE-TOURNAMENT INTERVIEW TRANSCRIPT: Tuesday, January 27, 2015

How to Improve Your Software Release Management Process A Real-time Case Study

Key Benefits of Microsoft Visual Studio Team System

Online Backup Client User Manual

WinDeveloper Message Recall v2.0

Your guide to choosing an IT support provider

Maximizing Deduplication ROI in a NetBackup Environment

7 steps to choosing the right IT support company.

How to Get Your Website on the Internet: Web Hosting Basics

CONTINUOUS INTEGRATION

EMPLOYEE TIME ENTRY: Premise of ReportWare s Timekeeping Software: ReportWare

ACTIVITY: Profits and loss

JROTCDL.com CADET 105 Time Management 1

Software Development In the Cloud Cloud management and ALM

Continuous Integration. CSC 440: Software Engineering Slide #1

QuickBooks Solutions for Your Business. Thinking Beyond the Ledger TLC FOR YOUR QB 7 TIPS TO KEEP THE QUICKBOOKS LOVE ALIVE

Achieving Rolling Updates & Continuous Deployment with Zero Downtime

migrating from hosted Exchange service to inhouse Exchange solution

Continuous Integration Using Cruise Control

Frequently Asked Questions The next section includes FAQs to help you to access and use your student account.

Installing Microsoft Exchange Integration for LifeSize Control

OroTimesheet 7 Installation Guide

Executive Summary: Trucking Application

A Shift in the World of Business Intelligence

Backup Notification in Client Profiles for Windows

SQL Server Support through

Positive Feedback: A Low Cost Solution with High Profit Potential

Continuous Integration (CI)

Mac Client Installation Notes

BINGO TRAINING. Last Updated August 2014

Doing Break/Fix Well By Chris Martin MSP Business Management

StarWind iscsi SAN Software: Using StarWind with VMware ESX Server

Leveraging Rational Team Concert's build capabilities for Continuous Integration

Continuous Integration

Kevin Lee Technical Consultant As part of a normal software build and release process

4 Criteria of Intelligent Business Continuity

The Deployment Pipeline

1z0-102 Q&A. DEMO Version

Outlook Update #3

While You Were Sleeping - Scheduling SAS Jobs to Run Automatically Faron Kincheloe, Baylor University, Waco, TX

Alcurex Share Distribuition

Why Alerts Suck and Monitoring Solutions need to become Smarter

Using iscsi with BackupAssist. User Guide

educ Office Remove & create new Outlook profile

SELF SERVICE RESET PASSWORD MANAGEMENT ADMINISTRATOR'S GUIDE

Printer Properties Pro User Guide Page 1

Credit Repair Made Easy

WinMan. Utilizing Terminal Services. Quick Results. Summer, ver a d v a n c e d s y s t e m s

FirstClass Export Tool User and Administration Guide

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

ScoMIS Encryption Service

COSMO BUGZILLA tutorial. Cosmin BARBU Massimo MILELLI

Supplement I.B: Installing and Configuring JDK 1.6

How to Configure a Remote Desktop Licensing Server for vspace 6

Empowering Productivity through Installation Automation

Transcription:

Continuous Integration Benefits, Challenges and Best Practices Presented by Slava Imeshev Viewtier Systems, Inc. vimeshev@viewtier.com 7/31/2006 Copyright 2006 Viewtier Systems Inc. 1

Introduction Viewtier Systems, Inc. Software build management company. Develops Parabuild, a continuous integration and software build management server. Is a privately held, self-funded, and self-sustained company. 7/31/2006 Copyright 2006 Viewtier Systems Inc. 2

Notion Of Software Build Software Build Process of transforming project code base into a usable application Traces its roots to 1952 when the first compiler was devised by Grace Murray Hopper Also is used as a communication pattern to define: 1. Current state of the code base ( build is broken ) 2. Actual results of build process ( build #650 is in production) 3. Build tools and scripts ( run build at 2:00am ) Broken build means no product 7/31/2006 Copyright 2006 Viewtier Systems Inc. 3

Story of a Broken Build Real-life, unfortunately A software company with 30 software engineers 5 QA engineers 1 release engineer Source control system and issue tracking is in place Is moving fast towards the release date 7/31/2006 Copyright 2006 Viewtier Systems Inc. 4

Story of a Broken Build Richard: Monday evening Finishes a critical chunk of work Runs local build and tests cleanly Submits changes to CVS Marks the issue closed Goes home, proud of his work and happy for meeting an important deadline 7/31/2006 Copyright 2006 Viewtier Systems Inc. 5

Story of a Broken Build Tuesday morning, 9:15AM Sandeep, Jason, Eric, and Chris: cvs update to integrate with the new Richard s code. Run ant all.clean Expecting to see BUILD SUCCESSFUL but instead see [javac] 131. return new Layout(0, 0, 1, 1); [javac] ^----^ [javac] *** Semantic Error: A candidate for type "Layout" was found, but it [javac] Found 5 semantic errors compiling "D:/bt/src/viewtier/au [javac] 3. import viewtier.ui.*; [javac] ^---------^ [javac] *** Semantic Error: You need to modify your classpath, sourcepath, BUILD FAILED file:d:/bt/build-prod.xml:45: Compile failed; see the compiler error Total time: 21 seconds 7/31/2006 Copyright 2006 Viewtier Systems Inc. 6

Story of a Broken Build Build is broken Richard forgot to add a new 3-rd party library Richard is out of the office and will be in at 1PM. Lucky ones have not updated to the latest and greatest 7/31/2006 Copyright 2006 Viewtier Systems Inc. 7

Story of a Broken Build (The End) Consequences Sandeep, Jason, Eric and Chris couldn t work till 1PM when Richard arrives and submits the missing lib The release engineer spent 4 hours trying to fix nightly build because it failed, too. Five QA guys couldn t test new critical features till 2PM when new QA build is finally ready Result of the single broken build Money: 45 man-hours $4,500 went south at one shot Time: Project time line slipped 5 hours priceless ($100,000 fine per a day of delay) Team spirit: you @#$%$%%!!! 7/31/2006 Copyright 2006 Viewtier Systems Inc. 8

Spreading Build Breakage 7/31/2006 Copyright 2006 Viewtier Systems Inc. 9

Spreading Build Breakage 7/31/2006 Copyright 2006 Viewtier Systems Inc. 10

Spreading Build Breakage 7/31/2006 Copyright 2006 Viewtier Systems Inc. 11

Spreading Build Breakage 7/31/2006 Copyright 2006 Viewtier Systems Inc. 12

Spreading Build Breakage 7/31/2006 Copyright 2006 Viewtier Systems Inc. 13

The Problem Broken builds increase risk of project failure Cause loss of about an hour per every member of engineering team. A team of 10 engineers loses about 80 hours or $8,000 per months minimum (two broken builds a week) Losses grow linearly with the number of engineers, doubles for distributed teams Schedule slips Broken builds mean no product A build transforms project source code to a product No clean build - no product Broken builds are dangerous A team can be paralyzed in a matter of minutes if unwillingly checked out a broken code base 7/31/2006 Copyright 2006 Viewtier Systems Inc. 14

The Solution Integration Build is a process of clean rebuilding of project code base to ensure that new changes integrate well into the existing code base provides feedback on quality of new changes so that timely fixes can be delivered if the changes don't integrate and break the project code base supposedly introduced by IBM software team in early 60- s when developing OS/360 run by a dedicated build management server. Running integration builds continuously is also known as Continuous Integration 7/31/2006 Copyright 2006 Viewtier Systems Inc. 15

Preventing Spreading Of Build Breakage 7/31/2006 Copyright 2006 Viewtier Systems Inc. 16

Preventing Spreading Of Build Breakage 7/31/2006 Copyright 2006 Viewtier Systems Inc. 17

Preventing Spreading Of Build Breakage 7/31/2006 Copyright 2006 Viewtier Systems Inc. 18

Preventing Spreading Of Build Breakage 7/31/2006 Copyright 2006 Viewtier Systems Inc. 19

Benefits Of Continuous Integration Most of the software projects fail because they miss deadlines, cannot stay in budget, or are unable to meet the requirements. Continuous Integration allows to reduce risk of project failure by: Reducing slipping of schedule caused by significant time losses Reducing and oftentimes eliminating loss of productivity caused by code base breakage Increasing team morale and helping to maintain capable engineers on board Reducing development time and hitting the market before competitors 7/31/2006 Copyright 2006 Viewtier Systems Inc. 20

Reducing Significant Time Losses Single build breakage went into a codeline undetected costs about one hour of time losses per a member of engineering team; may double or triple for distributed or offshore team. Quick feedback on quality of new changes prevents spreading build breakage by giving build breakers a chance to deliver timely fixes. For a team of ten, Continuous Integrations saves 80 hours per months minimum that are lost otherwise 7/31/2006 Copyright 2006 Viewtier Systems Inc. 21

Reducing Loss Of Productivity Undetected build breakage is often a subject of domino effect once codeline is broken, QA, PM, OPS and other organizations run idle. Continuous Integration helps stay in budget, saves $8,000 per months for a team of 10; This saving doubles when advanced servers like Parabuild are used. 7/31/2006 Copyright 2006 Viewtier Systems Inc. 22

Increasing Team Morale There is nothing worse than checking out latest and greatest code from VCS and finding that it doesn t compile. For most it just turns thought flow off. When (and if) found, build breakers are hated. Constantly broken code base creates a deserved sense of doom. Continuous Integration eliminates all of this because build breakage is getting fixed immediately after detected, and may even be unnoticed by the rest of the team. A happy team loves developing great code uninterrupted and enjoys sense of smooth process as compared to a doomed sweat-shop. Their resumes are collecting dust. 7/31/2006 Copyright 2006 Viewtier Systems Inc. 23

Hitting The Market Before Competitors High quality software gets developed faster than usual because major cause of slipping schedule, missed budget and loss of key people are eliminated. We have seen triple reduction of project delivery time. Many our customers hide the fact that they use our product because it gives them unfair advantage over competition. 7/31/2006 Copyright 2006 Viewtier Systems Inc. 24

Addressing Challenges Introducing Continuous Integration, with all benefits it brings and however painless introduction is, may face some challenges. Here they are and ways to address them 1. Nobody cares Buy commercial build management software. If nothing is invested, nothing is expected back. 2. Release Engineering AKA Mr. Nightly Build resists RE has to become an owner of the infrastructure Show that this is a relief, not a burden (lesser chances of daily build breakage or practically unbreakable ones with Parabuild) Get them production-grade tools 3. Builds are still constantly broken Educate your team to respond to breakage immediately Follow best practices in the next section 7/31/2006 Copyright 2006 Viewtier Systems Inc. 25

Best Practices Infrastructure Get a production-grade software build management server. A build server that need CPR every hour is no good. Dedicate the fastest hardware money can buy. Faster hardware produces quicker response about quality of changes. Make sure your product can be build from command line. It should be able to build in unattended, batch mode. Build scripts and dependencies are under version control. Everyone should be able to reproduce build breakage at given time. People Remember - you don t break the build if you don t do anything. It OK to break a build from time to time. It is NOT OK to leave it broken. Always claim build breakage. People will appreciate knowing that the breakage is being taken care about, and will do same for you. Avoid build breakage patterns: Five O clock Checkin, Spoiled Fruit and Small Change. This alone will reduce build breakage by 50%. Establish fun, non-insulting ritual for hailing build breakers. Buying donuts to the team works well! 7/31/2006 Copyright 2006 Viewtier Systems Inc. 26

Parabuild Server Parabuild Continuous Integration and Software Build Management Server Developed By Viewtier Systems For software companies who suffer from code base breakage To help them reduce risk of failure of software projects By offering them feedback on changes and providing practically unbreakable daily builds. Key benefits Reduces risk of failure of software projects Key features Practically unbreakable daily builds Continuous Integration 7/31/2006 Copyright 2006 Viewtier Systems Inc. 27

Why Parabuild Parabuild is better: Product is superior Stable daily builds (no one else does) Build statistics (no one else offers) Release notes (no one else offers) Remote builds (no one else does) Tree minutes installation (others require hours and days) Low to zero administration (others require constant babysitting) Stable as in Just Works (others die on a daily basis) ROI: Pays back after the first un-broken daily build (1-5 days) Company is dedicated We are fully committed We put our well-being on stake, not a couple of hours over weekend 7/31/2006 Copyright 2006 Viewtier Systems Inc. 28

Build Breakage Distribution 7/31/2006 Copyright 2006 Viewtier Systems Inc. 29

Continuous Integration Benefits, Challenges and Best Practices Q & A 7/31/2006 Copyright 2006 Viewtier Systems Inc. 30

Continuous Integration Benefits, Challenges and Best Practices Thank You Visit Us At www. viewtier. com Slava Imeshev Viewtier Systems, Inc. vimeshev@viewtier.com 7/31/2006 Copyright 2006 Viewtier Systems Inc. 31

Parabuild Vs. CruiseControl Definition Time to first build run Web UI Configuration Build management Security Administration Cost Summary CruiseControl Toolkit From a day to a month, depending on knowledge of Java Rudimentary Barely documented XML file, knowledge of Java and application server required, multiple roundtrips to mailing list required. Rudimentary Continuous integration builds only None Constant babysitting is required Free as in free lunch Fun-to-play toy (if you know buttons) Parabuild Build management server 10 minutes Extensive, Build management, detailed and, overview statuses, configuration, results, logs, search, statistics Simple WEB UI Extensive Continuous integration, unbreakable daily builds, build results and log archive, remote multiplatform builds Group-based Zero to none, fire-and-forget stile Parabuild Std - $1,000, Pro - $2,400 Production-grade software build management server 7/31/2006 Copyright 2006 Viewtier Systems Inc. 32