CONTINUOUS INTEGRATION

Size: px
Start display at page:

Download "CONTINUOUS INTEGRATION"

Transcription

1 CONTINUOUS INTEGRATION REALISING ROI IN SOFTWARE DEVELOPMENT PROJECTS In the following pages we will discuss the policies and systems that together make up the process called Continuous Integration. This document is written for IT managment who are looking to improve the quality of the systems their teams build, along with increasing the Return on Investment of their IT department as a whole. Copyright 2012 Inviqa

2 Table of Contents Executive Summary 3 Introduction to Continuous Integration 4 The Systems Source Code Control Unit Testing Code Validation Documentation Integration Testing Regression Testing The Tools Subversion PHPUnit CruiseControl/phpUnderControl PHP_CodeSniffer phpdocumentor Phing Return on Investment 11 Conclusion 12 2

3 Executive Summary The main concept behind Continuous Integration as described by Martin Fowler is simple: Every developer checks in their code, every day. Adopting this policy reduces the time it takes to integrate a developer s code into the existing codebase to almost zero. Regular and frequent check-ins also allow testing systems to be developed that will regularly scan the entire code base for problems and raise red flags early in the process rather than later, when the bugs are more expensive to fix. These benefits allow teams to improve the quality of the software they deliver. Because developers are finding bugs earlier in the process rather than later, the cost of developing internal software is reduced, thus increasing the ROI of the team. When teams adopt this policy, systems can be put in place to help make sure that the code being written integrates with other developers code and the existing codebase. This methodology, along with the accompanying support systems, is known as a Continuous Integration system. From the system perspective, a stable and useful Continuous Integration system can be assembled using several best of breed, open source applications based on PHP. Subversion for Source Code Control phpundercontrol/cruise Control for Integration and regression testing 4 php Documentor documentation Code_Sniffer for code validation Phing for build tasks Combining these systems together, teams can integrate their code changes quickly, build on a scheduled basis and ensure that the system is not only working according to their understanding of what is to be built, but working according to the client s specifications. 3

4 Introduction to Continuous Integration Software development continues to grow increasingly more complex. Even when dealing with dynamic languages like PHP, the systems being built today dwarf the systems of even five years ago. Many development teams however have not upgraded their development process and systems to meet the new demands. Today s teams must be well versed in the best practices of software development like source code control, unit testing, integration testing and documentation. These practices, when coupled together, form the basis of a Continuous Integration system. Continuous Integration is a term coined by Martin Fowler in a paper by the same name. Continuous Integration is a software development practice where members of a team integrate their work frequently; usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. - Martin Fowler When programming in today s dynamic languages, the concept of a build does not mean the same thing as it does for traditional compiled languages. However the other concepts he discusses still have a place in software development. Continuously integrating changes into the main code base so that their effects can be quickly seen and fixed if necessary is an important step in controlling the cost of bugs and the I quality of your overall system. As discussed earlier, Continuous Integration is a series of inter-related services that, when used together, accomplish the goals behind Mr. Fowler s concept of Continuous Integration. Those goals are to eliminate the Integration phase of any software project and to identify bugs earlier rather than later. 4

5 The services used in Continuous Integration are: Source Code Control Unit Testing Code Validation Documentation Integration testing Regression testing (builds) All of these systems can be setup independently and used ad hoc. However, forward thinking teams are now integrating all of them to help identify and find fix small problems early rather than large problems late. 5

6 The Systems The underlying principle of Continuous Integration, frequent integration of code being written, is handled by the source code control system. The secondary goals, unit testing, code validation, documentation and integration testing, all revolve around this system. Source Code Control As stated, Source Code Control is the heart of any Continuous Integration system. Source Code Control is the main repository for the code and the first line of defense in many Continuous Integration systems. Aside from serving as the focal point for your source code and a backup in case a developer s machine breaks down, your source code control system provides you with important hooks that can be used to automate pieces like unit testing. Unit Testing Many teams use a two pronged approach for Unit testing. The first prong is the developer running the tests manually. This type of testing is helpful in creating the code but relies on the developer to remember to run the tests before check-in. The second prong addresses this shortcoming by automating unit testing and reporting. Many teams use hooks in programs like Subversion to automatically run Unit Test suites. There are two schools of thought when doing this. The first is to deny check-in if the code fails its unit testing. The other is that unit tests are run on check-in but the check-in can proceed but the error is reported. Either way, when bugs are introduced into the system, developers know about it immediately and can fix them quickly. Code Validation It is often said that the wonderful thing about standards is that there are so many to choose from. Nowhere is this more evident than with PHP coding standards; there is an embarrassment of riches when choosing a standard for your team. The problem, though, is not choosing one but enforcing it once chosen. Once you and your team have settled on a standard, a Continuous Integration system can help enforce it by routinely scanning the repository and identifying code snippets that do not match the agreed upon specification. 6

