Customer Configuration Updating in a Software Supply Network.

Product software development is the activity of development, modification, reuse, re-engineering, maintenance, or any other activities that result in packaged configurations of software components or software-based services that are released for and traded in a specific market \cite{XuBrinkkemper}. An increasingly important part of product software development is Customer Configuration Updating (CCU). \textit{CCU is the combination of the vendor side release process, the product or update delivery process, the customer side deployment process, and the activation process}. Product software vendors encounter particular problems when trying to improve these processes, because vendors have to deal with multiple revisions, variable features, different deployment environments and architectures, different customers, different distribution media, and dependencies on external products. Also, there are not many tools available that support the delivery and deployment of software product releases that are generic enough to accomplish these tasks for any product. In 9 industrial case studies it was discovered that as much as 15% of the deployments and product updates of new products do not proceed as planned and require unplanned extra support from the software vendor. These organizations are held back in their growth, due to the fact that they cannot handle larger customer bases, since it would result into more configurations that require maintenance and updates. When software vendors attempt to improve CCU three things become apparent: (1) there are no adequate process descriptions for CCU, (2) there is a lack of tools to support CCU, (3) software vendors lose a lot of time automating CCU tasks, even though these tasks are similar for all software vendors. This thesis proposes a multidirectional approach, where best practices from management are combined with up to date reviews of CCU support tools, new tools and tool proposals, and finally a CCU process model. The contribution is threefold: 1. Gives a detailed view of the state of the practice of CCU, i.e., release, delivery, deployment, and activation and usage . This tells the scientific community where the unsolved issues are, what practices are currently prevalent, and what practices are more successful than others in the industry through case studies and a survey. 2. Proposes a number of improvements for software release planning, software development, and business development within a software supply network, based on the results found in (1), to improve the art of CCU. 3. Provides a tool to improve deployment and configuration of components in large product lines. Furthermore, a tool is provided that improves customer-vendor relations by proposing an infrastructure for communication about software. These tools and fourteen others are evaluated using the product updater evaluation method. The contributions allow software vendors to stop dabbling around small customer numbers, and to make the jump to larger customer bases, with only a small increase in manpower and effort. Simultaneously, when applied correctly, the presented principles for CCU enable product software vendors to shorten release times, by reduction of release and upgrade costs. This in turn facilitates quicker feedback cycles from customers and more agility for the product software vendor, enabling them to potentially reach higher quality levels for their products.

[1]  Theo D'Hondt,et al.  An alternative to Quiescence: Tranquility , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[2]  Guy G. Gable,et al.  An ERP maintenance model , 2003, 36th Annual Hawaii International Conference on System Sciences, 2003. Proceedings of the.

[3]  Christof Ebert,et al.  Best Practices in Software Measurement , 2004 .

[4]  Jan Bosch,et al.  Representing Variability in Software Product Lines: A Case Study , 2002, SPLC.

[5]  E. Visser,et al.  Capturing Timeline Variability with Transparent Configuration Environments , 2003 .

[6]  Douglas C. Schmidt,et al.  Skoll: distributed continuous quality assurance , 2004, Proceedings. 26th International Conference on Software Engineering.

[7]  Lu Zhang,et al.  A software configuration management model for supporting component-based software development , 2001, SOEN.

[8]  David F. Redmiles,et al.  Extracting usability information from user interface events , 2000, CSUR.

