Continuous Delivery Maturity Model

Size: px
Start display at page:

Download "Continuous Delivery Maturity Model"

Transcription

1 Continuous Delivery Maturity Model Continuous Delivery is a software development approach that enables teams to always have releasable code in stock. Through the means of automation and extensive tool support, quality assurance is literally built into every single step of the process and is being continuously enforced. Learn more about the Continuous Delivery Maturity Model and be inspired to take the natural next-step for your current process. Praqmatic Software Development

2 Continuous Delivery Maturity Model Software development is iterative by nature. Each release is followed by another and each release is regarded as a separate cycle founded on the previous ones. Traditionally the software development process is perceived as having phases such as development, integration, deployment, testing, and release, but unfortunately these phases are all notoriously unpredictable. The release date can not be planned. The solution is to automate all consolidation and verification steps and execute them upon every single commit. Traditional iterative and incremental development Development Integration Testing Deployment Release Continuous delivery Development + Integration + Testing + Deployment + Release Development + Integration + Testing + Deployment + Release Development + Integration + Testing + Deployment + Release Development + Integration + Testing + Deployment + Release Development + Integration + Testing + Deployment + Release Continuous Delivery Defies Phases Continuous delivery is a different approach for organizing the development process. It s a strategy that defies phases. Instead it introduces extensive automation and execution of tests and verifications upon every single commit from the developers. The doctrine is that each commit is a potential release candidate you just have to test it to see if it is or not. Continuous delivery advocates that you always have releasable code in stock, so when the release date comes, you simple push the release button. Continuous Delivery and the Agile Manifesto The Agile Manifesto is a manifest formulated by the founding fathers of the agile movement (Fowler, Beck, Sutherland, Cockburn and a handful more...all the agile celebrities). The manifest is stating four values that are the basis of the agile approach and twelve accompanying principles that should be seen as guides. If you are not already familiar with it, we recommend you to be inspired at agilemanifesto.org. In this article we will just point out one of the values, the second, which states that: We value working software over comprehensive documentation 2

3 and then the first of the twelve principles that says: Our highest priority is to satisfy the customer through early and continuous delivery of valuable software It is generally recognized, that it s the focus on working software and this first principle of the agile manifesto that first cornered the phrase continuous delivery and thus gave name to a whole movement of a modern approach to quality assurance in software development. A staged approach to Continuous Delivery In order to implement the required amount of automation it s generally accepted that continuous delivery needs extensive tool-support. Sometimes these tools are referred to simply as the tool-stack. It may include anything from test frameworks, version control systems, continuous integration servers, code coverage tools, build frameworks, style checkers, static code analysis tools, deployment consoles, change management systems, lots of virtual machines...and potentially a lot more. At first glance the tool-stack can seem overwhelming. However, it s widely acknowledged that the human and organizational factors such as the required changes in the software development processes, in the project roles, potentially in the system architecture, and sometimes even in the line-organization itself impose a far larger challenge than the tools themselves. The complexity involved calls for some kind of divide-and-conquer-approach. Recall the continuous delivery doctrine that every commit is a potential release candidate. Now imagine drawing a state-transition diagram of the process that should validate a release candidate from the point where it s committed to the VCS and through the verifications that would finally promote it to release candidate status. The initial state is the creation of a new commit that the CI server finds. The desired end-state is to become a release candidate but if some step in the state transition fails then the commit will be rejected. It could probably look something like this: Commit Rejected Build & Unit test Analysis and metrics Deploy Functional test Release Candidate Review and doc. Acceptance test 3

4 The staged approach to implementing continuous delivery is very popular because it supports first building a simple foundation with relatively few means and then later extend and improve it either by baby steps or giant leaps depending on the level of ambition in the organization. And it supports the mixed focus on both tools and organizational changes. An implementation of this staged approach is often referred to as the pipeline. The Corner Stone of the Continuous Delivery Pipeline It is quite obvious, when looking at the state transition diagram, that each stage in the promotion of a commit consists of (at least) one action followed by a decision; a decision to either promote and start the succeeding action or to reject the commit. The tool that is required as the foundation of the tool-stack is one that is capable of executing all kinds of various actions (potentially even some you can t imagine today) and making decisions. These tools are referred to by different names but are most often called either builds servers or continuous integration servers despite the fact they do much more than just build or integrate. A handful of the popular and well-known buildand integration servers today are Jenkins CI, Travis, Hudson, CruiseControl, TeamCity, Buildbot, FinalBuilder, Bamboo, AnthillPro, Team Foundation Server...and there are many more. Signs of Continuous Delivery Maturity Some of the first steps towards a continuous delivery pipeline can be very cheap low hanging fruits; ripe and juicy and simply there for the taking for any modern development team. Other steps might require such a large effort, that the return of investment is in the scope of the long term strategic planning in the line organization and potentially not interesting for the typical project oriented focus in software development. In other words; implementing continuous delivery is very much a discipline of recognizing when enough is enough. During our work in Praqma with helping many different companies in their implementations of continuous delivery and through the seminars, conferences, and training classes we conduct, some of the most common questions we get in the field of continuous delivery are questions like where do we start, what to do next, what s the benefit of that particular step. When it comes to continuous delivery we have learned to recognize the various signs that indicate different levels of maturity, and we have used them to create a model. We use the model to systemize and categorize our findings, observations and recommendations. To the left is a screen dump of what an implementation of a continuous delivery pipeline could look like using Jenkins CI. Each row is initiated by a separate commit to the VCS. If an action succeeds it will kick off the next action in the pipeline. If it reaches the fourth level it s a release candidate. For this particular product shown here, releases are manual (political) and the last job which releases - in this case to an Open Source community - is run manually. 4