7 Documentation While nothing can replace well written end-user documentation, good API documentation is invaluable to developers. This is never truer than when new developers are moving on to a project or picking one up after having spent time away from it working on other projects. Many languages have adopted the JavaDoc style for API documentation. This method allows for the documentation to be read in-line by the developers while at the same time, can be parsed by appropriate systems to automatically generate a comprehensive set of docs for the project. Integration Testing The concept of software builds does not translate well into dynamic language development. Since all code is parsed and tokenized at runtime, the traditional processes of compiling and linking do not come into play. The routine of checkout, compile and linking is replaced by Integration Testing. Unit testing is an integral part of any software development project and is the best way to find bugs in your code early. Even the most rigorous unit testing cannot guarantee that all the pieces in the system will work together. For this you need to implement an Integration Testing regime. Integration testing is fitting all the individual pieces together and making sure that they work together. Integration testing can take three forms. Bottom Up By far the most popular methodology of Integration testing is bottom up testing. In Bottom Up testing the first step is to re-run all of your unit tests. Once they have been re- tested in full, you use a system like Selenium to test how the system as a whole works. Those reports are posted online for all to see. Top Up Using the Top Down methodology, all of the units are assembled into a system and then modules are tested. Below the modules, individual units are tested. Big Bang The Big Bang methodology of integration testing is where all pieces are assembled and tested; reports are generated and posted for all to see. No individual unit testing takes place as part of the Big Bang methodology. 7

8 Look for mindshare Test plans for integration testing are important Teams need to make sure that they are testing what the client will be testing in the Acceptance testing phase. Also as a consequence of the introduction of new bugs, program maintenance requires far more system testing per statement written than any other programming. Theoretically, after each fix one must run the entire batch of test cases previously run against the system, to ensure that it has not been damaged in an obscure way. In practice such regression testing must indeed approximate this theoretical idea, and it is very costly -Fred Brooks, The Mythical Man Month Regression Testing Once a milestone has been achieved, the test plans for the features in that milestone are integrated into the Regression Testing testing plan. Regression testing makes sure that once something is working, it stays working. It s not enough to simply test the features that you are currently working on, you have to continue to test completed features to make sure that new code does not have adverse affects. 8

9 The Tools Now that we ve discussed what a Continuous Integration System consists of, let s talk a bit about how to put one together. We will discuss the best of breed tools for PHPbased shops to use to implement Continuous Integration. While we will discuss the tools here, we will not go into the actual setup and integration of these tools. There is an excellent primer on that very subject on Inviqa s techportal site titled Getting Started with phpundercontrol i by Marc Veldman. Subversion ii The undisputed leader in Source Code Control for open source projects is Subversion. While the venerable CVS is still widely used, most teams have a migration plan already to move to Subversion. Since your Source Code Control system will be the heart of your Continuous Integration system it is recommended that that you get this important piece up and running before you move on to the next steps. PHPUnit iii Unit testing, whether done at check-in or only during scheduled builds is the cornerstone of the Continuous Integration system. PHP has several good Unit testing frameworks to choose from; however, the most complete and the most widely accepted is the PHPUnit testing framework. Used by itself, it is a powerful tool for ensuring the quality of a code base. When used as an integral part of a Continuous Integration system it helps improve the ROI of the project by finding problems earlier rather than later. 9

10 CruiseControl/ phpundercontrol iv The heart of any Continuous Integration system is the continuous build server. In the system being described CruiseControl and the PHP plugin for it, phpundercontrol, serve this role. CruiseControl is one of the most popular Continuous Build tools available and while it is written in Java there are builders and plugins available for many different languages, including Phing for PHP. phpundercontrol is the add-on application which allows for the integration of other PHP tools. PHP_CodeSniffer v By hooking PHP_CodeSniffer into the Continuous Integration system, you can automate the enforcement of your accepted coding standard. PHP_CodeSniffer will analyze the code in your project and report discrepancies. The report generated can be used to identify problems and resolve them quickly. Maintaining strict adherence to a coding standard will pay for itself in the maintenance phase of your project. phpdocumentor vi phpdocumentor is the accepted standard tool for building API documentation for PHP projects. Not only can it generate nicely formatted documentation, most modern IDEs support it, allowing for code completion on user code in addition to native language calls. Phing vii All build systems need a build utility. Unix/Linux has had make for many years now, Java has Ant and.net has Nant and more recently MSBuild. PHP s build tool is Phing. Phing is based on the concepts of Apache s Ant and allows you to complete any task you would be able to using Ant, make or any other build system. CruiseControl has plugins that support using Phing. 10

