Agile SPL SCM Agile Software Product Line Configuration and Release Management

Size: px
Start display at page:

Download "Agile SPL SCM Agile Software Product Line Configuration and Release Management"

Transcription

1 Agile SPL SCM Agile Software Product Line Configuration and Release Management Reto Kurmann Phonak AG, Switzerland Abstract Software Product Line development techniques, as well as Agile development techniques are used to rapidly develop high quality, complex software products. The goal is the same, but the techniques to realize it are quite different. Despite the different approaches, agile software development practices can be integrated into Software Product Line development techniques to support them and form leaner processes. In this experience report I present agile Software Product Line configuration and release management. The experience is based on Phonak s implementation of a Software Product Line for PC-based applications used by audiologists to fit hearing instruments to hearingimpaired customers. I will discuss SCM in an SPL environment, main-path-centric development, release strategies and some lean and agile processes related to software configuration management. 1. Introduction As in many other industries, the innovation cycles for hearing aid products have become shorter. This has a big impact on the product lifespan, which forces development organizations to deliver more products in less time. In addition to the short development cycles, there has been a shift from individual product development to the development of complex hearing aid systems, which consist of a set of interrelated products and applications. This experience report is based on Phonak s implementation of a software product line for PC-based applications used by audiologists to fit hearing instruments to hearing-impaired customers. The focus of this report is on agile product line configuration and release management. The emphasis is on lean and agile processes and best practices in all disciplines of SCM in an evolutionary platform development where new features are implemented, verified and released by a single software product to be reused in subsequent released software products. The agility of our software development is reflected in: the lean, but effective processes; the short implementation cycle of a new product line feature; the small, distributed teams involved in the development cycle and last but not least in the business success of Phonak after delivering SPL-based products in the past 18 months. Software Configuration and Release Management plays an integral role in our Software Product Line approach. The experience we made regarding agile SCM is based on the following principles: 1. Main path centric development 2. SCM reflects the static view of the SPL architecture 3. Separate platform (core asset) release from product release is not agile and efficient 4. The first release of a new core asset feature is always with only one product 5. Provide special tools to configure variation points of core assets, SCM tools have other strengths 6. Automate build, deployment and smoke-test for all platform-based products 7. Implement lean and agile SCM processes (Checkin, change packages, branching strategies, defect tracking, verification, etc., but not for requirements engineering!) Especially the principles number 1, 3 and 4 are based on a mix of techniques found in Software Product Line and Agile development. These principles are elaborated in the following chapters. 2. Phonak s SPL Adoption This chapter provides some background information on Phonak s Software Production Line adoption for hearing system Fitting Applications (refer to Figure 1). The products in scope of our SPL are PC-based software applications that are used by audiologists to fit hearing instruments to hearing-impaired customers throughout the world. There are 5 major applications from three different brands, several smaller applications and many tools to support production, end-testing, ordering, validating, development and prototyping hearing instruments. All these applications have to support a fast growing amount of different hearing instrument families and types, like hearing instruments behind the ear, in the ear, inside the ear canal or implants. About four years ago, Phonak s top management decided to spend initial effort to build a new platform for all fitting applications. After analysis paralysis and struggling over two sets of requirements from two 1

2 Figure 1: Phonak s Software Product Line adoption for hearing system Fitting Applications. different companies in a non-spl manner, platform architecture was defined and about 30 developers distributed over three locations built GUI-less, productneutral platform components. After more than 40 manyears were invested, our top management seriously considered killing the whole project. The reason was that there was no visible platform progress and the business pressure to deliver the first products in 2005 was getting bigger. Because of this release pressure, we shifted our focus to build our first product under a high stress-factor. The release of our first platform-based Fitting Application with its hearing instruments was sensational. After the first product release the platform needed some cleanup to be ready for integration by other Fitting Applications. Interestingly, around the same time we became aware of the Software Product Line paradigm. We assessed our implementation and as a result optimized, refactored, educated people and streamlined some processes. At Phonak we still use the term platform, but actually mean by it Core Assets, Variation Points, production infrastructure, OTS-components and tools. Today, the platform is growing by a feature driven development. 3. SCM in Software Product Lines The importance of Software Configuration and Release Management (SCM) discipline in the software engineering world is since the 80s indisputable. SCM tools are in my opinion the most important tool of a software developer: That s where all the source code is and since us software developers think and communicate together in source code, that s where all collaboration takes place. We had to wait for this century until Stephen Berczuk defined and laid-out the core principles and patterns in his book Software Configuration Management Patterns [3]. He describes the patterns of traditional SCM in a clear and easy manner. In an additional article in the Better Software magazine [4], he describes practices that turn these patterns into agile SCM. Some of whose we use in our approach of agile SCM for our product line. What is the role of SCM in Software Product Lines? The Configuration and Release Management practice area [1] is where it all boils together. The intangible product, which is based on core assets and variants, governed by architecture, all of a sudden has a real release schedule. We have to give birth to a real product which will be released on a tangible CD. The fundamental purpose of Software Configuration Management is to establish and maintain the integrity of software products throughout their evolutionary life cycle. Each product has to be 100% reproducible at any time for: a release version of OTS-components, libraries & tools a baseline of core asset components a baseline of production mechanisms and environments a version of product-specific components and variations Software Configuration Management is crucial to the success of core-asset based software development. An over engineered and heavy SCM process with too many rules and procedures will slow down the development speed due to the extra work each developer must perform on a daily base. A well-designed and lean SCM process actually speeds up the project. Different projects need different processes and methodologies [5], therefore carefully select a lean and agile process that suits your project. 4. SCM reflects static SPL architecture The main view of source code in SCM tools is folder and file based. Therefore, a proper structuring of platform core assets and product assets in folders, subfolders and shared folders is necessary. Important is that the structure clearly reflects the static architectural view of the Software Production Line. This results in being easy understandable by developers and allows easy release and configuration management. 2

