-1:08 AM 08.03.2016 Survey on Risk Management in OTS-based Development in IT Industries in Several Countries (Draft Design Version 1.15, 24 May 2004) Reidar Conradi1,2, Jingyue Li1, Odd Petter N. Slyngstad1, Vigdis By Kampenes2, Dag Sjøberg2, Maurizio Morisio3, Macro Torchiano3, and Christian Bunse4 1 Norwegian University of Science and Technology (NTNU) NO-7491 Trondheim, Norway Tel +47 73.593444(rc), Fax +47 73.594466, {conradi, jingyue, oslyngst}@idi.ntnu.no 2 Simula Research Laboratory P.O.Box 134, 1325 Lysaker, Norway 3 Politecnico Di Torino 4 Fraunhofer-Institute for Experimental Software Engineering (IESE) Preliminary abstract This report describes an initial version of the empirical design on risk management in COTS-based development in IT industry in several countries (Norway, Germany, and Italy). The initial work of this research was prompted by recent papers e.g. by Morisio et al. that seem to indicate new trends in using e.g. COTS components. We designed several hypotheses and did a prestudy in 16 projects in Norway from Oct. 2003 to Feb. 2004 by structured interview. The results of the prestudy showed that some of the hypotheses can be tested and some of them are not easy to test. The results of the open questions in the questionnaire also showed some new research questions and theses. We discovered that all the hypotheses used in the prestudy and the new theses found from the prestudy are relevant to risk-management in COTS-based development. We therefore change the research topic to risk management issues and combine all the research questions in this framework. After a literature survey on risk management in COTS-based development, we also found some other interesting research questions. This empirical study is designed to investigate all these research questions. We plan to design a questionnaire and use the SESE web tool of the Simula Research Lab to collect the data. Change Log: Version 1.1: Added the research question relevant to build vs. buy decision; Merged RQ2 into RQ3 and RQ4; Made a clear fate between the prestudy and this design Version 1.2: Revised the project level and OTS component level risks Completed risk reduction questions Added analysis methods Version 1.3: Added software evolution questions to the questionnaire Version 1.15 24-May-2004 1 -1:08 AM 08.03.2016 (also see appendix D) English language checks & corrections (needs crosscheck) Version 1.4: Integrated software evolution material from Appendix D in Ver1.3 into the document, removed Appendix D. Version 1.5: Add OSS relevant questions based on discussion with Macro. Merge the questions of evolution and moved them into a separate part. Version 1.6: Change the definition in the first page of the questionnaire. Change the direction of the survey from COTS to OTS. Version 1.7: Simplified questions on evolution and maintenance in section 6 of the Questionnaire. - Reidar: Added v1.7 and 31.3 in line three. Version 1.8: Reidar: new file name as cbse-survey-v1.8-2apr04.doc, reverted many OTS terms to COTS: Have taken abstract and chs. 1-2 from V1.5, chs. 3-4 from V1.7, References from V1.5, Questionnaire and Appendices from V1.7 where I also have added hypotheses resume from 3 Feb.04 meeting. Revised questionnaire (two new pages in start, plus lots of smaller changes) and Appendix B. Version 1.9, 5apr04: Reidar: Lots of minor changes! Please recheck questionnaire text vs. design Version 1.10, 13apr04: Section 4.3 revised, the hypotheses vs. questionnaire questions have been coordinated Question 2.2 has been added to answer some OSS research question (see chapter 3.2.1) Question 4.2 is dropped, alternative 4.1.a and 4.1.b are added Question 5.1 is divided into question 5.1, 5.2 and 5.3 Invitation letter is added in the first page of the questionnaire Evolution question 6.1 – 6.4 have been revised Version 1.11, 19apr04: Change the definition of OTS component because Open Source Component may not be free. Added some examples of OSS components Question 1.2.6, 1.2.7 were deleted. Question 5.1 was extended so that respondents can fill in all components used in their project and their relative importance. Question 2.3 was added to ask the motivation of using COTS component Question 5.3 was modified so that the OTS component type follows the categories in ComponentSource (The biggest component market in the world). Question 5.7 was revised to make the alternative a) and b) more flexible. Version 1.12, 26apr04: Based on the comments we got from Tore Dybå and Christian Bunse, we changed the version 1.11 a lot. The main purpose was to increase the construct validity of the questionnaire. We current changed only the data analysis chapter and questionnaire. The rest of this design will be changed later. Version 1.15 24-May-2004 2 -1:08 AM 08.03.2016 Question 1.2.5: Alternative “New functionality” was changed to easy to add new functionality. Alternative “Improved functionality” was changed to maintainability. Question 2.1: Alternative “Better overall system quality” was divided into three separate alternative to ask for “overall system reliability”, “overall system security”, and “overall system performance”. Question 2.3: Alternative “Reduction of the risk of security because source code is not open” was added. Question 3.4: deleted because the same question was asked in question 5.7 Question 4.1: changed dramatically. Several new alternatives were added. The alternatives were clustered into different categories of risks (Need future discussion). Question 4.2: changed dramatically. Some new risk reduction methods were added and they were clustered into 6 categories. Question 5.1: The version of the OTS component was asked. We asked the respond to fill in one of the most prominent component. Question 5.2: It was separated into 5.2, 5.3, and 5.4. The scale was changed into five-scale instead of Yes/NO. The number of the component was reduced into one. Question 5.3: changed into question 5.5. The classification was the same as ComponentSource. Question 5.4: changed to 5.6. The number of the component was reduced into one. Question 5.5: changed to 5.7. The number of the component was reduced into one. The alternative Prestudy/Requirements/Analysis phase was divided into two. Question 5.6: changed to 5.8. The number of the component was reduced into one. The scale was changed to five-scale. Question 5.7: changed to 5.9. The number of the component was reduced into one. The scale was changed to five-scale. The alternative b) and c) were merged into d). alternatives g) h) i) were moved to question 4.2. Question 5.10 was added to investigate the effect of the OTS component Question 6.1: changed from pre-defined scale to the format that the respondent can fill in the exact number. Question 6.5: changed from pre-defined scale to the format that the respondent can fill in the exact number. Question 7.1.6 was added. Previous 7.1.6 moved to 7.1.7. Previous 7.1.7 moved to 7.1.8 Data analysis methods were revised: Hypothesis New Hx2, H10, and possible PHx5 were revised. The variable will be measured by using several items. The reliability and construct validity testing methods were proposed. Version 1.13 Deleted section 6 (on maintenance/evolution) Deleted all meta-questions Deleted all risk relevant hits in question 4.1,4.2,5.8. Question 1.2.3:Added full description of terms in Version 1.15 24-May-2004 3 -1:08 AM 08.03.2016 Question 2.2 Added alternative f) Question 2.3 Added alternative e) Question 3.2: Changed to multiple-selection Question 4.1: One alternative was added, i.e., the risk of moving from development environment to production environment Alternative d) e) f) were revised so that they are relevant to OTS components Alternative a,b, c, k, and l were revised to use negative words Question 4.2: Alternative a) change words to make it clear Alternative k) was deleted Question 5.2: Changed format Question 5.3,5.4: Changed alternatives “hardly ever” to “never”. Question 5.8, 5.9: Alternatives have been changed from 5-scales to Yes/No Deleted the risk related words in the question Other changes after discussion with Reidar Friday morning (21May) Definition: - OTS component definition was changed based on comments from Macro Component definition was changed - Changed “executable unit” to “program unit” - Changed “built in house” to “built from scratch” - Platform definition was changed based on comments from Macro Question 1.2.2: changed to less categories Question 2.2: added alternatives “It was decided by customer” and “political reasons” Question 2.2 and 2.3: changed all the term “vendor” to “provider” Question 4.3: changed the “background” to “role and OTS component relevant experience”. Question 5.1: slim so that only 5 component information was required Open issues Delete section 6 or not? Arguments: - most information of the company can be acquired before the interview start (by company list and internet) - The personal information of the respond can be acquired in the contacting procedure by calling them. - Some respondents don’t want to give personal information by filling in them into the questionnaire Version 1.14 Revised invitation letter and term definition (Reidar) The design and hypotheses have been cross checked with the questions (Possible PHx1 was deleted because it was not possible to be tested and not question can match it.) Question 1.2.6 was moved to 1.1.2 1.1.2 to 1.1.3 1.1.3 to 1.1.4 Version 1.15 24-May-2004 4 -1:08 AM 08.03.2016 1.1.4 to 1.1.5 1.2.2 was changed to 1.2.3 (Include completed list again because it is relevant to possible hypotheses PHx2 and PHx3) 1.2.3 to 1.2.4 1.2.4 to 1.2.5 1.2.5 to 1.2.2 (format reason) 2.1 – 2.3 question revised (past tense ) 4.1 alternatives i,o,q were deleted to slim the question 4.2 slim the alternatives 4.1 alternative s and 4.2 alternative l were deleted because it is not possible to answer others based on the question. 5.1 was added to know the whole number of different OTS components 5.1 to 5.2 deleted the last column, only importance of comp. 1 was asked (see 5.3) 5.2 to 5.4 5.4 to 5.6 5.5 slimmed and changed to 5.7 5.6 to 5.8 5.7 to 5.9 5.8 to 5.10 5.9 to 5.11 5.10 to 5.12 Section 6.2 was deleted because all information can be gathered from other resource Open issues: 2.2 – 2.3 what is the meaning of political reasons? V1.15, 24.5: Reidar - Polished initial definitions a bit more. Fixed table-of-contents, reinserted 6.2 for the time being. Version 1.15 24-May-2004 5 -1:08 AM 08.03.2016 Table of Contents 1. Research rationale ....................................................................................................... 7 1.1 Previous studies .................................................................................................... 7 1.2 Research motivation.............................................................................................. 8 1.3 Literature review ................................................................................................... 9 2. Results of the prestudy .............................................................................................. 10 3. Research Design........................................................................................................ 11 3.1 General design .................................................................................................... 11 3.2 Detailed design.................................................................................................... 12 3.2.1 RQ1: Motivation of using COTS/OSS components instead of building inhouse. (Exploratory study) ....................................................................................... 12 3.2.2 RQ2: Actual OTS-based process (Descriptive study) ..................................... 13 3.2.3 RQ3: Project level risks (Descriptive study) ................................................... 13 3.2.4 RQ4: OTS component-level risks (Descriptive study) .................................... 16 4. Questionnaire design ................................................................................................. 19 4.1 General questionnaire design .............................................................................. 19 4.1.1 The project background ............................................................................ 19 4.1.2 Motivation of using OTS components ...................................................... 19 4.1.3 The project process ................................................................................... 19 4.1.4 Project level risks ...................................................................................... 19 4.1.5 Project level risks management ................................................................ 20 4.1.6 The OTS components background............................................................ 21 4.1.7 OTS component-level risks....................................................................... 21 4.1.8 OTS component-level risk reduction methods ......................................... 22 4.1.9 The background information of the respondent ........................................ 22 4.2 Data analysis methods......................................................................................... 22 References: .................................................................................................................... 27 Appendix A. Final questionnaire .................................................................................. 29 Appendix B. Summary of hypotheses and theses in the prestudy ................................ 44 Version 1.15 24-May-2004 6 -1:08 AM 08.03.2016 1. Research rationale 1.1 Previous studies The prestudy was prompted by recent papers e.g. by Morisio et al. [Torchiano04] that seem to indicate new trends in using e.g. COTS components. We have proposed 10 hypotheses based on the theses proposed in that paper. We designed a questionnaire which includes both closed and open questions. We did personal interviews based on this questionnaire in 16 projects in 13 companies in Norway. The results of the closed questions show that some of the hypotheses are possible to be tested quantitatively by web-survey, but some of the others are not easy to test quantitatively. The results are summarized in the internal report of the prestudy [Conradi04]. One result of the open questions we discovered is a revised COTS-based development process model in the following graph. From these open questions we also found some new theses and research questions. Non-COTS process P1 Decide the whole development process (When and how? RQ1) Make vs. Buy decision (Why? RQ2) P2 N Start project level risk identification and evaluation (RQ3) Decide to use COTS ? Y Start project level risk mitigation (RQ3) COTS selection (When and how? RQ1) P3 Start COTS level risk management (RQ4) N Have found the proper COTS ? Y COTS integration P4 COTS maintenance and evolution Version 1.15 24-May-2004 7 -1:08 AM 08.03.2016 The revised common COTS-based development process has four phases, P1-P4: P1: Decide the whole development process (waterfall, prototyping, etc.) first. P2: In one phase of the development process (requirement, design, or implementation), developers will decide whether they should buy a COTS component from a third-party company or should build the component themselves. When to decide this issue is different based on the whole development process and other factors [Li04b]. In this phase, the main issue is to identify and evaluate the possible risks between build and buy. P3: After the developers decided to buy COTS components from the market, they should start to perform some risk reduction (mitigation) based on the risks they identified. The next step is to search for and evaluate the COTS components. When to select the COTS components is also different based on the developers experience with various COTS components [Li04b]. P4: After the COTS components have been selected. The next step is to integrate them into the system. This process is different from the COTS-based development process proposed by Boehm et al. [Boehm99]. Their spiral model proposed to discover the risk first and decide the waterfall or prototyping process later based on the possible risks [Boehm88]. Our process proposes that the main processes are not decided by the COTS-related risks. They may be decided by other possible risks first. After the project manager has decided to use COTS components, the process may start to be COTS-related risk driven. This process is similar to that proposed by Morisio et al. [Morisio00]. The difference is that our results showed several possible variances [Li04b]. Morisio et al. pointed at some possible risks in COTS-based development. Our results show that there are two levels of risks in COTS-based development and each level may need a different kind of risk reduction strategies. Before the developers decided to buy COTS components instead of building them in-house, they must identify and compare the possible risks between the two alternatives based on their project context. For example, they need to check if they have such prior experience, and if their requirements are flexible enough etc. After they have decided to buy COTS components, some project level risk reduction should be done immediately, such as re-organizing the group to include experienced personnel. In the COTS component selection procedure, they also need to do some risk management based on the COTS component characteristics. For example, if they have no previous experience with a specific COTS component, they may need to spend a lot of time on understanding and testing it. On the other hand, they may not need much effort on this issue if they have used the COTS components several times before. 1.2 Research motivation The purpose of this study includes two parts: - Further investigation of the hypotheses we tested in the prestudy Version 1.15 24-May-2004 8 -1:08 AM 08.03.2016 - To study the above process model and related risks management issues we discovered from the prestudy. From the comments of we got from colleagues, we found that the main limitation of our current study is that those hypotheses we tested in the prestudy are very independent, and some of them have context validity problems because they look very obvious. However, after a careful analysis of these hypotheses and the new findings we gathered from the results of the open questions, we found that all of them are relevant to one common issue: The risk management in the revised COTS-based process model we mentioned above. We therefore decided to merge the two research purposes under the framework of risk management in the COTS-based development process. 1.3 Literature review We did a literature review of the previous studies on the risk management issues in COTS-based development processes. - Most previous studies are case studies that gathered a lot of different risks [Rose03], [Kotonya01]. These studies proposed risks and strategies on how to resolve them. The first limitation is that most of them mixed COTS component level and project level risks together. The second limitation is that there is no systematic summary on COTS component characteristics and project contexts of these risks and risk management methods. Their risk reduction strategies are case by case. If the developer just follows their suggestions, it may not be a cost-effective way, for example, to use a very formal evaluation process to evaluate a very familiar and unimportant COTS component. Another limitation is that there are too many proposed COTS component related risks and the inter-relationship between these risks is not clear. That two or more risks have an inter-relationship means that the occurrence of one risk might trigger the occurrence of one or several other risks, which might not otherwise occur. It is therefore hard for the developers to catch the real risks and make a proper risk reduction plan. There is no factor analysis to see if some of them have a real inter-relationship. - The most influential study in this field was made by Boehm in the COCOTS project [Abts00] [COCOTS00]: The first limitation of their research is that they assumed that every process using COTS components should start with risk analysis. However, our previous result concluded that the risk-driven process starts only after the project members have decided to use a COTS component instead of building the component themselves. The second limitation is that they mixed the COTS component level and project level risks together and calculated the possible cost by mixing them together. It does not look reasonable from our prestudy results, because project level risks may have more influence, since they are more general than COTS component level risks, which are more specific. Version 1.15 24-May-2004 9 -1:08 AM 08.03.2016 Another limitation is that they didn’t touch the risk reduction issues or analyze the reduction strategies to see if they really worked. Lastly, the empirical base mostly cover large companies in aerospace and defense, - A major inspiration for this survey is the study by Torchiano and Morisio [Torchiano04]. They interviewed seven small and medium sized software companies in Norway and Italy. Their results are summarized in six theses, and challenge many “assumed” truths about COTS-based development: T1: Open source software is often used as closed source. T2: Integration problems result from lack of compliance with standards; architectural mismatches constitute a secondary issue. T3: Custom code mainly provides additional functionalities (i.e. addware, not glueware). T4: Developers seldom use formal selection procedures. Familiarity with either the product or the generic architecture is the leading factor in selection. T5: Architecture is more important than requirements for product selection. T6: Integrators tend to influence the vendor on product evolution whenever possible. However, the study covers few respondents, and there is a need for a more representative study. 2. Results of the prestudy We proposed a total of 10 hypotheses (See Appendix B) before, and tested them in the prestudy [Conradi04] [Li04a]. Although we planned to delete 6 and continue 4 of them initially, we decided to revise some of them, and change the delete/continue decision based on the intention of our research. The revised hypotheses and theses are listed in Appendix B. Hypotheses/theses relevant to risk management will be kept in this study, so that they can be tested in the future. The possible hypotheses that will be kept are (The same sequence number as Appendix B): H01, H02, H04, and H10. New ones are Hx1, New Hx2. Version 1.15 24-May-2004 10 -1:08 AM 08.03.2016 3. Research Design 3.1 General design Based on our research purpose and the limitation of current studies, we generalized several research questions as follows: - RQ1: What are the main motivations of using OTS components instead of building in-house? There are several previous studies which mention the motivation of using OTS components, such as shorter time-to-market, better quality. Our previous studies pointed out that some projects are using OTS components because they just want to keep up with new technology or follow some industry standard. So, it is important to know the key motivation of using OTS components. The motivation may affect the possible risks they may meet. - RQ2: What are the real common OTS-based process models, and what are the possible variances? The rationale of this research question is to check whether the new OTS-based process model [Li04b] we discovered in our prestudy is correct or not. - RQ3: What project-level risks have been identified and their relationships with the project contexts? Which risk reduction methods have been performed from the project level and the results? There are two levels of risks which need to be identified and mitigated in OTSbased projects: project level risks and OTS component-level risks. Project level risks are high-level risks that are relevant to all components of the system. OTS component-level risks are low-level risks that are relevant to only one specific OTS component. When the project managers decide to use OTS components instead of building inhouse, they need to start to identifying and evaluating the project-level risks in the OTS-based projects. The possible risks are: 1. System requirement always change, the OTS component cannot keep up with the requirement changes 2. Lack of skilled personnel in OTS component evaluation and integration 3. … The second step in risk management is a risk reduction plan. Many project level risk reduction methods have been proposed in the OTS-based development. For example: Involving all stakeholders in the OTS component selection; Starting the integration testing as early as possible, etc. There are few empirical studies on Version 1.15 24-May-2004 11 -1:08 AM 08.03.2016 whether these methods can help mitigate the risks. It will be especially helpful if we test these methods to see if the really helped to solve the risks. It can help the project managers to design correct risk reduction strategies based on the risks they discovered. - RQ4: What OTS component-level risks have been identified and their relationships with OTS component characteristics? Which risk reduction methods have been done for specific OTS components and the results? In the process of OTS component selection, integration and maintenance, the project managers may identify a lot of risks for specific OTS components, since different OTS components may have different related risks. This is on a case-by-case basis. The possible risks are: 1. Overly optimistic expectation of OTS component quality attributes 2. Inadequate provider support for a OTS component 3. Faulty provider claims about the functionality of a OTS component 4. … In order to identify these risks in advance, we need to find the relationship between them and the characteristics of specific OTS components, such as the complexity of the interface, the market share of the provider, etc. After the risks for specific OTS components have been identified, some proper risk reduction methods should be performed to solve them. There are also many risk reduction methods proposed for the OTS component level. For example, use formal selection methods to select and evaluate OTS components, and use a wrapper to protect OTS components etc. There are few empirical studies to test whether these methods really work or not. Using these methods blindly may cost a lot. 3.2 Detailed design 3.2.1 RQ1: Motivation of using COTS/OSS components instead of building in-house. (Exploratory study) RC: check that all this is covered, especially for OSS issues?? What is the driving force (i.e. if it is cost-driven, schedule-driven, technology driven) for the project to use COTS/OSS components? To what extend will COTS/OSS components are expected to contribute to achieving such objection? For this research question, we just want to know the distribution of motivation for using COTS/OSS component. These motivations are the key factors in their build vs. buy decisions. Motivations may have a relationship with risks they may meet in their project and the corresponding risk reduction methods they use. H_OSS_1: Most of the time OSS is used as closed source, i.e. source code is not modified or even looked at. Version 1.15 24-May-2004 12 -1:08 AM 08.03.2016 H_OSS_2: The main motivation for using OSS vs. COTS is reduction of the risk of product evolving in an unwanted direction (which includes producer going out of business, producer being acquired and changing market strategies, etc.) H_OSS_3: Other motivation for choosing OSS are (in this order??): - risk reduction (see H_OSS_2) - philosophical (OSS process grants better quality) - economical (OSS can be acquired at no cost) - technical (OSS can be modified) 3.2.2 RQ2: Actual OTS-based process (Descriptive study) For this research question, we need to answer the following sub-questions: Is the main process undisturbed by OTS, with rather small variations? Was the main process decided before/after OTS component decision? What main process was used: waterfall, incremental, prototyping …? Who decided the main process: the customer, the developer, or the project manager? What process changes/activities were introduced in the development process, by whom (developer, manager, customer) and when (in what phase: Requirements, Design, Implementation): - buy vs. build decision - component selection? - company policy What new roles were added/needed? - e.g. knowledge keeper, ... - person competence/experience We gathered some theses and hypotheses for this research question. So, the main research method is descriptive study (hypothesis testing). The hypotheses relevant to this research question are: New Hx1: Using or not using OTS components has no relationship with main processes used (Appendix B). 3.2.3 RQ3: Project level risks (Descriptive study) Project managers may identify the risks in two phases: before the start of the project and at the end of the project. In our study, we focus on the risks discovered at the end of the project with some possible risk reduction, i.e. the area marked by “X” in the following table. Did not perform risk Performed risk reduction reduction Risks identified before the project Risks discovered during or X after the project Version 1.15 24-May-2004 13 -1:08 AM 08.03.2016 To answer the research question, we need to answer three sub-questions: RQ3-1: What project-level risks have not been discovered in the projects? RQ3-2: What are the relationships between those project-level risks and the project contexts? RQ3-3: What risk reduction methods have been used, and whether these risk reduction methods solved the corresponding risks? We gathered some project-level risks that have been proposed by papers in the literature survey [Rose03] [CBSEnet] [FAA03] [Boehm03a]. We categorized them based on different issues: system requirement, human resource, cost estimation, etc. Project level risks management performance Dimension Reference PRisk 1: Because system requirements change continuously, Requirement [Rose03] it is hard to change OTS components to keep up with these causes OTS [Boehm03 changes. component a] change PRisk 2: Because system requirements are not flexible, it is OTS [Rose03] hard to negotiate the requirements with the customer even component [Boehm03 most-fit OTS components from the market cannot be found causes a] requirement [CBSEnet] to change PRisk 3: Overly optimistic expectations about the effort of Cost [Rose03] OTS component selection. estimation [CBSEnet] in OTS component selection PRisk 4: Overly optimistic expectations about the effort of Cost [Rose03] OTS component integration and integration testing. estimation [CBSEnet] in OTS component integration PRisk 5: The performance/reliability/security of the Quality of [Rose03] integrated system is worse than expected because of integrated [Boehm03 interoperability problems between OTS components. system. a] [CBSEnet] PRisk 6: When a defect is identified, it may not be very Locate and [Rose03] obvious where the cause of the problem is located (inside or report outside OTS components). defects PRisk 7: Different OTS components have different upgrade OTS [Rose03] lifecycles. It is difficult to plan the maintenance activities in component [CBSEnet] advance. change coordination For sub-question RQ3-1, we just want to calculate the distribution of risks. Version 1.15 24-May-2004 14 -1:08 AM 08.03.2016 For the sub-question RQ3-2 (i.e. relationship risks and project contexts), we designed the following possible hypotheses based on our literature survey: Possible PHx2: There is no relationship between the number of OTS components used in the project and the cost-estimation related risk (PRisk 3, 4) occurrences [COCOTS00] [Boehm03a]. Possible PHx3: There is no difference in requirement causes OTS component change risk (PRisk 1) occurrences between different domains [Ropponen00]. Possible PHx4: There is no difference in OTS component causes requirement to change risk (PRisk 2) occurrences between different domains [Ropponen00]. For the sub-question RQ3-3 (i.e. the effect of risk reduction methods), we would like to suggest that the proposed risk reduction methods can solve the corresponding risks. We gathered some possible project-level risk reduction methods as follows: Project-level risks PRisk 1,2 PRisk 4 PRisk 4 PRisk 5 PRisk 6 PRisk 6 Project-level risk reduction methods Involve users in the requirement and OTS component selection phase. Select OTS components mainly based on integration easiness (architecture and standard match) instead of expected functionality A most likely OTS component (package) learning curve must be accounted during plan and schedule Significant OTS component quality features must be tested First integrate the OTS components that you had no previous experience Do integration testing immediately after an OTS component has been integrated References [FAA03] [Rose03] [Li04b] [Boehm03a] [Boehm03a] [Rose03] [Rose03] The possible Null hypotheses are: There is no relationship between whether risks may happen and whether the corresponding risk reduction methods have been used. For example: New Hx2: There is no relationship between OTS component causes requirement to change risk occurrences (PRisk 2) and customer involvement (Appendix B) H10: OTS component integration risks (PRisk 4) and selection strategy (Appendix B) Version 1.15 24-May-2004 15 -1:08 AM 08.03.2016 Possible PHx5: There is no relationship between different project-level risks and corresponding risk reduction methods used. (It actually includes 7 independent hypotheses. We will test the relationship between PRisk1-PRisk 7 and their corresponding proposed risk reduction methods) 3.2.4 RQ4: OTS component-level risks (Descriptive study) Most research questions and hypotheses in the prestudy focus on this part. To investigate this research question, we need to answer two sub-questions: RQ4-1: What are the relationship between the possible OTS component-level risks and OTS component characteristics? RQ4-2: What are the results of using OTS component-level risk reduction methods? The OTS component-level risks are those low-level risks that are different between different OTS components in the same project. The possible OTS component level risks are as following: OTS component-level risks Dimension CRisk 1: Faulty provider claims about the standard/ Standard version of standard that OTS component follows mismatch Reference [Torchiano04] CRisk 2: Components have different architecture assumption either between component to component or between components to application. CRisk 3: OTS component can not provide all expected functionality CRisk 4: OTS component is not backward compatible. (i.e. new version did not support the functionality of the old version) CRisk 5: Large OTS component provider companies do not usually allow negotiation about their products. Middle size companies provide the best support. OSS provides better communication between developers and integrators. Architectural mismatch [Torchiano04] Functionality deficiency Maintenance [Torchiano04] Provider support ++ later [CBSEnet] The characteristics of an OTS component include: 1. OTS component full name 2. OTS component origin (COTS or OSS) 3. OTS component type (COM, CORBA, EJB, .Net, Web Service, Library etc.) 4. OTS component functionality 5. Experience with the OTS component 6. Whether the source code has been modified or not The possible hypotheses are: Version 1.15 24-May-2004 16 -1:08 AM 08.03.2016 H01: standard mismatch risk / architecture mismatch risk (CRisk 1 and 2) and OTS component type (Appendix B) H02: Glueware (CRisk 1 and 2) vs. addware (CRisk 3) and OTS component type (Appendix B) Glueware is needed solve both standard mismatch (crisk1) and architecture mismatch (CRisk 2). Because of time limitation, we will ask the respondent to select only max. 3 OTS components, which they are familiar with and used in the projects To answer the second sub-question, we identified many risk reduction methods in the OTS component level, such as: OTS component- OTS component-level risk reduction References level risks methods CRisk 1: Hand-on trial beyond literature review or [Boehm03a] provider provides documentation CRisk 2,3: Identify the core requirement; [Boehm03a] Filter all the candidates; [Li04b] Proceed for a more detailed assessment with the remaining OTS component candidates CRisk 2,3: Involve OTS component knowledgeable [Li04b] individuals in OTS component selection, [Torchiano04] design, integration CRisk 2,3: Selecting evaluation criteria (factors) [ComellaCollecting and assigning values to these Dorda02] criteria Making decision using formal decision making methods, such as MAUT or MCDA CRisk 2,3: Select unfamiliar OTS components in the [Rose03] early phase [Li04b] [Moriso00] CRisk 2,3: Add glueware/addware [Torchiano04] CRisk 4: Have a senior person to follow the OTS [Rose03] component’s future updates and the [Li04b] possible effects CRisk 4: Maintain a continual watch on the market [Rose03] (newsgroup, OSS, cooperate with [Conradi04] knowledgeable persons) and look for substitute products that might replace an old one CRisk 5: Have research (newsgroup, OSS, [Rose03] cooperate with knowledgeable persons) on provider support ability and reputation. Version 1.15 24-May-2004 17 -1:08 AM 08.03.2016 The possible are: H04: The frequency of using familiarity process is more than the frequency of using formal process (Appendix B) Possible PHx6: There is no relationship between the phase of OTS component selection and the project members’ experience with the OTS components [Li04b]. Version 1.15 24-May-2004 18 -1:08 AM 08.03.2016 4. Questionnaire design 4.1 General questionnaire design The questionnaire will include the following sections: 4.1.1 The project background - The domain The development language The development effort How large a percentile of functionalities is provided by OTS components vs. functionalities provided by application - How many OTS components were used in the project - How many developers have experience with OTS-based development - The constrains on the project (time-to-market, reliability, security, …) 4.1.2 Motivation of using OTS components - What is the driving force (i.e. if it’s cost-driven, schedule-driven, technology driven) for the project to use COTS/OSS components? - To what extent will COTS/OSS components be expected to contribute to achieving these objectives? 4.1.3 The project process - What main process: waterfall, incremental, prototyping …? Who decided the main process: customer, developer, or project manager? - Was the main process decided before/after the OTS component decision? - When did they do the buy vs. build decision and component selection (in what phase: Requirements, Design, coding)? - What new roles were added / needed? - e.g. knowledge keeper, (Dedicated or not dedicated?) 4.1.4 Project level risks What is your opinion on the following aspects of your project? Corresponding risk a) The project was not completed according to schedule PR3 b) Effort to select OTS components were not satisfactorily PR3 estimated Version 1.15 24-May-2004 19 -1:08 AM 08.03.2016 c) Effort to integrate OTS components were not satisfactorily estimated d) OTS components negatively affected system reliability e) OTS components negatively affected system security f) OTS components negatively affected system performance g) Requirements were continuously changed h) OTS components could not be sufficiently adapted to changing requirements i) Project could not (re)negotiate requirements with the customer, if OTS components could not satisfy all requirements j) It was difficult to identify whether defects were inside or outside the OTS components k) It was difficult to plan system maintenance, because different OTS components had asynchronous release cycles l) It was difficult to update the system with the last OTS component version m) OTS components were not satisfactorily compatible with production environment when the system was deployed n) Information on the reputation and technical support ability of provider were inadequate o) Provider did not provide enough technical support/ training PR4 PR5 PR5 PR5 PR1 PR1 PR2 PR6 PR7 PR7 PR6 Provider related risk Provider related risk 4.1.5 Project level risks management What actions had been performed in the development or maintenance process of the project? Corresponding risk a) Customer had been actively involved in making the PR1,2 “acquire” vs. “build” decision b) Customer had been actively involved in OTS component PR 1,2 selection c) OTS components were selected mainly based on PR 5 architecture and standards compliance, instead of expected functionality d) OTS components qualities (reliability, security etc.) were PR 5 seriously considered in selection e) Effort in learning OTS component was seriously PR 3 considered in effort estimation f) Effort in black-box testing OTS component was PR 4 seriously considered in effort estimation Version 1.15 24-May-2004 20 -1:08 AM 08.03.2016 g) Unfamiliar OTS components were integrated first h) Did integration testing incrementally (after each OTS component was integrated) i) Local OTS-experts followed the OTS component updates and possible consequences actively j) Maintained a continual watch on the market and looked for possible substitute components k) Maintained a continual watch on provider support ability and reputation. PR 6 PR 6 PR 7 Provider related risk Provider related risk 4.1.6 The OTS components background OTS component ID Comp.1 OTS component full name OTS component main functionality OTS component origin (COTS or OSS) Source code had been changed or not OTS component model (COM, CORBA, EJB, .Net, Web service, Library etc.) Experience with the OTS component Impact on your project/process (when the component was selected) 4.1.7 OTS component-level risks Comp.1 a) The OTS component did not follow the industry standard as provider claimed b) OTS component have different architecture assumption with other component in the system c) OTS component cannot provide all expected functionality d) OTS component’s new version is incompatible with the old one e) Provider does not want to change the OTS component functionality as we required Version 1.15 24-May-2004 Risk CRisk 1 CRisk 2 CRisk 3 CRisk 4 CRisk 5 21 -1:08 AM 08.03.2016 4.1.8 OTS component-level risk reduction methods a) Searched Internet for possible OTS component candidates. b) Got recommendation of possible OTS component candidates from customer c) Got recommendation of possible OTS component candidates from local colleague/OTS-expert d) Assigned values to selected evaluation criteria, calculated a number using formal decision making algorithm/method to compare possible candidates e) Limited possible candidate into 1-3 components and investigated them locally by reading literature or other documentation f) Did “hands-on” try-out of 1-3 components, e.g. on a downloaded demo version. Corresponding risks CRisk 4, 5 CRisk 4, 5 CRisk 1, 2,3 CRisk 1,2,3 CRisk 1,2,3 CRisk 1,2,3 4.1.9 The background information of the respondent - The role in the project The experience with OTS-based projects The experience with software development The education background 4.2 Data analysis methods New Hx1: Using or not using OTS components has no relationship with main processes used (Appendix B). Corresponding question Question 3.3: when was the main development process decided Analysis method T-test: to compare the differences between two options Sample size Reliability and validity issues?? Possible PHx2 (May be a research question instead of a hypothesis): There is no relationship between the number of OTS components used in the project and the cost-estimation related risk (PRisk 3, 4) occurrences [COCOTS00] [Boehm03a]. Corresponding question Question 5.1 and 4.1 (alternative a, b and c, i.e. cost-estimation related risk) Analysis method Two variables: Number of components used in the project (Interval) Version 1.15 24-May-2004 22 -1:08 AM 08.03.2016 Cost-estimation related risk occurrences (Ordinal) F-test or just describe the distribution Sample size Reliability and validity issues Possible PHx3 (May be a research question instead of a hypothesis): There is no difference in requirement causes OTS component change risk (PRisk 1) occurrences between different domains [Ropponen00]. Corresponding question Question 1.2.3 and 4.1 (alternative h): domain vs. adapt component Analysis method Two variables: Different domains (Nominal) Requirement causes OTS component change risk (Ordinal) Statistical Test Kruskal-Wallis One-way ANOVA (If the distribution of the result doesn’t follow the required distribution, we just describe the distribution) Sample size Reliability and validity issues Possible PHx4 (May be a research question instead of a hypothesis): There is no difference in OTS component cause requirement to change risk (PRisk 2) occurrences between different domains [Ropponen00]. Corresponding question Question 1.2.3 and 4.1 (alternative l): domain vs. adapt requirement Analysis method Two variables: Different domains (Nominal) OTS component cause requirement change risk (Ordinal) Statistical Test Kruskal-Wallis One-way ANOVA (If the distribution of the result doesn’t follow the required distribution, we just describe the distribution) Sample size Reliability and validity issues New Hx2: There is no relationship between requirement management risk occurrences and customer involvement (Appendix B) Corresponding question Question 4.1(alternative h,i) and 4.2 (alternative a,b): requirement management risk vs. customer involvement Analysis method Two variables: requirement management risk(Ordinal) Customer involvement (Ordinal) Statistical Test Spearman correlation Test Sample size Version 1.15 24-May-2004 23 -1:08 AM 08.03.2016 Reliability: Alpha analysis will be used to test the reliability of variable requirement management risk (i.e. to see if alternatives h, and i in 4.1 are consistent) Construct Validity: Factor analysis will be used to test the alternatives h and i in 4.1. H10: OTS component quality risks and selection strategy (Appendix B) Corresponding question Question 4.1 (alternatives d,e,f) and 4.2 (alternative c,d) Analysis method Two variables: quality risks (Ordinal) Selection strategy (Ordinal) Statistical Test Spearman correlation Test Sample size Reliability: Alpha analysis will be used to test the reliability of variable quality risk (i.e. to see if alternatives d, e, and f in 4.1 are consistent) Construct Validity: Factor analysis will be used to test the alternatives d, e, and f in alternative 4.1. Possible PHx5: There is no relationship between different project-level risks and corresponding risk reduction methods used. (It actually includes several independent hypotheses. We will test the relationship between PRisk1-PRisk 7 and their corresponding proposed risk reduction methods, see chapter 4.1.4. and 4.1.5) Corresponding question Questions 4.1 and 4.2 Analysis method Two variables: Specific project-level risk occurrences (Ordinal) Frequency of corresponding risk reduction methods used (Ordinal) Statistical Test Spearman correlation Test Sample size Reliability: Alpha analysis will be used to test the reliability of variable, which is corresponding risk (similar to H10). Construct Validity: Factor analysis will be used to test the alternatives in 4.1 (similar to H10). H01 (May be a research question instead of a hypothesis): standard mismatch risk / architecture mismatch risk (CRisk 1 and 2) and OTS component type (Appendix B) Corresponding question Question 5.7 and 5.10 (alternatives a and b): architecture/standard mismatch vs. component type Version 1.15 24-May-2004 24 -1:08 AM 08.03.2016 Analysis method Two variables: Integration risk occurrences (Nominal) OTS components type, i.e. COM, CORBA, EJB, .Net or Library (Nominal) Statistical Test Distribution (Because the distribution of OTS component type may not follow required discribution, we just describe the distribution instead of hypothesis testing) Sample size Reliability and validity issues H02 (May be a research question instead of a hypothesis): Glueware (CRisk 1 and 2) vs. addware (CRisk 3) and OTS component type (Appendix B) - Corresponding question Question 5.7 and 5.10 (glueware needed, i.e. alternative a in 5.10 and alternative b in 5.10 vs. addware needed, i.e. alternative c in 5.10) : glueware/addware vs. component type Analysis method Two variables: Custom code related risk occurrences (Nominal) OTS components type, i.e. COM, CORBA, EJB, .Net or Library (Nominal) Statistical Test Distribution (Because the distribution of OTS component type may not follow required discribution, we just describe the distribution instead of hypothesis testing) Sample size Reliability and validity issues H04: The frequency of using familiarity process is more than the frequency of using formal process (Appendix B) Corresponding question Question 5.11 (select both alternative d are formal process) and 5.11 (select alternative e or f is familiar process): formal process vs. familiar process Analysis method Two variables: The frequency of formal process used (Interval) The frequency of familiar process used (Interval) Statistical Test T-test Sample size Reliability and validity issues?? Possible PHx6: There is no relationship between the phase of OTS component selection and the project members’ experience with the OTS components [Li04b]. Corresponding question Question 5.8 and 5.9 Analysis method Version 1.15 24-May-2004 25 -1:08 AM 08.03.2016 Two variables: The phase of OTS component selection (Ordinal) The project members’ experience with OTS component (Ordinal) Statistical Test Spearman Sample size Reliability and validity issues?? H_OSS_1 (May be a research question instead of a hypothesis): Most of the time OSS is used as closed source, i.e. source code is not modified or even looked at. Corresponding question Question 5.5, 5.6 H_OSS_2 (May be a research question instead of a hypothesis): The main motivation for using OSS vs. COTS is reduction of the risk of product evolving in an unwanted direction (which includes producer going out of business, producer being acquired and changing market strategies, etc.) Corresponding question Question 2.2 H_OSS_3 (May be a research question instead of a hypothesis): Other motivation for choosing OSS are: - risk reduction (see H_OSS_2) - philosophical (OSS process grants better quality) - economical (OSS can be acquired at no cost) - technical (OSS can be modified) Corresponding question Question 2.2 Version 1.15 24-May-2004 26 -1:08 AM 08.03.2016 References: [Abst00] Chris Abst, Barry W. Boehm, and Elisabeth B. Clark, “COCOTS: A COTS Software Integration Lifecycle CostModel - Model Overview and Preliminary Data Collection Findings", Technical report USC-CSE-2000-501, USC Center for Software Engineering, 8 March 2000, 10 p. Available on: http://sunset.usc.edu/TechRpts/Papers/usccse2000-501/usccse2000-501.pdf. [Boehm88] Barry W. Boehm, “A Spiral Model of Software Development and Enhancement”, IEEE Computer, 21(5):61-72, May 1988. [Boehm99] Barry W. Boehm and Chris Abts, “COTS integration: Plug and Pray?” IEEE Computer, 32(1):135-138, Jan. 1999. [Boehm03a] Barry W. Boehm, Dan Port, Ye Yang, and Jesal Bhuta, ” Not All CBS Are Created Equally COTS-intensive Project Types”, Proc. Second International Conference on COTS-Based Software Systems (ICCBSS’03), Ottawa, Canada, February 10-13, 2003, Springer Verlag LNCS 2580, ISBN 3-540-00562-5, pp. 36-50. [Boehm03b] Donald J. Reifer, Victor R. Basili, Barry W. Boehm, and Betsy Clark, “Eight Lessons Learned in COTS-based Systems Maintenance”, IEEE Software, 20(5):94-96, Sept./Oct. 2003. RC: p.t. not used?? [CBSEnet] CBSE Work Package WP4 D8.2.1 – COTS Chapter. Available on www.cbsenet.org. Add more detail?? [COCOTS00] Chris Abts, Barry W. Boehm, and Elizabeth Bailey Clark, “COCOTS: A COTS Software Integration Lifecycle Cost Model- Model Overview and Preliminary Data Collection Findings”. Technical report: USC-CSE-2000-501. Available on: http://sunset.usc.edu/publications/TECHRPTS/2000/usccse2000-501/usccse2000-501.pdf. [Comella-Dorda02] Santiago Comella-Dorda, John C. Dean, Edwin Morris, and Patricia Oberndorf, “A Process for COTS Software Product Evaluation”, Proc. First International Conference on COTS-Based Software Systems (ICCBSS’02), Orlando, FL, USA, February 4-6, 2002, Springer Verlag LNCS 2255, ISBN 3-540-43100-4, pp. 176-187. [Conradi04a] Reidar Conradi, Jingyue Li, Finn Olav Bjørnson, Dag Sjøberg, and Vigdis By Kampenes, “A State-of-the-Practice Survey on COTS component Based Development in IT Companies in Norway” (prestudy report). NTNU, Internal report, 27 Feb. 2004, 61 p. Available on http://www.idi.ntnu.no/~epos/cots/public_html/COTS_survey_report_internal_version.do c. Version 1.15 24-May-2004 27 -1:08 AM 08.03.2016 [FAA03] Federal Aviation Administration, Software Engineering Resource Center, “FAAA COTS Risk Mitigation Guide: Practical Methods For Effective COTS Acquisition and Life Cycle Support”, 5 March 2003, 113 p. Available on http://www.faa.gov/aua/resources/cots/Guide/CRMG.htm. [Kotonya01] Gerald Kotonya and Awais Rashid, “A Strategy for Managing Risk in Component-based Software Development”, 27th EUROMICRO Conference 2001: A Net Odyssey, 4-6 Sept. 2001, Warsaw, Poland. IEEE CS Press, ISBN 0-7695-1236-4, pp. 1221. [Li04a] Jingyue Li (Ed.), “Summary of COTS hypotheses & theses”, NTNU, Internal report, 4 March 2004, 4 p. Available on http://www.idi.ntnu.no/~epos/cots/pub/Summary-of-hypotheses-04March.doc. [Li04b] Jingyue Li, Finn Olav Bjørnson, Reidar Conradi, and Vigdis By Kampenes, “An Empirical Study of Variations in COTS-based Software Development Processes in Norwegian IT Industry”, NTNU, 25 March 2004, 12 p. Draft paper submitted to Metrics’2004. Available on http://www.idi.ntnu.no/~epos/cots/public_html/An_empirical_study_in_variances_of_C OTS_based_development.pdf (prev. version!). [Morisio00] Maurizio Morisio, Carolyn B. Seaman, Amy T. Parra, Victor R. Basili, Steve E. Kraft, and Steven E. Condon, “Investigating and Improving a COTS-Based Software Development Process”, Proceeding of 22nd International Conference on Software Engineering (ICSE’00), Limerick, Ireland, IEEE CS Press, June 2000, pp. 31-40. [Ropponen00] Janne Ropponen and Kalle Lyytinen, “Components of Software Development Risk: How to Address”, IEEE Transactions on Software Engineering, 26(2):98-111, February, 2000. [Rose03] Louis C. Rose, “Risk Management of COTS based System development”, In Alejandra Cechich, Mario Piattini, and Antonio Vallecillo (Eds.): Component-Based Software Quality - Methods and Techniques. Springer Verlag LNCS 2693, ISBN 3-54040503-8, 2003, pp. 352-373. [Torchiano04] Marco Torchiano and Maurizio Morisio, "Overlooked Facts on COTSbased Development", IEEE Software, 21(2):88-93, March/April, 2004. Version 1.15 24-May-2004 28 -1:08 AM 08.03.2016 Appendix A. Final questionnaire Invitation letter (in English) ++ email/postal mail address?? Dear industrial colleague! NTNU in Trondheim and the Simula Research Laboratory in Oslo are jointly participating in the research projects SPIKE (on process improvement) and INCO (on incremental/component-based system development). As part of this research, we wish to perform a questionnaire-based survey in Norwegian ICT industry on OTS-based system development (Off-The-Shelf, including Open Source Software and Commercial Off-The-Shelf Software). The subject is highly relevant for both research and industry. We have already had a test run with a trial questionnaire in August 2003 with 6 persons, and 16 structured interviews in November 2003 - January 2004. We now want to expand the survey to a larger part of the Norwegian ICT sector, and to perform parallel surveys in cooperation with research colleagues at IESE in Kaiserslautern in Germany and Politecnico di Torino in Italy. The revised questionnaire has now been tested on about 15 persons in April-May 2004 in these three countries. We now want to start the main survey, involving over 200 ICT companies (large, medium, and small) in each country. We therefore look for software developers in your company with hands-on experience with OTS-based system development. In this request, we attach an electronic version of the questionnaire as a word file. We will also contact you by phone. If you or a colleague volunteer to participate in this survey, we will send you (called a “respondent”) a userid and password to access a web-based version of the questionnaire. Although we prefer that you fill in the web-version, you can also fill in the questionnaire on paper (after printing out the word file) and return it by postal mail, or fill in the word file electronically and return to us as an email attachment. All provided information will be treated strictly confidential. A summary of the results will be returned to the respondents as a technical report, and by a web file. Respondents will also be invited to a public sumup seminar to discuss the findings. We will also arrange a lottery among the respondents, where the winner will receive a travel of 10 000 NOK. Two PhD fellows at NTNU, Jingyue Li and Odd Petter N. Slyngstad, will be responsible for carrying out the survey. The main responsible in Norway is prof. Reidar Conradi at NTNU. The questionnaire is divided into 6 sections, where section 1 and 6 contain questions regarding context/background, and sections 2-5 ask for information more specific to your OTS-based project. There are ca. 40 question in total, and most are multiple-choice questions. This final version of the questionnaire will require 20-30 minutes to fill out. So, would you be willing to participate in such a survey? As mentioned above, we attach an electronic copy of the questionnaire. If you or a colleague volunteer to participate in the survey, we will in a few days send you a user login and password to access the webversion. - Best regards, Reidar Version 1.15 24-May-2004 29 -1:08 AM 08.03.2016 Please read carefully before completing the questionnaire Survey Objective Coverage Confidentiality Language Benefits Some general instructions The purpose of this questionnaire is to survey the current state of practice in component based software engineering (CBSE) in various organizations and projects, involving the ICT companies in several countries. The background we want to measure, are hands-on experience with CBSE-development in concrete and completed projects, preferably with a maintenance phase afterwards. We want answers based on concrete experience (by your team etc.), not more general company information or a private/textbook opinion on CBSE. This questionnaire deals with reuse of external components, i.e. COTS or OSS components (see definitions later). The responses of this questionnaire will be handled confidentially. Whether a company has participated is also confidential. The conclusion of this survey provides only the current state of practice in CBSE in the ICT industry. Detailed information of each company will not be included in the final report. It is not possible to draw conclusions about your company from the research results. You are expected to answer all the questions in your native language, but you may also respond in English. The final report of the survey will be available to all respondents, and sent by email or through a web-link. A hard copy of the report can be sent if a post address is provided. In addition, a public, sum-up seminar will be arranged. Use an “X” when you mark an answer to a question, e.g. in a table. Filling-in of the questionnaire should not take more than half an hour. Name of respondent: Last Name (Family Name) Middle Name First Name Age: Gender (Male/Female): Email address: Phone: Fax: Name of the Company /Business unit: Postal address of Company/Business unit: Postal Town Country Code Date of response Time used to fill in this questionnaire (in minutes): (mm/dd/yy): NB: The above information will be treated confidentially. Version 1.15 24-May-2004 30 -1:08 AM 08.03.2016 Our definition of concepts used in this questionnaire: Project: A software development project, in which the respondent has been involved. We aim for completed projects, possibly with maintenance, and possibly with several releases. Customer: Representing either an end-user, or a main contractor to which your organization is a subcontractor. Component: Software components are program units of independent production, acquisition, and deployment that can be composed into a functioning system. We limit ourselves to components that have been explicitly decided to either be built from scratch, or to be acquired externally as an OTScomponent. That is, to components that are not shipped with the operating system, not provided by the development environment, and not included in any pre-existing platform. That is, platform (“commodity”) software are not considered, e.g. an OS like Linux, DBMSes, various servers, or similar software. Furthermore, components usually follow some component model, as expressed by the COM, CORBA, EJB, .Net, or Web Service standards, or they can be a C++/Java library. OTS (Off-The-Shelf) component: A component that: is provided (by a so-called provider) from: - a commercial vendor (Commercial-Off-The-Shelf, COTS), or - the Open Source community (Open Source Software, OSS). The components may come with certain obligations, e.g. payment or licensing terms. NB: we do not consider proprietary components developed by some other organization in the same company, i.e. internal reuse. is not controllable, in terms of provided features and their evolution. is used as closed source, i.e. no source code is modified, even it is available. Typical COTS components are: Vector draw professional (3D modeling), Shamman Reports for Excel (Database reporting), Dynamic Cube (OLAP) etc. Typical OSS components are: Xerces (XML parser), Kiwi Toolkit (Class library), OpenEJB, Python (Interpreter) etc. System: Product delivered by the actual project, consisting of application plus components, but again excluding platform software. Application: Code built in-house to provide certain functionalities of the system. Glueware: Code to solve possible mismatch between components, or between components and application/platform. Addware: Code to add the functionalities which are expected but not provided by the components. The relationship between the four last concepts is shown in the following figure: Question for comments.Can you give an example of OTS components based on your understanding? _____________________________________________________________________ Version 1.15 24-May-2004 31 -1:08 AM 08.03.2016 Section 1: Questions on the context of the project and system 1.1 Information about the project The projects we want to investigate in this survey are completed software development projects using one or more OTS components. If you have experience with several such projects, please select the one that you are most familiar with, and base your answers on that project. 1.1.1 What was the total staff size of the project (full-time and part-time persons)? Full time: _________________ Part time: _________________ 1.1.2 How large a percentage of the project members have previous experience with general OTS-based development __ (%)? 1.1.3 What was the starting time of the project (mm/yy) / ? 1.1.4 What was the time of first complete delivery from the project (mm/yy) ___/____? 1.1.5 What was the development environment of the project (describe textually)? Programming Languages: ____________________ CASE (Computer Assistant Software Engineering) tools: _______________ 1.2 Information about the system 1.2.1 What were the main functionalities of the system (describe textually)? _____________________________________________________________________ _____________________________________________________________________ 1.2.2 What was the emphasis on the following characteristics of the system? [Mark one alternative per row] Very Low Medium High Very Don’t low high know a) Time-to-market b) Effort (cost) c) Reliability d) Security e) Performance f) Maintainability g) New functionality (first launch in the market) h) Improved functionality (over competitors) i) Other (please specify): ___________________ Version 1.15 24-May-2004 32 -1:08 AM 08.03.2016 1.2.3 What were the major types of industry / services (application domain) of the customers of the system? [Mark one or more alternatives] □ Bank/ Finance/ Insurance □ Other private services (wholesale, retail, entertainment, …) □ Public sector □ ICT industry □ Traditional industry/engineering/construction □ Other (please specify): _______________ 1.2.4 What is the executing environment of the system (describe textually)? OS (Operating System):_____________________________________ DBMS (Database Management System): _______________________ Other Supporting Software: __________________________________ 1.2.5 What is the current version/release of the system (Version/Release) ___/___? Version 1.15 24-May-2004 33 -1:08 AM 08.03.2016 Section 2: Questions on the motivation of using OTS components 2.1 To what extent did you expect, that the chosen OTS component(s) would contribute to achieve the following project/system targets? [Mark one alternative per row] Don’t Hardly Agree Agree Stron Don’t Project/system targets agree agree some mostly gly know at all what agree a) Shorter time-to-market b) Less development effort/cost c) Less maintenance effort/cost d) Larger market share e) Compliance with industrial standards f) Keeping up with the newest technology g) Better system reliability h) Better system security i) Better system performance j) Other (please specify): ________________________ 2.2 What were the specific motivations of using OSS Component(s) in your project? [NB: If you did not use a OSS Component in the project,please skip this question] [Mark one alternative per row] Don’t Hardly Agree Agree Strong Don’ Motivations agree agree some mostly ly t at all what agree kno w a) Reduce risk of provider going out of business b) Reduce risk of provider changing market strategies c) Reduce risk of selected component evolving into an unwanted direction d) Component can be acquired for free e) Source code is available and can easily be changed f) It was decided by customer g) Political reasons h) Other (please specify): ______________________ Version 1.15 24-May-2004 34 -1:08 AM 08.03.2016 2.3 What were the specific motivations of using COTS Component(s) in your project? [NB: If you did not use a COTS Component in the project,please skip this question] [Mark one alternative per row] Don’t Motivations agree at all Hardly Agree agree some what Agree mostly Stro ngly agre e Don’t know a) Reduce risk of bad quality, because components were paid for b) Reduce risk of poor security, because source code was closed/ unavailable c) Provider could give adequate technical support d) Provider may have investigated the market trends, and will give a component following them e) It was decided by customer f) Political reasons g) Other (please specify): __________________________ Version 1.15 24-May-2004 35 -1:08 AM 08.03.2016 Section 3: Questions on the general development processes 3.1 Please describe the main development process (e.g. waterfall, prototyping, incremental etc. – describe textually): ____________________________________________________________ ____________________________________________________________ 3.2 Who decided the main (i.e. lifecycle) process? [Mark one or more alternatives] □ Company/department rules □ Project manager □ Software architect □ Software developer □ Customer □ Other (please specify): _______________ 3.3 When was the main process decided? [Mark one alternative] □ Before the “acquire vs. build” decision, i.e. before the decision whether to acquire OTS components instead of building them in-house □ After such an “acquire vs. build” decision 3.4 Were there any dedicated personnel in your project to keep track of the OTS component knowledge/information? [Mark one alternative] □ No □ Yes If Yes, what is the role and OTS component-relevant experience of this person? _______________ Version 1.15 24-May-2004 36 -1:08 AM 08.03.2016 Section 4: Questions on the project level risk management 4.1 What is your opinion on the following aspects of your OTS-based project? [Mark one alternative per row] Don’t agree at all Hardl y agree Agree some what Agree Strong Don’t mostly ly know agree a) The project was not completed according to schedule b) Effort to select OTS components were not satisfactorily estimated c) Effort to integrate OTS components were not satisfactorily estimated d) OTS components negatively affected system reliability e) OTS components negatively affected system security f) OTS components negatively affected system performance g) Requirements were continuously changed h) OTS components could not be sufficiently adapted to changing requirements i) Project could not (re)negotiate requirements with the customer, if OTS components could not satisfy all requirements j) It was difficult to identify whether defects were inside or outside the OTS components k) It was difficult to plan system maintenance, e.g. because OTS components had asynchronous release cycles l) It was difficult to update the system with the last OTS component version m) OTS components were not satisfactorily compatible with production environment when the system was deployed n) Information on the reputation Version 1.15 24-May-2004 37 -1:08 AM 08.03.2016 and technical support ability of provider were inadequate o) Provider did not provide enough technical support/ training 4.2 What actions were performed during development or maintenance of the project? [Mark one alternative per row] Don’t agree at all Hardl y agree Agree some what Agree Strong Don’t mostly ly know agree a) Customer had been actively involved in the “acquire” vs. “build” decision of OTS components b) Customer had been actively involved in OTS component selection c) OTS components were selected mainly based on architecture and standards compliance, instead of expected functionality d) OTS components qualities (reliability, security etc.) were seriously considered in selection e) Effort in learning OTS component was seriously considered in effort estimation f) Effort in black-box testing OTS component was seriously considered in effort estimation g) Unfamiliar OTS components were integrated first h) Did integration testing incrementally (after each OTS component was integrated) i) Local OTS-experts followed the OTS component updates and possible consequences actively j) Maintained a continual watch on the market and looked for possible substitute components k) Maintained a continual watch on provider support ability and reputation. Version 1.15 24-May-2004 38 -1:08 AM 08.03.2016 Section 5: Questions on the OTS component level risk management 5.1 How many different OTS components were used in the project (Please fill in a number) ________? 5.2 Which were the name, version and functionality of OTS components used in the project? [NB: If there were more than five OTS components used in the project, please choose five you are familiar with, and select what you think is the most important OTS component and fill it into component Comp.1 for later use.] OTS component ID Full name and version (descriptive free text) Origin (write COTS or OSS) Main functionality (descriptive free text) Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 5.3 How large a percentage of the application functionality was provided by the selected OTS component Comp.1 in the whole system ___________________(%)? 5.4 What was the source code status of the selected OTS component Comp.1? [Make one alternative per row] OSS, i.e. with source code available COTS, but with source code available COTS, without source code Comp.1 5.5 Have you read parts of the source code of the selected OTS component Comp.1? [NB: If the source code of Comp.1 is not available, please skip this question] [Make one alternative per row] Never Rather Sometim Frequent Almost Don’t know seldom es ly always Comp.1 5.6 Have you modified parts of the source code of the selected OTS component Comp. 1? [NB: If the source code of Comp.1 is not available, please skip this question] [Make one alternative per row] Never Rather Sometim Frequent Almost Don’t know seldom es ly always Comp.1 Version 1.15 24-May-2004 39 -1:08 AM 08.03.2016 5.7 What was the type of the selected OTS component Comp.1? [Mark one or more alternatives] ○ ○ ○ ○ ○ ○ ○ .Net ActiveX Java Class/ Library Java Applet/ Servlet Java Bean/Enterprise Java Bean C/C++ class/Library MFC ○ ○ ○ ○ ○ ○ ○ DLL VBX/ VB Class Library COM/DCOM CORBA Windows Static Link Library Windows Foundation Class (WFC) Others (specify):____________ 5.8 What was your project members’ experience with the selected OTS component Comp.1? [Make one alternative per row] Very little Little Some Much Very Don’t much know Comp.1 5.9 When were the selected OTS components Comp.1 selected? [Make one alternative per row] Pre-study Requirem Overall Detailed Coding phase ents/Analy design design phase sis phase phase phase Comp.1 Don’t know 5.10 Have you encountered the following aspects with the selected OTS components Comp.1? [Make one alternative per row] Yes No Don’t know a) The OTS component did not follow the industry standard (such as COM, CORBA etc.) as the provider claimed (glueware needed) b) The OTS component had mismatching architectural assumptions towards other parts of the system (glueware needed) c) The OTS component could not provide all required functionality (addware needed) d) The recent OTS component versions were not backwardscompatible with the previous version e) The provider did not want to or could not change OTS component functionality as requested Version 1.15 24-May-2004 40 -1:08 AM 08.03.2016 5.11 Have you performed some of the following actions for the selected OTS components Comp.1? [Make one alternative per row] Yes No Don’t know a) Searched Internet for possible OTS component candidates. b) Got recommendation of possible OTS component candidates from customer c) Got recommendation of possible OTS component candidates from local colleague/OTS-expert d) Used a formal decision-making method to compare possible OTS component candidates, e.g. with weighted evaluation criteria e) Limited possible candidates into 1-3 components, by reading literature or other documentation f) Did “hands-on” try-out of 1-3 components, e.g. on a downloaded demo version. 5.12 What is your opinion on the following aspects of the selected OTS component Comp.1? [Make one alternative per row] Don’t Hardly Agree Agree Strongl Don’t agree agree somew mostly y agree know at all hat a) Comp. 1 was integrated successfully b) Comp. 1 was maintained successfully so far Version 1.15 24-May-2004 41 -1:08 AM 08.03.2016 Section 6: Questions regarding the context of respondent and business unit [NB: The given information in 6.1 and 6.2 will be treated confidentially.] 6.1 Personal Information about the respondent 6.1.1 What was your position in this project? [Mark one or more alternatives] □ Project manager □ Software architect □ Software developer □ Other level (please specify): _______________ 6.1.2 What is your current position in your business unit? [Mark one or more alternatives] □ IT manager □ Project manager □ Software architect □ Software developer □ Other level (please specify): _______________ 6.1.3 How long have you been working in the current business unit? Years: __________________________ 6.1.4 How long have you been working with software development? Years: _________________________ 6.1.5 How long have you been working with OTS components? Years: __________________________ 6.1.6 How many OTS component based projects have you been involved in? Projects: __________________________ 6.1.7 What is your principal education degree? [Mark one alternative] □ Bachelor □ Master □ Ph.D. □ Other education: ___________________ 6.1.8 Is your principal degree in software (informatics/computer science/telematics)? [Mark one alternative] □ No □ Yes Version 1.15 24-May-2004 42 -1:08 AM 08.03.2016 6.2 Information about your company 6.2.1 What is the type of company? [Mark one alternative] □ Stand-alone: The highest reporting entity with no parent organization above it. □ Subsidiary: An independent entity with majority interest held by a parent. 6.2.2 What is the ownership of your company? [Mark one alternative] □ Publicly traded on a stock exchange □ Privately held company □ Government, education, or nonprofit organization 6.2.3 What is the staff size of your embedding company (full- & part-time persons) ____? What is the staff size of your local business unit (full- & part-time persons) ___? [This staff size may be the same for small and medium sized companies] 6.2.4 What is the main business areas of your company? [Mark one alternative] □ IT/ Telecom industry (Ericsson, Nokia, NERA, Nordic VLSI etc.) □ Telecom service provider (Telenor, NetCom etc.) □ Software House / Software Vendor (Opera, MicroSoft etc.) □ Software / IT consulting company (Accenture, Cap Gemini E&Y, TietoEnator etc.) □ Other software-intensive company (please specify): ___________________ Version 1.15 24-May-2004 43 -1:08 AM 08.03.2016 Appendix B. Summary of hypotheses and theses in the prestudy 1. Hypotheses (For these hypotheses, some of them have to be revised for this study. Only the hypotheses marked by bold will be included in this study [Conradi04]). Retaining four old hypotheses (H01,H02, H04, H10) from prestudy, possibly revised: H01: Integration mismatch risk and OTS component type (included) There is no relationship between the OTS component type (COM, CORBA vs. C++, Java Library) and the architecture/standard mismatch risk occurrences. Old version: H01: Standard mismatch vs. architecture mismatch There is no difference between the number of integration problems caused by lack of standard compliance and lack of architectural style compliance. Comments: For the C ++ / Java library, there is no specific standard. Another problem is that the respondents don't want to tell us the integration problems they encountered. H02: Custom code related (addware/glueware) risks and OTS component type (included) There is no relationship between the OTS component type (COM, CORBA vs. C++, Java Library) and the custom code (addware/glueware) occurrences. Old version: H02: Addware vs. glueware There is no difference of the proportion of addware and glueware in the custom code Comments: How to tell the difference between the addware and the application. How to calculate the exact lines of code of glueware and addware Old H03: Integration easiness vs. function completeness (not included here) There is no difference between the importance of easiness of integrating the components into system and completeness of components functionality for the initial selection of OTS components. Comments: For waterfall and incremental process, the easiness of integration may be more important than the functionality completeness. For the prototype process, the functionality completeness is more important than the ease of integration in some cases. Version 1.15 24-May-2004 44 -1:08 AM 08.03.2016 H04: Formal selection process and familiarity process (included) There is no difference in frequency of formal selection process and familiarity process. Old version: H04: Formal selection method vs. familiarity methods There is no difference in the frequency of using formal decision making methods and using familiar with components method in the component selection process Suggestions: Define the formal selection methods (formal decision making methods or formal selection process) clearly. Define the familiarity methods (demonstration, experiment,…) clearly Old H05: The role of COTS components and selection methods (not included here) There is no relationship between the role of COTS components and the evaluation methods used. Comments: We cannot find out the obvious relationship between the role?? of COTS components and the evaluation methods used so far. It is also hard to find a project using COTS components as a core part Old H06: The experience and provider control (not included here) There is no relationship between the level of developers' experience with the COTS component and the level of provider control. Comments: If it is the first time of using the COTS component, they would like to control the provider. However, it is not possible to control the provider in some cases. Old H07: COTS component origin and provider control (not included here) There is no relationship between the origin of COTS component and the level of provider control. Suggestions: It looks like an obvious conclusion, the context validity need discussion. Old H08: Developer's experience and manager commitment (not included here) There is no relationship between the level of developers' experience with COTS component and the level of manager commitment. Suggestions: The more experience, the less commitment were needed. It is possible to test it. It looks like an obvious conclusion, the context validity need discussion. Version 1.15 24-May-2004 45 -1:08 AM 08.03.2016 Old H09: The role of COTS component and manager commitment (not included here) The role of COTS component will affect the level of manage commitment. Comments: It is very difficult to find a project using OTS components as the core part of the system. The needed sample size may be very huge. H10: OTS component integration risks and selection strategy (included) There is no difference in integration related risks occurrences between projects which select OTS components mainly based on integration easiness (architecture and standard match) rather and projects select OTS components based on expected functionality With no or little experience on a specific OTS component, if the selection is based on the integration easiness, it is easy to success. If the selection is mainly based on the functionality completeness, it is easy to fail. Old version: H10: There is no relationship between the selection strategy and the result of the project. Suggestions: The definition of functionality completeness?? need to be made clear. 2. Two revised hypotheses We also propose two new hypotheses based on some open questions in the questionnaire. New Hx1: Using or not using OTS components and main process used (revised) Using or not using OTS components will not change the selection of the main development process (waterfall, prototype, and incremental). The old version: New Hx1: Using or not using COTS components and process selection Using or not using COTS components will not change the selection of traditional development process (waterfall, prototype, and incremental). Comments: Our results show that there none projects selected the development based on using or not using COTS components. New Hx2: Requirement negotiation and customer involvement (revised) There is no difference in OTS component causes requirement risks (Not be able to negotiate requirements with customer) occurrences between project involved customer in OTS component selection and evaluation and the project didn’t involve customers. Version 1.15 24-May-2004 46 -1:08 AM 08.03.2016 The old version: New Hx2: Requirement negotiation and customer involvement The possibility of requirement negotiation has no relationship with the customers' permission of using COTS components Comments: None of the project we interviewed negotiated the requirement with customer because a COTS component cannot satisfy some functionality. From customers' point of view, it is not a good excuse. 3. Four new theses We also proposed some new theses. We have not figured out how to formulate formal hypotheses from them. New thesis 1: the main cost of using the unfamiliar OTS component is in the learning and understanding (new). New thesis 2: if possible, the integrators prefer to use replaceable OTS components instead of trying to control the provider (new). New thesis 3: if it is the first time of using the same OTS component, it is required to modify some processes (new). The process change is different between waterfall, incremental and prototype. If the project members are familiar with the OTS component, the process change is very few, and there are no differences between processes. New thesis 4: reusing the same OTS components in the future project will give future benefits, such as easy to be learned, shorter time to market and ease of change (new). 4. Summary of old hypotheses from prestudy ReidarC: Note, that in point 1 above we have taken four old hypotheses - H01 and H02 (both reconsidered), H04, and H10, but not H07 and H08 as indicated below. See [Li04a] and resume from Oslo meeting 3. Feb.2004 on: www.idi.ntnu.no/~epos/cots/pub/cots-meeting-3feb04.txt. Summary of existing hypotheses: We proposed totally 10 hypotheses H01-H10 before the prestudy. We deleted six hypotheses (H01-03, H05-06, H09) after the prestudy because they are not easy to be quantified. Version 1.15 24-May-2004 47 -1:08 AM 08.03.2016 H01 (standard mismatch vs. architecture mismatch): There is no difference between the number of integration problems caused by lack of standard compliance and lack of architectural style compliance. Comments: We found it is not possible to compare under our definition of COTS components. For the C++ / Java library, there is no specific standard. The architecture mismatch is definitely the main cause of integration problems. For the components following COM, CORBA, or EJB standard, this hypothesis can be tested. But the difficulty is how to define the architecture mismatch. Another difficulty is that the respondents don't want to tell us the integration problem they encountered. H02 (addware vs. glueware): There is no difference of the proportion of addware and glueware in the custom code. Comments: The difficulty is how to tell the difference between the addware and the application. Another difficulty is that it is not easy to get the exact lines of code of glueware and addware. More than half projects cannot give out the exact number of the glueware and addware. H03 (integration easiness vs. functionality completeness): There is not difference between the importance of easiness of integrating the components into system and completeness of components functionality for the initial selection of COTS components. Comments: The challenge for this hypothesis is that it may have relationship with the development process. For waterfall process and incremental process, the easiness of integration may be more important than the functionality completeness. For the prototype process, the functionality completeness is more important than the ease of integration in some cases. H05 (connection between the role of COTS components and selection methods): There is no relationship between the role of COTS components and the evaluation methods used. Comments: We cannot find out the obvious relationship between the role of COTS components and the evaluation methods used so far. The most affect factor in using the evaluation method is the project members' experience on the COTS components. Because we haven't found any projects using formal selection method, it is not easy to be tested. H06 (connection between the experience and provider control): There is no relationship between the level of developers' experience with the COTS components and the level of provider control. Comments: We found it is difficult to be tested. If it is the first time of using the COTS component, they would like to control the provider. However, it is not possible to control the provider in some cases. H09 (connection between the role of COTS components and manager commitment): The role of COTS components will affect the level of manage commitment. Version 1.15 24-May-2004 48 -1:08 AM 08.03.2016 Comments: The risk is that it is very difficult to find a project using COTS components as the core part of the system. The needed sample size may be very huge. We keep four hypotheses (H04, H07, H08, H10) that can be tested. Colleagues gave us some suggestions on these hypotheses, we will modify them to make them better. H04 (formal selection method vs. familiarity methods): There is no difference in the frequency of using formal decision making methods and using familiar with components method in the component selection process. Comments: We haven't found any projects using the formal selection methods so far. This hypothesis can be tested. The challenge is how to define the formal selection methods? Is it the formal decision making methods and formal selection process? Another challenge is how to define the familiar with components? Suggestions: the question in the questionnaire should be modified because it doesn't catch the meaning of formal selection methods and familiar with components. H07 (connection between COTS component origin and provider control): There is no relationship between the origin of COTS components and the level of provider control. Comments: For this hypothesis, we found there is some relationship. If the COTS component was bought from market, it is not easy to control the provider. If the component was got by the contract, it is possible to control the provider in some cases. Suggestions: It looks like an obvious conclusion, the context validity need discussion. H08 (connection between developer's experience and manager commitment): There is no relationship between the level of developers' experience with COTS components and the level of manager commitment. Comments: We the more experience, the less commitment were needed. It is possible to test it. Suggestions: It looks like an obvious conclusion, the context validity need discussion. H10 (connection between selection strategy and final result): With no or little experience on a specific COTS component, if the selection is based on the integration easiness, it is easy to success. If the selection is mainly based on the functionality completeness, it is easy to fail. Suggestions: The definition of functionality completeness need to be made clear. Version 1.15 24-May-2004 49