11 Return on Investment Any project undertaken by a company has to show that it is valuable to the company. When dealing with IT, this value, or the Return on Investment, is usually measured in either dollars contributed back to the bottom line or in time saved. Continuous Integration systems add value to the development process and the project as a whole and their value can be measured using both metrics. Overall, when properly installed, configured, and used, a Continuous Integration system will allow your teams to build projects faster and cheaper. The first, and arguably the most visible, benefit of Continuous integration is that it allows teams to identify and fix bugs early in the development cycle, as they appear. Conventional IT wisdom tells managers that the earlier you can find a bug, the cheaper it is to fix it. Since it s not yet possible to fix bugs as the programmer makes them, the next best thing is to find and report them when the code is checked in. This way the problem is fresh on the developer s mind and fixing it doesn t derail any other part of the project. Fixing bugs quickly, thus cheaply, means that systems are deployed with fewer bugs, and because expensive late- in-lifecycle debugging is not necessary, it allows the project to be delivered more quickly and within budget.... when properly installed, configured and used, a Continuous Integration system will allow your teams to build projects faster and cheaper The second and less visible improvement that Continuous Integration brings to projects is oversight. PHPUnit, CruiseControl, and phpundercontrol all bring with them published reports that can be viewed not only by the developers but by team leads, management and even clients. These reports give interested parties a snapshot into the health of the project. While the reports do not give a complete picture of the progress being made on the project, they 11

12 are useful for determining the health of the project. Project managers can use this information to make decisions on how to proceed with the project. Just like with the health of a human body, problems found early can be corrected more easily than those found later on. Continuous Integration systems require an upfront investment in time to install and configure. Thought needs to be given as to where the systems will physically reside. Once the initial investment has been made, however, all projects utilizing them can enjoy their benefits with only marginal costs involved in project setup and overall system maintenance. The latter can be distributed across all the projects using the system. References Conclusion This whitepaper has discussed the systems that make up a Continuous Integration system, made specific recommendations on which systems to use, and shown the ROI of using a Continuous Integration System. However, no system can make a difference if your team does not believe in them and use them. Implementing a Continuous Integration system is more about team attitude than the systems you deploy. The services we have described here can help teams identify bugs early but only if the system is used. The central tenant of Continuous Integration, Every developer checks in their code every day, cannot be enforced by a system, it has to be an attitude adopted by not only each developer but the team as a whole. As has been shown, however, the Return On Investment for deploying a Continuous Integration system can be measured in both the short term and long term. In the short term, bugs are cheaper to fix when they are found early in the development lifecycle. In the long term, as projects mature, the continuity of the code base will be maintained as different developers migrate in and out of the project. Continuous Integration and the systems that support it will keep your projects clean, tested and ready for deployment at a moment s notice. 12

13 i ii iii iv v vi vii Inviqa focuses on bespoke IT project delivery, to large enterprises, based on best practice software engineering principles. Our team of 90 staff in the UK, including software engineers and support roles, provide solutions to enable our clients to get the most out of open source, cutting costs and reducing risks. We are passionate about open source technologies, having been successfully delivering complex IT solutions since We love web development and are inspired by helping enterprises and large organisations that rely on open source technologies for their business-critical applications. Inviqa offers web development, 24/7 support, PHP training and consulting services (audits, scalability challenges). 13

Expert PHP 5 Tools. Proven enterprise development tools and best practices for designing, coding, testing, and deploying PHP applications.

Expert PHP 5 Tools. Proven enterprise development tools and best practices for designing, coding, testing, and deploying PHP applications. Expert PHP 5 Tools Proven enterprise development tools and best practices for designing, coding, testing, and deploying PHP applications Dirk Merkel PUBLISHING -J BIRMINGHAM - MUMBAI Preface Chapter 1:

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

CI:IRL. By Beth Tucker Long

CI:IRL. By Beth Tucker Long CI:IRL By Beth Tucker Long Who am I? Beth Tucker Long (@e3betht) Editor in Chief php[architect] magazine Freelancer under Treeline Design, LLC Stay at home mom User group organizer Madison PHP Audience