3 Figure 2: Main path centric development Figure 2: Static SPL architecture is reflected in SCM folder structure As shown in Figure 2, we choose to have a top-folder for the platform that can be shared among products. This allows the shared platform version to be either: A released version A specific development path based on a checkpoint The head, mostly in a main path centric development The platform folder contains sub-folders for platform elements, like OTS components, production mechanisms, production tools and last but not least the core assets. The core assets are further structured according to layers and functionality as defined in the architecture. Each product has a separate folder containing productspecific assets, like GUI components; variation delegates implementation; configuration of core assets (in our case configuration files for each core asset component); database of hearing instrument configuration meta-data; Production-related variations (installation and deployment scripts, etc.). 5. Main path centric development The SCM strategy we have chosen for our software product line is a main path centric development (refer to Figure 3). This means that the main path consist always of the entire set of source code and variation configuration in its best possible quality. For every product release, a release path is created to build and enforce high quality. Our experience shows, that choosing this CRM strategy was one of the fundamental success factors of our software product line. The main path contains both, released and new source code: verified core asset components, verified productspecific assets, verified product-specific variations and production tools, environments and scripts - mixed with source code of new feature development extending core assets, new product variations, etc. New features are developed on the main path, where automated daily tests enforce high quality. Before branching into a release path, feature completeness has to be achieved, followed by a short phase of stabilizing and testing by developers. After the stabilizing phase, the platform and product-specific files are branched into a release path containing the entire set of core-asset and production mechanism together with the product-specific variations and assets for the software product to be released. On the release path, there is no feature development anymore. Only verification, validation and bug-fixing are permitted. Bug fixes are immediately merged back into the main path. They may even be merged up to another release path when required by the respective product release. This pro-active step ensures that no bug-fix gets lost and that the main path achieves a better quality. In this agile environment, software developers are already implementing new features on the main path, while the verification and validation teams test the quality of the product to be released. The testing phase on the release path in our case can last several weeks due to the fact, that hearing instruments need a thorough validation before they are released into the markets. Main path centric development combined with simple rules and lean processes form an agile development environment which encourages fine-grained, frequent check-ins. 3

4 Figure 3: Main path centric development In Steve Berczuk s terms [3][4], our main path centric development includes and combines the practices of the following patterns: a single Active Development Line, few Release Lines, Private Workspaces, automated continuous Integration Build, automated Smoke-, Unitand Regression Tests and a lightweight Codeline Policy. 6. Release strategies 6.1. Align platform and product releases An experience we made with our Software Product Line is that the effort of releasing the platform independent from a product is not agile and efficient, mainly because of the following two reasons: Firstly, verification and validation is often impossible, since for proper validation the product to be released has to be tested with real customers. For new hearing instrument features, the validation phase can be quite long. Platform validation could only be done by creating platform products whose sole purpose would be validation of the core assets this is often too expensive. Secondly, it adds an unnecessary time-to-market delay of a new feature: The feature has to be developed in the core asset first, validated and release, before it can be integrated into a product that has to go through another validation and release phase. As a result, we align core asset releases with product releases. We even try to cluster product releases, so that the verification phase is more efficient and the products benefit from a better quality. Please refer to Figure 2: Main path centric development First release of new feature with 1 product While extending our platform with new core asset features, we realized that the most efficient way to implement and release a new feature with high quality on time is together with one product release. The first release of a new feature is always with only one product, never with more than one. The reason is that during the endphase of the development, requirement changes may arise as a result of validation with end-customers and need to be implemented quickly. Adapting other integrated products to these changes may throw them off schedule or may invalidate the validation efforts of their variation of the feature. These advantages outweigh the fact that all other products will have a delay releasing this particular new feature. The validation effort of an already released core asset feature for a different software product is significantly less than for the first release. Only the product-specific variations of the feature have to be validated Releasing source code rather than binaries Another interesting experience we made is that there is no need or purpose to release core asset components in a binary form (executables, libraries, dll, bin). All our build processes are fully automated and can be configured for each software application product, so that at any time any version of a product can be built from the core asset source code directly. This leads to releasing the source code of core assets rather than their corresponding binary form. Releasing source code has also the advantage of a easy, straight-forward implementation of pre-compile, compile- and build-time variation points. Releasing source code is only possible with agile SCM processes, where production process and test suites are fully-automated. 7. Provide tools to configure variation points Software Configuration Management tools should not be misused to configure variation points of core assets. They have a different purpose, as shown in an earlier chapter. Customization in the domain space can be better handled by a special, mostly domain-specific tool. There are a few commercially available tools [8] [9] geared towards product-specific core-asset configuration. At Phonak, we developed a domain-specific configuration tool, which allows audiological engineers to handle the complexity of more than 8000 variation points exposed by the product metadata of a single hearing instrument. The variation points are grouped into Software Configuration Items, which can be XML files, tables, DSP code interface memory maps, audiological 4