5 Build Test +QA SCM Visibility In Praqma we are all very engaged in continuous delivery and we find the model useful when discussing this topic with clients, colleagues user group companions, audiences etc. The Continuous Delivery Maturity Model The model is organized so that the signs to the left are those we typically see with novice users and teams, while the ones to the right are typical signs of the experts. Horizontally in the model we have organized the signs in different categories. Currently Build, Test & Quality Assurance, Software Configuration Management, and Visibility. But one thing we have learned since releasing this model is, that even though we have strived to used broad categories that could embrace most of our findings, we have realized that the disciplines that are influenced by continuous delivery are even more numerous than the categories we have in the model today. A natural development of the models would be a horizontal expansion into more areas where especially system design and architecture and organizational culture are obvious candidates. The remainder of the article will go through each of the areas and discuss the rationale we have used to organize it the way we have. Build Build is the first and most obvious discipline that influences continuous delivery; building, linking, managing dependencies, optimizing builds performance, supporting build avoidance, keeping track of artifacts, and utilizing distributed resources. An interesting perspective on this obvious discipline is that in some quite popular programming languages it s not very obvious. In fact it s simply not existing. This is true for interpreted languages such as PHP, Perl, Phyton, Groovy, Gradle etc. 5

6 The infant stage of building, where teams practically don t show any sign of maturity at all, is clearly when there is no maintained build procedure at all. Individuals simply build by pressing the build button in the GUI of the IDE and that s it. Novice signs of maturity in the build category is when some script or procedure is being maintained and developers use the formalized script or procedure to verify their work before sharing it with their colleagues ideally before a check into the integration stream. At this level it s also common to see that the team has a designated build server scheduled to run a nightly build. Beginner signs of a more advanced build procedure is simply when this common build is upgraded from being a nightly build to a build that is triggered automatically by every commit to the integration branch. At this level we also see that the derived objects from the build process are managed somehow. Intermediary signs in the area of building is when teams use build systems or frameworks that rely less on procedural scripting and more on configurations. It s at this level the home-grown perl, make and ANT scripts are being replaced by extendible frameworks, such as Gradle, Maven, Jenkins etc. A configuration approach to build management may be more difficult to set up, but once it s in place it supports consistent and generic use much better than a procedural script. At this level we also see that build procedures become capable of actually using the maintained artifacts to manage dependencies, which improves the system architecture and enables build avoidance. Advanced signs of build maturity involves a more sophisticated build environment, which supports distributed builds and load-balancing. Either a build farm or a continuous integration server that supports a master/slave concept. At this level we also typically see that builds, tests, and verifications are organized using a staged approach. The pipeline is now a reality. Expert signs in this field is when your whole build environment is based on virtual machines and accessible to the software developers and testers as a natural part of their tool box. Disk images and snapshots are being maintained to enable easy and controlled availability of more resources on demand. Sometimes we even see that the load balancing and call for more resources are done automatically by the continuous integration server orchestrating the hypervisor or cloud. Test & Quality Assurance While the build area was mentioned first due to its natural initial focus on continuous delivery, Test, and Quality assurance must be mentioned next, simply because of its importance. Seen from the outside, nothing is more important than assuring the quality. This is done through testing and verification. There are two important discussions that we often return to when dealing with this topic. They are not directly part of this model, but nevertheless important to understand our rationale and point of view so we will allow ourselves a short recap: 1st discussion: Verify vs. Validate: We often see that people use these terms interchangeably to express the same thing. They don t! We use the terms as they are distinguished by The U.S. Food and Drug Association (FDA); to verify something means to prove that it s correct according to its specification. To validate something means to prove that it has value to the purpose it should serve. In short: if you get the requirements wrong and misinterpret the users needs you will be creating the perfect solution to the wrong problem. It may be compliant with the specs, but it has no value. This solution can be verified, but it can never be validated. 2nd discussion: Unit test vs. Functional test: We are frequently met with the understanding, that the tools used for testing are also used to define the different types of test; a test executed by a unit test framework (such as NUnit, Junit PHPUnit, or CppUnit) is a unit test - the rest are functional tests. That s not how we see it. Our understanding is, that unit tests are used to test only the semantics of the code; the purpose of unit tests is to verify 6