More information

PHP ON WINDOWS THE PROS AND CONS OF IMPLEMENTING PHP IN A WINDOWS INFRASTRUCTURE

PHP ON WINDOWS THE PROS AND CONS OF IMPLEMENTING PHP IN A WINDOWS INFRASTRUCTURE PHP ON WINDOWS THE PROS AND CONS OF IMPLEMENTING PHP IN A WINDOWS INFRASTRUCTURE This document was written for Information Technology managers in companies with existing Windows infrastructures that are

More information

Nexus Professional Whitepaper. Repository Management: Stages of Adoption

Nexus Professional Whitepaper. Repository Management: Stages of Adoption Sonatype Nexus Professional Whitepaper Repository Management: Stages of Adoption Adopting Repository Management Best Practices SONATYPE www.sonatype.com sales@sonatype.com +1 301-684-8080 12501 Prosperity

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

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 tim.te.beek@nbic.nl Computer science student Bioinformatics Research Support Overview Build automation with Maven Repository

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

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

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

White Paper. CCRM Services on Cloud Benefits of Private Cloud for CCRM Services. Abstract. - Krishna Vaddadi White Paper CCRM Services on Cloud Benefits of Private Cloud for CCRM Services - Krishna Vaddadi Abstract Configuration, Change and Release Management (CCRM) activities are the primary deliverables in

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

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

The Importance of Continuous Integration for Quality Assurance Teams

The Importance of Continuous Integration for Quality Assurance Teams The Importance of Continuous Integration for Quality Assurance Teams Without proper implementation, a continuous integration system will go from a competitive advantage for a software quality assurance

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

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

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

Title: Continuous Delivery and Continuous Integration. Conference: 13 th Annual Software Testing Conference 2013 1 Title: Continuous Delivery and Continuous Integration Conference: 13 th Annual Software Testing Conference 2013 Author: Tanvi Dharmarha Email: tbajajdh@adobe.com Organization Name: Adobe Systems Inc

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

Upping the game. Improving your software development process

Upping the game. Improving your software development process Upping the game Improving your software development process John Ferguson Smart Principle Consultant Wakaleo Consulting Email: john.smart@wakaleo.com Web: http://www.wakaleo.com Twitter: wakaleo Presentation

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

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

http://www.wakaleo.com john.smart@wakaleo.com Java Software Quality Tools and techniques

http://www.wakaleo.com john.smart@wakaleo.com Java Software Quality Tools and techniques Wakaleo Consulting O p t i m i z i n g y o u r s o f t w a r e d e v e l o p m e n t http://www.wakaleo.com john.smart@wakaleo.com Java Software Quality Tools and techniques 1 Introduction Agenda tools

More information

Global Software Change Management for PVCS Version Manager

Global Software Change Management for PVCS Version Manager Global Software Change Management for PVCS Version Manager... www.ikanalm.com Summary PVCS Version Manager is considered as one of the leading versioning tools that offers complete versioning control.

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 for databases using Red Gate tools

Continuous integration for databases using Red Gate tools Whitepaper Continuous integration for databases using Red Gate tools A technical overview Continuous Integration source control develop Dev Dev Dev build test Automated Deployment Deployment package Testing

More information

Building Success on Acquia Cloud:

Building Success on Acquia Cloud: Building Success on Acquia Cloud: 10 Layers of PaaS TECHNICAL Guide Table of Contents Executive Summary.... 3 Introducing the 10 Layers of PaaS... 4 The Foundation: Five Layers of PaaS Infrastructure...

More information

Essential Visual Studio Team System

Essential Visual Studio Team System Essential Visual Studio Team System Introduction This course helps software development teams successfully deliver complex software solutions with Microsoft Visual Studio Team System (VSTS). Discover how

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

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 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

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

Eclipse Help

Eclipse Help Software configuration management We ll start with the nitty gritty and then get more abstract. Configuration and build Perdita Stevens School of Informatics University of Edinburgh 1. Version control

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

Stories From the Front Lines: Deploying an Enterprise Code Scanning Program

Stories From the Front Lines: Deploying an Enterprise Code Scanning Program Stories From the Front Lines: Deploying an Enterprise Code Scanning Program Adam Bixby Manager Gotham Digital Science 10/28/2010 YOUR LOGO HERE Introduction Adam Bixby, CISSP, MS o Manager at Gotham Digital

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 Krishna.kishore@in.ibm.com August 9-11, Bangalore August 11, Delhi Agenda What