5 parameters etc These configuration items are versioned and linked together to form the product metadata of a hearing instrument type. The metadata for each released version of every hearing instrument type is stored in a catalog database that will be used by Fitting Application software on run-time. The complexity shown above obviously can only be handled with a domain-specific tool. 8. Automate SPL production process Automation is the key aspect for an agile Software Product Line development. Most importantly, the SPL production process has to be fully automated (refer to Figure 4). With a single mouse-click, a specific version of a specific product has to be produced. The production process includes synchronizing files (platform and product assets) in the desired version from SCM, substitute variations of variation points, building executables, creating installation packages and deploying it to a common place. Test automation is also desirable. At least unit- and component-tests as well as a smoke test for each software product should be fully automated. The rapidly increasing amount of products and product releases drove us to invest into building a test infrastructure that allows creating automated system tests. Mainly regression and stability tests are constantly monitoring the quality of the main development and release path. In our Software Production Line we created a production server that offers a web-page to build any SPL product of any released version or SCM path and have it smoke tested. This allows a developer to quickly check and test the products after a major check-in. Of course, automated nightly builds will report the source code integrity to the developers when they start their day in the morning. 9. Lean and agile SCM procedures Processes are only useful if they are carried out and lived by the entire development team. Simple rules and lean procedures are typically better understood and implemented than heavy over-engineered processes. Generally, we choose lean and agile SCM procedures for: check-in, change packages, releasing and branching strategies, defect tracking, functional verification, etc. Here are some (un-)usual practices listed: 9.1. Check-in s Changes to the source code are announced by between developers: Every developer sends an for a check-in to all other developers working on the platform or product integration projects. The contains a brief change summary, impact on other assets, notes to specific developers or other important information. This allows every developer to be up-to-date with the source code on the main path. The daily effort spent on check-in s for a person in a team of about 20 developers is less than 15 minutes Check-in policy To maintain a stable main path, we defined the following check-in policy: a) Resynchronize local SCM sandbox b) Make local build and smoke test c) Check-in files or change package d) Send check-in e) Kick production server (optionally with test suite) f) Have change reviewed (optionally) 9.3. Stabilize main path As soon as the production server informs about a broken build or smoke test error, the highest priority of the team is to stabilize the main path again. Figure 4: SPL production process: Automate it! 5

6 9.4. Daily user deployment test Besides the fully-automated test system that bases its tests on a complete installation package, we also perform a manual deployment and installation test. Every morning a tester installs the nightly-built software deployment package on a PC and executes a typical workflow testcase and some exploratory (a better word for ad-hoc) testing. She reports the quality to all potential in-house users to inform them if this particular build is worth-while to install. These 30 minutes are well spent and paid back many times Typical day of a software developer Here is what a typical day of a software developer at Phonak looks like in terms of SCM patterns they use: First thing in the morning (typically 9 o clock for software developers) the developer checks the report e- mails from the production server and user deployment tester. In case of an error, he would team up with other colleagues to immediately fix the problem and stabilize the main path. Otherwise, with a single mouse-click he resynchronizes the sandbox, his private workspace, from the SCM repository and populates it with the entire code base for the platform core-assets and the applicationspecific assets, as well as external components from a third party codeline. Progressing through the day, the developer implements a new feature or fixes a bug and therefore checks out files from a SCM tool into a change package. Depending on the task, pair programming may be used to implement and review software changes. Because the main path codeline is supposed to be in a stable shape, he commits the change package according to the check-in policy: First he resynchronizes the local SCM sandbox, performs a local system build, executes local automated smoke- and unit tests and when everything works fine, he will check-in the change package. After check-in, he will kick the production server to start an entire build of the installation package and execution of the smoke-, unit- and regression tests. Finally, he will send a partially generated check-in to notify all developers and testers of his change made to a core-asset or product-specific asset. Throughout the day he will be notified by check-in e- mails of all changes his colleagues make on the common software code base Requirements engineering There is especially one practice area where I don t recommend a lean process is requirements engineering. The separation of application and domain engineering as described in [2] is essential to develop core assets that provide common functionality and expose clearly defined variation points. Our requirements engineering process for new core asset features (refer to figure 5) allows input from all product managers (variability), domain specialists (commonality), project leaders and architects. Sometimes after several rounds of reviews by the review board, feature requirements get approved and if desired released by the platform steering group to be implementation in the next platform development iteration. Figure 5: Feature requirement engineering process 6