7 that the code behaves as specified. It s important in unit testing that you don t get tangled up in hard-to-handle dependencies such as loading databases instantiating long sequences of objects before you get to the point. In unit testing you should use mock-up frameworks, fakes, stubs, and proxies. Our rule of thumb is, that a full unit test should be able to run in the same amount of time it takes to compile the code or less. Functional testing is all about getting a good gut-feeling before you ship. That will typically include firing up all you dependencies, databases, connections, live-feeds, and what have you. A functional test is typically broken down into different test suites and to run all of them may take quite some time, depending on your gutfeeling. As opposed to unit testing, the functional test runs on a production-like environment, which indicates that you should probably deploy first and run your functional tests in the environment you deployed to. Functional tests may also be executed from a unit test framework we often do that - but it will not include mock-ups. You should measure the coverage of your unit tests, but you shouldn t measure the coverage of your functional tests. The infant level of test and quality assurance, before you even get a score on the chart, is when you rely solely on the developer s individual judgement and the statement it worked on my machine when I shipped it. Novice signs in the area of Test & Quality assurance is to introduce a unit test framework and to start measuring the code coverage from the unit tests. At this level developers start to see unit testing as an integrated part of the software development process and unit testing becomes as natural as compiling and linking. It s being done in conjunction with every build. It s also at this level that teams start introducing mock-up frameworks and start using stubs and proxies to get more efficient unit tests and raise the level of coverage well above the fifties. Intermediary signs of test and quality assurance is when the functional tests are being automated as well. Teams start supporting their functional tests by using test robots, GUI test frameworks, sophisticated test scripts, and test management systems. It is also at this level that peer-reviews or formal reviews are being introduced. Advanced signs in this field is when an automated deployment becomes part of your QA strategy. This enables you to test in target and productionlike environments with a full and managed set of dependencies. At this level we also see that the management and maintenance of the test data is integrated in the strategy. Within embedded software development, this is the level where teams start automating the tests on the actual target platform as opposed to using simulators. Expert signs of testing and QA is to dare automate even the acceptance test. The acceptance test is typically when the test starts changing its focus from verification to validation (as per the discussion earlier). Some people may claim that trying to do an automated validation is not advisable at all this shouldn t be automated; it should always involve humans. We do acknowledge that this is sometimes true, dependent on what type of software you are creating. But it s far from always true and if you are an expert you would challenge such a statement. Beginner signs is when teams start producing more sophisticated metrics. Examples could be style checkers, static code analysis, calculating cyclomatic complexity, scanning code for fixmes and todos, compiling documentation from the embedded comments. 7

8 Software Configuration Management The version control system and the way the software configuration is managed are essentially the set of techniques and supporting tools that have the largest impact on the way the team is collaborating. It is within this field that we find the tools that utilize the team collaboration and keep track of the overwhelming complexity that can surround the software development processes. If your software configuration is not managed and if you score low in this field then we suggest that this should be your main focus, even preceding build, test, and quality assurance. The infant stage of software configuration management is of course when it s unmanaged; if you are not using a version control system (VCS) at all or if the VCS you are using does not support branching and merging. Or if the VCS you use only supports versioning of files and does not support versioning of directories (I can think of at least Visual Source Safe or CVS that fails this feature demand and therefore disqualifies as bearer of the title version control system ). Novice signs of maturity within software configuration management is when branches are utilized to some extend. Even if it means that the branching model is early branching. The term refers to a branching strategy where branches are created proactively early and used mostly as a variant of labels for storing releases and planning ahead. In early branching merges are quite rare, the branches have a tendency to stay apart and not integrate again. Subversion (SVN) is very good at branching but notoriously not very good at merging. Often SVN users get stuck at the early branching strategy unless they are very ambitious. Beginner signs of a more mature branching strategy is referred to as late branching - which is an approach where branches or clones are more often used to actually isolate work for shorter periods and where merges are quite frequent and used fearlessly among developers and release managers The aim is that every branch created should eventually be merged back to the mainline or closed. This branching approach is very popular in distributed version control systems such as Git, Mercurial, and Bazaar. Although late branching is a term that has been used within SCM for many years, this strategy is more and more frequently being referred to as the Git branching strategy. Intermediary signs is when commits in your VCS are tied together with tasks or work-items in your change management system and you start to maintain data, that will allow you to gain some kind of traceability overview. At this stage we typically also see, that if you are in a Distributed VCS the developers will start using history to rewrite features in their local clones before pushing to the centralized repository simply to tidy up things and keep information crisp. Advanced signs are recognized when companies implement preverified commits to resemble the well known work process of most Open Source communities, where benevolent dictators and their loyal lieutenants keep guards of OSS repos and don t let the small fish alter the pristine repos themselves but must rely on pull requests and review queues. This approach can be implemented on the CI server, which will then take on the role as the benevolent dictator or in this case the willing serf. The desired benefit is that the project s integration branch is kept forever pristine. It is simply impossible for a developer to break the build for his colleagues. Commits that break the build or don t pass the unit test are automatically rejected. Expert signs: If you are an expert in this field you utilize all the meta data persisted in your SCM system and its integration to the change management system and potentially other systems as well to automatically generate release notes, bill of materials, and traceability analysis reports upon every build. 8

9 Visibility We consider visibility to be a very important part of the continuous delivery strategy. The visibility helps build a healthy culture around continuous delivery. Everybody is constantly aware of the current status and progress of the software. Monitors are being set up in the canteen, at the entrance, and in work areas. Producing software and releasing it is a team effort and pipelines being visible or at least available to all stakeholders potentially even end-users and customers supports a healthy culture and builds confidence. Novice signs of visibility maturity is when the result and status of the triggered action are instantly sent or notified to the person who initiated the build the same person who committed the change. Beginner signs is when this information is not only sent to the one who is to blame, but also stored and made available to all interested stakeholders. Intermediary signs are shown when the build reports are analyzed as they roll in on the build or CI server and are being used to create trend reports and graphs. Another maturity sign at this level is that the information can be subscribed to typically by feeds so that people can compile their own individual information level. Measure your Continuous Delivery Maturity Index (CDMI) We recognize that this is not a complete maturity chart. We knowingly use the statement that this is a chart of signs that indicates different levels of maturity. It could easily have included more categories such as design, system architecture, organizational culture, and probably even more. The fact that continuous delivery embraces such a diversity of disciplines is a point by itself. Caring for and developing your continuous delivery pipeline can be an important catalyst for driving the change that is required to enable a release strategy and software quality that is expected by todays end-user. Poorly managed malfunctioning products are being punished by the end-users with the hardest sentence possible; they are simply being abandoned in favor of more mature and complete products. Those companies who master continuous delivery in the near future may see this as a competitive advantage but we predict, that within just very few years it will be considered a competitive necessity. Please got to our web and take the CDMI test: We have prepared a handful of questions for you and based on you replies, we will calculate the Continuous Delivery Maturity Index and mail you back with a small report and analysis. Advanced signs: At this point reporting is typically so mature that it becomes really useful and work areas are being equipped with monitors that show the real-time state of the software across all products and their dependencies. Expert signs: Real experts in this field trust their process to an extend where sharing this information with customers and potentially even the public becomes a natural thing to do. Praqmatic Software Development 9