More information

White Paper. Java versus Ruby Frameworks in Practice STATE OF THE ART SOFTWARE DEVELOPMENT 1

White Paper. Java versus Ruby Frameworks in Practice STATE OF THE ART SOFTWARE DEVELOPMENT 1 White Paper Java versus Ruby Frameworks in Practice STATE OF THE ART SOFTWARE DEVELOPMENT 1 INTRODUCTION...3 FRAMEWORKS AND LANGUAGES...3 SECURITY AND UPGRADES...4 Major Upgrades...4 Minor Upgrades...5

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

Continuous Integration Continuous Integration WITH FITNESSE AND SELENIUM By Brian Kitchener briank@ecollege.com Intro Who am I? Overview Continuous Integration The Tools Selenium Overview Fitnesse Overview Data Dependence My

More information

Meister Going Beyond Maven

Meister Going Beyond Maven Meister Going Beyond Maven A technical whitepaper comparing OpenMake Meister and Apache Maven OpenMake Software 312.440.9545 800.359.8049 Winners of the 2009 Jolt Award Introduction There are many similarities

More information

Accelerate Software Delivery

Accelerate Software Delivery Accelerate Software Delivery with Continuous Integration and Testing Kevin Lawrence kevin@agitar.com Agitar Software, 2009 1 Agenda What is Continuous Integration Continuous Integration Practices Impact

More information

Organizations that are standardizing today are enjoying lower management costs, better uptime. INTRODUCTION

Organizations that are standardizing today are enjoying lower management costs, better uptime. INTRODUCTION WHITEPAPER STANDARDIZED OPERATING ENVIRONMENTS FOR I.T. EFFICIENCY Boost productivity, increase uptime, and enhance business agility by standardizing your IT environment INTRODUCTION Organizations that

More information

Java Power Tools. John Ferguson Smart. ULB Darmstadt 1 PI. O'REILLY 4 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo

Java Power Tools. John Ferguson Smart. ULB Darmstadt 1 PI. O'REILLY 4 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo Java Power Tools John Ferguson Smart ULB Darmstadt 1 PI O'REILLY 4 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo Table of Contents Foreword Preface Introduction xvii xix xxxiii Parti. Build

More information

Two-Way Data Binding with WinJS By Marcin Kawalerowicz and Craig Berntson, authors of Continuous Integration in.net

Two-Way Data Binding with WinJS By Marcin Kawalerowicz and Craig Berntson, authors of Continuous Integration in.net 1 Two-Way Data Binding with WinJS By Marcin Kawalerowicz and Craig Berntson, authors of Continuous Integration in.net One of the keys to improving applications and productivity is to automate some of the

More information

VOC Documentation. Release 0.1. Russell Keith-Magee

VOC Documentation. Release 0.1. Russell Keith-Magee VOC Documentation Release 0.1 Russell Keith-Magee February 07, 2016 Contents 1 About VOC 3 1.1 The VOC Developer and User community................................ 3 1.2 Frequently Asked Questions.......................................

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

Kevin Lee Technical Consultant kevin.lee@uk.ibm.com. 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 kevin.lee@uk.ibm.com Agenda What is Continuous? Continuous in Context As part of a normal software build and release process Realising Continuous

More information

Accelerate Software Delivery with Continuous Integration and Testing. JaSST 08 Tokyo. Jeffrey Fredrick jtf@agitar.com. Agitar Software, 2009 1

Accelerate Software Delivery with Continuous Integration and Testing. JaSST 08 Tokyo. Jeffrey Fredrick jtf@agitar.com. Agitar Software, 2009 1 Accelerate Software Delivery with Continuous Integration and Testing JaSST 08 Tokyo Jeffrey Fredrick jtf@agitar.com Agitar Software, 2009 1 Agenda What is Continuous Integration Continuous Integration

More information

How To Migrate To Redhat Enterprise Linux 4

How To Migrate To Redhat Enterprise Linux 4 Migrating to Red Hat Enterprise Linux 4: Upgrading to the latest Red Hat release By Donald Fischer Abstract Red Hat Enterprise Linux subscribers may choose to deploy any of the supported versions of the

More information

//application.development.tools Best Practices for Choosing a Web Application Development Tool for the System i and Beyond

//application.development.tools Best Practices for Choosing a Web Application Development Tool for the System i and Beyond //application.development.tools Best Practices for Choosing a Web Application Development Tool for the System i and Beyond By Heather Gately Researching software solutions can be challenging, particularly

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

