Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions...

28
Parallel Changes in Large- Parallel Changes in Large- Scale Software Development: Scale Software Development: An Observational Case Study An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No. 3, July 2001, Pages 308 – 337 Michelle Thomson Agnieszka Jankowska Shiona Webster

Transcript of Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions...

Page 1: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

Parallel Changes in Large-Scale Parallel Changes in Large-Scale Software Development: An Software Development: An Observational Case StudyObservational Case Study

ACM Transactions on Software Engineering and Methodology, Vol. 10, No. 3,

July 2001, Pages 308 – 337

Michelle ThomsonAgnieszka Jankowska

Shiona Webster

Page 2: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

Authors StrategyAuthors Strategy

The authors strategy for understanding the The authors strategy for understanding the problem of parallel changes was to look at problem of parallel changes was to look at the problem from a number of different the problem from a number of different angles and viewpoints in the context of a angles and viewpoints in the context of a large-scale, real-time system and a large-large-scale, real-time system and a large-scale development.scale development.

Page 3: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

CharacteristicsCharacteristics

An essential characteristic of large-scale An essential characteristic of large-scale software development is parallel software development is parallel development by a team of developersdevelopment by a team of developers

How this development is structured and How this development is structured and supported has a profound effect on both the supported has a profound effect on both the quality and timeliness of the productquality and timeliness of the product

Page 4: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

Why parallel developmentWhy parallel development

Release preparation Release preparation Post-release maintenance (segregated from Post-release maintenance (segregated from

new development)new development) Tailored or customer-specific softwareTailored or customer-specific software Segregation of work by different Segregation of work by different

development teams or individualsdevelopment teams or individuals Segregation of work on different features Segregation of work on different features Deployment of different software variants Deployment of different software variants

into different environmentsinto different environments

Page 5: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

IssuesIssues

Four essential problems in software Four essential problems in software development: development:

1) evolution1) evolution 2) scale 2) scale 3) multiple dimensions of system 3) multiple dimensions of system

organisation organisation 4) distribution of knowledge.4) distribution of knowledge.

Page 6: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

EvolutionEvolution

Evolution compounds the problems of Evolution compounds the problems of parallel development because not only is parallel development because not only is there parallel development within each there parallel development within each version, but also among the releases as wellversion, but also among the releases as well

Page 7: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

ScaleScale

Scale compounds the problems by increasing Scale compounds the problems by increasing the degree of parallel development and the degree of parallel development and therefore increasing both the interactions therefore increasing both the interactions and interdependencies among the and interdependencies among the developersdevelopers

Page 8: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

Multiple dimensions of system Multiple dimensions of system organisationorganisation

Multiple dimensions of system organisation Multiple dimensions of system organisation compounds the problems by preventing tidy compounds the problems by preventing tidy separations of development into independent separations of development into independent work unitswork units

By System organisation, we are looking at By System organisation, we are looking at hardware and software which make up the hardware and software which make up the product and not the developers organisationproduct and not the developers organisation

Page 9: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

Distribution of KnowledgeDistribution of Knowledge

Distribution of knowledge compounds the Distribution of knowledge compounds the problem by decreasing the degree of problem by decreasing the degree of awareness that is distributedawareness that is distributed

Page 10: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

File checkin/checkout, branching File checkin/checkout, branching and mergingand merging

Page 11: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

Serial development using exclusive Serial development using exclusive checkoutscheckouts

Page 12: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

BranchingBranching

Page 13: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

MergingMerging

Page 14: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

Management of Parallel ChangesManagement of Parallel Changes

One of the standard features that enables One of the standard features that enables developers to create parallel versions of the developers to create parallel versions of the code is the branching mechanismcode is the branching mechanism

Every time a developer needs to create a Every time a developer needs to create a new version of the code, they request the new version of the code, they request the configuration management system (CMS) to configuration management system (CMS) to create a new branchcreate a new branch

The different versions of the code are then all The different versions of the code are then all stored in the same physical filestored in the same physical file

Page 15: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

Benefit of CMS in parallel Benefit of CMS in parallel developmentdevelopment

Page 16: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

Classic vs. Modern Configuration Classic vs. Modern Configuration Management SystemsManagement Systems