10 Feed-back and discussions We encourage you to actively join the ongoing debate about continuous delivery. Sign up for the user group on LinkedIn Continuous Delivery Users and share your thoughts or follow the same user group on Feel free to contact us in Praqma we are eager to help. Mail: Tel: PRAQMA Praqma A/S Allerød Stationsvej Allerød Denmark Tel: PRAQMA [email protected] Web: 10

CoDe:U Git Flow - a Continuous Delivery Approach

CoDe:U Git Flow - a Continuous Delivery Approach CoDe:U Git Flow - a Continuous Delivery Approach Praqmatic Software Development 1 Continuous Delivery (CoDe) is an approach that builds very much on divide and conquer. It s bred from a lean and agile

More information

Continuous Delivery. Alejandro Ruiz

Continuous Delivery. Alejandro Ruiz Continuous Delivery Alejandro Ruiz True reality How the customer explained it How the project leader understood it How the analyst designed it How the programmer wrote it What the customer really needed

More information

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation Practicing Continuous Delivery using Hudson Winston Prakash Oracle Corporation Development Lifecycle Dev Dev QA Ops DevOps QA Ops Typical turn around time is 6 months to 1 year Sprint cycle is typically

More information

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

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012 Jenkins Continuous Build System Jesse Bowes CSCI-5828 Spring 2012 Executive summary Continuous integration systems are a vital part of any Agile team because they help enforce the ideals of Agile development

More information

Continuous Integration and Bamboo. Ryan Cutter CSCI 5828 2012 Spring Semester

Continuous Integration and Bamboo. Ryan Cutter CSCI 5828 2012 Spring Semester Continuous Integration and Bamboo Ryan Cutter CSCI 5828 2012 Spring Semester Agenda What is CI and how can it help me? Fundamentals of CI Fundamentals of Bamboo Configuration / Price Quick example Features

More information

Enabling Continuous Delivery by Leveraging the Deployment Pipeline

Enabling Continuous Delivery by Leveraging the Deployment Pipeline Enabling Continuous Delivery by Leveraging the Deployment Pipeline Jason Carter Principal (972) 689-6402 [email protected] Pariveda Solutions, Inc. Dallas,TX Table of Contents Matching

More information

Software Continuous Integration & Delivery

Software Continuous Integration & Delivery November 2013 Daitan White Paper Software Continuous Integration & Delivery INCREASING YOUR SOFTWARE DEVELOPMENT PROCESS AGILITY Highly Reliable Software Development Services http://www.daitangroup.com

More information

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery! Continuous Delivery for Alfresco Solutions Satisfied customers and happy developers with!! Continuous Delivery! About me Roeland Hofkens #rhofkens [email protected] http://opensource.westernacher.com

More information

Delivering Quality Software with Continuous Integration

Delivering Quality Software with Continuous Integration Delivering Quality Software with Continuous Integration 01 02 03 04 Unit Check- Test Review In 05 06 07 Build Deploy Test In the following pages we will discuss the approach and systems that together make

More information

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

Delivery. Continuous. Jez Humble and David Farley. AAddison-Wesley. Upper Saddle River, NJ Boston Indianapolis San Francisco Continuous Delivery Jez Humble and David Farley AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Paris Madrid Cape Town Sydney Tokyo Singapore

More information

Software Construction

Software Construction Software Construction Martin Kropp University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Learning Target You can explain the importance of continuous integration

More information

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

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited Continuous Integration: Improving Software Quality and Reducing Risk Preetam Palwe Aftek Limited One more title Do you love bugs? Or Are you in love with QC members? [Courtesy: Smita N] Agenda Motivation

More information

Continuous Integration and Delivery at NSIDC

Continuous Integration and Delivery at NSIDC National Snow and Ice Data Center Supporting Cryospheric Research Since 1976 Continuous Integration and Delivery at NSIDC Julia Collins National Snow and Ice Data Center Cooperative Institute for Research

More information

Jenkins: The Definitive Guide

Jenkins: The Definitive Guide Jenkins: The Definitive Guide John Ferguson Smart O'REILLY8 Beijing Cambridge Farnham Koln Sebastopol Tokyo Table of Contents Foreword xiii Preface xv 1. Introducing Jenkins 1 Introduction 1 Continuous

More information

Continuous Integration

Continuous Integration Continuous Integration Collaborative development issues Checkout of a shared version of software ( mainline ) Creation of personal working copies of developers Software development: modification of personal

More information

WHITEPAPER. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Principle #1, Agile Manifesto

WHITEPAPER. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Principle #1, Agile Manifesto 30 September 2014 WHITEPAPER Delivery Maturity Model Releasing software is often a long, difficult and risky process. Defects and integration issues pop-up at the very last moment and cause dissatisfaction

More information

Beginners guide to continuous integration. Gilles QUERRET Riverside Software

Beginners guide to continuous integration. Gilles QUERRET Riverside Software Beginners guide to continuous integration Gilles QUERRET Riverside Software About the speaker Working with Progress and Java since 10 years Started Riverside Software 7 years ago Based in Lyon, France

More information

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

