280 likes | 440 Views
Parallel Changes in Large-Scale Software Development: 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. Authors Strategy.
E N D
Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No. 3, July 2001, Pages 308 – 337 Michelle ThomsonAgnieszka Jankowska Shiona Webster
Authors Strategy • The authors strategy for understanding the problem of parallel changes was to look at the problem from a number of different angles and viewpoints in the context of a large-scale, real-time system and a large-scale development.
Characteristics • An essential characteristic of large-scale software development is parallel development by a team of developers • How this development is structured and supported has a profound effect on both the quality and timeliness of the product
Why parallel development • Release preparation • Post-release maintenance (segregated from new development) • Tailored or customer-specific software • Segregation of work by different development teams or individuals • Segregation of work on different features • Deployment of different software variants into different environments
Issues Four essential problems in software development: • 1) evolution • 2) scale • 3) multiple dimensions of system organisation • 4) distribution of knowledge.
Evolution • Evolution compounds the problems of parallel development because not only is there parallel development within each version, but also among the releases as well
Scale • Scale compounds the problems by increasing the degree of parallel development and therefore increasing both the interactions and interdependencies among the developers
Multiple dimensions of system organisation • Multiple dimensions of system organisation compounds the problems by preventing tidy separations of development into independent work units • By System organisation, we are looking at hardware and software which make up the product and not the developers organisation
Distribution of Knowledge • Distribution of knowledge compounds the problem by decreasing the degree of awareness that is distributed
Management of Parallel Changes • One of the standard features that enables developers to create parallel versions of the code is the branching mechanism • Every time a developer needs to create a new version of the code, they request the configuration management system (CMS) to create a new branch • The different versions of the code are then all stored in the same physical file
Classic vs. Modern Configuration Management Systems • In the classic configuration management system the merging process has to be done manually. There are no mechanisms to collapse branches back together • Modern configuration system provide mechanisms for automatically merging several versions back together
About ClearCase: A Software Configuration Management System (SCMS) originally fromRational Software (now IBM/Rational) http://www.timefold.com/snapsite/timefold/public/html/page41.html#q8http://www.ibm.com/software/rational
Levels of parallel development • 5ESS was maintained as a series of releases each offering new features on top of existing ones • Releases were being build in parallel with varying amount of overlapping development • Features were being developed in parallel (both with a simple release and multiple releases) * - Wikipidia.http://en.wikipedia.org/wiki/5ESS_switch
Two layer approach The 5ESS change management process Change management layer ECMS IMR Configuration management layer MR Deltas SCCS
Process of implementing an MR • Make private copy of file • Try out change • Retrieve original from SCCS – lock for editing • Makes changes [deltas] in the SCCS – release locks • Retrieve amended files again from SCCS for reading • Put code through inspection & testing • Submitted back for load integration • MR closed when changes made and approved • IMR is closed
Facts: Case study data found that: • The higher degree of parallelism the higher 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.
Case study observations • The parallel development plays a vital role in large-scale software development • As study showed that the current tools (2001) available for the level or parallelism involved in large-scale development were inadequate • The number of defects was proportional to the level of parallelism
Team work • In parallel development team work plays a vital role to insure good integration of the system • Communication, effort and interaction need to be effectively organised and executed for parallel development effort to succeed • Team members need be aware of what other team members are doing and why
Workflow Organization Microsoft Solution Framework
It is not a question of how well each process works, the question is how well they all work together. Lloyd Dobens
References • 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