<Insert Picture Here> Introducing Hudson. Winston Prakash. Click to edit Master subtitle style

<Insert Picture Here> Introducing Hudson. Winston Prakash. Click to edit Master subtitle style Introducing Hudson Click to edit Master subtitle style Winston Prakash What is Hudson? Hudson is an open source continuous integration (CI) server. A CI server can do various tasks

More information

IronBee Open Source Web Application Firewall

IronBee Open Source Web Application Firewall IronBee Open Source Web Application Firewall Building a universal web application firewall engine www.ironbee.com Introduction Qualys is announcing the development of IronBee, a new open source project

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

Application Security in the Software Development Lifecycle

Application Security in the Software Development Lifecycle Application Security in the Software Development Lifecycle Issues, Challenges and Solutions www.quotium.com 1/15 Table of Contents EXECUTIVE SUMMARY... 3 INTRODUCTION... 4 IMPACT OF SECURITY BREACHES TO

More information

COSC345 2013 Software Engineering. Lecture 7: Version Control

COSC345 2013 Software Engineering. Lecture 7: Version Control COSC345 2013 Software Engineering Lecture 7: Version Control Some Problems Communications File system problems Version control Basic principles and use Outline When to use version control Examples SCCS

More information

Hudson configuration manual

Hudson configuration manual Hudson configuration manual 1 Chapter 1 What is Hudson? Hudson is a powerful and widely used open source continuous integration server providing development teams with a reliable way to monitor changes

More information

ITIL A guide to service asset and configuration management

ITIL A guide to service asset and configuration management ITIL A guide to service asset and configuration management The goal of service asset and configuration management The goals of configuration management are to: Support many of the ITIL processes by providing

More information

Sonatype CLM for Maven. Sonatype CLM for Maven

Sonatype CLM for Maven. Sonatype CLM for Maven Sonatype CLM for Maven i Sonatype CLM for Maven Sonatype CLM for Maven ii Contents 1 Introduction 1 2 Creating a Component Index 3 2.1 Excluding Module Information Files in Continuous Integration Tools...........

More information

One solution for all your Source Configuration Management Needs

One solution for all your Source Configuration Management Needs One solution for all your Source Configuration Management Needs SPECTRUM SOFTWARE, Inc. 11445 Johns Creek Parkway Suite 300 Duluth, GA 30097 Ph: 770-448-8662 Fax: 678-473-9294 www.spectrumscm.com www.spectrumsoftware.net

More information

The Benefits of Utilizing a Repository Manager

The Benefits of Utilizing a Repository Manager Sonatype Nexus TM Professional Whitepaper The Benefits of Utilizing a Repository Manager An Introduction to Sonatype Nexus TM Professional SONATYPE www.sonatype.com sales@sonatype.com +1 301-684-8080 12501

More information

Virtualization Reduces the Cost of Supporting Open Industrial Control Systems

Virtualization Reduces the Cost of Supporting Open Industrial Control Systems Virtualization Reduces the Cost of Supporting Open Industrial Control Systems Virtualization Reduces the Cost of Supporting Open Industrial Control Systems ii Table of Contents Introduction... 1 What is

More information

Effective Release Management for HPOM Monitoring

Effective Release Management for HPOM Monitoring Whitepaper Effective Release Management for HPOM Monitoring Implementing high-quality ITIL-compliant release management processes for HPOM-based monitoring Content Overview... 3 Release Management... 4

More information

Business Intelligence for the Mid-Size Industry

Business Intelligence for the Mid-Size Industry Business Intelligence for Mid-Size Companies The Case for Better BI and How to Succeed White Paper Introduction Matillion deliver Business Intelligence solutions that are powerful but easy to use. Solutions

More information

Continuous Integration Just another buzz word?

Continuous Integration Just another buzz word? Continuous Integration Just another buzz word? Brad Appleton, Steve Konieczka, Steve Berczuk September 2003 Last month we wrote that we would be addressing some questions and concerns raised by readers

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

Develop Software with Confidence

Develop Software with Confidence Develop Software with Confidence Continuous Integration, Continuous Agitation March 2006 Jeffrey Fredrick jtf@agitar.com 1 Topics What is Continuous Integration Continuous Integration at Agitar Toolset

More information

JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments. George Bochenek Randy Jones

JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments. George Bochenek Randy Jones JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments George Bochenek Randy Jones Enterprise Development What is it? Source Control Project Organization Unit Testing Continuous