Continuous Integration with Jenkins. Coaching of Programming Teams (EDA270) J. Hembrink and P-G. Stenberg [dt08jh8 dt08ps5]@student.lth. 1 Continuous Integration with Jenkins Coaching of Programming Teams (EDA270) J. Hembrink and P-G. Stenberg [dt08jh8 dt08ps5]@student.lth.se Faculty of Engineering, Lund Univeristy (LTH) March 5, 2013 Abstract

More information

Continuous Integration

Continuous Integration LT-QAI Torch Talk: Continuous Integration Marc @dfki.de DFKI Language Technology Lab, Saarbrücken and Berlin, Germany What do I mean by Torch Talk? Idea to increase the frequency of

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 8 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2015 Last Week State machines Layered Architecture: GUI Layered Architecture: Persistency

More information

How To Do Continuous Integration

How To Do Continuous Integration Continuous Integration for Safety Critical Systems Thomas Schütz Protos Software GmbH ASQF Safety Day 24.06.2014 Protos Software GmbH Methods and Tools Domain Specific Languages (DSL) Modelingtools Embedded

More information

Continuous Integration: Put it at the heart of your development

Continuous Integration: Put it at the heart of your development Continuous Integration: Put it at the heart of your development Susan Duncan Tools Product Manager, Oracle 1 Program Agenda What is CI? What Does It Mean To You? Make it Hudson Evolving Best Practice For

More information

The Benefits of Deployment Automation

The Benefits of Deployment Automation WHITEPAPER Octopus Deploy The Benefits of Deployment Automation Reducing the risk of production deployments Contents Executive Summary... 2 Deployment and Agile software development... 3 Aim to deploy

More information

In depth study - Dev teams tooling

In depth study - Dev teams tooling In depth study - Dev teams tooling Max Åberg mat09mab@ Jacob Burenstam Linder ada09jbu@ Desired feedback Structure of paper Problem description Inconsistencies git story explanation 1 Introduction Hypotheses

More information

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction DRUPAL CONTINUOUS INTEGRATION Part I - Introduction Continuous Integration is a software development practice where members of a team integrate work frequently, usually each person integrates at least

More information

Software Development In the Cloud Cloud management and ALM

Software Development In the Cloud Cloud management and ALM Software Development In the Cloud Cloud management and ALM First published in Dr. Dobb's Journal, February 2009: http://www.ddj.com/development-tools/212900736 Nick Gulrajani is a Senior Solutions Architect

More information

Content. Development Tools 2(63)

Content. Development Tools 2(63) Development Tools Content Project management and build, Maven Version control, Git Code coverage, JaCoCo Profiling, NetBeans Static Analyzer, NetBeans Continuous integration, Hudson Development Tools 2(63)

More information

Software Configuration Management Best Practices for Continuous Integration

Software Configuration Management Best Practices for Continuous Integration Software Configuration Management Best Practices for Continuous Integration As Agile software development methodologies become more common and mature, proven best practices in all phases of the software

More information

Continuous delivery Release software on-demand, not on Red Alert

Continuous delivery Release software on-demand, not on Red Alert Continuous delivery Release software on-demand, not on Red Alert Have it all. Ahead of the competition Value In a world where customers expect a mobile and connected 24x7 experience, businesses must adapt

More information

vs. Web Site: www.soebes.com Blog: blog.soebes.com Email: [email protected] Dipl.Ing.(FH) Karl Heinz Marbaise

vs. Web Site: www.soebes.com Blog: blog.soebes.com Email: info@soebes.com Dipl.Ing.(FH) Karl Heinz Marbaise Project Organization vs. Build- and Configuration Management Web Site: www.soebes.com Blog: blog.soebes.com Email: [email protected] Dipl.Ing.(FH) Karl Heinz Marbaise Agenda 1.Initialization 2.Specification

More information