In the classic configuration management In the classic configuration management system the merging process has to be done system the merging process has to be done manually. There are no mechanisms to manually. There are no mechanisms to collapse branches back togethercollapse branches back together

Modern configuration system provide Modern configuration system provide mechanisms for automatically merging mechanisms for automatically merging several versions back togetherseveral versions back together

Page 17: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

http://www.timefold.com/snapsite/timefold/public/html/page41.html#q8

http://www.ibm.com/software/rational

About ClearCase:About ClearCase:

A Software Configuration A Software Configuration Management System Management System (SCMS) originally from(SCMS) originally fromRational SoftwareRational Software

(now IBM/Rational) (now IBM/Rational)

Page 18: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

Levels of parallel developmentLevels of parallel development

5ESS was maintained as a series of releases 5ESS was maintained as a series of releases each offering new features on top of existing each offering new features on top of existing onesones

Releases were being build in parallel with Releases were being build in parallel with varying amount of overlapping developmentvarying amount of overlapping development

Features were being developed in parallel Features were being developed in parallel (both with a simple release and multiple (both with a simple release and multiple releases)releases)* - Wikipidia.http://en.wikipedia.org/wiki/5ESS_switch

Page 19: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

The 5ESS change management The 5ESS change management processprocess

Two layer approach

ECMS

IMR

MR SCCS

Change management layer

Configuration management layer

Deltas

Page 20: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

Process of implementing an MR Process of implementing an MR

Make private copy of fileMake private copy of file Try out changeTry out change Retrieve original from SCCS – lock for editingRetrieve original from SCCS – lock for editing Makes changes [deltas] in the SCCS – release Makes changes [deltas] in the SCCS – release

lockslocks Retrieve amended files again from SCCS for Retrieve amended files again from SCCS for

readingreading Put code through inspection & testingPut code through inspection & testing Submitted back for load integrationSubmitted back for load integration MR closed when changes made and approvedMR closed when changes made and approved IMR is closedIMR is closed

Page 21: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

IMR vs. MR activityIMR vs. MR activity

Page 22: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

Lucent Technologies subsystem: Lucent Technologies subsystem: 5ESS5ESS

Page 23: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

Facts: Case study data found that:

The higher degree of parallelism the higher The higher degree of parallelism the higher the number of defects!the number of defects!

12.5% of all deltas are made to the same file by different developers within the same 24h period

Across the subsystems, 3% of the deltas made within 24h by different developers physically overlap each other’s changes.

Page 24: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

Case study observationsCase study observations

The parallel development plays a vital role in The parallel development plays a vital role in large-scale software developmentlarge-scale software development

As study showed that the current tools As study showed that the current tools (2001) available for the level or parallelism (2001) available for the level or parallelism involved in large-scale development were involved in large-scale development were inadequateinadequate

The number of defects was proportional to The number of defects was proportional to the level of parallelismthe level of parallelism

Page 25: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

Team workTeam work

In parallel development team work plays a In parallel development team work plays a vital role to insure good integration of the vital role to insure good integration of the system system

Communication, effort and interaction need Communication, effort and interaction need to be effectively organised and executed for to be effectively organised and executed for parallel development effort to succeedparallel development effort to succeed

Team members need be aware of what other Team members need be aware of what other team members are doing and why team members are doing and why

Page 26: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

Workflow Organization Workflow Organization

Microsoft Solution Framework

Page 27: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

It is not a question of how well It is not a question of how well each process works, the each process works, the question is how well they all question is how well they all work together. work together.

Lloyd DobensLloyd Dobens

Page 28: Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

ReferencesReferences

Dewayne E. Perry et al. ACM Transactions on Software Engineering and Methodology, Vol. 10, No. 3, July 2001, Pages 308-337.

Brad Appleton, Stephen Berczuk, Ralph Cabrera, and Robert Orenstein. Permission is granted to copy for the PLoP '98 conference. 1998

Tom Demarco, Timothy Lister. Peopleware: Productive Projects and Teams. Dorset House. 1999

Plastic SCM Platform Parallel Development. Pablo Santos Luaces. Codice Software. February 2007. www.codicesoftware.com

Context switching. http://codicesoftware.blogspot.com/2006/11/developer-contect-switching.html