7 A feature requirement is a document that captures the requirements of a single feature. It consists of an overview including business rational, the actual requirements in use-cases, business rules and nonfunctional requirements and a project planning section for estimates and architectural impact. Most importantly, in all mentioned sections above, variation points are identified and possible variations are specified as part of the requirement. A feature requirement is typically written by a domain expert with input from product managers to define the variability. The review process involves product managers and project leaders from product development as well as domain experts, project leaders, architects and test managers from the core asset development. A steering board is the approving authority to release the requirements for a new feature. The implementation of approved features will be schedule by the platform project manager according to its priority and demand by product releases. The feature development will follow the process described in chapter 5: main path centric development. After a feature requirement has been frozen and scheduled for implementation, changes to it must follow our change request process, also not agile. Using this not-so-lean requirements process brought our development more stability, better planning and commitment to milestones, better handling of commonality and variability, a better domain and implementation understanding and also better quality. Generally speaking, our development of software features is more predictable, faster and cheaper since we introduced this requirements engineering process. 10. Related Work The foundation of the Software Product Lines development paradigm can be found in [1] and [2]. Both books are an excellent source about technical and organizational aspects of SPL, describing the fundamental concepts like scoping, domain-/application engineering, commonality versus variability, architecture, core assets, production environment, testing aspects, as well as organizational structures, practice areas, processes and success criteria. Regarding Software Configuration and Release Management, Stephen Berczuk s book [3] is a must to read. He defines widely accepted SCM patterns and describes them in a clear and easy understandable way. In a recent article [4], he describes an agile SCM process based on the patterns defined in his book. By coincidence, the agile process described in this article is actually very similar to the agile SCM process we have chosen for our software product line at Phonak which discussed here in this paper. The following books offered input to our software development process and are a great source on agile software development [5], best practices in software development [6] and feature driven development [7]. [7] is a hands-on book that describes the combination of speed and flexibility of agile methods with enterprise class scalability. 11. Conclusion Yes, I m convinced that the techniques of Agile and Software Product Line development can be used in the same software development process. The heavier Software Product Line approach acts as an overall development strategy and is combined with some agile software development techniques to create leaner and more agile software development processes. This experience report shows some agile practices in the SPL configuration and release management practice area which have been proven in a Software Product Line for hearing instrument fitting applications. Similar examples of agile processes and procedures could be found in other Software Product Line practice areas as well. Experiences taught us, that the requirements engineering practice area is not suitable for lean and agile processes. A last remark regarding people- versus process-/toolfocused development: People should always be valued above processes or tools, no matter if the process is agile or not. Tools help people do their work more efficient and processes help people to work together more efficient. If they don t increase efficiency, they should be changed or removed. Valuing people is done through the company culture and not by tools. A core value of Phonak s culture for example is as defined by one of its founders: Ooni lüüt gaat nüüd! Nothing works without people! 12. References [1] P. Clements & L. Northrop: Software Product Lines: Practices and Patterns. Addison Wesley 2001 [2] Klaus Pohl, G. Böckle, F. Linden: Software Product Lines Engineering. Springer 2005 [3] Stephen P. Berczuk with Brad Appleton: Software Configuration Management Patterns. Addison Wesley. [4] Stephen P. Berczuk: Breaking with tradition. An Agile Spin on Software Configuration Management. Article in Better Software issue February 2006 [5] Alistair Cockburn: Agile Software Development. Addison Wesley [6] Steve McConnell: Rapid Development. Microsoft Press 1996 [7] Stephen Palmer: A practical Guide to the Feature- Driven Development. The coad series, Prentice Hall 2002 [8] Tool: Gears by BigLever Software Inc. (Ch. Krüger) [9] Tool: pure::variants by pure systems (D. Beuche) 7

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

Agile SPL-SCM: Agile Software Product Line Configuration and Release Management Agile SPL-SCM: Agile Software Product Line Configuration and Release Management APLE 2006 Workshop SPLC 2006, Baltimore, MD [email protected] Phonak Hearing Systems Presentation Roadmap 1. Introduction

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

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

Increasing Business Efficiency and Agility for ATGbased. Systems. the business challenge: upgrading the development pipeline

Increasing Business Efficiency and Agility for ATGbased. Systems. the business challenge: upgrading the development pipeline Increasing Business Efficiency and Agility for ATGbased ecommerce Systems This case study follows a Tier 1 retailer migrating to an ATG-based ecommerce platform and upgrading its software development process

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

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

Keywords: - Software Product Lines (SPLs), Product Line Engineering (PLE), Core Assets, Software Product Line Development.

Keywords: - Software Product Lines (SPLs), Product Line Engineering (PLE), Core Assets, Software Product Line Development. Volume 4, Issue 1, January 2014 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Systematic Review

More information

Developing Software in a Private workspace - 4.01 PM PMS

Developing Software in a Private workspace - 4.01 PM PMS SBCH06.fm Page 67 Friday, October 4, 2002 4:01 PM 6 Private Workspace A government clerk s room, showing a desk with books, telephone and directory, and a desk lamp on it. Washington, D.C., 1939. Photo

More information

Plan-Driven Methodologies