More information

INTRODUCING CONTINUOUS DELIVERY IN THE ENTERPRISE

INTRODUCING CONTINUOUS DELIVERY IN THE ENTERPRISE INTRODUCING CONTINUOUS DELIVERY IN THE ENTERPRISE The situation Today Not too long ago customers and prospects had to find a computer to visit your site. In stark contrast with just a few years ago, this

More information

Test Automation: A Project Management Perspective

Test Automation: A Project Management Perspective Test Automation: A Project Management Perspective Abstract Amith Pulla amith.pulla@intel.com For most QA leads or managers, it s always difficult to get the project manager (PM) to invest in test automation.

More information

Software change and release management White paper June 2008. Extending open source tools for more effective software delivery.

Software change and release management White paper June 2008. Extending open source tools for more effective software delivery. Software change and release management White paper June 2008 Extending open source tools for more Page 2 Contents 2 Integrating and complementing open source tools 2 Trends in business shape software development

More information

Apache Jakarta Tomcat

Apache Jakarta Tomcat Apache Jakarta Tomcat 20041058 Suh, Junho Road Map 1 Tomcat Overview What we need to make more dynamic web documents? Server that supports JSP, ASP, database etc We concentrates on Something that support

More information

Code Review Best Practices. With Adam Kolawa, Ph.D.

Code Review Best Practices. With Adam Kolawa, Ph.D. Code Review Best Practices With Adam Kolawa, Ph.D. This paper is part of a series of interviews in which Adam Kolawa Parasoft CEO and Automated Defect Prevention: Best Practices in Software Management

More information

Seven Steps for Choosing a Software Configuration Management System

Seven Steps for Choosing a Software Configuration Management System Seven Steps for Choosing a Software Configuration Management System Selecting a software configuration management (SCM) system isn t easy, especially with the changing face of today s product development

More information

Developing a Backup Strategy for Hybrid Physical and Virtual Infrastructures

Developing a Backup Strategy for Hybrid Physical and Virtual Infrastructures Virtualization Backup and Recovery Solutions for the SMB Market The Essentials Series Developing a Backup Strategy for Hybrid Physical and Virtual Infrastructures sponsored by Introduction to Realtime

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

Software Configuration Management

Software Configuration Management Software Configuration Management 1 Software Configuration Management Four aspects Version control Automated build Change control Release Supported by tools Requires expertise and oversight More important

More information

Version Control with. Ben Morgan

Version Control with. Ben Morgan Version Control with Ben Morgan Developer Workflow Log what we did: Add foo support Edit Sources Add Files Compile and Test Logbook ======= 1. Initial version Logbook ======= 1. Initial version 2. Remove

More information

Agile Software Factory: Bringing the reliability of a manufacturing line to software development

Agile Software Factory: Bringing the reliability of a manufacturing line to software development Agile Software Factory: Bringing the reliability of a manufacturing line to software development Today s businesses are complex organizations that must be agile across multiple channels in highly competitive

More information

Testing Automation for Distributed Applications By Isabel Drost-Fromm, Software Engineer, Elastic

Testing Automation for Distributed Applications By Isabel Drost-Fromm, Software Engineer, Elastic Testing Automation for Distributed Applications By Isabel Drost-Fromm, Software Engineer, Elastic The challenge When building distributed, large-scale applications, quality assurance (QA) gets increasingly

More information

Controlling Remote Access to IBM i

Controlling Remote Access to IBM i Controlling Remote Access to IBM i White Paper from Safestone Technologies Contents IBM i and Remote Access...2 An Historical Perspective...2 So, what is an Exit Point?...2 Hands on with Exit Points...3

More information

LECTURES NOTES Organisational Aspects of Software Development

LECTURES NOTES Organisational Aspects of Software Development LECTURES NOTES Organisational Aspects of Software Development Pedro Contreras Department of Computer Science Royal Holloway, University of London Egham, Surrey TW20 0EX, UK pedro@cs.rhul.ac.uk 1. Introduction

More information

Documentation and Project Organization

Documentation and Project Organization Documentation and Project Organization Software Engineering Workshop, December 5-6, 2005 Jan Beutel ETH Zürich, Institut TIK December 5, 2005 Overview Project Organization Specification Bug tracking/milestones

More information

How to Avoid 5 Common Pitfalls in Open Source Utilization. July 2013