We (http://www.newagesolution.net) have extensive experience in enterprise and system architectures, system engineering, project management, and

We (http://www.newagesolution.net) have extensive experience in enterprise and system architectures, system engineering, project management, and We (http://www.newagesolution.net) have extensive experience in enterprise and system architectures, system engineering, project management, and software design and development. We will be presenting a

More information

Fundamentals of Continuous Integration

Fundamentals of Continuous Integration Zend Blueprint for Delivery Fundamentals of Jenkins with and server by Slavey Karadzhov Introduction Delivery is a methodology, a mindset change and a leadership practice that focuses on how to achieve

More information

Database Build and Release will get started soon

Database Build and Release will get started soon #sqlinthecity Database Build and Release will get started soon Ernest Hwang Principal Software Engineer, Practice Fusion http://practicefusion.com/careers/ While you re waiting, check out SQL Prompt #sqlinthecity

More information

ALM2013VS_ACC: Application Lifecycle Management Using Visual Studio 2013

ALM2013VS_ACC: Application Lifecycle Management Using Visual Studio 2013 ALM2013VS_ACC: Application Lifecycle Management Using Visual Studio 2013 Description This three-day, instructor-led course provides students with the knowledge and skills to effectively use the Application

More information

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS @huibschoots & @mieldonkers INTRODUCTION Huib Schoots Tester @huibschoots Miel Donkers Developer @mieldonkers TYPICAL Experience with Continuous Delivery?

More information

Continuous Delivery: Automating the Deployment Pipeline. Solution Brief

Continuous Delivery: Automating the Deployment Pipeline. Solution Brief Continuous Delivery: Automating the Deployment Pipeline Solution Brief The Value of Continuous Delivery Continuous Delivery is a software delivery practice that requires you to build and deploy software

More information

Mastering Continuous Integration with Jenkins

Mastering Continuous Integration with Jenkins 1. Course Objectives Students will walk away with a solid understanding of how to implement a Continuous Integration (CI) environment with Jenkins, including: Setting up a production-grade instance of

More information

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

Coverity Services. World-class professional services, technical support and training from the Coverity development testing experts Coverity Services World-class professional services, technical support and training from the Coverity development testing experts Coverity has helped over 1,100 customers around the globe assure the quality,

More information

Continuous integration for databases using

Continuous integration for databases using Continuous integration for databases using Red Wie Sie Gate die tools Microsoft SQL An overview Continuous integration for databases using Red Gate tools An overview Contents Why continuous integration?

More information

Development Testing for Agile Environments

Development Testing for Agile Environments Development Testing for Agile Environments November 2011 The Pressure Is On More than ever before, companies are being asked to do things faster. They need to get products to market faster to remain competitive

More information

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture Pipeline Orchestration for Test Automation using Extended Buildbot Architecture Sushant G.Gaikwad Department of Computer Science and engineering, Walchand College of Engineering, Sangli, India. M.A.Shah

More information

Software Configuration Management. Slides derived from Dr. Sara Stoecklin s notes and various web sources.

Software Configuration Management. Slides derived from Dr. Sara Stoecklin s notes and various web sources. Software Configuration Management Slides derived from Dr. Sara Stoecklin s notes and various web sources. What is SCM? SCM goals Manage the changes to documents, programs, files, etc. Track history Identify

More information

Continuous Delivery. Ariel Alonso, IPC

Continuous Delivery. Ariel Alonso, IPC Continuous Delivery Ariel Alonso, IPC About Me Ariel Alonso Systems Architect Independent Purchasing Cooperative, Inc. Software Engineer for 15 years Interests Agile & XP Test Driven Development Automation

More information

Continuous Integration

Continuous Integration CODING & DEVELOPMENT BORIS GORDON FEBRUARY 7 2013 Continuous Integration Introduction About me boztek on d.o. (http://drupal.org/user/134410) @boztek [email protected] 2 Introduction About you

More information

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

Nick Ashley TOOLS. The following table lists some additional and possibly more unusual tools used in this paper. TAKING CONTROL OF YOUR DATABASE DEVELOPMENT Nick Ashley While language-oriented toolsets become more advanced the range of development and deployment tools for databases remains primitive. How often is

More information

Implementing Continuous Integration Testing Prepared by:

Implementing Continuous Integration Testing Prepared by: Implementing Continuous Integration Testing Prepared by: Mr Sandeep M Table of Contents 1. ABSTRACT... 2 2. INTRODUCTION TO CONTINUOUS INTEGRATION (CI)... 3 3. CI FOR AGILE METHODOLOGY... 4 4. WORK FLOW...

More information

Continuous Delivery Workshop

Continuous Delivery Workshop Continuous Delivery Workshop deployment pipelines Workshop materials created by Jez Humble, Martin Fowler, Tom Sulston, & Neal Ford deployment pipelines tests, synergistic practices, incremental deployment

More information

Application Lifecycle Management Using Visual Studio 2013 (SCRUM)

Application Lifecycle Management Using Visual Studio 2013 (SCRUM) Course Code: QAALMS13 Vendor: Microsoft Course Overview Duration: 3 RRP: 2,009 Application Lifecycle Management Using Visual Studio 2013 (SCRUM) Overview This three-day, instructor-led course provides

More information

Continuous Integration (CI)

Continuous Integration (CI) Introduction A long standing problem for software development teams has been to maintain the stability of an application while integrating the changes made by multiple developers. The later that integration

More information

Continuous Delivery Software-Deployments ohne graue Haare. 3. April 2012 Corsin Decurtins

Continuous Delivery Software-Deployments ohne graue Haare. 3. April 2012 Corsin Decurtins Continuous Delivery Software-Deployments ohne graue Haare 3. April 2012 Corsin Decurtins Some numbers 4 15 deployments per year bank, insurance company, government, transport authority deployments per

More information

Leveraging Rational Team Concert's build capabilities for Continuous Integration

Leveraging Rational Team Concert's build capabilities for Continuous Integration Leveraging Rational Team Concert's build capabilities for Continuous Integration Krishna Kishore Senior Engineer, RTC IBM [email protected] August 9-11, Bangalore August 11, Delhi Agenda What

More information

Software Configuration Management and Continuous Integration

Software Configuration Management and Continuous Integration 1 Chapter 1 Software Configuration Management and Continuous Integration Matthias Molitor, 1856389 Reaching and maintaining a high quality level is essential for each today s software project. To accomplish

More information

Build management & Continuous integration. with Maven & Hudson

Build management & Continuous integration. with Maven & Hudson Build management & Continuous integration with Maven & Hudson About me Tim te Beek [email protected] Computer science student Bioinformatics Research Support Overview Build automation with Maven Repository

More information

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

Continuous Delivery. Anatomy of the Deployment Pipeline (Free Chapter) by Jez Humble and David Farley Continuous Delivery Anatomy of the Deployment Pipeline (Free Chapter) by Jez Humble and David Farley Copyright 2011 ThoughtWorks Inc. All rights reserved www.thoughtworks-studios.com Introduction Continuous

More information

How To Achieve Continuous Delivery

How To Achieve Continuous Delivery White Paper Overcoming Jenkins Sprawl: Going from CI to CD with ElectricFlow Software is everywhere. And accelerating the delivery and quality of that software can mean the difference between merely surviving,

More information

A central continuous integration platform

A central continuous integration platform A central continuous integration platform Agile Infrastructure use case and future plans Dec 5th, 2014 1/3 The Agile Infrastructure Use Case By Stefanos Georgiou What? Development practice Build better

More information

DevOps Stack. Reid Holmes. Chris Parnin: https://github.com/csc-devops/course

DevOps Stack. Reid Holmes. Chris Parnin: https://github.com/csc-devops/course Chris Parnin: https://github.com/csc-devops/course DevOps Stack Reid Holmes https://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/devops.svg/2000px-devops.svg.png Pro Ben Stil Waterfall model Agile

More information

Improving your Drupal Development workflow with Continuous Integration

Improving your Drupal Development workflow with Continuous Integration Improving your Drupal Development workflow with Continuous Integration Peter Drake Sahana Murthy DREAM IT. DRUPAL IT. 1 Meet Us!!!! Peter Drake Cloud Software Engineer @Acquia Drupal Developer & sometimes

More information

Benefits of Test Automation for Agile Testing

Benefits of Test Automation for Agile Testing Benefits of Test Automation for Agile Testing Manu GV 1, Namratha M 2, Pradeep 3 1 Technical Lead-Testing Calsoft Labs, Bangalore, India 2 Assistant Professor, BMSCE, Bangalore, India 3 Software Engineer,

More information

Automate Your Deployment with Bamboo, Drush and Features DrupalCamp Scotland, 9 th 10 th May 2014

Automate Your Deployment with Bamboo, Drush and Features DrupalCamp Scotland, 9 th 10 th May 2014 This presentation was originally given at DrupalCamp Scotland, 2014. http://camp.drupalscotland.org/ The University of Edinburgh 1 We are 2 of the developers working on the University s ongoing project

More information

CONTINUOUS INTEGRATION. Introduction

CONTINUOUS INTEGRATION. Introduction CONTINUOUS INTEGRATION Introduction Continuous Integration is the topic of quite a bit of buzz in Silicon Valley and beyond. And with good reason: continuous integration helps teams ship better software

More information

Driving Your Business Forward with Application Life-cycle Management (ALM)

Driving Your Business Forward with Application Life-cycle Management (ALM) Driving Your Business Forward with Application Life-cycle Management (ALM) Published: August 2007 Executive Summary Business and technology executives, including CTOs, CIOs, and IT managers, are being

More information

The Deployment Pipeline

The Deployment Pipeline The Deployment Pipeline (Extending the range of Continuous Integration) Dave Farley 2007 Continuous Build A core practice in Agile development projects is the use of Continuous Integration. CI is a process

More information

"Build and Test in the Cloud "

Build and Test in the Cloud W5 Class 11/17/2010 10:00:00 AM "Build and Test in the Cloud " Presented by: Darryl Bowler CollabNet Brought to you by: 330 Corporate Way, Suite 300, Orange Park, FL 32073 888 268 8770 904 278 0524 [email protected]

More information

Mobile Development with Git, Gerrit & Jenkins

Mobile Development with Git, Gerrit & Jenkins Mobile Development with Git, Gerrit & Jenkins Luca Milanesio [email protected] June 2013 1 ENTERPRISE CLOUD DEVELOPMENT Copyright 2013 CollabNet, Inc. All Rights Reserved. About CollabNet Founded in

More information

Modern practices 2.3.2015 02.03.2015 TIE-21100/21106 1

Modern practices 2.3.2015 02.03.2015 TIE-21100/21106 1 Modern practices 2.3.2015 1 Today s lecture Learn what some modern SW engineering topics are about A peek to some research topic of our department 2 3 4 5 6 How the lectures continue? 02.03 Modern practices

More information

Automation can dramatically increase product quality, leading to lower field service, product support and

Automation can dramatically increase product quality, leading to lower field service, product support and QA Automation for Testing Medical Device Software Benefits, Myths and Requirements Automation can dramatically increase product quality, leading to lower field service, product support and liability cost.

More information

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS @pascal_dufour & @hrietman INTRODUCTION Pascal Dufour Agile Tester @Pascal_Dufour Harald Rietman Developer Scrum Master @hrietman TYPICAL Experience with

More information

Software configuration management

Software configuration management Software Engineering Theory Software configuration management Lena Buffoni/ Kristian Sandahl Department of Computer and Information Science 2015-09-30 2 Maintenance Requirements System Design (Architecture,

More information

Continuous integration for databases using Redgate tools

Continuous integration for databases using Redgate tools Continuous integration for databases using Redgate tools Wie Sie die Microsoft SQL Server Data Tools mit den Tools von Redgate ergänzen und kombinieren können An overview 1 Continuous integration for

More information

WHITEPAPER. Solving database deployments with Database Lifecycle Management

WHITEPAPER. Solving database deployments with Database Lifecycle Management Solving database deployments with Database Lifecycle Management 1 Abstract Building great software is never just about the code. It s also about managing multiple teams, timelines, and, frequently, the

More information

Continuous integration End of the big bang integration era

Continuous integration End of the big bang integration era Continuous integration End of the big bang integration era Patrick Laurent Partner Technology & Enterprise Applications Deloitte Mario Deserranno Manager Technology & Enterprise Applications Deloitte The

More information

November 12 th 13 th London: Mastering Continuous Integration with Jenkins

November 12 th 13 th London: Mastering Continuous Integration with Jenkins 1. Course Objectives Students will walk away with a solid understanding of how to implement a Continuous Integration (CI) environment, including: Setting up a production-grade instance of a Jenkins server,

More information

1. Introduction. Annex 7 Software Project Audit Process

1. Introduction. Annex 7 Software Project Audit Process Annex 7 Software Project Audit Process 1. Introduction 1.1 Purpose Purpose of this document is to describe the Software Project Audit Process which capable of capturing different different activities take

More information

Continuous Integration

Continuous Integration Continuous Integration Improving Software Quality with Continuous Integration Continuous Integration In a nutshell Continuous Integration (CI) is: Assembling software every time code changes CI is important

More information

Key Benefits of Microsoft Visual Studio Team System

Key Benefits of Microsoft Visual Studio Team System of Microsoft Visual Studio Team System White Paper November 2007 For the latest information, please see www.microsoft.com/vstudio The information contained in this document represents the current view

More information

Test Driven Development Part III: Continuous Integration Venkat Subramaniam [email protected] http://www.agiledeveloper.com/download.

Test Driven Development Part III: Continuous Integration Venkat Subramaniam venkats@agiledeveloper.com http://www.agiledeveloper.com/download. Test Driven Development Part III: Continuous Integration Venkat Subramaniam [email protected] http://www.agiledeveloper.com/download.aspx Abstract In this final part of the three part series on

More information

Paul Barham ([email protected]) Program Manager - Java. David Staheli ([email protected]) Software Development Manager - Java

Paul Barham (pabarham@microsoft.com) Program Manager - Java. David Staheli (dastahel@microsoft.com) Software Development Manager - Java Paul Barham ([email protected]) Program Manager - Java David Staheli ([email protected]) Software Development Manager - Java to empower every person and every organization on the planet to achieve

More information

Build Automation for Mobile. or How to Deliver Quality Apps Continuously. Angelo Rüggeberg

Build Automation for Mobile. or How to Deliver Quality Apps Continuously. Angelo Rüggeberg Build Automation for Mobile or How to Deliver Quality Apps Continuously Angelo Rüggeberg Things to remember Publishing your App should not be painfull Angelo Rüggeberg Code Quality Matters Angelo Rüggeberg

More information

Theme 1 Software Processes. Software Configuration Management

Theme 1 Software Processes. Software Configuration Management Theme 1 Software Processes Software Configuration Management 1 Roadmap Software Configuration Management Software configuration management goals SCM Activities Configuration Management Plans Configuration

More information

Continuous Integration Multi-Stage Builds for Quality Assurance

Continuous Integration Multi-Stage Builds for Quality Assurance Continuous Integration Multi-Stage Builds for Quality Assurance Dr. Beat Fluri Comerge AG ABOUT MSc ETH in Computer Science Dr. Inform. UZH, s.e.a.l. group Over 8 years of experience in object-oriented

More information

Continuous Integration. CSC 440: Software Engineering Slide #1

Continuous Integration. CSC 440: Software Engineering Slide #1 Continuous Integration CSC 440: Software Engineering Slide #1 Topics 1. Continuous integration 2. Configuration management 3. Types of version control 1. None 2. Lock-Modify-Unlock 3. Copy-Modify-Merge

More information

Version Control Systems: SVN and GIT. How do VCS support SW development teams?

Version Control Systems: SVN and GIT. How do VCS support SW development teams? Version Control Systems: SVN and GIT How do VCS support SW development teams? CS 435/535 The College of William and Mary Agile manifesto We are uncovering better ways of developing software by doing it

More information

Software Project Audit Process

Software Project Audit Process Software Project Audit Process Version 1.2 Information and Communication Technology Agency of Sri Lanka July 2013 Copyright 2011 ICTA Software Project Audit Process-v-1.2 Revision History Date Version

More information

FireScope + ServiceNow: CMDB Integration Use Cases

FireScope + ServiceNow: CMDB Integration Use Cases FireScope + ServiceNow: CMDB Integration Use Cases While virtualization, cloud technologies and automation have slashed the time it takes to plan and implement new IT services, enterprises are still struggling

More information

Building Value with Continuous Integration

Building Value with Continuous Integration WHITE PAPER Building Value with Continuous Integration Choosing the right tools and technology for your organization Abstract Implementing continuous integration involves choosing the right tools and technology.

More information

CSE 70: Software Development Pipeline Version Control with Subversion, Continuous Integration with Bamboo, Issue Tracking with Jira

CSE 70: Software Development Pipeline Version Control with Subversion, Continuous Integration with Bamboo, Issue Tracking with Jira CSE 70: Software Development Pipeline Version Control with Subversion, Continuous Integration with Bamboo, Issue Tracking with Jira Ingolf Krueger Department of Computer Science & Engineering University

More information

Software infrastructure for Java development projects

Software infrastructure for Java development projects Tools that can optimize your development process Software infrastructure for Java development projects Presentation plan Software Development Lifecycle Tools What tools exist? Where can tools help? Practical

More information

Introduction to Programming Tools. Anjana & Shankar September,2010

Introduction to Programming Tools. Anjana & Shankar September,2010 Introduction to Programming Tools Anjana & Shankar September,2010 Contents Essentials tooling concepts in S/W development Build system Version Control System Testing Tools Continuous Integration Issue

More information

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

Agile Power Tools. Author: Damon Poole, Chief Technology Officer Agile Power Tools Best Practices of Agile Tool Users Author: Damon Poole, Chief Technology Officer Best Practices of Agile Tool Users You ve decided to transition to Agile development. Everybody has been

More information

Kevin Lee Technical Consultant [email protected]. As part of a normal software build and release process

Kevin Lee Technical Consultant kevin.lee@uk.ibm.com. As part of a normal software build and release process Agile SCM: Realising Continuous Kevin Lee Technical Consultant [email protected] Agenda What is Continuous? Continuous in Context As part of a normal software build and release process Realising Continuous

More information