Plan-Driven Methodologies Plan-Driven Methodologies The traditional way to develop software Based on system engineering and quality disciplines (process improvement) Standards developed from DoD & industry to make process fit a

More information

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 20-21 The Unified Process Dynamic dimension Two dimensions Content

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

An Agile Approach to Release Management

An Agile Approach to Release Management An Agile Approach to Release Management Written by Steve Berczuk. Robert Cowham, Brad Appleton Monday, 26 May 2008 Teams practicing Agile Software Development value working software over other artifacts.

More information

Testhouse Training Portfolio

Testhouse Training Portfolio Testhouse Training Portfolio TABLE OF CONTENTS Table of Contents... 1 HP LoadRunner 4 Days... 2 ALM Quality Center 11-2 Days... 7 HP QTP Training Course 2 Days... 10 QTP/ALM Intensive Training Course 4

More information

Applying Agile Methods in Rapidly Changing Environments

Applying Agile Methods in Rapidly Changing Environments Applying Agile Methods in Changing Environments 7/23/2002 1 Applying Agile Methods in Rapidly Changing Environments Peter Kutschera IBM Unternehmensberatung GmbH Am Fichtenberg 1, D-71803 Herrenberg Steffen

More information

3C05: Unified Software Development Process

3C05: Unified Software Development Process 3C05: Unified Software Development Process 1 Unit 5: Unified Software Development Process Objectives: Introduce the main concepts of iterative and incremental development Discuss the main USDP phases 2

More information

Patterns to Introduce Continuous Integration to Organizations

Patterns to Introduce Continuous Integration to Organizations Patterns to Introduce Continuous Integration to Organizations Kenichiro Ota Shift inc. Tokyo Japan [email protected] [email protected] Hiroko Tamagawa Shift inc. Tokyo Japan [email protected]

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

Automated Acceptance Testing of High Capacity Network Gateway

Automated Acceptance Testing of High Capacity Network Gateway Automated Acceptance Testing of High Capacity Network Gateway Ran Nyman 1, Ismo Aro 2, Roland Wagner 3, 1,2,3 Nokia Siemens Network, PO Box 1 FI-02022 Nokia Siemens Networks 1 [email protected], 2 [email protected],

More information

The most suitable system methodology for the proposed system is drawn out.

The most suitable system methodology for the proposed system is drawn out. 3.0 Methodology 3.1 Introduction In this chapter, five software development life cycle models are compared and discussed briefly. The most suitable system methodology for the proposed system is drawn out.

More information

Co-Presented by Mr. Bill Rinko-Gay and Dr. Constantin Stanca 9/28/2011

Co-Presented by Mr. Bill Rinko-Gay and Dr. Constantin Stanca 9/28/2011 QAI /QAAM 2011 Conference Proven Practices For Managing and Testing IT Projects Co-Presented by Mr. Bill Rinko-Gay and Dr. Constantin Stanca 9/28/2011 Format This presentation is a journey When Bill and

More information

SOE. managing change in system development projects: configuration management

SOE. managing change in system development projects: configuration management SOE managing change in system development projects: configuration management 2 3 understanding the problem of change change is one of the most fundamental characteristics in any software development process

More information

Who Doesn t Want to be Agile? By: Steve Dine President, Datasource Consulting, LLC 7/10/2008

Who Doesn t Want to be Agile? By: Steve Dine President, Datasource Consulting, LLC 7/10/2008 Who Doesn t Want to be Agile? By: Steve Dine President, Datasource Consulting, LLC 7/10/2008 Who wants to be involved in a BI project or program that is labeled slow or inflexible? While I don t believe

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

ACCELERATE DEVOPS USING OPENSHIFT PAAS

ACCELERATE DEVOPS USING OPENSHIFT PAAS ACCELERATE DEVOPS USING OPENSHIFT PAAS September 3, 2014 AGENDA World we live in today IT organization: Charter, goals, and challenges DevOps: Problem statement, what, and why How to enable DevOps Application

More information

Simplifying development through activity-based change management

Simplifying development through activity-based change management IBM Rational ClearCase and IBM Rational ClearQuest October 2004 Simplifying development through activity-based change management Allan Tate Product Manager IBM Software Group Karen Wade SCM Product Marketing

More information

Key Evolutions of ERP

Key Evolutions of ERP Fusion Application Adoption - A Paradigm Shift from the Legacy ERP G. Brett Beaubouef, PMP, CISA CARDINAL POINT SOLUTIONS The evolution of ERP implementations has just taken a giant leap forward! This

More information

The 7 Attributes of a Good Software Configuration Management System

The 7 Attributes of a Good Software Configuration Management System Software Development Best Practices The 7 Attributes of a Good Software Configuration Management System Robert Kennedy IBM Rational software Benefits of Business Driven Development GOVERNANCE DASHBOARD

More information

Software Configuration Management for Embedded Systems Developers

Software Configuration Management for Embedded Systems Developers Software Configuration Management for Embedded Systems Developers Overview Embedded systems developers face complex versions of the problems that confront most software developers. Choosing a robust SCM

More information

Software Architecture