How to Avoid 5 Common Pitfalls in Open Source Utilization. July 2013 How to Avoid 5 Common Pitfalls in Open Source Utilization July 2013 Today s Presenters Phil Odence Black Duck Baruch Sadogursky JFrog 2 Agenda Open Source Trends Avoiding 5 Common Pitfalls JFrog Artifactory

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

Improving database development. Recommendations for solving development problems using Red Gate tools

Improving database development. Recommendations for solving development problems using Red Gate tools Improving database development Recommendations for solving development problems using Red Gate tools Introduction At Red Gate, we believe in creating simple, usable tools that address the problems of software

More information

Invest in your business with Ubuntu Advantage.

Invest in your business with Ubuntu Advantage. Invest in your business with Ubuntu Advantage. Expert advice. Specialist tools. Dedicated support. Introducing Ubuntu Advantage Contents 02 Introducing Ubuntu Advantage 03 Ubuntu Advantage 04 - Landscape

More information

SOFTWARE TESTING TRAINING COURSES CONTENTS

SOFTWARE TESTING TRAINING COURSES CONTENTS SOFTWARE TESTING TRAINING COURSES CONTENTS 1 Unit I Description Objectves Duration Contents Software Testing Fundamentals and Best Practices This training course will give basic understanding on software

More information

Configuration & Build Management

Configuration & Build Management Object-Oriented Software Engineering Using UML, Patterns, and Java Configuration & Build Management Outline of the Lecture Purpose of Software Configuration Management (SCM) Some Terminology Software Configuration

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

Aspire's Approach to Test Automation

Aspire's Approach to Test Automation WHITE PAPER Aspire's Approach to Test Automation by Ujjawal Bagaria, Aspire Systems Automation has been seen as the long term solution for cost reduction of manual testing across the globe. A successfully

More information

RESEARCH NOTE FORCE.COM DRIVES FASTER DEVELOPMENT

RESEARCH NOTE FORCE.COM DRIVES FASTER DEVELOPMENT Document J29 RESEARCH NOTE FORCE.COM DRIVES FASTER DEVELOPMENT THE BOTTOM LINE Nucleus analyzed existing Force.com application deployments and found an average of 4.9 times faster development. End customers,

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

IBM Rational DOORS Next Generation

IBM Rational DOORS Next Generation Silvio Ronchi, Technical Sales & Solutions IBM Software, Rational 26/06/2014 IBM Rational DOORS Next Generation Software and Systems Engineering Rational Agenda 1 Why DOORS Next Generation? 2 Collaborative

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

Frequently Asked Questions Plus What s New for CA Application Performance Management 9.7

Frequently Asked Questions Plus What s New for CA Application Performance Management 9.7 Frequently Asked Questions Plus What s New for CA Application Performance Management 9.7 CA Technologies is announcing the General Availability (GA) of CA Application Performance Management (CA APM) 9.7

More information

THE OPEN SOURCE DEVELOPER REPORT

THE OPEN SOURCE DEVELOPER REPORT THE OPEN SOURCE DEVELOPER REPORT 2011 ECLIPSE COMMUNITY SURVEY JUNE 20 11 EXECUTIVE SUMMARY Eclipse is a large, vibrant, well-established open source community with over 200 open source projects, close

More information

Continuous Integration Using Cruise Control

Continuous Integration Using Cruise Control Continuous Integration Using Cruise Control Presented By Tom Grant PlatinumSolutions, Inc. Tuesday, May 24 th, 2005 Northern VA Java User s Group Core SIG 2005 PlatinumSolutions, Inc. The Freedom to Achieve

More information

Welcome to the Force.com Developer Day

Welcome to the Force.com Developer Day Welcome to the Force.com Developer Day Sign up for a Developer Edition account at: http://developer.force.com/join Nicola Lalla nlalla@saleforce.com n_lalla nlalla26 Safe Harbor Safe harbor statement under

More information

For more about patterns & practices: http://msdn.microsoft.com/practices/ My blog: http://ademiller.com/tech/

For more about patterns & practices: http://msdn.microsoft.com/practices/ My blog: http://ademiller.com/tech/ For more about patterns & practices: http://msdn.microsoft.com/practices/ My blog: http://ademiller.com/tech/ 1 2 Stop me. Ask questions. Tell me if you ve heard it all before or you want to hear about

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

Change Management. Why Change Management? CHAPTER

Change Management. Why Change Management? CHAPTER Change Management 19 CHAPTER In this chapter, you will Learn why change management is an important enterprise management tool Understand the key concept of segregation of duties Review the essential elements

More information