[9]  Inge van de Weerd,et al.  Towards a Reference Framework for Software Product Management , 2006, 14th IEEE International Requirements Engineering Conference (RE'06).

[10]  B. Kitchenham,et al.  Case Studies for Method and Tool Evaluation , 1995, IEEE Softw..

[11]  Barry W. Boehm,et al.  The Future of Software Processes , 2005, ISPW.

[12]  Walter F. Tichy,et al.  Rcs — a system for version control , 1985, Softw. Pract. Exp..

[13]  Merijn de Jonge,et al.  Imposing a memory management discipline on software deployment , 2004, Proceedings. 26th International Conference on Software Engineering.

[14]  Eric Jul,et al.  A framework for evolutionary, dynamically updatable, component-based systems , 2004, 24th International Conference on Distributed Computing Systems Workshops, 2004. Proceedings..

[15]  S. B. Kiselev,et al.  The capability maturity model: guidelines for improving the software process , 1995 .

[16]  Sameer Ajmani,et al.  Automatic software upgrades for distributed systems , 2004 .

[17]  Slinger Jansen,et al.  Evaluating the release, delivery, and deployment processes of eight large product software vendors applying the customer configuration update model , 2006, WISER '06.

[18]  T. Soininen,et al.  State-of-the-practice in product configuration — a survey of 10 cases in the Finnish industry , 1995 .

[19]  Petr Hnětynka Component Model for Unified Deployment of Distributed Component-based Software , 2004 .

[20]  Terry S. Yoo,et al.  Rtools : Tools for Software Management in a Distributed Computing Environment , 1988 .

[21]  Reidar Conradi,et al.  Version models for software configuration management , 1998, CSUR.

[22]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[23]  A. Hasan,et al.  Organisation for Economic Co-operation and Development , 2007 .

[24]  Slinger Jansen,et al.  Modelling Deployment Using Feature Descriptions and State Models for Component-Based Software Product Families , 2005, Component Deployment.

[25]  Madeline Diep,et al.  Profiling deployed software: assessing strategies and testing opportunities , 2005, IEEE Transactions on Software Engineering.

[26]  D. Sjøberg,et al.  Quantifying schema evolution , 1993, Inf. Softw. Technol..

[27]  Calton Pu,et al.  Approaches for service deployment , 2005, IEEE Internet Computing.

[28]  Casper Lassenius,et al.  A tentative framework for managing software product development in small companies , 2002, Proceedings of the 35th Annual Hawaii International Conference on System Sciences.

[29]  JansenSlinger,et al.  Integrated development and maintenance for the release, delivery, deployment, and customization of product software: a case study in mass-market ERP software , 2006 .

[30]  H. van Vliet,et al.  The IT Service Capability Maturity Model. , 1999 .

[31]  Slinger Jansen Improving the customer configuration update process by explicitly managing software knowledge , 2006, ICSE '06.

[32]  Andreas Zeller,et al.  Yesterday, my program worked. Today, it does not. Why? , 1999, ESEC/FSE-7.

[33]  Tijs van der Storm Variability and Component Composition , 2004, ICSR.

[34]  Slinger Jansen,et al.  Software Release and Deployment at Exact : A Case Study Report , 2004 .

[35]  Jan Bosch,et al.  Software product lines: organizational alternatives , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[36]  Andrew Tridgell,et al.  Efficient Algorithms for Sorting and Synchronization , 1999 .

[37]  Richard S. Hall,et al.  Specifying the Deployable Software Description Format in XML , 1999 .

[38]  Martin Fowler,et al.  Planning Extreme Programming , 2000 .

[39]  David Zager,et al.  Collaboration on the fly , 2000, Proceedings Academia/Industry Working Conference on Research Challenges '00. Next Generation Enterprises: Virtual Organizations and Mobile/Pervasive Technologies. AIWORC'00. (Cat. No.PR00628).

[40]  Merijn de Jonge,et al.  Build-level components , 2005, IEEE Transactions on Software Engineering.

[41]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[43]  Scott Nettles,et al.  Dynamic software updating , 2001, PLDI '01.

[44]  Tijs van der Storm The Sisyphus Continuous Integration System , 2007, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

[45]  Slinger Jansen,et al.  Ten Misconceptions about Product Software Release Management explained using Update Cost/Value Functions , 2006, 2006 International Workshop on Software Product Management (IWSPM'06 - RE'06 Workshop).

[46]  Klaus Schmid,et al.  PuLSE: a methodology to develop software product lines , 1999, SSR '99.

[47]  Inge van de Weerd,et al.  The Software Product Management Workbench: An Integrated Environment for Managing Product Releases in a Distributed Development Context , 2006, CAiSE Forum.

[48]  Victor J. Rayward-Smith,et al.  The next release problem , 2001, Inf. Softw. Technol..

[49]  Carlo Ghezzi,et al.  An Outlook on Software Engineering for Modern Distributed Systems , 1999 .

[50]  Paul Klint,et al.  Enabling the creation of knowledge about software assets , 2002, Data Knowl. Eng..

[51]  D. Lambert,et al.  Issues in Supply Chain Management , 2000 .

[52]  Tijs van der Storm,et al.  Continuous release and upgrade of component-based software , 2005, SCM '05.

[53]  Gregory Tassey,et al.  Prepared for what , 2007 .

[54]  Slinger Jansen,et al.  Analyzing the Business of Software: A Modelling Technique for Software Supply Networks , 2007, CAiSE Forum.

[55]  Jan Bosch,et al.  Product Instantiation in Software Product Lines: A Case Study , 2000, GCSE.

[56]  Keith H. Bennett,et al.  A Staged Model for the Software Life Cycle , 2000, Computer.

[57]  Eelco Dolstra Integrating Software Construction and Software Deployment , 2003, SCM.

[58]  S. Brinkkemper,et al.  Understanding the dynamics of product software development using the concept of coevolution , 2006, 2006 Second International IEEE Workshop on Software Evolvability (SE'06).

[59]  Anthony Finkelstein,et al.  Software acquisition: a business strategy analysis , 2001, Proceedings Fifth IEEE International Symposium on Requirements Engineering.

[60]  Gerco Ballintijn A Case Study of the Release Management of a Health-care Information System , 2005, ICSM.

[61]  Ping Zhang,et al.  Predictors of customer perceived software quality , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[62]  Björn Regnell,et al.  A linguistic-engineering approach to large-scale requirements management , 2005, IEEE Software.

[63]  Bertrand Meyer The software knowledge base , 1985, ICSE '85.

[64]  Slinger Jansen,et al.  Integrated development and maintenance of software products to support efficient updating of customer configurations: a case study in mass market ERP software , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[65]  André van der Hoek,et al.  Design-time product line architectures for any-time variability , 2004, Sci. Comput. Program..

[66]  Slinger Jansen,et al.  Modeling of Product Software Businesses: Investigation into Industry Product and Channel Typologies , 2007, ISD.

[67]  Krzysztof Czarnecki,et al.  Components and generative programming (invited paper) , 1999, ESEC/FSE-7.

[68]  Martin Grieger Electronic marketplaces: A literature review and a call for supply chain management research , 2003, Eur. J. Oper. Res..

[69]  Richard S. Hall,et al.  A cooperative approach to support software deployment using the Software Dock , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[70]  R A Stephens CONNECTING WITH CUSTOMERS , 1991 .

[71]  H. Raghav Rao,et al.  A study of the effect of consumer trust on consumer expectations and satisfaction: the Korean experience , 2003, ICEC '03.

[72]  Ivica Crnkovic,et al.  Implementing and integrating product data management and software configuration management , 2003 .

[73]  Remko Helms Product data management as enabler for concurrent engineering , 2002 .

[74]  Frantisek Plasil,et al.  SOFA/DCUP: architecture for component trading and dynamic updating , 1998, Proceedings. Fourth International Conference on Configurable Distributed Systems (Cat. No.98EX159).

[75]  David G. Messerschmitt,et al.  Software Ecosystem: Understanding an Indispensable Technology and Industry , 2003 .

[76]  Alessandro Orso,et al.  Gamma system: continuous evolution of software after deployment , 2002, ISSTA '02.

[77]  David N. Ford,et al.  Dynamic modeling of product development processes , 1998 .

[78]  Barry W. Boehm,et al.  Get Ready for Agile Methods, with Care , 2002, Computer.

[79]  Slinger Jansen,et al.  Providing Transparency In The Business Of Software: A Modeling Technique For Software Supply Networks , 2007, Virtual Enterprises and Collaborative Networks.

[80]  Arie van Deursen,et al.  Domain-specific language design requires feature descriptions , 2002 .

[81]  Pär Carlshamre,et al.  Release Planning in Market-Driven Software Product Development: Provoking an Understanding , 2002, Requirements Engineering.

[82]  Pierre N. Robillard,et al.  The role of knowledge in software development , 1999, CACM.

[83]  Richard S. Hall,et al.  A Characterization Framework for Software Deployment Technologies , 1998 .

[84]  Richard S. Hall,et al.  Evaluating Software Deployment Languages and Schema , 1998 .

[85]  S. Lazzarini,et al.  Integrating supply chain and network analyses: The study of netchains , 2001 .

[86]  Murali Ramakrishnan Software release management , 2004, Bell Labs Technical Journal.

[87]  Geert Duysters,et al.  Crafting successful strategic technology partnerships , 1999 .

[88]  Ivica Crnkovic,et al.  Configuration Management for Component-based Systems , 2001 .

[89]  Liuba Shrira,et al.  Modular Software Upgrades for Distributed Systems , 2006, ECOOP.

[90]  Licia Capra,et al.  xlinkit: a consistency checking and smart link generation service , 2002, TOIT.

[91]  Taqi Jaffri,et al.  Efficient Delivery of Software Updates Using Advanced Compression Techniques , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[92]  B. Flyvbjerg Five Misunderstandings About Case-Study Research , 2006, 1304.1186.

[93]  Slinger Jansen Alleviating the Release and Deployment Effort of Product Software by Explicitly Managing Component Knowledge , 2005, DDoPS.

[94]  Inge van de Weerd,et al.  On the Creation of a Reference Framework for Software Product Management: Validation and Tool Support , 2006, 2006 International Workshop on Software Product Management (IWSPM'06 - RE'06 Workshop).

[95]  Alain Abran,et al.  Software Maintenance Maturity Model (SMmm): the software maintenance process model , 2005, J. Softw. Maintenance Res. Pract..

[96]  Lai Xu,et al.  Concepts of Product Software: Paving the Road for Urgently Needed Research , 2005, CAiSE Workshops.

[97]  Lai Xu,et al.  A multi-party contract model , 2004, SECO.

[98]  L. F. Baxter,et al.  The software supply chain for manufactured products: reassessing partnership sourcing , 2001, PICMET '01. Portland International Conference on Management of Engineering and Technology. Proceedings Vol.1: Book of Summaries (IEEE Cat. No.01CH37199).

[99]  Karen Renaud,et al.  An error reporting and feedback component for component-based transaction processing systems , 1999, Proceedings User Interfaces to Data Intensive Systems.

[100]  Audris Mockus,et al.  A case study of open source software development: the Apache server , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[101]  Sam Clegg Evolution in Extensible Component-based Systems , 2003 .

[102]  Merijn de Jonge,et al.  Nix: A Safe and Policy-Free System for Software Deployment , 2004, LISA.

[103]  Jan Bosch,et al.  Architecting product diversification - formalizing variability dependencies in software product family engineering , 2004, Fourth International Conference onQuality Software, 2004. QSIC 2004. Proceedings..

[104]  Hans van Vliet,et al.  Software maintenance from a service perspective , 2000, J. Softw. Maintenance Res. Pract..

[105]  John Dunagan,et al.  Towards a self-managing software patching process using black-box persistent-state manifests , 2004, International Conference on Autonomic Computing, 2004. Proceedings..

[106]  Andrew P. Cotton,et al.  Spreading the word: practical guidelines for research dissemination strategies. Phase II literature review , 2000 .

[107]  Sjaak Brinkkemper,et al.  A process framework and typology for software product updaters. , 2004 .