Software Architecture Cairo University Faculty of Computers and Information Computer Science Department Premasters Studies Software Architecture Report on Software Product Line Submitted to: Dr. Hany Ammar Submitted by: Hadeel

More information

Improving software quality with an automated build process

Improving software quality with an automated build process Software architecture for developers What is software architecture? What is the role of a software architect? How do you define software architecture? How do you share software architecture? How do you

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

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at http://www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2007 Vol. 6, No. 1, January-February 2007 CM Configuration Change Management John D.

More information

Agile Development Calls for an Agile Suite Solution

Agile Development Calls for an Agile Suite Solution d Agile Development Calls for an Agile Suite Solution Authored by: David A. Kelly and Heather Ashton Upside Research, Inc. www.upsideresearch.com Contents Executive Summary Agile development has been a

More information

Achieve Economic Synergies by Managing Your Human Capital In The Cloud

Achieve Economic Synergies by Managing Your Human Capital In The Cloud Achieve Economic Synergies by Managing Your Human Capital In The Cloud By Orblogic, March 12, 2014 KEY POINTS TO CONSIDER C LOUD S OLUTIONS A RE P RACTICAL AND E ASY TO I MPLEMENT Time to market and rapid

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

Difference Between Model-Driven and Traditional Iterative Software Development

Difference Between Model-Driven and Traditional Iterative Software Development Process Implications of Model-Driven Software Development Author: Jorn Bettin Version 1.0 September 2004 Copyright 2003, 2004 SoftMetaWare Ltd. SoftMetaWare is a trademark of SoftMetaWare Ltd. All other

More information

Network Configuration Management

Network Configuration Management Network Configuration Management Contents Abstract Best Practices for Configuration Management What is Configuration Management? FCAPS Configuration Management Operational Issues IT Infrastructure Library

More information

a new generation software test automation framework - CIVIM

a new generation software test automation framework - CIVIM a new generation software test automation framework - CIVIM Software Testing is the last phase in software development lifecycle which has high impact on the quality of the final product delivered to the

More information

What s new in the HP Functional Testing 11.5 suite Ronit Soen, product marketing John Jeremiah, product marketing

What s new in the HP Functional Testing 11.5 suite Ronit Soen, product marketing John Jeremiah, product marketing What s new in the HP Functional Testing 11.5 suite Ronit Soen, product marketing John Jeremiah, product marketing Today s agenda A new world order for applications impact on QA HP s response announcement

More information

Rational Software White Paper

Rational Software White Paper Unified Change Management from Rational Software: An Activity-Based Process for Managing Change Rational Software White Paper Table of Contents INTRODUCTION... 1 CHANGE IN THE SOFTWARE DEVELOPMENT PROCESS...

More information

SOFTWARE PROCESS MODELS

SOFTWARE PROCESS MODELS SOFTWARE PROCESS MODELS Slide 1 Software Process Models Process model (Life-cycle model) - steps through which the product progresses Requirements phase Specification phase Design phase Implementation

More information

CS4507 Advanced Software Engineering

CS4507 Advanced Software Engineering CS4507 Advanced Software Engineering Lectures 2 & 3: Software Development Lifecycle Models A O Riordan, 2015 Some diagrams from Sommerville, some notes from Maciaszek/Liong Lifecycle Model Software development

More information

IBM Rational ClearCase, Version 8.0

IBM Rational ClearCase, Version 8.0 IBM Rational ClearCase, Version 8.0 Improve software and systems delivery with automated software configuration management solutions Highlights Improve software delivery and software development life cycle

More information

Use service virtualization to remove testing bottlenecks

Use service virtualization to remove testing bottlenecks Use service virtualization to remove testing bottlenecks Discover integration faults early by pushing integration testing left in the software lifecycle Contents 1 Complex, interconnected applications

More information

Solution Spotlight KEY OPPORTUNITIES AND PITFALLS ON THE ROAD TO CONTINUOUS DELIVERY

Solution Spotlight KEY OPPORTUNITIES AND PITFALLS ON THE ROAD TO CONTINUOUS DELIVERY Solution Spotlight KEY OPPORTUNITIES AND PITFALLS ON THE ROAD TO CONTINUOUS DELIVERY C ontinuous delivery offers a number of opportunities and for organizations. By automating the software buildtest-deployment

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

Software Development Life Cycle (SDLC)

Software Development Life Cycle (SDLC) Software Development Life Cycle (SDLC) Supriyo Bhattacharjee MOF Capability Maturity Model (CMM) A bench-mark for measuring the maturity of an organization s software process CMM defines 5 levels of process

More information

Getting started with API testing

Getting started with API testing Technical white paper Getting started with API testing Test all layers of your composite applications, not just the GUI Table of contents Executive summary... 3 Introduction... 3 Who should read this document?...

More information

