- CCU Delivery
Customer Configuration Updating (CCU) is a production method developed by researchers of the
Utrecht University . This method should help product software developers in structuring the process of providingcustomer s with newversion s of products and updates. This article is about the delivery phase of the CCU method. Delivery concerns the process which starts at the moment a product is finished until the actual shipping of the product to thecustomer .This entry has been constructed as an element of the Method Engineering Encyclopedia of the Utrecht University.
Introduction to the delivery process
As described in the general entry of CCU, the delivery phase is the second phase of the CCU method. In figure one the CCU method is depicted. The phases of CCU that are not covered in this article are concealed by a transparent grey rectangle.
As can be seen in figure one, the delivery phase is in between the release phase and the deployment phase. A software vendor develops and releases a software product and afterwards it has to be transported to the
customer . This phase is the delivery process. This process is highly complex because the vendor often has to deal with a product which has multipleversion s, variable features, dependency on external products, and different kinds of distribution options. The CCU method helps the software vendor in structuring this process.In figure 2, the process-data diagram of the delivery phase within CCU is depicted. This way of modeling was invented by Saeki (2003). On the left side you can see the meta-process model and on the right side the meta-data model. The two models are linked to each other by the relationships visualized as doted lines. The meta-data model (right side) shows the concepts involved in the process and how the concepts are related to each other. For instance it is visible that a package consists of multiple parts, being the: software package, system description, manual, and
license and management information. The numbers between the relations indicate in what quantity the concepts are related. For example the “1..1” between package and software package means that a package has to contain at least 1 software package and at the most 1 software package. So in this case a package just has to contain 1 software package. On the left side of the picture the process-data model is depicted. This consists of all the activities within the delivery process. This article is based on this process-data model. The meta-process model (left side of the process-data diagram) is divided into several parts which are presented along with the corresponding paragraphs throughout the article to make it easier to understand.The tables that describe the concepts of the meta-data model and the activities of the process-data model are presented beneath figure 2.
Table of concepts
The table of concepts contains all concepts used in the meta-data model with their explanations along with the source from which the explanations are derived.
"Table 1: Table of concepts"
Activity table
The activity table contains the explanations of the activities along with the source from which the explanations are derived. Because the method is quite innovative a lot of the activity’s are designed especially for this model and therefore the explanations do not have a source.
"Table 2: Activity Table"
Package software
In order to deliver the developed product to the
customer , the vendor needs to package the different components of its product into a package. By doing this, thecustomer will receive all the information andsoftware components at once fulfilling al its needs. After combining all elements into one package the software vendor will carefully have to check if the package is complete. The package will have to provide thecustomer with all the tools and information to use the product. When this is not the case the software vendor will get a lot of questions from itscustomer s which will consume a lot of time. It is therefore very important that the package is checked carefully before it is shipped. The package can be a physical combination of different elements packed into for example a box, but it can also be a digital combination of files which contain all the elements. Within the CCU process it is stated that a package will consist of five elements, being: software package, system description, manual, andlicense and management information. In the following paragraphs is explained how these elements fit into the CCU delivery phase.Software package
One of the elements of the package will be the software package. The software package is a package in itself, because it consists of the different
software components that together form the product. In contrast with the overall package, the software package is always a technical package in which all the files needed are combined in order to run the software product. Examples of tools which can perform this packaging are: [http://www.lokigames.com/ Loki-Update] , [http://www.kleemann.org/rpm-update/oldindex.html/ RPM-update] , [http://swup.trustix.org/ SWUP] and [http://www.gentoo.org/doc/en/portage-manual.xml/ Portage] . Another concept of the software package is theversion . This keeps track of themodification s made to the software product. By relating it to the software package the vendor and thecustomer are able to keep track of the functionality and properties of the product thecustomer is using.System description
It is a general description of what the product and its functionalities. In addition it will also describe of what components, the product consists and how these are related to other product software already in place. In case of a software update it will for example describe how the previous
version of the software is modified by this product. Besides this, it will also describe the requirements needed to run the software product properly. For example what other products and configurations need to be in place in order to let this product run properly.Manual
The manual is the document that will provide the
customer with guidance in deploying and using the product.License
The
license is in this case aSoftware license agreement in which is stated how thecustomer is permitted to use the product. For example it can state how many users are permitted to use the software product. In this situation thelicense agreement is a contract or a certificate which is thecustomer s prove of its using permits. The software vendor has its own part of the agreement which in most cases is stored in a system. An elaboration of this part can be found at the receivefeedback section of this article. Thelicense agreement shipped to thecustomer can be a digital document as well as a physical document.Management information
This piece of information should contain the information that is relevant for managing the system at the customer’s site. In many cases this information is already part of the manual. However in particular situations this information is meant only for the management of the system and not for the users of the system and is therefore supplied as a separate document.
Distribution
After the package is assembled it needs to be distributed to the
customer s. This section within the delivery process is about the actual delivery of the package to thecustomer s.Offline vs Online
The
software distribution of a product can be done offline as well as online. In an offline situation the package is a physical package which contains all the elements. The software is stored on a data carrier such as a CD or a DVD, and the documents might also be stored in a digital form on this data carrier, or they might be in physical form such as a booklet. The package as a whole is a physical product. In an online situation the entire package needs to be in a digital form. The consequences on the distribution process are described in the following paragraphs. CCU is designed to fit both situations but as bandwidth is growing it is making more sense to distribute especially updates and newversion s to existingcustomer s online. In this article both ways are discussed. In the process-data model it is assumed that the software vendor conducts both distribution channels. As a practical example: HISComp, a provider of medical information systems distributes its software straightforward via CDs. However they use their website to distribute patches for the software products.Preparation of distribution
After a new package is assembled, the
customer needs to be made aware of the new release. In the process-data model this is being depicted as a loop which states advertising the update until thecustomer s are being properly informed. Besides this, the package ready for delivery, needs to be stored in a repository for the online distribution. In addition the vendor needs to create transfer channels. For the online distribution this means that the vendor needs to create online channels to its repository. In most cases this means that a link to the product on the website of the vendor is created. In case of updates it is largely applicable that the currentversion of the software product at the customer’s site automatically checks therepository for new updates of the product. In case of offline distribution, the vendor needs to create physical transfer channels. This can be shops or just a contract with a courier company.The actual distribution
The distribution begins with the request for a product by the
customer . This can be done automatically when the current product of thecustomer searches for an update at the online repository. Thecustomer can also manually do a request for a product via the website of the vendor. A third option is that thecustomer does the request via telephone or e-mail.When the vendor is aware of the customer’s request it will determine the customer’s needs. By checking what the customer’s current configuration is and what the
customer desires. This process can also take place automatically by checking the customer’s configuration in theconfiguration management system. More information on this system is provided in the next chapter. When it is clear what product thecustomer needs and the possiblemodification s to this product it is necessary to determine if the customer’s current configuration suits the new product. The current configuration is compared to the constraints of the new product. This can also be done automatically by theconfiguration management system. When the configuration of thecustomer appears to be insufficient the customer is informed about this. For example the vendor can make clear to thecustomer that it will need an external product for this new product to run properly. Besides this theCustomer Relationship Management (CRM) system of the vendor is updated. There is more information about this in the chapter about CRM.When the customer’s configuration is sufficient the vendor will check the current
license of thecustomer . If thecustomer does not have a properlicense for the requested product thelicense needs to be obtained. Thecustomer will be informed about this and the CRM system will be updated again. If thecustomer has the properlicense or wants to buy the properlicense along with the product, the product is delivered to thecustomer .Software configuration management
The
Software Configuration Management system, is a system at the vendor’s site which keeps track of the configurations at the customer’s site. By storing this in a system the vendor will be able to give thecustomer particular service when it needs a new product. In the softwareconfiguration management system information about the products used by thecustomer , theversion of these products, as well as which updates are already being done, is stored. In some cases it is possible that the vendor did somemodification s to the product particularly for thiscustomer . This will also have to be stored in the system. Also there needs to be configuration data, some generic information about the configuration thecustomer is using. For example what operating platform thecustomer uses for its software. What also should be stored in this system is information about thefeedback that the vendor gets from thecustomer . This includes bug reports, product usage data, error reports and usage questions. More information about thisfeedback can be found in the CCU phase activation and usage.By storing all this information the vendor can determine the customer’s needs very precisely whenever a
customer requests a product or an update. As already stated the vendor can also easily inform thecustomer about some adaptations thecustomer needs to make to its configuration in order to let the product function properly. Another advantage of storing this information in a system is that it will ease the process of online delivery. The checking of the configuration needs and constraints can all be done automatically when acustomer does a request.CRM system
The
customer relationship management system contains all kinds of data about thecustomer s of a company. In this article we will discuss the function of thiscustomer data in the CCU delivery process. Information about thelicense agreement between thecustomer and the software vendor is stored in the CRM system. In the meta-data model this is called thelicense type. This information is being consulted by the vendor when acustomer does a request for a product. When therepository and online distribution is linked to the CRM system this can again be done automatically. The system will check if thelicense of acustomer is sufficient to obtain a certain product or update.Receiving feedback and updating the systems
In order to keep all the described systems up-to-date at the vendor site it is important that the vendor receives a lot of
feedback from thecustomer . As already mentioned in the previous chapters there will have to befeedback when acustomer tries to obtain a product but the currentlicense appears to be insufficient. By updating the CRM system the vendor will store the customer’s request for a certain product or update. In this way the vendor will be aware of the interests of acustomer in a certain product and could use this in the future for example in doing an offer. The same accounts when the customer’s configuration does not meet the constraints of a requested product. The vendor could use the information in the future to inform thecustomer for example about an update which overcomes the constraints to which thecustomer couldn’t suffice. Besides this it is also important that the vendor receives a delivery report after delivery and deployment. This report could be automatically generated and sent by the installed software product. In this way the vendor can (automatically) update the product properties in itscustomer configuration management system so that it has information about the products running at the customer’s site. Besides this, the information can be used as input for development improvement. Microsoft and Exact are already using these kinds offeedback techniques in their products.As already stated in the chapter about the
configuration management system it is also important that the vendor receives information about the usage of the product. More information about thisfeedback can be found in the CCU phase activation and usage.Example
An example of a successful application of the CCU method can be found at Exact Software (ES). ES is a manufacturer of accounting and
enterprise resource planning software based in the Netherlands. ES has combinedProduct Data Management (PDM),Customer Relationship Management (CRM) andSoftware Configuration Management (SCM) in order to maintain the configuration at the customer’s site in a better and less complex way. ES has a module in its CRM software that contains all contracts of eachcustomer . This is linked to their PDM system. Every contract corresponds to files that can be downloaded for a newversion or update of a previousversion . In the delivery phase this means that thecustomer s are able to obtain all the products through an online connection. So ES sells contracts (licenses) and stores them into their CRM system, the delivery of the actual products can be done by thecustomer s themselves completely automated requiring little effort. The PDM system is on its turn linked to the SCM system which keeps track of the configurations thecustomer s are using. In the delivery phase this means that ES is able to automatically determine the customer's needs whenever acustomer does a request.See also
#
Method Engineering Encyclopedia
#Customer Configuration Updating
#
#Release Management External links
# [http://www.productsoftware.nl/ Product software]
# [http://www.lokigames.com/ Loki-Update]
# [http://www.kleemann.org/rpm-update/oldindex.html/ RPM-update]
# [http://swup.trustix.org/ SWUP]
# [http://www.gentoo.org/doc/en/portage-manual.xml/ Portage]
# [http://www.exactsoftware.com/ Exact Software]References
# Krishnan M. S., (1994). Software release management: a business perspective, Proceedings of the 1994 conference of the Centre for Advanced Studies on Collaborative research, p.36, October 31-November 03, 1994, Toronto, Ontario, Canada
# Jansen, S. & Ballintijn, G. & Brinkkemper, S., (2003). A process model and typology for software product updaters. Conference on Software Maintenance and Reuse. IEEE, 2005.
# Jansen, S. & Ballintijn, G. & Brinkkemper, S., (2005). Integrated SCM/PDM/CRM and delivery of software products to 160.000 customers. CWI. Software Engineering [SEN] 2004.
# Jansen, S. & Ballintijn, G. & Brinkkemper, S., (2005). Definition and validation of the key process areas of release, delivery and deployment for product software vendors: turning the gly duckling into a swan. In Technical Report CWI, 2005.
# Jansen, S., Ballintijn, G., & Brinkkemper, S. (2004). Software Release and Deployment At Exact: A Case Study Report. Retrieved February 8, 2006 from Computer science University Utrecht database.
# Carzaniga, A. & Fugetta, A. & Hall, R. & van der Hoek, A. & Heimbigner, D. & Wolf, A. (1998) A characterization framework for software deployment technologies.
# Saeki M. (2003). Embedding Metrics into Information Systems Development Methods: An Application of Method Engineering Technique. CAiSE 2003, 374-389.
Wikimedia Foundation. 2010.