Achieving business benefits through automated software testing. By Dr. Mike Bartley, Founder and CEO, TVS (mike@testandverification.

Achieving business benefits through automated software testing. By Dr. Mike Bartley, Founder and CEO, TVS (mike@testandverification. Achieving business benefits through automated software testing By Dr. Mike Bartley, Founder and CEO, TVS ([email protected]) 1 Introduction During my experience of test automation I have seen

More information

Time Monitoring Tool Software Development Plan. Version <1.1>

Time Monitoring Tool Software Development Plan. Version <1.1> Time Monitoring Tool Software Development Plan Version Revision History Date Version Description Author 10/01/01 1.0 First Draft Sabrina Laflamme 12/01/01 1.1 Completion of Document John Lemon Page

More information

BEA BPM an integrated solution for business processes modelling. Frederik Frederiksen Principal PreSales Consultant BEA Systems

BEA BPM an integrated solution for business processes modelling. Frederik Frederiksen Principal PreSales Consultant BEA Systems BEA BPM an integrated solution for business processes modelling Frederik Frederiksen Principal PreSales Consultant BEA Systems Agenda What is BPM? BEA AquaLogic BPM Suite Industry View Customers BPM and

More information

2405 - Using Git with Rational Team Concert and Rational ClearCase in enterprise environments

2405 - Using Git with Rational Team Concert and Rational ClearCase in enterprise environments 2405 - Using Git with Rational Team Concert and Rational ClearCase in enterprise environments Bartosz Chrabski Executive IT Specialist WW Competitive Sales Team [email protected] Peter Hack ClearCase

More information

Continuous Integration Comes to China. www.electric-cloud.com

Continuous Integration Comes to China. www.electric-cloud.com Continuous Integration Comes to China www.electric-cloud.com Agenda Time Topic Presenter 2:00 Introduction Tracy Shi Emdoor Technology 2:15 Continuous Integration Anders Wallgren, Electric Cloud 3:00 Practical

More information

Proven Testing Techniques in Large Data Warehousing Projects

Proven Testing Techniques in Large Data Warehousing Projects A P P L I C A T I O N S A WHITE PAPER SERIES A PAPER ON INDUSTRY-BEST TESTING PRACTICES TO DELIVER ZERO DEFECTS AND ENSURE REQUIREMENT- OUTPUT ALIGNMENT Proven Testing Techniques in Large Data Warehousing

More information

Agile Development and Testing Practices highlighted by the case studies as being particularly valuable from a software quality perspective

Agile Development and Testing Practices highlighted by the case studies as being particularly valuable from a software quality perspective Agile Development and Testing Practices highlighted by the case studies as being particularly valuable from a software quality perspective Iteration Advantages: bringing testing into the development life

More information

What CMMI Cannot Give You: Good Software

What CMMI Cannot Give You: Good Software What CMMI Cannot Give You: Good Software Ivar Jacobson [email protected] [email protected] Objective To understand what CMM/CMMI is and what it is not To demonstrate how the unified process helps you

More information

Enhance visibility into and control over software projects IBM Rational change and release management software

Enhance visibility into and control over software projects IBM Rational change and release management software Enhance visibility into and control over software projects IBM Rational change and release management software Accelerating the software delivery lifecycle Faster delivery of high-quality software Software

More information

Continuous Delivery Benefits, Best Practices and Practical Advice

Continuous Delivery Benefits, Best Practices and Practical Advice Continuous Delivery Benefits, Best Practices and Practical Advice Jeffrey Hammond Forrester Research Ajit Zadgaonkar Edmunds.com Mark Warren Perforce Software Continuous Delivery: A Key Enabler of Feedback

More information

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

HP SAP. Where Development, Test and Operations meet. Application Lifecycle Management HP SAP Where Development, Test and Operations meet Application Lifecycle Management 1 Introduction 1.1 ALM CONCEPTS Application Lifecycle Management (ALM) empowers IT to manage the core application life-cycle,

More information

Advanced Solutions of Microsoft SharePoint Server 2013

Advanced Solutions of Microsoft SharePoint Server 2013 Course 20332B: Advanced Solutions of Microsoft SharePoint Server 2013 Course Details Course Outline Module 1: Understanding the SharePoint Server 2013 Architecture This module introduces the architectural

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

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

Optimizing Your Software Process

Optimizing Your Software Process Optimizing Your Software Process Top 5 Software Development Process Challenges Executive Summar ry A process framework is a combination of project management, technical practices, and supporting tools.

More information

Solving the Software Quality Challenges of Agile Development

Solving the Software Quality Challenges of Agile Development Solving the Software Quality Challenges of Agile Development 2 Solving the Software Quality Risks of Agile Development Agile software development is a series of iterative and incremental development methods

More information

Agile Test Automation

Agile Test Automation Linda Hayes, Founder, Worksoft Inc. Shoeb Javed, Vice President of Engineering, Worksoft Inc. Contents Executive Summary/Intro...................................... 3 Continuous Integration Environment............................

More information

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW Year 2014, Vol. 1, issue 1, pp. 49-56 Available online at: http://journal.iecuniversity.com TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW Singh RANDEEP a*, Rathee AMIT b a* Department of

More information

An Introduction to Continuous Delivery

An Introduction to Continuous Delivery An Introduction to Continuous Delivery rolf russell continuous delivery practice lead 2011 All rights reserved. conan the deployer getting it in front of users quickly http://code.flickr.com small feature

More information

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is: In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is: The period of time that starts when a software product is conceived and ends when the product is no longer

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

White Paper. Software Development Best Practices: Enterprise Code Portal

White Paper. Software Development Best Practices: Enterprise Code Portal White Paper Software Development Best Practices: Enterprise Code Portal An Enterprise Code Portal is an inside the firewall software solution that enables enterprise software development organizations

More information

Best Overall Use of Technology. Jaspersoft

Best Overall Use of Technology. Jaspersoft Best Overall Use of Technology Jaspersoft Kerstin Klein Manager, Engineering Processes/ Infrastructure, Jaspersoft From requirements to release QA centric development From Requirement to Release QA-Centric

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

Basic Testing Concepts and Terminology

Basic Testing Concepts and Terminology T-76.5613 Software Testing and Quality Assurance Lecture 2, 13.9.2006 Basic Testing Concepts and Terminology Juha Itkonen SoberIT Contents Realities and principles of Testing terminology and basic concepts

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2006 Vol. 5. No. 8, November-December 2006 Requirements Engineering Tasks Donald Firesmith,

More information

A Practical Roadmap to SOA Governance. 2011 Enterprise Integration Services

A Practical Roadmap to SOA Governance. 2011 Enterprise Integration Services A Practical Roadmap to SOA Governance 2011 A Practical Roadmap to SOA Governance Corporate Overview Staples is the world s largest office products company and a trusted source for office solutions. 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

What Is Software Configuration Management?

What Is Software Configuration Management? C H A P T E R 1 What Is Software Configuration Management? The title of this chapter asks such a simple question, the answer to which, one would think, ought to be known by anyone with any kind of record

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

Development Methodologies

Development Methodologies Slide 3.1 Development Methodologies Prof. Dr. Josef M. Joller [email protected] Development Methodologies Prof. Dr. Josef M. Joller 1 Session 3 Slide 3.2 SOFTWARE LIFE-CYCLE MODELS Development Methodologies

More information

It s Not Called Continuous Integration for Nothing!

It s Not Called Continuous Integration for Nothing! It s Not Called Continuous Integration for Nothing! Dan Boutin Vice President of Digital Strategy [email protected] Mobile (404) 304-9529 @DanBoutinSOASTA In This Discussion Today Agenda: SOASTA Introduction

More information

Lean Software Development

Lean Software Development Lean Software Development Alexandre Boutin Responsable Stratégie International Développement Logiciel chez Yahoo Scrum Master & Practitioner Certifié Coach Agile Blog : www.agilex.fr Président du Club

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

L Impatto della SOA sulle competenze e l organizzazione ICT di Fornitori e Clienti

L Impatto della SOA sulle competenze e l organizzazione ICT di Fornitori e Clienti L Impatto della SOA sulle competenze e l organizzazione ICT di Fornitori e Clienti Francesco Maselli Technical Manager Italy Milano, 6 Maggio 2008 Aula magna di SIAM CONFIDENTIALITY STATEMENT AND COPYRIGHT

More information

Software Quality and Assurance in Waterfall model and XP - A Comparative Study

Software Quality and Assurance in Waterfall model and XP - A Comparative Study Software Quality and Assurance in Waterfall model and XP - A Comparative Study Dr. Sana a Jawdat Khalaf [email protected] Dr. Mohamed Noor Al-Jedaiah [email protected] Abstract: -Dealing with

More information

From Traditional Functional Testing to Enabling Continuous Quality in Mobile App Development

From Traditional Functional Testing to Enabling Continuous Quality in Mobile App Development From Traditional Functional Testing to Enabling Continuous Quality in Mobile App Development Introduction Today s developers are under constant pressure to launch killer apps and release enhancements as

More information

Business white paper. Best practices for implementing automated functional testing solutions

Business white paper. Best practices for implementing automated functional testing solutions Business white paper Best practices for implementing automated functional testing solutions Table of contents Contents 3 Introduction 3 Functional testing versus unit testing 4 The pros and cons of manual

More information

Successfully managing geographically distributed development

Successfully managing geographically distributed development IBM Rational SCM solutions for distributed development August 2004 Successfully managing geographically distributed development Karen Wade SCM Product Marketing Manager IBM Software Group Page 2 Contents

More information

WHITEPAPER. Why Dependency Mapping is Critical for the Modern Data Center

WHITEPAPER. Why Dependency Mapping is Critical for the Modern Data Center WHITEPAPER Why Dependency Mapping is Critical for the Modern Data Center OVERVIEW The last decade has seen a profound shift in the way IT is delivered and consumed by organizations, triggered by new technologies

More information

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

Software Life Cycles and Configuration Management

Software Life Cycles and Configuration Management Theory Lecture Plan 2 Software Configuration Lecture 11 Software Engineering TDDC88/TDDC93 autumn 2008 Department of Computer and Information Science Linköping University, Sweden L1 - Course Introduction

More information

Application Test Management and Quality Assurance

Application Test Management and Quality Assurance SAP Brief Extensions SAP Quality Center by HP Objectives Application Test Management and Quality Assurance Deliver new software with confidence Deliver new software with confidence Testing is critical

More information