UNIVERSITEIT UTRECHT – KEYLANE|QUINITY MSc Project Thesis Requirements Engineering Optimization using the Method Association Approach wcrooijmans 22-7-2015 Abstract: The b2b product software company Keylane|Quinity is experiencing increasing complexity in managing their Requirements Engineering (RE) process, in part due to a growing product and an expected growth in the client base. The main question for the company is how to balance their elicitation efforts in new implementation projects, so that they are both effective (all critical functional requirements are found) and efficient (not all known requirements are gathered again). In this project the Method Association Approach (MAA), part of the Method Engineering domain, has been applied to assemble a new RE method based on existing methods First we identified both the business needs for RE and attributes of good RE from scientific literature. These so called ‘features’ were then associated to the method fragments of candidate methods. The resulting patchwork method was evaluated in lunch sessions with multiple experts, and subsequently improved. The result was a theoretically complete. In addition to the standard MAA, additional efforts were made to integrate the method into the company and its way of working. This resulted in a method that is both theoretically complete and practically usable. FOREWORD For the opportunity to write this thesis and performe the studies within, I would first and foremost like to thank Keylane|Quinity. The time at their offices has taught me lessons that I will carry with me for the rest of my career. The list of names of all the people that helped me with something, at some point, would make this foreword a 10-pager. Thank you all for the time and input! Thank you to Dennis Bron, external coach and long time Quinity consultant, for all the tips, tricks and weekly sparring sessions. This thesis would not have been half of what it is now without your support. Thank you to Frans van Dorp, a sales manager willing to show that old dogs most definitely do learn new tricks, for all the help and willingness to look into the opportunity of language analysis. Thank you to Karin Baars and Prashant Tapkhirwala for so graciously welcoming me to Keylane|Leanapps, and the insights you provided into your work. Thank you to my internal coaches, Prof. Sjaak Brinkkemper and Dr. Fabiano Dalpiaz, for your expert guidance and sage wisdoms. COMMON ABBREVIATIONS ME – Method Engineering ABME – Assembly Based Method Engineering MAA – Method Association Approach RE – Requirements Engineering MDRE – Market Driven Requirements Engineering GEAR – Good Enough Architectural Requirements SQUARE – Security Quality Requirements Engineering RESCUE – Requirements Engineering with Scenarios for a User centered Environment KJ – Kawakita Jiro (for the KJ technique and SEI’s KJ+ method) ACRE – Acquiring Requirements framework MRETS – Method for Requirements Engineering Technique Selection TT framework – Tsumaki and Tamai’s elicitation technique selection framework QIS – Quinity Insurance Solution RFI – Request For Information RFP – Request For Proposal PoC – Proof of Concept NLP – Natural Language Processing TABLE OF CONTENTS Foreword ...............................................................................................................................................................................3 Common abbreviations ...................................................................................................................................................3 1 - Introduction ...................................................................................................................................................................1 1.1 Problem definition ...............................................................................................................................................1 1.2 On efficiency, effectiveness, and gaps............................................................................................................2 1.3 Objective ....................................................................................................................................................................3 1.3.1 Scope...................................................................................................................................................................4 1.4 Outline ........................................................................................................................................................................4 2 - Related literature.........................................................................................................................................................5 2.1 Requirements engineering ................................................................................................................................5 2.2 Method Engineering. ............................................................................................................................................6 3 – Research Questions & Approach ....................................................................................................................... 10 3.1 Research questions ............................................................................................................................................ 10 3.2 Data gathering methods ................................................................................................................................... 10 Phase 1 – sub question 1. ................................................................................................................................... 11 Phase 2 – sub question 2 .................................................................................................................................... 11 Phase 3 – sub question 3. ................................................................................................................................... 11 Phase 1 – Current situation......................................................................................................................................... 12 4.1 Meta modeling the current method ............................................................................................................ 12 4.1.1 Sales trajectory ............................................................................................................................................ 13 4.1.2 Project setup................................................................................................................................................. 14 4.1.3 Requirements Engineering..................................................................................................................... 14 4.2 Business needs ..................................................................................................................................................... 16 Phase 2 – Method Association Approach .............................................................................................................. 18 5.1 Project situations ................................................................................................................................................ 18 5.1.1 Front-Heavy. ................................................................................................................................................. 18 5.1.2 Amendment project................................................................................................................................... 19 5.2 Feature groups ..................................................................................................................................................... 19 5.2.1 Feature group sources.............................................................................................................................. 19 5.2.2 Feature group relations. .......................................................................................................................... 20 5.2.3 The feature groups..................................................................................................................................... 21 5.2.4 Feature group evaluation ........................................................................................................................ 23 5.3 Candidate method selection ........................................................................................................................... 26 5.3.1 Candidate method modeling.................................................................................................................. 26 5.3.2 Candidate methods overview................................................................................................................ 27 6 Method base .................................................................................................................................................................. 28 6.1 Method – Elicitation technique selection .................................................................................................. 28 6.2 Method - Joint Application Development.................................................................................................. 31 6.3 Method – RESCUE ............................................................................................................................................... 33 6.4 Method - Good Enough Architectural Requirements ........................................................................... 34 6.5 Method - Tropos .................................................................................................................................................. 37 6.6 Method - Security Quality Requirements Engineering ...................................................................... 38 6.7 Method - KJ+.......................................................................................................................................................... 39 6.8 Method – Keylane|LeanApps method ........................................................................................................ 42 7 – Association and method construction............................................................................................................. 44 7.1 Association ............................................................................................................................................................ 44 7.2 Preliminary method assembly ...................................................................................................................... 45 Using the association results, a preliminary method was assembled. See Figure 22 for a summarized version. A full view of the preliminary method is included in ...................................... 45 Phase 3 – Validation ....................................................................................................................................................... 48 8.1 First review results ............................................................................................................................................ 48 8.2 Post review method changes ......................................................................................................................... 50 8.2.1 Agree on terminology ............................................................................................................................... 50 8.2.2 Identify stakeholders ................................................................................................................................ 50 8.2.3 Technique selection................................................................................................................................... 51 8.2.4 SMART goals ................................................................................................................................................. 51 8.2.5 Passive voice................................................................................................................................................. 52 8.3 Introduce more creative and interactive elicitation ............................................................................ 53 8.4 Impact of the evaluated method ................................................................................................................... 54 9 – Second Review round............................................................................................................................................. 57 9.1 Second review results ....................................................................................................................................... 57 9.2 Post-review method changes ......................................................................................................................... 57 9.3 Final method ........................................................................................................................................................ 60 10 - Other RE efforts ...................................................................................................................................................... 61 10.1 Requirements elicitation technique selection experiment. ............................................................ 61 10.1.1 Three very different selection approaches ................................................................................... 61 10.1.2 Lists upon lists of factors ...................................................................................................................... 62 10.1.3 Abandon ship! ........................................................................................................................................... 62 10.2 Crowd sourcing requirements engineering in a product wiki ...................................................... 63 10.2.1 Wiki’s and crowd sourcing .................................................................................................................. 63 10.2.2 Building a Wiki......................................................................................................................................... 64 10.2.3 Discussions ................................................................................................................................................. 65 10.2.4 Converting documents .......................................................................................................................... 66 10.3 Using Natural Language Processing for requirement and stakeholder identification ....... 66 11 – Discussion & Conclusion .................................................................................................................................... 68 11.1 Results .................................................................................................................................................................. 68 11.2 Conclusion ........................................................................................................................................................... 70 11.3 Validity.................................................................................................................................................................. 71 11.3.1 Credibility of the approach .................................................................................................................. 71 11.3.2 Confirmability of the results ............................................................................................................... 71 11.3.3 Dependability of the created method .............................................................................................. 71 11.3.4 Transferability of the results. ............................................................................................................. 71 11.4 Post-project review ......................................................................................................................................... 72 11.4.1 Working on a fuzzy problem ............................................................................................................... 72 11.4.2 Working with the Method Association Approach ...................................................................... 72 11.5 Relevance............................................................................................................................................................. 75 11.5.1 Scientific Relevance ............................................................................................................................... 75 11.5.2 Business Relevance. ................................................................................................................................ 76 References .......................................................................................................................................................................... 77 Appendix................................................................................................................................................................................1 Appendix 1 – Gap analysis meta model ...............................................................................................................1 Appendix 2 – Current situation process/deliverable tables .......................................................................2 Appendix 3 – feature groups ....................................................................................................................................7 Appendix 4 – Eliminated methods ...................................................................................................................... 13 Appendix 5 – Association table ............................................................................................................................ 16 Appendix 6 – preliminary method ...................................................................................................................... 19 Appendix 7 – post - First evaluation .................................................................................................................. 21 Appendix 8 – Final method .................................................................................................................................... 24 appendix 9 – Final method concepts and deliverables............................................................................... 27 appendix 10 – Wiki Screenshots .......................................................................................................................... 35 Addendum 1 – Natural language processing of requirements in client documentation ......................1 1 - Introduction ...................................................................................................................................................................2 2 - Domain .............................................................................................................................................................................2 3 - Method .............................................................................................................................................................................3 Keyword finding ............................................................................................................................................................3 RFP analysis using search words............................................................................................................................3 4 - Gap analysis test...........................................................................................................................................................4 5 - RFP analysis ...................................................................................................................................................................5 Discussion .............................................................................................................................................................................6 Conclusion .............................................................................................................................................................................6 References .............................................................................................................................................................................7 LIST OF FIGURES Figure 1 - Requirement and gap sources .................................................................................................................2 Figure 2 - The Software Development Life Cycle ..................................................................................................5 Figure 3- The original situational method engineering approach .................................................................7 Figure 4 - Method Association Approach for Web Engineering Methods by Luinenburg et al. ........9 Figure 5 - Generalized MAA ...........................................................................................................................................9 Figure 6 - QIS implementation method.................................................................................................................. 12 Figure 7 - Keylane|Quinity Sales Trajectory ........................................................................................................ 13 Figure 8 – Keylane|Quinity setup phase ................................................................................................................ 14 Figure 9 - Keylane|Quinity design phase (start of the increments) ........................................................... 15 Figure 10 - Visual representation of feature group relationships .............................................................. 21 Figure 12 - Feature classification decision tree.................................................................................................. 23 Figure 12 - Elicitation technique selection decision support ....................................................................... 31 Figure 14 - Example JAD room layout prescription.......................................................................................... 31 Figure 15 - JAD meta model ........................................................................................................................................ 32 Figure 16 - RQ management phase of the RESCUE meta model .................................................................. 33 Figure 16 - GEAR meta-model ................................................................................................................................... 36 Figure 17 - Tropos meta-model ................................................................................................................................ 38 Figure 18 - Example of a SQUARE terminology survey question ................................................................ 39 Figure 19 - KJ+ meta-model ........................................................................................................................................ 41 Figure 21 - Keylane|LeanApps meta method ...................................................................................................... 42 Figure 21 - Association table ...................................................................................................................................... 45 Figure 22 - summarized preliminary method. .................................................................................................... 47 Figure 23 –Old Poster visualizing method changes .......................................................................................... 55 Figure 24 – Poster visualizing only the new method ....................................................................................... 56 Figure 26 – Deciding on notations in the review session ............................................................................... 59 Figure 26 - QIS wiki concept image ......................................................................................................................... 64 Figure 27 - A wiki talk page with LiquidThreads............................................................................................... 65 Figure 29 - NLP experiment envisioned outcome ............................................................................................. 67 Figure 29 - Summarized final method .................................................................................................................... 68 Figure 30 - MAA as used in the thesis ..................................................................................................................... 75 LIST OF TABLES Table 1 - Keylane|Quinity business needs ............................................................................................................ 17 Table 2 - Feature group evaluation results .......................................................................................................... 24 Table 3 - Candidate methods overview ................................................................................................................. 27 Table 4 - Final technique selection framework techniques .......................................................................... 29 Table 5 - Technique selection framework changes........................................................................................... 30 Table 6 - Example RACI matrix.................................................................................................................................. 51 Table 7 - evaluation session results overview .................................................................................................... 60 Table 8 - Wiki platforms comparison ..................................................................................................................... 64 Table 9 - Thesis deliverables ...................................................................................................................................... 70 1 - INTRODUCTION A good introduction of Keylane|Quinity and their product is given by its own website: “The modernization of the application landscape of a non-life insurer is complex and risky. Keylane|Quinity offers with the Keylane|Quinity Insurance Solution the best standard solution for non-life insurers, but also ensures that it is implemented quickly and successfully. Underpinning it all: The Keylane|Quinity Insurance Solution, a modern, user-friendly system that supports all primary insurance processes from quote request to policy and from first claim notice to payment. When doing so we make optimum use of standard functionality, which in turn ensures low operating costs.” - Quoted from www.KeylaneQuinity.com In this chapter the exact nature of Keylane|Quinity’s problem is discussed, followed by a short introduction of the main objective and challenges of this project. The chapter concludes with a short outline of the other contents. 1.1 PROBLEM DEFINITION After several years of producing custom software solutions for varying clients, Keylane|Quinity moved towards the production of a single software product for the insurance market; the Keylane|Quinity Insurance Solution (QIS). The move to a standard software product was accompanied by many structural changes to both the company and its processes. What worked for custom projects does not always translate well to the delivery of a standardized software product. When a software product needs to be implemented, many of a new client’s requirements are likely already present within- and fulfilled by- that product thanks to past projects. In addition, a procuct is targeted towards a specific market. This means that additional requirements can be derived from that market as a whole, including standards, best practices, rules and regulations that are common in that market. The different nature of Requirements Engineering for software products rather than bespoke development has been a subject of debate in the academic world as well [1]. During implementation projects for new clients, Keylane|Quinity didn’t always take the time to explicitly gather requirements. Consultants often gather what they can from client initiated sessions. This may work fairly well when dominant clients demand four weeks of demos and use cases, but with less dominant clients there was a distinct lack in knowledge before design begins. This put the burden of research on the designers themselves, leaving them with the task of finding out what the client actually needs before being able to design a solution. In the future situation this would preferably no longer be the case. With a dedicated requirements engineering process the client’s needs can be identified consistently, regardless of whether clients are dominant or passive. 1 The leading question during the requirements engineering process should be: ‘Does QIS fit the client’s need?’. In the projects where an explicit form of requirements gathering was applied, it became increasingly difficult to find a balance between efficiency and effectiveness. By efficiency we mean that all (or at least most) of the major gaps are identified. Gaps are functional needs of the client that QIS does not cover yet. Gaps constitute the most work for designers and developers in any implementation project. If gaps are left unsolved, the client may not be able to perform some of their core business processes, which severely impacts the quality of the final QIS implementation. If gaps are missed and found later in projects, they can result in large unforeseen costs for both the client and Keylane|Quinity. By effectiveness we mean that we do not spend too much time gathering known requirements. As mentioned before about software products, the product already covers many potential requirements from varying sources. If the client mentions a need that QIS already covers, it’s not necessary to capture, document and process it as rigorously as you would with a gap. Besides balancing efficiency and effectiveness, requirements engineering is also becoming more challenging because of the continuing growth of the QIS product and a recent initiative towards internationalization. This is expected to yield many new clients and implementation projects. To prevent Keylane|Quinity’s experts to be spread too thin, the company is willing to look into tools or web-based ways of obtaining requirements with fairly little expert intervention. In summary: 1. With a formal requirements engineering method, Keylane|Quinity is hoping to improve consistency of requirements work across varying implementation projects. 2. This method should assist them in their balancing act between efficiency and effectiveness. 3. This method could provide modern means of client interaction that reduce the burden on their experts. 1.2 ON EFFICIENCY, EFFECTIVENESS, AND GAPS A new client may have 10.000 requirements. Only a fraction of these, let’s say 2000, will be discussed on the client’s own initiative during early information sessions and in sales documents. These 2000 are easy to assess and filter thanks to interaction with the client, but what about the other 8000?1 Figure 1 - Requirement and gap sources 1 Numbers are purely hypothetical for illustration purposes 2 Covering all 8000 of these unmentioned requirements is going to make for a very inefficient elicitation trajectory, particularly when keeping in mind that QIS is already going to fulfill a large share of these requirements. Other unmentioned requirements are the absolute basics of the insurance domain (e.g. I want to register a policy) or completely irrelevant for the QIS product (e.g. Can’t you store a database of all Dutch car-auction data in your system?). The holy grail of unmentioned requirements are the unmentioned gaps. Knowing the major gaps early enables Keylane|Quinity to plan their design and development better, and makes it possible to deliver more accurate cost estimates to the client. Missing these gaps until much later phases can have devastating results for projects. In fact, the costs of researching missed requirements after the actual RE process can exceed the usual project costs anywhere between 10 to 200 times [2], as estimated by Barry Boehm. From past experience Keylane|Quinity has learned that missed gaps are often related to the following types of knowledge: Tacit knowledge. (e.g. I forgot to mention our automated acceptance system. I’m so used to it always running in the background that I don’t even notice it anymore). False assumptions (e.g. Wait so your system doesn’t generate those reports automatically? I assumed it would!). Document knowledge that nobody made their own (e.g. Nobody knows why that system works that way. The guy who made those decisions doesn’t work here anymore, but he might have documented them before he left). The problem of uncovering requirements that hide behind a client’s tacit knowledge is certainly not new. In their work on the future of requirements engineering, Nuseibeh and Easterbrook proposed that requirements engineers learn from the field of cognitive psychology, because: “For example, problem domain experts often have large amounts of tacit knowledge that is not amenable to introspection; hence their answers to questions posed by requirements analysts may not match their behaviour” [3]. In later works Ratchev et al recognized the same problem: “The conversion of this knowledge into explicit information depends greatly on the use of tacit knowledge, i.e. personal knowledge that is implicit and cannot easily be communicated. The main disadvantage of this form of knowledge is that it evades critical discussion” [4]. These missed gaps can be uncovered in various sources, such as documentation of the client’s current system, documentation on the client’s processes, or a set of business rules. Others may be available from stakeholders that weren’t involved in early contact, or the stakeholders that were involved have knowledge that they did not deem important enough to share at the time. This unshared knowledge can be elicited in interviews, workshops, questionnaires or demo sessions performed on the initiative of Keylane|Quinity. 1.3 OBJECTIVE The goal of this project is to provide an improved Requirements Engineering method that better suits the current situation at Keylane|Quinity. The project will begin with an analysis of the current Requirements Engineering practices. A new method will be established using the Method Association Approach (MAA) as outlined by Luinenburg et al. [5]. The method will be iteratively improved using expert evaluations. The new method will be considered successful when a consensus with Keylane|Quinity’s experts is reached. 3 In addition to this approach, the external coach has requested some creative effort on my part. Any additions made outside of the MAA on my own initiative are covered in chapter 10. Initially we discussed the possibility of an evaluation by case study. There were no potential cases available until the end of this project however, so we still retain the opportunity to write a case study in a separate paper. The resulting method, though intended for Keylane|Quinity, should be generalizable to similar companies that operate in a similar context. This content and the opportunities for generalization are further discussed in section 11.5.2 – Business relevance. 1.3.1 Scope. The scope of this project was limited to RE in the sales- and project setup phases of implementation projects at Keylane|Quinity. Though design, development and testing phases are briefly touched upon in this thesis, they are not part of the project scope. For requirements specifically, we will limit our scope to only functional requirements. As mentioned in the problem statement, these are the most valuable requirements both for Keylane and it’s clients. Though quality requirements and constraints are briefly touched upon in this thesis, they are also not part of the project scope. 1.4 OUTLINE Chapter 2 will discuss the related literature from the fields of requirements engineering and methods engineering. This is followed by chapter 3, where the research questions and methods are discussed. To streamline internal reporting we subdivided the work in this thesis into three distinct phases. Chapter 4 marks the beginning of Phase 1; the analysis of the current situation. In this chapter the current situation is discussed in detail. As part of the current situation, business needs are also discussed in this chapter. Chapter 5 marks the beginning of Phase 2; performing the method association approach. The contents of this approach are covered in depth in chapter 2. It discusses the project situations, feature groups and the selection of candidate methods. This is followed by chapter 6, the method base, where all selected methods are presented. Phase 2 concludes with chapter 7, which discusses the association of features and methods , and the assembly of a preliminary method. Chapter 8 marks the beginning of phase 3; evaluation. In this phase the preliminary method was evaluated and contextualized. Both lunch meetings and their results are discussed in chapters 8 and 9 respectively. Chapter 10 discusses some additions made to the method on our own initiative outside of the method association approach. Finally, chapter 11 contains a conclusion, discussion, validity and the business and scientific relevance of this thesis. 4 2 - RELATED LITERATURE In this chapter the scientific domain of this project will be elaborated upon. Chapter 2.1 briefly discusses the topic of requirements engineering. For large and highly detailed works on the subject please refer to some of the books referenced in this thesis ([6,7,8,9]). Chapter 2.2 will discuss the field of Method Engineering (ME), which will be used to form a solution. For this section we used a snowballing approach [10] to trace the lineage of MAA back to it’s origins. 2.1 REQUIREMENTS ENGINEERING To understand how Keylane|Quinity understands requirements, we begin with the definition used by Keylane|Quinity in its internal documentation (translated from the book ‘Success met Requirements!’ [8]): “Requirements involve the demands and desires of the customer: What should be the abilities of the system be? A requirement describes what must happen, not how it must happen. That way, requirements bring the scope of the design and realization trajectory into view.” The book provides many examples of functional and non-functional requirements, but provides no definition of either or the differences between them. A popular definition of functional and non functional requirements is given by Wiegers and Beatty in their book on requirements[6]: “A functional requirement is a description of a behaviour that a system will exhibit under specific conditions. A non-functional requirement is a description of a property or characteristic that a system must exhibit or a constraint that it must respect.” What is the engineering of these requirements then? Requirements Egineering (RE) is “the discovering, documenting and managing of requirements”[6]. The Standish group, a well known research advisory organization with a focus on software project management, has claimed for years that having a clear statement of requirements is the number 3 contributing factor to IT project success [11]. Hypothetically then, when RE is done right, project success is within your grasp. RE Evaluation Implementation Design Development Figure 2 - The Software Development Life Cycle But what is it’s place in the development of software? The Software/Systems Development Life Cycle [12] (SDLC), as seen in figure 2, shows a common structure for an iterative software 5 development process. Though the names of process steps in different SDLC representations may vary from author to author, RE always has a prominent role in this process[3][13]. The requirements identified in the RE process feed directly into the design process, where solutions are designed to fulfill them. After completing a cycle through development, implementation, and evaluation, the evaluation results feed directly back into the RE process in the form of shortcomings, oversights, bugs, and more. Within RE itself some typical high level process steps are [12][13]: Eliciting requirements. Analysing requirements. Specifying requirements. Prioritizing requirements. verifying requirements after development. Requirements management to control the above. Other sources may include steps like validation, impact analysis, negotiation, cost/value analyses, quality assurance, change management and much more. Developing product software has it’s influences on requirements engineering. Rather than catering to all the requirements of individual customers in each project, a software product will likely already cover some requirements that new clients may have. In addition, requirements can also be identified from the broader market, including trends, standards, best practices and legislation within that market. Hence, requirements engineering for software products becomes more market-driven rather than client-driven. This is known as Market Driven Requirements Engineering (MDRE) [1]. MDRE processes, though similar to the general RE process, can vary in several ways. The focus of elicitation, for instance, shifts from single customers to entire markets. As determined by Regnell et al. in a 1998 case study on MDRE: “[for software products] the RE process should be able to invent requirements based on foreseen end-user needs and select a set of requirements resulting in a software product which can compete on the market”[14]. Another example of a variation in MDRE is the increased depencence on prioritization and analysis. With so many potential requirements flooding in, some way of filtering is needed. In the words of Carlshamre: “In market-driven software development, release planning is one of the most critical tasks. Selecting a subset of requirements for realization in a certain release is as complex as it is important for the success of a software product” [15]. 2.2 METHOD ENGINEERING. The Method Association Approach (MAA), which will be used in this project to create an RE method, is part of the broader Method Engineering domain. Methodology [sic] Engineering is a term originally coined by Bergstra in 1985 [16]. Method Engineering was later defined as “the engineering discipline to design, construct, and adapt methods, techniques and tools for the development of information systems” by Brinkkemper in 1996 [17]. In this work Brinkkemper already noted that not every project is the same, so good methods should be built to work in varying project situations; what he calls ‘situational method engineering’. This notion was supported in the same year by Rolland and Prakash [18]. The 6 original configuration process for situational methods proposed by Brinkkemper can be seen in figure 3. Figure 3- The original situational method engineering approach Situational Method Engineering (SME) would later become a field of study in its own right. Across years of research the field of SME spawned several classes of more specific approaches, for example Method Configuration and Assembly Based Method Engineering. Assembly Based Method Engineering (ABME) was originally defined by Ralyté et al in 2003 [19]. It was proposed as an ‘on-the-fly’ variant of the process seen in figure 2. Ralyté et al. interpreted the ‘project environment’ and ‘characterisation of project’ steps as a form of requirements engineering. Hence ABME was classified as a requirements driven approach. ABME consisted of a three step process: specify method requirements, select method chunks that fit the requirements, and assemble method chunks into a method. ABME was put to practice in a case study by van de Weerd et al. three years later [20]. Van de Weerd criticized the original ABME for lacking an explicit process step for the actual gathering of candidate methods, and proposed new ABME process steps: 1. 2. 3. 4. Analyze implementation situations and identify needs. Select candidate methods that meet one or more aspects of the identified needs. Analyze candidate methods and store relevant method fragments in a method base. Select useful method fragments and assemble them in a new method by using route map configuration to obtain situational methods.” 7 In the same work van de Weerd et al. also proposed a notation for meta-modeling selected methods [21]. The Process-Data Diagram, or Process-Deliverable Diagram (PDD) as it would later be named, consists of two linked models; one for processes and one for data artifacts(deliverables) that are created in the process. Deliverables have the same modeling structure (standard, open, closed). Relationships between deliverables are either associations, aggregations (is a part of-) or generalizations (is a generic form of-). Generalizations can be annotated to show whether the specific variants of a generic deliverable overlap, or whether they are mutually exclusive. The Method Association Approach (MAA) was originally proposed by Luinenburg et al. [5] as an adaptation of van de Weerd’s ABME approach. MAA added the identifying of feature groups and the association of these groups with candidate method fragments. Hence the ‘Association’ in the name. The original MAA was created specifically for a project seeking to create a web design method. An overview of the original MAA has been provided in Figure 5. Later in this project, a generalized MAA was first published by Deneckère et al. in a collaboration between the University of Sorbonne and University of Utrecht [22]. The MAA essentially added two new steps to the ABME approach defined by van de Weerd et al.: 1. identify project situations (renaming of “Analyze implementation situations and identify needs”) (ABME step 1) 2. Identify feature groups 3. Select candidate methods (based on ABME step 2) 4. Model candidate methods (based on ABME step 3) 5. Associate feature groupings with candidate methods (based on ABME step 4) 6. Assemble situational web design method. (based on ABME step 4) 7. Validate situational web design method. As far as we were able to find out, there are only two case studies available of a pure MMA application, namely by Luinenburg et al. and Deneckère et al. themselves [5,22]. One other case exists of ITAXEM, a method wich is reportedly derived from the MAA by Hunink et al. [23]. There is obviously a clear lack in case studies for the Method Association Approach. 8 Figure 4 - Method Association Approach for Web Engineering Methods by Luinenburg et al. Figure 5 - Generalized MAA 9 3 – RESEARCH QUESTIONS & APPROACH In this chapter we explain the research approach used in this thesis. Section 3.1 introduces the research questions, followed by the methods used in Section 3.2. A short planning is included in section 3.3. 3.1 RESEARCH QUESTIONS The main question leading this project is: MQ – How can Keylane|Quinity improve its requirements engineering method in terms of efficiency and effectiveness? The desired end product of this project is a method, tailored for Keylane|Quinity, which is adaptable to their varying project situations. We will use the method association approach as outlined by Luinenburg, Jansen, Souer, Van De Weerd & Brinkkemper (2008) [5]. The MAA was already introduced in Chapter 2. The sub questions (SQ) covering this topic are the following: SQ 1 – How can the current processes and future needs for early requirements engineering of a product software company be identified? To answer this question two activities (A) will be performed. A1. Model the current process A2. Evaluate the current process SQ 2 – How can the steps of the Method Association approach be applied to inform the essential processes and deliverables of a method for the elicitation, capture, and analysis of early requirements? To answer this question, the first six steps in the MAA (figure 6) will be performed. Each can be considered its own sub activity. A3. Identify project situations. A4. Identify feature groups. A5. Select candidate methods. A6. Model candidate methods. A7. Associate feature groupings with candidate methods. A8. Assemble a situational implementation method. The result should be a theoretically sound method, but still requires a view from practice. SQ 3 – How can the resulting method be implemented and evaluated? This question will be answered through group/expert reviews. In the first review we will broadly validate the contents. In a second review we will present a hypothetical case to experts. A9. Validate situational implementation method. A10. Evaluate a hypothetical case. 3.2 DATA GATHERING METHODS 10 As a preparation for the project a model of Keylane|Quinity’s current method was created based on Keylane|Quinity’s own documentation of their method. Using the PDD notation, each documented activity or set of activities was modeled as a process fragment with its matching deliverables. The original documents are only available for internal use and will not be made public. Phase 1 – sub question 1. Interviews held on location were semi-structured. Interviewees were asked to describe their role and give an example of their work in a previous case of their choosing. The interviews then proceeded with a walkthrough of the latest model version. Interviewees were instructed to interject at any point with feedback, criticism, suggestions, confusion and other remarks. Deviations from the model were then discussed in further detail to identify their nature and relevance for a new model. (activity A1) Interviews concluded with an opportunity for the interviewee to share their opinion on the current situation. This included a discussion of any existing features of the current method they would like to keep or additional features they would like the method to have. (activity A2) Three additional short interviews were held with a manager, a project leader and a principal consultant to validate the business needs for a new method. (activity A2) Phase 2 – sub question 2. In addition to those already gathered from interviews, feature were identified by studying literature on requirements engineering. For this stage of the project books and maturity models were used (activity A4). The selection of candidate methods was also performed by reviewing literature. In addition to these methods from literature, an interview was held with two Keylane|LeanApps representatives to elicit their method. The sister company’s method was pointed out by the external coach as a specific point of interest. Once again the semi-structured interviewing method was applied. (Activity A5). After a large initial collection of candidates was gathered, the candidate methods were briefly reviewed with the external coach. For each of the candidate methods that came out of this preselection, a PDD meta model was created (Activity A6). The candidate methods and their method fragments were then associated with the feature groups. Whenever a method fragment satisfied one or more features in a group, a note was made (Activity A7). After association of all methods to all feature groups a preliminary draft method was constructed containing those method fragments that satisfied the most features (activity A8). Phase 3 – sub question 3. When the first requirements engineering method was established, evaluation began (Activity A9). The first evaluation step was a large one-hour lunch meeting with many of the phase 1 interviewees present. This meeting resulted in a lot of feedback, making a need for contextualization apparent. The method fragments taken as-is from their parent methods were not sufficiently applicable for Keylane|Quinity yet. To truly integrate this method in the company, much more effort would be needed to create standards, guidelines and other supporting materials. 11 PHASE 1 – CURRENT SITUATION In this chapter the Keylane|Quinity RE method will be discussed. Section 4.1 begins with a description of the meta-modeling process used to attain a complete view of the current method. Section 4.2 describes the current business needs for method change (and preferences for method chunks to keep), as elicited from experts in interviews. 4.1 META MODELING THE CURRENT METHOD Elicitation of the current requirements practices began with an analysis of the company’s documentation of the full implementation method. Figure 6 gives a high level overview. Figure 6 - QIS implementation method As outlined in the section 1.2.1 the scope of this project is limited to requirements engineering leading up to the workshops. In figure 4 this includes the setup phase, requirements phase and to a lesser extent the architecture phase (marked in a red box). It quickly became clear from interviews that there were some discrepancies between the documented method and reality. In some sections, the documentation was simply too generic to accurately reflect reality. In other cases practices reported in documentation were used inconsistently, rarely or in a completely unstructured fashion in real projects. The basis laid by documentation was gradually expanded upon with experts in interviews, until eventually all agreed that their piece of the puzzle was accurately represented. The method as currently understood has been modeled in the Process Deliverable Diagram meta-modeling notation, as mentioned in section 2.1.2. The concept and deliverable thesis can be found in Appendix 2. The complete result is discussed in the following three sections. 12 4.1.1 Sales trajectory. The sales trajectory, though technically leading up to a project, already provides several opportunities for early-requirements to be gathered. It is important to know that all sub activities in this trajectory are optional and depend on the customer’s wishes. An overview of the sales trajectory is given in figure 8. Figure 7 - Keylane|Quinity Sales Trajectory The sales trajectory usually kicks off with a Request for Information (RFI) and a Request for Proposal (RFP). The request for information is a document sent out by prospective clients as a broad net to assess software suppliers. The RFI typically contains a brief list of questions with regard to general software capabilities, architecture, costs, contracts and the ability to interface with legacy systems. Based on the RFI responses of software suppliers the prospective client will decide whom to put on their short-list. The RFP will typically follow the RFI up with a long list specific questions digging deeper into the product capabilities. Keylane|Quinity’s sales department keeps track of these answers in an overview spreadsheet. Once the RFP has been answered to the satisfaction of the prospective client, suppliers may find themselves on the short-short list or with a definitive client. RFI and RFP questions answered with a ‘no’ or similar may be indicative of a requirement, because there is a customer wish not being covered by the product. The practice of deriving preliminary requirements from RFI’s and RFPs is mentioned in the standard method documentation. In practice however, interviewed experts agree that this is rarely or never done. The prospective client may choose to book any number of additional information sessions with potential suppliers. Contents of these sessions may include presentations, demos or even 13 business cases being executed in a test environment. During these sessions notes are taken by Keylane experts, which may be a source for preliminary requirements. After this initial phase has been passed successfully and the client has decided to become a Keylane customer, they may want to set up a contract. In previous projects clients either sign a preliminary contract for the setup phase (4.1.2), a full contract for an entire project, or no contract at all (in which case an informal go-ahead is given). In preliminary contracts, demo sessions and Proof of Concept (POC) sessions are both optional. In a demo a generic walkthrough of QIS and its functionalities is shown. A proof of concept is a specific variant that shows QIS performing a task in detail. The third contract component, a global requirements estimate, is an optional short requirements phase. This thesis intends to make that a permanent addition to all projects. 4.1.2 Project setup. In the setup phase (figure 6) more details of the project are set in stone. The implementation method is explained to the customer, the project increments are defined (see 4.1.3), and a planning of the project is created. The related deliverables will be made part of the final contract. The project increments and planning also include the final cost estimation, so explicit approval by the customer is needed at this point in order to continue. Figure 8 – Keylane|Quinity setup phase 4.1.3 Requirements Engineering. When setup is complete the incremental phase can begin. Increments consist of design, development, testing, and finally a go-live of the increment’s results. Though not by-the-books agile, increments allow Keylane|Quinity to achieve some flexibility in their projects without the shock and awe effect of a waterfall implementation. An increment usually consists of one or more components of QIS, like policy administration, relation administration or premium calculation. Other examples of possible increments are: Implement subsets of insurance products in each increment. Implement the front office first, then the back office. Implement based on channels (e.g. intranet first, then extranet, then internet). Implement one business line per increment. All known requirements that are relevant for the current increment are collected and planned for discussion in workshop style design sessions. First and foremost, the stakeholders that will be participating in these workshops are trained. A preliminary training session prepares them 14 for the overall process, and additional trainings are given throughout to ensure all participants remain up to speed. Figure 9 - Keylane|Quinity design phase (start of the increments) Known requirements are decomposed into their smallest parts, detail requirements, that are used to inform design decisions. All detail requirements resulting from workshops are documented, sent to the customer, and refined if necessary. The refined detail requirements are processed in designs and captured in their own documents. The next process step, the gap analysis, has been deemed out of scope for this project, but has been modeled and elaborated nonetheless. For a PDD of the gap analysis see appendix 1. Simple requirements that only need a configuration or process change are solved. The exact solutions to actual gaps are discussed in more detail by functional and technical experts. Their designed solutions are compiled into Request for Change (RFC) documents. After testing and a go-live (WAY out of scope) the next increment begins. 15 4.2 BUSINESS NEEDS Major business needs were derived from the method review section of interviews. The external Coach (Principal consultant), a senior project manager, and the CEO of Keylane|Quinity reviewed the content and priorities of these needs. After reviews some minor adjustments and additions were made. The end result is captured in the table below. Desire Improving overall effectiveness and efficiency Not missing gaps (effective) Not having to literally gather all requirements (efficient) Providing structured increments Make early requirements gathering more formal Make the method independent of individuals Make the notation of early requirements more formal Increase interactivity in the requirements engineering practices Description The overall goal for this project should be the improvement of RE quality so that we don’t miss gaps (effectiveness), and good use of time and resources by not exhaustively gathering all requirements (efficiency) Preferably there would be no more missed gaps. This includes requirements uttered by the customer that were not documented accordingly for subsequent stages of a project. As indicated by the handbook ‘succes met de requirements!’, costs of errors in the requirements solved in a later phase exceed the norm anywhere between 10 to 200 times. A mature software product satisfies much of the client’s possible wants and needs already. Quinity does not want to spend too much time on gathering and documenting every requirement, when only a fraction of these will address a novel need or gap. QIS experts participating in the increments unanimously prefer a structured approach. This structure should be provided by project leaders by turning known requirements into lists of ‘action points’ that guide workshop discussion. It has been indicated in interviews that the quality of early requirements gathering varies from project to project. Early requirements should be gathered formally and consistently to support the desire for structured workshops In the current situation Keylane|Quinity depends on a small group of skilled individuals to do requirements research, more so than they would like. In the future the company wants to have a method that is more independent of it’s practitioners. This can be achieved by providing good method documentation and materials that teach or replace skills. In the current situation the way requirements and gaps are written varies wildly from project to project. Which style is used and which attributes are captured depends on who leads the project. This obstructs traceability. In the future situation there should be one standard base notation. The current requirements engineering practices are mostly of a ‘push’ or ‘pull’ nature. Push practices involve the pushing of information in the form of presentations, demos and/or trainings, where client experts have little room to interact. Pull practices involve the client pulling in information in the form of an RFI, RFP and/or Proof of Concept case session, where Quinity experts have little room to deviate from the determined path. A more Priority top high high high medium medium medium medium 16 Consistently take note of requirements in sales sessions interactive approach could potentially assist the need for completeness, and could also save time if done correctly. There are many possibilities for information sessions in the sales phase of projects, including demo’s, PoC’s, use cases and other presentations. Though technically the company is still dealing with prospects in this phase, there is a lot of information here that should not be lost once a contract is signed. medium Table 1 - Keylane|Quinity business needs 17 PHASE 2 – METHOD ASSOCIATION APPROACH In phase 2 we will discuss the results of the main method construction steps of MAA. Section 5.1 reports on the identification of project situations. Project situations were identified from various interviews held on location with Keylane|Quinity experts. Interviews were semi structured, as reported in section 3.2 Data gathering methods. Section 5.2 reports on the construction and evaluation of feature groups. Features were gathered both from the interviews in section 5.1, and scientific literature. Section 5.3 reports on the selection and preliminary evaluation of candidate methods. Candidate methods were gathered from literature using a snowballing approach and searches performed in the Google scholar search engine. The methods were then subjected to a preliminary evaluation and modeled using a slightly simplified PDD notation. In chapter 6 we present the method base and elaborate on the contents of candidate methods. Chapter 7 begins in section 7.1 with a report on the association of candidate method fragments with feature groups. Finally this chapter, and the report on the MAA construction steps, concludes in 7.2 with the construction of a preliminary method based on association results. 5.1 PROJECT SITUATIONS Project situations are classes of the same type of project that have distinctive features. Of course each individual project is unique, but on a high level there may be broader characteristics at play. Project situations were identified as part of the semi-structured interviews held with Keylane|Quinity experts. Most agreed that the biggest differences are caused by dominant or submissive clients. A dominant client will push and pull for large amounts of information early in the sales trajectory, which is why we term this situation front-heavy. A submissive client on the other hand only wants to know the basics and trusts Keylane|Quinity to take care of the rest, which we refer to as front-light. The third project situation occurs when existing customers want to change or extend their existing QIS implementation, an amendment project. In these projects the major source of requirements becomes an existing implementation of Keylane|Quinity’s own product. 5.1.1 Front-Heavy. Front heavy projects are recognizable for their strong client initiative, particularly during the sales trajectory. RFI and RFP documents are large, meetings are numerous, and several Proof of Concept and/or demo sessions are booked. Some noteworthy Front-Heavy projects are (anonymised for privacy purposes): Company X: Demanded a large number of information sessions on six major categories, spread out over a number of weeks. Each session included several of its own PoC sessions. The global RQ analysis was not only performed by Quinity but also by the client company itself. Company Y. Sent out abnormally large RFI and RFP documents. In addition the RFP was accompanied by an 80+ page requirements document provided by the client itself. 18 Opportunities for early-phase requirements gathering are abound in the RFI and RFP, information sessions and PoC sessions. As a result, when the increments begin there is a laundry list of known requirements to build the increment planning on. The Company X case even went as far as making the formulation of complete RFC’s (change requests for generic solutions to the standard QIS product) possible before the increments had even begun. This has obvious benefits for overall project efficiency, as long as the gathering of requirements happens consistently. Making the most out of the opportunities offered by a front-heavy project requires attention to the early-phase requirements gathering and documenting processes These projects are in clear contrast to the front-light project for Company Z, that deemed the sales trajectory complete after two days of information sessions. Keylane|Quinity was so deprived of knowledge at the time that an agreement was made with Company Z to do a oneweek requirements analysis project on location. 5.1.2 Amendment project. A finished implementation rarely equals a finished project. Additional requirements popping up once the end-users get to work with a product are standard fare for most software product companies. In some cases, particularly soon after new implementations, it can be more efficient to handle a batch of new requirements as a separate project. In addition, the modular design of QIS makes it relatively easy for existing customers to have extra modules implemented. An extra project to process more requirements, or to implement additional modules, is known as a ‘wijzigingsverzoek’ (amendment-request). In both cases these projects are different from front-heavy and front-light projects. The client is already working with an implemented version of QIS, which forms the primary source of new requirements. In addition amendment projects differ in the following ways: Stakeholders are familiar with Keylane experts. Stakeholders are already familiar with parts of QIS. Stakeholders only need module-specific training, or possibly none at all. Stakeholders are familiar with Keylane|Quinity’s way of working. Stakeholders are familiar with the implementation method. 5.2 FEATURE GROUPS In this chapter the feature groups and their individual features are explained. A feature is an attribute that a method should have, a capability that a method should provide, or an artifact a method should deliver. 5.2.1 Feature group sources Keylane experts. Some features have been identified in the interviews with Keylane staff. These features include current capabilities and artifacts at both Keylane|Quinity and Keylane|LeanApps, as well as desires for the method expressed by Keylane|Quinity staff and management. In the feature groups excel table features that are fully present in the current method are marked with an ‘X’. Features that are partially present or too inconsistent to consider fully present are marked with a ‘/’ symbol. Success met de Requirements! Success met de Requirements! (SmdR!) is the book used by Keylane|Quinity as a source for their current requirements engineering practices [8]. SmdR! provides a broad overview of the most common phases known in the RE domain, and discusses 19 common practices in each phase. The book has not been followed to a tee by Keylane|Quinity, so some of its recommended practices are not (yet) implemented. Engineering and managing software requirements. This 487 page book on RE is divided into three parts [7]. The first is a study of the state-of-the-art in RE, divided into typical RE process phases. The second is a study of up-and-coming practices. The third concludes with five case studies of RE in practice. The book was compiled and edited by A. Aurum and C. Wohlin, and chapters were contributed by various experts in the field. SWEBOK Version 3. The third edition of the Guide to the Software Engineering Body of Knowledge (SWEBOK) is an attempt by the IEEE computer society to standardize knowledge on software engineering [9].15 knowledge areas in software engineering are covered and made open to comment from both academic and industry experts. The RE knowledge area was particularly interesting for this project. Maturity Models. (Capability) maturity models do not just catalogue practices and features, but add some nuance in the form of maturity levels. For example: noting down requirements in natural language and in heavily formalized language have the same goal (getting requirements on paper), but the latter is considered more mature than the former. The four maturity models used for identifying features are the Capability Maturity Model Integration for Development (CMMI-DEV) [24] by Carnegie Mellon University, the Requirements Capability Maturity Model (RCMM) by Beecham et al. [25], the Requirements Capability Maturity Model integration (R-CMMi) by Solemon et al. [26], and the Unified Requirements Engineering Process Maturity (Uni-REPM) model by Svahnberg et al. [27]. 5.2.2 Feature group relations. In the domain of requirements engineering practices 13 feature groups were identified. There are three types of features collected: Keylane|Quinity’s desires for a method as outlined in chapter 4.2. These desires play a crucial role in the project and meeting it’s goals. Generalized practices. These practices were taken from literature and generalized when necessary. For example: ‘discuss requirement in workshop’ is a generalization that makes no assumptions with regard to workshop styles and structures. Specific practices. Some specific practices have been included because they were deemed particularly interesting for Keylane|Quinity. For example: ‘Discuss results in a JAD workshop’ is a specific practice in which we left the prescribed structure. The last two types of features were verified with the external coach for their applicability for Quinity in general, the applicability to the expert’s function , and the expert’s interest in the feature. It is important to note that for the field of RE, feature groups are not independent. In the work of Luinenburg et al. [5] it was possible, for example, to make a clear separation between authoring features and personalization features of web content management systems. In this project there is no such separation, as many RE practices are related in several ways. Requirements Elicitation for instance, always feeds into Analysis, an analysis of Requirements interdependencies adds to the more general Analysis, and Validation scrutinizes the practices performed in Specification. Requirements management and Process Quality Assurance apply to all other feature groups, 20 including each other, and traceability follows the central flow of requirements from elicitation to verification. For example: the feature ‘discuss requirements in a work shop can occur in Elicitation – the workshops are used to identify new requirements Analysis – the workshops are used to further elaborate on known requirements Specification – the workshops are used to drill down to the final form of requirements We propose to make a distinction between these two different classes of methods in MAA projects2: Product related MAA. When engineering a product related method, the final purpose of that method is to create a product. In the case of Luinenburg et al. the MAA was used to create a method specifically for the development of a web content management system. Process related MAA. When engineering a process related method, the final purpose of that method is to define a process. In this project the MAA is used to create a requirements engineering method first and foremost. Figure 10 - Visual representation of feature group relationships 5.2.3 The feature groups In this chapter we briefly introduce the feature groups, their names, and some examples of features within them. Requirements Elicitation. Elicitation is the process of learning, uncovering, extracting, surfacing or discovering of needs from customers [28], but also documents (referred to as extraction) [29] and other available sources. Common features include practices like workshops and attributes like copious stakeholder interaction. Requirements Analysis. Analysis is the process of investigating the problem domain and requirements in order to develop a better understanding of stakeholders’ actual goals, needs and expectations [7]. Typical features include practices like filtering early requirements and The same conclusion was reached by Deneckère et al in later versions of their paper. The first they call a ‘product perspective’ and focuses on the deliverables of candidate methods. The second they call a ‘process perspective’ and focuses on the process fragments of candidate methods. 2 21 elaborating them for future use. Some sources recognize the Organizing of requirements as an entirely separate set of activities [30], but we consider it part of analysis for brevity. Requirements Interdependence. Interdependencies between requirements can take several forms. Carlsharmre et al. recognize the following: AND (a group of requirements needs to be satisfied entirely), REQUIRES (one is needed to have the other), TEMPORAL (one is needed before the other), CVALUE (one disrupts the value of another), ICOST (one increases the cost of another, or the entire project) and OR (at least one of a group needs to be satisfied)[31]. Common features are practices like mapping dependencies and creating an interdependence map. Understanding interdependence can be considered part of the Analysis feature group, but we consider it a separate set of activities because of Keylane|Quinity’s interest in this group. Impact Analysis. When a standard product is being sold, novel requirements can lead to solutions with a certain impact on that product. Adding a feature will likely have an impact on other features [32]. Impacts can range from small configuration changes to a cascading effect [33] that causes massive changes throughout the entire product. Typical features include doing an analysis, and attributes like enabling insights into those cascading effects. Like interdependence, impact analyses can be considered a part of the broader Analysis feature group. We consider it a separate set of activities because of Keylane|Quinity’s interest. Requirements Negotiation. Not all requirements represent the needs of all stakeholders. When conflicting interests arise, it is up to the requirements engineer to help negotiate between parties [34]. Typical negotiation features include practices like the search for mutually beneficial solutions, and attributes like enabling concession making. Requirements negotiation can be considered a separate feature group but may also occur during the elicitation or analysis phase. Requirements Specification. Specification refers to the formal documentation of requirements [35]. Of course requirements are also documented during earlier stages in the form of notes, but in specification their notation becomes definitive. Features include practices like the use of formalized languages, and artifacts like requirements specification documents. Requirements Validation. Requirements validation is a class of practices for testing the quality of specifications for the clarity, completeness, and corectness of their contents [36]. Typical features include practices like proof reading of the documents and attributes like document consistency. Requirements Prioritization. When deciding which requirements to implement first, prioritization is key [37]. Many practices and techniques exist within this domain with varying degrees of formalization. Some famous example practices are MoSCoW [38], cost-value analysis [39] and the 100 dollar test [40]. Release Planning. Release planning is a group of practices specific to product software. After prioritization requirements are planned for development in a release of the standard product [41]. Whether requirements become part of the next release or a later release depends on factors that were used for prioritization, such as the value of a solution to clients and the expected development costs. Aside from the actual planning of requirements into releases, typical activities include evaluating release plans and aligning them with the product roadmap. 22 Requirements Verification. To conclude the software development process, a company might want to go back to the original requirements specifications to see if they were actually fulfilled [42]. This also often referred to as acceptance testing [43]. Typical practices include product reviews by stakeholders and attributes include ensuring requirements fulfillment. Requirements Traceability. Traceability is a set of activities that assist the tracking of requirements during all major steps of their lifecycle, both within projects and between [44]. This includes tracking their elicitation, analysis, specification, prioritization and verification. Typically traceability also covers the documentation of relationships between requirements specifications and code changes, but that lies outside the scope of this project. Typical practices include requirements version tracking and coupling requirements to other data (people, meetings, decisions, deliverables, success factors, system tests etc.) Requirements Management. Requirements management is a set of overarching activities that has influence in all steps of a requirements lifecycle [7]. Typical practices include keeping requirements traceable for future projects and planning all the other activities of a requirements trajectory. Process Quality assurance. Unlike validation, which is exclusively concerned with the quality of specifications, Quality Assurance is concerned with the quality of both processes and deliverables in all stages of RE and development as a whole [45]. So as not to overlap with features under validation, the decision was made to limit the quality assurance feature group to processes alone. Hence the name Process Quality Assurance. Typical practices include ensuring compliance to protocols and establishing error handling processes. 5.2.4 Feature group evaluation Feature groups and their individual features were evaluated with the help of the external coach; a senior consultant at Keylane|Quinity. In the first three evaluation rounds features were classified according to the following decision tree: Fulfilled Features Feature Partially fulfilled Should be Not fulfilled Might be Won’t be Figure 11 - Feature classification decision tree 23 Features deemed ‘fulfilled’ are already sufficiently satisfied by the current method. Features that were considered partially fulfilled needed improvement. Features that were not fulfilled were divided into an additional three categories. ‘should be’s were deemed necessary additions for the future situation. ‘Might be’s garnered some interest, but more information was needed to decide their fate. ‘Won’t be’s were deemed too advanced, unnecessary, or out of scope for this project. In the final evaluation round all features deemed ‘might be’s were discussed in more detail, and a final decision was made on which features to keep. Their grouping was also refined in the final evaluation session from the general RE process steps in the previous chapter to more specific sub-groups (e.g. ‘Requirement status tracking’ or ‘involve stakeholders in analysis’ . Evaluation round 1 Discussed 91 Added 1 Changed 14 Removed 11 Fulfilled Partially fulfilled Should be Might be Won’t be 31 32 3 7 6 Total features 312 before Total features after 301 Evaluation round 3 Discussed 45 Added 0 Changed 6 Removed 18 Fulfilled Partially fulfilled Should be Might be Won’t be 15 4 2 5 0 Evaluation round 2 Discussed 26 Added 0 Changed 4 Removed 2 Fulfilled Partially fulfilled Should be Might be Won’t be 10 3 1 8 2 Total features 301 before Total features after 299 Final evaluation Groups merged 2 Major groups 7 Sub-groups defined 34 Features before 150 Merged/removed 37 Total features final 114 Total features 299 before Total features after 1503 Table 2 - Feature group evaluation results Due to their being out of scope, the feature groups Release Planning, Traceability, Verification and Process Quality Assurance were excluded in their entirety. 3 24 Interdependence and Impact Analysis were initially recognized as separate feature groups from Analysis due to company interest, but after evaluation so few features remained that they were merged back into Analysis. For the full final collection of features, please refer to appendix 3. 25 5.3 CANDIDATE METHOD SELECTION The initial strategy for method selection was to immediately continue investigation of candidates that fulfilled the above criteria based on a personal qualitative assessment. After feedback from the external coach, the decision was made to first create a pre-selection of methods and elicitation techniques if they: Provide value for a product software supplier. Are suitable for b2b interactions. Are suitable for a mature, complex product. Are compatible with a focus on keeping the product standard. Have sufficient documentation available to get a detailed understanding of fragments. The full list consisted of 25 elicitation techniques, 4 workshopping methods and 15 requirements engineering methods. Another 15 methods were investigated but rejected for not adhering to the selection criteria closely enough. The list was then evaluated with the external coach. For the methods we covered each fragment individually. The external coach used a more subjective selection approach, based on personal experience, but some distinct criteria were used: Compatibility with incremental approach. Keylane|Quinity is not willing to radically change their incremental development approach, so method fragments that rely too strongly on very agile or very ‘waterfall’ project structures were almost always rejected. Compatibility with natural language notation. Keylane|Quinity strongly prefers specification of requirements to be in natural language, because this enables easy communication with stakeholders. Method fragments proposing the use of model notations or formal grammars had to provide significant value in order to be accepted. Performs under time constraints. Requirements work would be performed on the client’s dime, so it has to be quick and to the point. Any method fragment with a slow start or duration of a full week or more was rejected. With sister company Keylane|LeanApps’ method included, the final candidate method base contained 8 methods. 5.3.1 Candidate method modeling. At the beginning of this chapter we mentioned that an adaptation of the PDD notation would be used. This decision was made in collaboration with both coaches when the modeling process proved to be very time consuming. The following changes were made: Only relevant fragments are modeled. Modeling entire methods when we know that only a subset of their fragments are interesting to us is not efficient. Some additional fragments were modeled if they provide valuable context to relevant method fragments. No modularity included on the deliverable side. In the standard PDD notation all relations between deliverables include modularity (see 4.1 Meta modeling the current method for an example). The modularity of a relationship is often very obvious to experienced readers and does not contribute any new information. In addition, the scattering of small script numbers across large models was deemed to have a negative impact on the overall readability of those models. 26 5.3.2 Candidate methods overview. In this chapter we provide a brief overview of selected methods in the table below. Method name Technique selection (modified version based on the work of Carizzo et al.) Year 2014 Main Source Carrizo, D., Dieste, O., & Juristo, N. (2014). Systematizing requirements elicitation technique selection. Information and Software Technology, 56(6), 644-669. Joint Application Development (JAD) 1995 Wood, J., & Silver, D. (1995). Joint application development. John Wiley & Sons, Inc.. Requirements Engineering with SCenarios for a User-centered Environment (RESCUE) 2005 Jones, S., & Maiden, N. A. (2005). RESCUE: An integrated method for specifying requirements for complex socio-technical systems. Requirements Engineering for Socio-Technical Systems, 245-265. Good Enough Architectural Requirements (GEAR) 2005 Schwanke, R. W. (2005, November). GEAR: A Good Enough Architectural Requirements Process. In WICSA (pp. 57-66). Tropos 2004 Bresciani, P., Perini, A., Giorgini, P., Giunchiglia, F., & Mylopoulos, J. (2004). Tropos: An agent-oriented software development methodology. Autonomous Agents and Multi-Agent Systems, 8(3), 203-236. Security QUAlity Requirements Engineering (SQUARE) 2005 Mead, N. R., & Stehney, T. (2005). Security quality requirements engineering (SQUARE) methodology (Vol. 30, No. 4, pp. 1-7). ACM. KJ+(extension of Jiro Kawakita’s affinitization technique) 2014 Mead, Nancy; Konrad, Michael; & Stoddard, Robert. “Eliciting Unstated Requirements.” Tutorial presented at the 22nd IEEE International Requirements Engineering Conference. Karlskrona, Sweden, Aug. 26, 2014. Keylane|LeanApps 2015 Tapkhirwala, P. – Director of Engineering. Personal interview (2015, January 13). Baars, K. – Product Manager. Personal interview (2015, March 4). Table 3 - Candidate methods overview For an overview of eliminated methods please refer to Appendix 4. 27 6 METHOD BASE In this chapter we describe the candidate methods included in the method base. For each we briefly discuss the rationale, relation to business needs, history, contents, points of interest and, if available, a case study. All PDDs mentioned are included in the attached folder. 6.1 METHOD – ELICITATION TECHNIQUE SELECTION. Several methods for the selection of elicitation techniques exist. Initially we analyzed the ACquiring REquirements (ACRE) framework which was selected for its reported adaptability to project situations[46]. The ACRE framework was envisioned by Maiden and Rugg in 1996 to fill a perceived gap in knowledge on the selection of elicitation techniques in software development projects. Twelve technique are rated against six project attributes in a series of reference tables. Selection is achieved by looking up the project attributes for your current project and looking up the highest scoring techniques in those tables. Some project attributes didn’t make much sense however. One example attribute asks whether you’re looking for implicit, semi-tacit or tacit knowledge, which is often impossible to know up front. ACRE was eventually abandoned. After snowballing by looking up references to ACRE another candidate method was identified. The Methodology for Requirements Engineering Technique Selection (MRETS) was developed by Jiang, Eberlein, Far and Mousavi [47]. MRETS contains a total of 46 techniques for the entire requirements engineering process. Each of these techniques is given 36 attributes, which are matched to 21 project characteristics. In addition the method proposes the use of clustering algorithms to identify related techniques, and the use of an ‘objective function’ to make a complex mathematical cost/value analysis. Though probably very complete, MRETS was also deemed far too complicated to be practically useful. In addition to MRETS, a third technique selection approach was identified in the snowballing. Tsumaki and Tamai developed the ‘Framework for Matching Requirements Engineering Techniques to Project Characteristics and Situation Changes’ with no catchy acronym provided, so for the sake of brevity we’ll call it the TT framework. A total of six elicitation techniques are classified on a two dimensional matrix: Static/Dynamic (systematic techniques for unchanging information vs. loose techniques for dynamic information) Open/closed (the domain is stable and already quite well known vs. the domain is unstable and unknown) Six binary questions determine the current project’s position in the matrix allowing you to select the closest technique. The paper does not actually report how methods are classified in the matrix, particularly how methods can be placed in the grey areas between dimensions (e.g. 80% dynamic, 40% open). Similarly it does not explain how binary questions can result in a position in grey areas between the dimensions’ extremes. Though theoretically interesting, the TT framework is also not practically useful An attempt was made to consolidate these three methods into one single super method, but the three proved too different to find any harmony between them. For more on our failed attempt refer to chapter 10.1. 28 It wasn’t until much later that the fourth elicitation technique selection approach was identified. An unnamed framework by Carrizo, Dieste and Juristo [48] was based on a review of other technique selection methods (both for requirements elicitation and knowledge acquisition), and sought to address some of the concerns in the other three approaches. The framework most closely resembles ACRE by comparing fifteen techniques to sixteen project characteristics in a reference table. This framework also recognizes that a project situation can be changed, albeit sometimes at a significant cost for the eliciting company (e.g. when there is no experienced requirements engineer available, an inexperienced engineer can be trained). It is by far the most practically usable method available, despite some validity concerns with regard to the information in the reference tables. Some additions and changes were made to it’s technique base to better suit Keylane|Quinity’s needs. The full list of included techniques and their descriptions is included in table 4. Additions and removals and other considered techniques (and their motivations) are included in table 5. Technique name Unstructured interviews Structured interviews Timed elicitation Laddering Brainstorming JAD KJ technique Observation Protocol analysis Storytelling Writing use cases/ scenarios Apprenticing Questionnaires Suggestion box Description Interviews with individual- or small groups of- stakeholders, without a pre-determined protocol. Foster an open, conversation style response. Interviews with a pre-determined set of speaking points and questions. Foster a Q&A style response. Interviews where the interviewee is asked to name a certain amount of concepts within a set amount of time (e.g. your five main goals in three minutes, three critical requirements in three minutes). Ask a user pre-determined questions to elicit general goals, tasks or needs. Drill down on answers (using why, what, when and how questions) to establish a hierarchy of knowledge A session with a medium- to large group of stakeholders with broad exploration as a purpose. Participants are usually presented with only one open question that needs answering. A session with a medium- to large group of stakeholders, with structured discussion as a purpose. Various sources provide guidelines with regard to room layout, use of materials, and roles of participants. A session with a medium group of stakeholders, with concept filtering and sorting as the shared main purpose. Stakeholders create sticky notes based on one main question (e.g. ‘What are your crucial tasks?’). Stakeholders are then asked to collaboratively filter, analyse, and group the full collection of sticky notes. The Requirements Engineer observes an end user performing a pre-determined task or case. The Requirements Engineer observed an end user performing a pre-determined task or case. The end user speaks aloud about their actions and decisions. An end user gives a natural language description of their role in a task or case. Less time consuming than protocol analysis and does not need access to existing systems. Results may be incomplete because there is no opportunity to witness tacit knowledge in action. A scenario is defined as ‘a specific sequence of interactions with a system’. A use case is defined as ‘a collection of scenarios occurring between a system and external actors, characterized by the goal that the primary actor has toward the systems declared responsibilities, showing how that goal might be delivered or might fail’ (A. Cockburn ’95). Both can be analyzed for requirements. The requirements engineer analyzes training materials and/or participates in training sessions that are intended for client employees. A list of questions is sent out to any number of stakeholders. Questions may target anything from a broad domain to a specific functionality. A repository where end users and stakeholders may share their complaints, concerns, or desires for the future system. Table 4 - Final technique selection framework techniques Technique name Timed elicitation Action Added Motivation Though likely to miss many requirements, its a short and easy technique that can be a valuable addition when time constraints are high. 29 KJ technique Added Storytelling Added Apprenticing Added Repertory grids Removed Nominal group technique Removed Delphi technique Removed Focus groups Removed Prototyping Removed Ethnography Rejected Card sorting Rejected Analytical Hierarchy Process (AHP) Rejected Problem framing Rejected Brainstorming Rejected Abuse-/Misuse cases Rejected Future workshop Rejected The KJ technique is a structured form of workshopping that hands over a lot of work to the stakeholders and does not necessarily require an experienced facilitator. This made the technique very appealing to Keylane|Quinity. Observation, protocol analysis and apprenticing can be very time consuming, and require access to current systems. Storytelling might not be as effective nor reliable, but works better under time constraints. An intimate knowledge of client processes can’t always be learned from interviews and workshops. Though potentially time consuming, apprenticing was deemed interesting enough for inclusion. Repertory grids are used to rate concepts against attributes. It’s popular for COTS selection, but this technique has no uses in implementation projects. The goal of NGT is to find solutions for problems collaboratively with stakeholders. Keylane|Quinity wants to avoid solution-based thinking in these early phases and focus purely on requirements. Similar to NGT, the goal of the Delphi technique is to find solutions. This is achieved by exposing stakeholders to solutions created by other stakeholders, hoping that this exposure will cause them to adapt and reach a consensus. This technique was removed for the same reason as NGT. Reportedly a workshop for reviewing products and services, but there is not enough context provided in written materials to distinguish it from JAD or KJ style workshops. Focus groups appear to be more of a concept than a technique. Keylane|Quinity’s complex software is not conductive to (rapid) prototyping. This is a concern that may be addressed in the future, but prototyping now is simply not viable. Ethnography entails shadowing a client’s end-user for a longer period of time. This technique was deemed to time consuming to justify it’s value. A structured variant like protocol analysis or observation where a stakeholder is given a specific case is much more effective. A stakeholder sorts cards with concepts on them into either self defined groups (open card-sort) or predefined groups (closed card-sort). Though interested in the playful concept, the external coach saw no situation in which this technique would add value for Keylane|Quinity, as it is mostly intended for product selection. Not development. Using interviews, (weighted) criteria are derived from goals. Potential solutions are then rated against these criteria. Since Keylane|Quinity maintains a standard product, they decide on solutions, making AHP obsolete. Using interviews, the perceptions and underlying reasons for the perceptions of problems by different stakeholders are elicited. Seemed promising but very little material exists to actually explain the elicitation of perceptions and their underlying reasons. Put stakeholders in a room and ask them to generate ideas, with very little intervention. Rejected for it’s ‘loose canon’ type approach. When offering a complex software product in a well known domain, exploratory techniques like brainstorming are less efficient than it’s more structured alternatives. A variant of use case specification where a workshop is held with the sole purpose of thinking up ways to break or break into a system. Considered too specific to the field of cyber security to be of use in implementation projects. A workshop in which stakeholders are allowed to fantasize about their ideal future situation. Depends to heavily on stakeholders’ ability to articulate their desired future situation. In Keylane|Quinity’s experience their product already contains advanced features that stakeholders wouldn’t even think of. Table 5 - Technique selection framework changes Using the adapted reference tables, a simple decision support system was constructed in Microsoft Excel. An example situation with techniques and scores is included below in Figure 12. This system was later dismissed in the first evaluation round. It was perceived as being too complicated still, and would take away too much trust from the expert judgement of experienced 30 Keylane employees. If interested, the original Excel workbook is included in the attached folder. The alternative course of action is further described in Phase 3. Figure 12 - Elicitation technique selection decision support 6.2 METHOD - JOINT APPLICATION DEVELOPMENT Joint Application Development (JAD) was selected for its resemblance to the global RQ analysis which Quinity implemented successfully in a previous project (see Phase 1 – Current situation) making it potentially easy to introduce with little resistance. JAD’s greatest reported benefit is the facilitation of thorough and precise requirement specifications [49]. JAD could help Keylane|Quinity achieve the following business needs: Improved effectiveness. Improved efficiency Providing structured workshops Increasing interactivity JAD, originally named Joint Application Design, was envisioned in the ‘70s by IBM systems engineer Arnie Lind as a means of speeding up the research phase of IBM’s software design projects. One of the leading practice guides for JAD was later published by Jane Wood and Denise Silver in 1995 [50]. Today there are many articles, books and whitepapers on JAD available. Figure 13 - Example JAD room layout prescription Meta modeling perhaps doesn’t do JAD as much justice as it deserves. The defining feature of JAD is not any of the processes or the deliverables, but the environment it seeks to create during the sessions. JAD is intended to be as interactive as possible and attempts to do so through room layout and resources [51,52,53]. Participants sit along U shaped tables [52,53]. This is intended to give every participant a clear view of his colleagues and keep the attention on the speaker at the front of the room. Other authors have done away entirely with rooms and instead opt for virtual meetings through groupware [54] but classic JAD in a room still appears to be the most popular. 31 Possible Speakers include the facilitator, project leaders and end user representatives sitting in a circle around him/her [52]. When necessary the position can also be taken by an executive, consultants, domain expert or end user [51,55]Scribes/documenters only take notes and have a permanent position near the front of the room [51]. At the back of the room there should be room for observers, and a table of refreshments [52,55]. Most sources recommend making plentiful space available for flipcharts, whiteboards, blackboards, beamers, and overhead projectors[52,53,55]. In addition some recommend bringing in plentiful notepads and post-its and one even stresses, perhaps telling of the time, the importance of bringing a Polaroid camera [55]. Some also recommend the permanent presence of a desktop/beamer combination with modeling software, requirements engineering tools and other CASE tools running and ready at all times [53,54,56]. The second defining feature of JAD is its clear role structure: Facilitator. An experienced and socially apt expert that will lead the sessions. Facilitators should be objective, unbiased and good at conflict resolution. Project leaders/Lead developers/Lead designers. An expert that leads a team and is knowledgeable about (part of) the product. He/she is capable of judging requirements and estimating their design and/or development costs. Executive sponsor. A client executive who champions the product within the client company. Should have the clout to free up the calendars of other client participants. Is not required to be present at every session but should occasionally be present to show support. End users. Those that are directly Figure 14 - JAD meta model affected by the implementation. Experienced end users in leadership roles are preferred. Domain experts. Highly specialized individuals, both from the client and supplier company, that can be brought in on an invitation basis to discuss their field. Scribe/Documenter. Exclusively responsible for taking notes and making models during the sessions. There so others don’t get distracted by having to take notes. 32 Observer. People who sit in to listen, but are not supposed to contribute, since too many voices may cause confusion. JAD leaves some points open for interpretation. An example mentioned earlier in this section is for instance the duration of sessions. The traditional JAD session duration is considered to be several days of full-time lock up [52,53], though in practice this often proves to be unfeasible JAD does not propose a structure for session contents. What to discuss and how openly to discuss is for the practitioners to decide. Templates or structures for deliverables are not included. How to document results is left to the practitioners. In 1998 Davidson [57] performed a series of 20 case studies on JAD sessions by three different companies. Only 40% of projects were performed using the traditional full-time lock up during several days. 45% of projects actually used half-day sessions, and 15% limited sessions to ~2-3 hours. In 60% of projects sessions were spread out across a period of several weeks rather than on consecutive days. Davidson reports that there is a possibility that the case companies might not be getting the most benefit out of JAD for exactly those reasons, but his findings still show reported improvements: “The findings of this exploratory study suggest that the three research sites realized modest improvements in systems development processes and outcomes by using the JAD method. Informants reported improvements in requirements definition, IS efficiency, mutual learning between IS and users, and so on in 10-30% of the projects examined.” 6.3 METHOD – RESCUE. Requirements Engineering with SCenarios for a Usercentered Environment (RESCUE) was developed by the Centre for HumanComputer Interaction (HCI) design at the City University of London [58]. The method was developed for the European organization for the safety of air navigation (EUROCONTROL). The method was initially selected for its reported focus on domain analysis. After the initial analysis it was Figure 15 - RQ management phase of the RESCUE meta model 33 revealed that this part of the method consisted exclusively of I* modeling activities, and didn’t prescribe an actual analysis as promised. RESCUE does however come with a very well documented requirements management phase, and though this is not explicitly part of the business needs in chapter 4.2, it may still have some valuable contributions to the current practice. Requirements management in RESCUE consists of the following: Specify requirements in the Volere shell (by Volere, part of the Atlantic Systems Guild). Determine the requirement type (from a typology). Relate requirements to use cases. Writing fit criteria using SMART goals. Decompose requirements into granular parts. Chart interdependencies between requirements. Manage the status of requirements. Track changes in requirements. Checking the quality of requirements. All of RESCUE’s middle section is unfortunately unusable for Keylane|Quinity. The use case modeling and scenario walkthoughs phases are not relevant, since Quinity will not be adopting use case based RE. In additon, the impact analysis phase of RESCUE is simply too rigorous. The creative design workshops phase was also excluded from the method since creative workshops are better covered by ACRE and KJ+. A series of case studies of RESCUE during its implementation were published in later years, both with Neil Maiden as first author [59,60]. It appears no final report after the implementation of RESCUE was ever written. 6.4 METHOD - GOOD ENOUGH ARCHITECTURAL REQUIREMENTS. Good Enough Architectural Requirements (GEAR) was selected for its focus on architecture. Keylane|Quinity also uses the architecture of their software as a reference, making GEAR very compatible. GEAR could help Keylane|Quinity achieve the following business needs: Improved effectiveness Improved efficiency Provide structured workshops Make early phase requirements gathering more formal Optimize session abstraction GEAR was originally developed at Siemens Corporate Research, inc. by Robert Schwanke [61]. GEAR is an incremental method and aims to bring together concepts from model-driven RE, Quality Attribute Scenarios and Global Analysis. The ‘good enough’ in the name comes from the statement of the author that the increments should simply end when experts believe that “the information is good enough to make the necessary decisions”. This is similar to thee often used 80/20 rule in agile development [62]. Globally GEAR contains the following increments: Stakeholder analysis increment. Create a use case context model, identify stakeholders and enough use cases to differentiate between them. Quality Attribute increment. Engineers estimate likely quality attribute scenarios (QAS), stakeholders are gathered in a workshop to review estimated QAS, the project plan and 34 the current system architecture. Stakeholders’ most important concerns are captured as new QAS. Global analysis increment. Engineers identify scenarios and capture them as UML behavior models. A global analysis team analyses scenarios and QAS to identify influencing factors between the two. Also catalog factors, issues and strategies for communicating them to stakeholders. Architecture principles increment. Architecture experts are brought in to relate required functionalities to the system architecture and create an architecture principles document to explain how they will be mapped to the existing system architecture. Can be reviewed with stakeholders in an ATAM session. Functional componentization increment. A decomposition of the software architecture is used to specify the modules and components functionalities will become a part of, or which new ones will be created. Interfaces increment. A coarse grained specification is made of external and internal interfaces of modules including all functionalities accessible through those interfaces. Done when all use cases can be mapped to the architecture. The first two phases of GEAR are considered irrelevant. The current practices of identifying stakeholders suffice, and quality attribute scenarios are explicitly focussed on non-functional requirements, which is out of scope for this project. The global analysis increment remains useful if quality attribute scenarios are replaced with functional requirements. A particular area of interest is the architecture principles increment, where functionalities are mapped to a system architecture. This could allow Keylane|Quinity to easily visualize which requirements are in and out of the scope of QIS by relating them to QIS’ architecture models. The componentization increment was included for the sake of a complete view of GEAR, though it is deemed unlikely that a single project’s requirements will ever result in a new module for QIS. The mapping of functionalities to existing modules would simply create a more detailed mapping than the previous increment. 35 Figure 16 - GEAR meta-model The interfaces increment is, to a certain extent, already present in the current process. External and internal module interfaces are always part of the goal architecture sketch that is created as part of the workshops. 36 There are no case studies of GEAR available, though one would assume it was implemented at Siemens Corporate research. 6.5 METHOD - TROPOS Tropos was included for its introduction of a system as an actor in a domain. Similar to the architectural approach of GEAR, this allows Keylane|Quinity to easily visualize which requirements are in and out of scope for their QIS product in implementation projects. Tropos can help Keylane|Quinity achieve the following business needs: Improved effectiveness Improved efficiency Provide structured workshops Make early phase requirements gathering more formal Optimize session abstraction Derived from the Greek homonym meaning ‘way of doing things’, Tropos is a broad software engineering method resulting from the similarly named Tropos Project [63]. The project is backed by six universities and has over twenty academics actively participating. Tropos depends heavily on the i* modeling method, which was also seen earlier in RESCUE. To overcome some of i*’s weaknesses a formalization (Formal Tropos notation) and accompanying validation tool were made. For brevity only the requirements phase of Tropos will be described here: Interview stakeholders (to elicit roles, goals, tasks and dependencies on others. Also elicit sub goals, soft goals, methods used and resources used). Create I* actor diagram(I* notation, formalized as formal tropos (FT) notation) Create I* goal model (i* actor models merged including dependencies between actors. Dependencies are shared goals, tasks and resources) Introduce the system actor (model the system as an actor in the dependency model with all its goals, tasks and resources) Rework existing goals (change other actor goals as a response to the system) After these steps Tropos delves further into architectural design, detailed design and eventually implementation, but those steps lie outside of the scope of this project. One of the major weaknesses of I* remains unaddressed: reliance on expert input and judgment. What level of abstraction to model on, how to check for completeness, when to stop gathering soft goals, and how many sub-goals to identify are all left to expert judgement. The FT notation makes some headway in overcoming these, but the resulting models still appear highly subjective. Aside from that, Tropos is particularly good for charting interdependencies between actions, goals and actors. Tropos has been a part of various case studies, either in parts or as a whole. Some of the most prominent examples are: [64,65,66]. 37 Figure 17 - Tropos meta-model 6.6 METHOD - SECURITY QUALITY REQUIREMENTS ENGINEERING Security QUAlity Requirements Engineering or SQUARE was selected for the creation of a common terminology with the client and developing supporting artifacts for the remainder of the project. Other method steps are deemed out of scope. SQUARE can help Keylane|Quinity achieve the following business needs: Make early-phase requirements engineering more formal Increase interactivity in the requirements engineering practices 38 SQUARE was developed by the Software Engineering Institute (SEI) in 2005 [67]. It was intended to be a method for the elicitation, analysis and prioritization of security related requirements in IT systems. Not to be confused with the 2011 ISO standard for Software Quality Requirements and Evaluation (SQuaRE). Though generally too focused on security related requirements to be of value for Keylane|Quinity, the first and third method fragments were particularly well received in the first review. The first method fragment, ‘agree on definitions’, proposes a simple yet highly interactive way to set up a common terminology with the client. A survey style form is sent to the client containing common ambiguous terms. For each term a checklist of definitions is provided containing the supplier’s own definition and one to three generally accepted definitions. The last option is always an open field where the client can enter their own definition if it differs. An example of a survey question is included below. The completed survey is documented in a report or glossary, which can then be shared between the two companies for the remainder of the project. Figure 18 - Example of a SQUARE terminology survey question The third method fragment, ‘develop supporting artifacts’, proposes a process for the creation and sharing of documents, templates, reports, and other artifacts that will be needed in the project. This is something that most software development companies do already, but it is rarely formally recognized as a distinct part of their processes. The method fragment consists of a planning activity by the supplier, followed by the creation and sharing of documents from both supplier and client. The fragment ends with a verification activity to guarantee that all necessary artifacts are completed and documents are received. The method was validated in two case studies. First by a group of graduate students [68] under the lead of the orginal author, Nancy Mead. Later it was applied by Carnegie Mellon students and another SEI research group to the development of an IT asset management system for an undisclosed branch of the United States Department of Defence [69]. 6.7 METHOD - KJ+ KJ+ was included for its highly interactive workshop session design, and the way it relegates work to stakeholders. KJ+ can help Keylane|Quinity achieve the following business needs: Increase interactivity in the requirements engineering practices Formalize the filtering of requirements. 39 Inspired by the KJ technique, KJ+ is another method developed by the SEI [70]. The original KJ technique is a structured workshop design by Jiro Kawakita [71], which hands over most of the elicitation and filtering efforts to stakeholders themselves. Though different interpretations exist, KJ usually sits stakeholders down in a single room where they are asked to answer a focus question on sticky notes. The notes are then grouped, filtered and sorted by the stakeholders themselves in a series of exercises, where the facilitator merely takes a guiding role. KJ+ adds a preliminary interview, focus question design, the identification of unstated needs and a step for KANO analysis. The KJ+ method does not interact well with other elicitation methods, as its demand for a series of preliminary interviews would make it rather time consuming. The double grouping exercise in the workshop design was also not a part of the original KJ technique, and may be too complicated for inexperienced stakeholders. As such, the decision was made to include the original KJ technique under the technique selection method, and to only include some minor method fragments from KJ+. In the preliminary interview the Kano analysis step was particularly well received. It is based on the Kano model by Noriaki Kano [72], which proposes that there are three types of features any product can have: Must-be. A must-be feature is commonly expected by stakeholders. If it is not included in your product it will cause great dissatisfaction. If it is included it will simply be taken for granted and will be perceived indifferently by stakeholders. Satisfier. A satisfier is a normal stakeholder need. If it is not implemented it will cause dissatisfaction, but it will elicit a satisfied response if it is implemented. Delighter. A delighter is an innovative feature that the stakeholders usually weren’t even expecting to find in the product. If implemented it will lead to great satisfaction. If not implemented stakeholders won’t even notice that its missing. Kano analysis is often used as a supplement or alternative to a traditional cost/benefit analysis and can serve as a basis for filtering or prioritization. Though reported to be used internally at the SEI, there are no case studies available of the KJ+ method in use. 40 Figure 19 - KJ+ meta-model 41 6.8 METHOD – KEYLANE|LEANAPPS METHOD The Keylane|LeanApps method was included as a special interest for Keylane|Quinity, particularly as an opportunity to gain a deeper insight in the processes of their (at the time) new sister company. Keylane|LeanApps has a far more iterative approach to software design, loosely based on agile development practices and principles. The company uses insurance products as a baseline to measure the fit of their software to client companies, whereas Keylane|Quinity takes an architecture focused approach. This distinction makes sense, since Keylane|LeanApps operates predominately in the life insurance and pension sectors. Both life insurance and pensions are subjected to far more legislation than the damage insurance sector in the Netherlands, which makes for far more homogenous insurance products in the market. This makes finding the few differences that distinguish a new clients products from the competition an effective approach. In addition, Keylane|LeanApps predominately keeps itself occupied with policies and relations. Keylane|Quinity pays fare more attention to other insurance operations such as workflow management, premium calculation, request handling, and more. A product-centred approach makes sense for the needs of Keylane|LeanApps, but since QIS also seeks to support many other client processes this approach wouldn’t fit Keylane|Quinity in it’s current form. There are still some lessons to be learned from Keylane|Quinity’s sister company. The clear separation between requirements and solutions is also made, but not as explicitly as it is made by Keylane|LeanApps. The first Figure 20 - Keylane|LeanApps meta method 42 three phases also boast their own formal review cycles, both with the client and internal experts. A fit test between Keylane|LeanApps’ standard insurance product definitions and the client’s product definitions forms the primary source of requirements. The secondary source is an elaboration session held with stakeholders to further understand the client’s products and processes. These two sources of requirements are then processed in a fit test document and a very basic prototype displaying a simple potential solutions for gaps. Stakeholders are asked to review the fit test and attend a demo session, in which they determine whether their requirements have been correctly understood. The results of the fit test- and prototype-reviews are compiled into a fit test review document that forms the third source of requirements. If these reviews indicate a lot of missing information, extra elaboration sessions are possible. As mentioned before, QIS is not designed to be conductive for rapid prototyping. The other approach, the fit test, may be of use however. Once the client has fully approved of the fit test, Requirement Designs (RDs) are made. For each major client requirement an RD is made, which decomposes the requirement into granular parts (similar to the goal of Keylane|Quinity’s design workshops). RDs must be absolutely solution free and should only state needs or goals. Product specialists then contribute an impact assessment and complexity estimate to this specification. Highly or extremely complex requirements are reviewed by a product manager who determines if more analysis and decomposition work can be done. After product manager approval RDs are reviewed by the client. After specification a Solution Design (SD) is made. An SD is content-wise equivalent to Keylane|Quinity’s RFC. The SD outlines the specific solution that will be built to fulfill the requirement. Once again there are two review opportunities: once by an internal review board (which also determines the final impact) and once by the client. Fully approved solution designs will be planned in the client’s own release, but will also be generalized by a functional expert team for release in the standard LeanApps product. 43 7 – ASSOCIATION AND METHOD CONSTRUCTION 7.1 ASSOCIATION In this step of the method association approach, the feature groups collected earlier were compared to the method fragments of candidate methods. If the concept of a method fragment is still unclear, a method fragment is any activity paired with it’s deliverable. In ALL PDDs presented in chapter 6, a method fragment is a white rounded rectangle on the left combined with it’s connected white rectangle on the right. A two dimensional table was made to compare each of the 33 feature groups and 15 business needs to a total of 54 method fragments (Figure 21). The feature groups were previously refined in elaborate review sessions with the external coach, but methods had only been briefly explained. This led to the realization that some method fragments would satisfy no features whatsoever. As association progressed a total of 16 method fragments were excluded, resulting in a total of 38 method fragments remaining. In Figure 21 the exclusions have been marked with red names. Crosses in the figure represent a fulfilment of one or more features in a group by a method fragment. This however, does not necessarily mean that the entire feature group is satisfied by the entire method fragment. Red marked corners in the figure are Excell comments in which I further elaborate on the relation between method fragments and features if there is anything worth mentioning. For a larger version of the association table, please refer to appendix 5 for the association table file included with this thesis. Including the business needs identified in chapter 4.2 as features also proved to not be a very wise decision. Some of these needs were not satisfied by method fragments because they were too specific to Keylane|Quinity (e.g. consistently gather requirements from demo sessions, actively involve FO and TO in RFI/P answering). Others were too abstract to be covered by methods (optimize session abstraction, push for client objectivity when expressing requirements). Another concern presented itself in the two main business needs: effectiveness and efficiency. This problem was predicted by an internal coach: how do we measure effectiveness and efficiency? The assumption I made was that any method that allows for targeted elicitation counts as effective. For example: the KJ technique has a group of stakeholders share their needs and goals, but then puts them to work by having them filter those needs and goals until only the crucial ones remain. This is opposed to an untargeted elicitation technique like brainstorming session, where the usual goal is to just gather as much as possible of anything. In the case of efficiency, I assumed that any method fragment that does not attempt to seek out every single requirement could be considered effective. For instance: the ‘quality attribute increment’ in GEAR attempts to identify an exhaustive list of non-functional requirements. This would not at all be considered an efficient use of time for Keylane|Quinity. A good example of efficient elicitation would be the use of technique selection frameworks, where a project situation is always analyzed in order to select the optimal technique. As for the results of these assumptions, please refer to Phase 3 – Validation. 44 Figure 21 - Association table 7.2 PRELIMINARY METHOD ASSEMBLY Using the association results, a preliminary method was assembled. See Figure 22 for a summarized version. A full view of the preliminary method is included in appendix 6. The preliminary method is constructed from all candidate method fragments that satisfy feature groups and adhere to one or more of the following criteria: 1. During association this fragment appeared to be a particularly good fit for this feature. 2. In the early review of candidate techniques and methods this fragment elicited a very positive response. 3. Out of all the fragments that fulfill this feature, this fragment fulfills more other features. These criteria helped prevent over-selection, but to not narrow our views too much at this stage we also kept track of viable alternative method fragments. Looking at the feature group ‘quality checking’ under the requirements validation group, there are 5 different method fragments that satisfy it. It makes no sense to include all five, so we opted to only include the quality check from RESCUE. Quality checking in the RESCUE method is part of the broader ‘Requirements management’ method fragment, which also supports an additional 10 feature groups. As an alternative the ‘requirements inspection’ fragment of SQUARE has been marked, as it was well received in the early method and technique review. The preliminary method contains the following method fragments: The original top half of the sales trajectory (Keylane|Quinity). See Phase 1 for a description. 45 Agree on definitions (SQUARE). In this method fragment a terminology survey is sent to the client. The terminology includes common terms in the industry, Keylane’s definition, a handful of alternative definitions, and room for the client’s definition. The purpose of this method fragment is to establish a common terminology between supplier and client. Define Project (JAD/Tropos). As is common to many software development methods, it all starts with the definition of the project. In this method fragment the client, the project purpose, project objectives and critical stakeholders are captured. Develop supporting artifacts (SQUARE). In this method fragment Keylane|Quinity prepares all the documents (e.g. surveys, forms, reports, templates) that will be made during the project. This is also when Keylane|Quinity and the supplier share relevant documents that may be of use to eachother. Gather known requirements (own contribution). Keylane|Quinity gathers requirements from their own Sales department in an interview, and gathers up everything learned from early documents and meetings. There was no apt method fragment in any of the candidate methods, so I added this on my own initiative. A mid section based on the project situations: o Front Heavy (retains the bottom half of the sales trajectory). The only thing Keylane|Quinity does here is taking notes. Dominant clients should be allowed to fulfill their information needs however they see fit. If Keylane|Quinity still lacks knowledge afterwards, they may refer to Front Light. o Front Light (technique selection). When the client does not dominate the early stages of a project, Keylane|Quinity can refer to a technique selection tool to plan sessions and other events on their own initiative. o Amendment project (technique selection/GEAR). In amendment projects the client already has an implementation of QIS. Technique selection is applied like in a front light project, potentially with the addition of GEAR’s function-toarchitecture mapping. Workshop (JAD). This is a concluding workshop to review that all requirements are understood. Similar to Keylane|LeanApps’ fit test reviews. We opted to use the workshop section of JAD because it is well known and has plenty of guidance available. Documenting requirements (various). It was at this point still completely uncertain which attributes Keylane would and wouldn’t want to document. We included many notations in this fragment, including activities like filtering, removing duplicates and doing impact assessments for the sake of completeness. Original Project setup & Increment phases (Keylane|Quinity). See phase 1. Requirements Management (RESCUE). Earlier we established that requirements management activities were lacking. We decided to include the very elaborate and well documented management phase from RESCUE in it’s entirety to offer lots of choices. The future of the Kano Analysis (KJ+) method fragment was still uncertain at this point. It was perceived as an interesting addition during the technique and method review, but it could potentially be far too time consuming. The assembly of the preliminary method marked the end of phase 2, and provided the basis for phase 3: evaluation. 46 Figure 22 - summarized preliminary method. 47 PHASE 3 – VALIDATION In the third and final phase of the project the preliminary method resulting from phase 2 was to be reviewed and perfected. The preliminary method was intentionally overly elaborate to give the reviewers plentiful alternative options to consider. We intended not to make any major fragment eliminations without consulting reviewers first. This chapter continues with the explanation and results of the first review session, followed by it’s resulting changes to the method. The second evaluation and it’s results are discussed in chapter 9. 8.1 FIRST REVIEW RESULTS To start off the validation of the preliminary method, a lunch session was held on location at the Keylane|Quinity office. The purpose of this session was to have an open discussion about the concept, goals and results of method fragments. The specifics of their contents was left for the second review. The first session was held on Tuesday the 14th of april. 10 participants attended including three designers, three consultants, a team leader, the sales manager, Keylane|LeanApps’ product manager and the external coach. What follows is a list of method fragments that were discussed and the results of the discussion. Agree on definitions –Though positive about the concept, the group agreed that establishing a new list of terms for every project does not make sense. Instead the terminology should be one standard set with occasional additions of new terms. Those responsible for adding terms should take care not to turn it into a full thesaurus. The terminology should be limited to names of entities that are known to have conflicting definitions. In addition, rather than including several third party sample definitions, the document should only have two columns: The Keylane|Quinity definition and room for client comments. Two method fragments were changed. Define project – The identification of stakeholders in this early stage caused some discussion. The main reasons for and against were: - It’s always good to have a list of contacts available when extra information is needed on a requirement. Can be used as a defense when unidentified stakeholders feel passed over later in the project. A list of stakeholders established with the client can serve as evidence that unidentified stakeholders were not pointed out by their own company. Particularly practical if all decision makers are identified in the list. Those stakeholders that have the mandate to act and decide on behalf of the client company should be in there, so Keylane|Quinity doesn’t forget to contact important individuals. New stakeholders will always be identified later in the project. This means a stakeholder list would quickly become obsolete, or that we should expend time updating the list. The decision was made to limit a stakeholder list to only those that are critical to the project: stakeholders with the authority to make decisions, and stakeholders that must be consulted on certain subjects. One method fragment was changed as a result. One of the session participants remarked that this classification would be similar to the concept of an ARCI matrix. This subject will be investigated in a later stage. 48 Develop supporting artifacts – The elaborate development of supporting artifacts (see SQUARE in chapter 6) was considered too elaborate and was consequently removed. This resulted in the removal of five method fragments. Gather known requirements – As soon as the subject of interviewing Keylane|Quinity’s sales department was introduced, the sales manager took the opportunity to provide an elaborate description of the knowledge his department acquires. It was remarked that the handover of knowledge between designers and developers, for example, is performed far better than the handover between sales and consultants. Identifying the exact potential of the sales department followed in a later stage, but for now one method fragment was considered changed. Front Light and amendment projects – The fair remark was made that any form of elicitation technique selection would have to compete with the few techniques that engineers are comfortable with. This remark was quickly countered by a senior consultant with the fact that relying on familiar techniques alone increases the risk of missing requirements. The group agreed that a lack of knowledge or experience with alternative techniques can always be mediated with training, so it was worth exploring technique selection. The group was not particularly impressed with the decision support system built in Excel. One participant aksed: “we are not going to fill out a form like that every time we want information do we?”. Another remarked: “a textual description of techniques would fare better. If you explain the technique and when to use it, we’d feel more comfortable with a decision than if it was made with a calculator”. The group agreed that such a textual description would have to include for each technique: A clear guideline on how to do it. A description of the context in which it works well. A description of the circumstances in which it would not work. The people and materials needed to do it. For each technique, a list of complimentary techniques that combine well with it. One method fragment was changed as a result. Processing – At this point the participants started to get distracted by the earlier discussions, but some points got through: 1) The removal of duplicates was considered unnecessary since no one has ever seen duplicate gaps in a project. For non-gaps removing duplicates would be too inefficient. 2) Making sure that gaps are written using SMART criteria had unanimous support. 3) The creation of a requirements document had support but several participants remarked that it would require a very clear document creation guideline. 4) Impact analyses are performed by the QIS group for generalized solutions. Specific solutions are only made when they are absolutely critical to the client, regardless of impact. Impact analyses are thus outside of the scope of implementation projects. The subjects impact analysis, reviewing the document with the client were not discussed. Two method fragments were removed and two were changed. Requirements management – The use of the Volere Shell was removed since it does not make sense to use an external standard document that is not tailored for Keylane|Quinity. Relating 49 requirements to use cases was also removed, since use cases are rarely written. Writing fit criteria was considered part of the ‘refine notation’ and ‘check if requirements are smart’ method fragments in the processing stage. These three method fragments were removed. The remaining five method fragments (decompose requirements, chart requirement interdependencies, manage requirement status, track requirement changes, check requirement quality) were considered due for later implementation. The current way of working in office documents is not very conductive to these method fragments. The planned adoption of Atlassian’s Jira and Confluence tools however, would make these tasks far easier. Five method fragments were considered changed. 8.2 POST REVIEW METHOD CHANGES After concluding the first review, we started writing the method as part of Keylane Quinity’s Standard Development Environment (SDE). The SDE is an intranet folder containing documents and guidelines for all of the company’s processes. Explaining the method as a part of the SDE would make it easier to communicate it to Keylane experts. In addition the following changes were made as a result of the review: 8.2.1 Agree on terminology Rather than the original idea to include several common definitions from external sources (e.g. dictionaries) in the terminology survey, the advice from the lunch session was followed. The terminology survey will now take the shape of a simple three column table. The first column contains a single term, the second the Keylane|Quinity definition, and the third has room for client comments. Making an actual terminology survey was considered outside of the scope of this project, 8.2.2 Identify stakeholders In the project definition method fragment the step ‘identify stakeholders’ was included from the Tropos project method. After the lunch session the method fragment has been renamed as ‘identify critical stakeholders’. Including an exhaustive list of stakeholders this early in projects results in a list that requires a lot of updates and maintenance. In accordance with the meeting proceedings the list will now only include decision makers and those who MUST stay informed. To enable the selection of critical stakeholders, the suggestion will be made to use an ARCI matrix [73,74]. The ARCI is one of many variations of responsibility assignment matrices, specifically designed for classifying decision makers and influencers. The four letters stand for: Approves. Those authorized to approve decisions Recommends. Those responsible for recommending decisions Consulted. Those whose opinions must be sought when making decisions. Informed. Those who must be informed after decisions. An example ARCI is included below: 50 Policy Requests Acceptance Relation management Product manager R, I I A, R Project Manager A, R A, R C, I Financial consultant I C, I Technology team I I C, I Table 6 - Example RACI matrix 8.2.3 Technique selection In accordance with the proceedings of the lunch meeting technique selection using a decision support sheet in excel was deemed to complicated. Instead, this method fragment was replaced with a simple textual description of elicitation techniques. For the sake of findability the techniques have been classified in the following categories: Interview techniques. Where stakeholders are interviewed in a one-on-one or one-onfew meeting. Workshop techniques. Where stakeholders are interviewed in medium to large group sessions. Observation techniques. Where the requirements engineer observes and analyses current operations at the client company. Questionnaire techniques. Where stakeholders and end users are asked a broad range of questions in paper or digital forms. A document was created listing the techniques for internal use. Each of the techniques is given a description, their ideal context for use, the obstacles that will impede their use, the required people and materials, and its combination with other techniques. These last four factors are not binding, meaning that your current situation does not have to adhere to those criteria perfectly in order for a technique to be useful. Which techniques and when to use them will largely depend on your expert judgment and experience. It is recommend strongly that requirements engineers at least consider techniques that they are unfamiliar with. Limiting their use to a select few favorites might increase the risk of missing requirements. Finally, one last technique was added as a result of the lunch meeting: Demo observation. In a demo observation session several stakeholders are educated in the basic functionalities of QIS and are led through a workshop using a QIS demo environment. This direct involvement results in highly detailed requirements, but also gives the participating stakeholders a good frame of reference for future sessions. 8.2.4 SMART goals In accordance with the lunch meeting proceedings the decision was made to give SMART goals a more prominent place in the internal process guideline. SMART was originally envisioned by Geoge T. Doran as a simple acronym of criteria for well written goals[75]. Though there are some variations in what the five letters actually stand for, it was decided in collaboration with the coach to use the following: Specific. It is clear which capability the customer really needs, and to what extent QIS is going to be responsible for delivering that capability. 51 Measurable. The success or failure of the requirement’s solution can be measured. Writing a measurable requirement can be done by formulating it as an in-or-out (the system either does it or does not do it), or by including fit criteria. Achievable. The requirement does not demand something impossible or unfeasible. For instance: “the QIS system must detect errors in policy request data”. At first glance this seems achievable, but how realistic is it really to expect not a single error to ever sneak through into policy data? It is impossible to prevent every misspelling of names, every wrong number in bank account data, and every other thinkable error that may occur. Relevant. The requirement represents a need that matters and adds value to QIS when fulfilled. The requirement must also make sense as a part of QIS. A popular example of a goal that is not relevant is “the sales manager wants to make 50 peanut butter and jelly sandwiches”. This may certainly be a personal goal for the sales manager, but this is not something that QIS should support. Time-bound. The requirement can be given a deadline. This is particularly important for high-value gaps. Without a clear deadline, it may be delayed in favor of simple day–today problems and not receive the attention it deserves. Presenting a clear deadline to the client is also a sign of commitment. Rather than using complicated QA or inspection methods for checking the quality of requirements, SMART is a lightweight and efficient alternative. Drawing more attention to it in the SDE document is expected to result in better written requirements. 8.2.5 Passive voice Though occasionally remarked upon before as a problem, the passive voice (lijdende vorm in Dutch grammar) in requirements descriptions turns out to cause serious disruptions for Keylane|Quinity. As a response this problem will also receive more attention in the SDE document. A sentence written in the passive voice places the subject in the position of the object. This means the subject is undergoing an action, rather than performing it. Consider for instance: (1) The thief was caught. Here the subject (thief) is undergoing the action (catching). The typical role of a subject, performing an action, is not fulfilled in this sentence, making it impossible to know who or what is performing the action. Perhaps the thief was caught by a police officer, or an attentive citizen, or a good security system. Now consider this example of a requirement: (2) It must be possible to register a client In this sentence the subject (client) is undergoing the action (registration). It is not clear which role the QIS system should have in this requirement. Does QIS automate registration? Does an end user register the client with partial support from QIS? Is the client registered in an external system which communicates with QIS? Requirements should be written in the active voice instead. For example: (3) Qis must assist an acceptance-specialist with the registration of a client by providing an entry form. 52 Gaps written in the passive voice will always cause confusion later in the project. Because the system role is so unclear, designers are forced to retrace earlier steps and find out what a stakeholder originally intended. A short description of the passive and active voice have been added to the SDE document. For a report of the changes made to the method please refer to table 7. For a full view of the method after the first evaluation, please refer to appendix 6. 8.3 INTRODUCE MORE CREATIVE AND INTERACTIVE ELICITATION After the first lunch meeting the external coach indicated that there was still a desire for more creative solutions on my part, and more interactivity with stakeholders. Particularly any means to get stakeholders to do their own elicitation work would be greatly appreciated. In an earlier implementation by Keylane|Quinity, some success was already had with a closed survey. The survey covered a broad range of subjects touching on all aspects of insurance business, including some specific peculiarities (e.g. an unknown product mentioned on the client’s website, references to unknown third party systems in the RFP). Replying would have required broad knowledge of the client company’s operations so this survey was directed at client management exclusively. The closed survey used in that project has been distilled into a list of generic speaking points: subjects that should be discussed in every requirements phase. This list was later expanded using a broad introduction to QIS, some functional descriptions of QIS, and my participation in a course on Relation Administration. A potential way of approaching completeness is to simply make sure that all major process areas have been discussed. Checking off everything on the list is no guarantee of completeness, but at least it’s another piece of evidence that completeness is approached. For the full list please refer to the speaking points checklist.docx document in the attachments. The closed survey is another in a long line of techniques that target the management layer of client companies. This led us to discuss the possibility of perhaps targeting end users with a similar technique. End users were until now an untapped resource for Keylane|Quinity. In scientific literature there are some advocates of involving end users (e.g. [76,77]). Others go as far as making end users an integral part of design and development (e.g. participatory design [78], end-user development [79]).To engage end users in the development process we made the decision to introduce an open survey. The open survey would have to feature simple, open questions and would have to be short in order to keep the target audience engaged. The survey questions will be peer reviewed in the second review, so see chapter 9 for more. The second tactic for engaging end users discussed was a Wiki. An open web platform similar to Wikipedia, that hosts both text and media in encyclopedia style pages. Wikis natively come with discussion functionalities, which would make it ideal for sharing Keylane|Quinity’s large collection of documents in an interactive way. Other perceived benefits are: Make documents more accessible. Nobody likes reading 120 page pdf files with functional design decisions on all kinds of levels of expertise. In a Wiki, these documents could be split up into more sensible pieces. 53 Improve navigation. Keylane|Quinity’s intranet contains well over 200 folders, sorted in a way that doesn’t always make sense. A Wiki can use hyperlinks, even down to the smallest subsections, to make navigating trees of folders obsolete. Embed multimedia. For most of the basic functionalities of QIS there are training materials and tutorials available. On a Wiki these could be embedded into pages to put them within easy reach of readers. Structure the body of knowledge. Most new clients won’t know where to start reading once they’re given a stack of documents. A wiki can provide separate pages that provide guidance, catered to specific groups of users based on their function, specialization and degree of experience. The trial wiki that was built as a part of this project is described in more detail in chapter 10.2 During this stage many other smaller revisions were also made to the PDD of the method. These revisions are summarized in table 7. The revised PDD is included in Appendix 7. 8.4 IMPACT OF THE EVALUATED METHOD During the evaluation of the preliminary method several participants remarked that it was not clear to them when and where in the process my suggested method fragments would be taking place. In fact, some remarked that they weren’t even familiar with the early phases of the current method to begin with. The poster on the next page in figure 23 was created to visualize both the point of this project and a broad timeline of projects in general. Activities on the right side of the timeline were added or replaced old activities from the left side. The entire requirements phase (voortraject) is a completely new addition. The large funnel on the left of the timeline visualizes the amounts of requirements coming in during different stages of projects. As the sales trajectory with its RFI and RFP progresses, more and more requirements come in. When Keylane|Quinity is finally selected as the software supplier, the requirements phase begins. All previously known requirements are processed, more requirements are gathered and a final report is made. The purpose of this phase is to identify 90% of the major gaps, because more requirements may always pop up later. The poster was reviewed with a handful of experts before its final unveiling during the second lunchmeeting. As a result of these reviews we also created a second version (see figure 24), in English, showing the entire process as a whole. Some minor adjustments were made to the naming of phases and activities, but content wise not much was changed. You may notice a little gray block all the way at the bottom of the project setup phase named ‘Finalize architecture’. This was an addition by the external coach, who envisions a new project phase where the target architecture of implementation projects will be formally created. This phase is outside of the scope of this project, and will not be created in this project. 54 Figure 23 –Old Poster visualizing method changes 55 Figure 24 – Poster visualizing only the new method 56 9 – SECOND REVIEW ROUND The second review session for the method was held on the 9th of july, approximately two months after the first. During this period we continued work on creative elicitation methods (speaking points, open survey, wiki) and adapted the method as a response to the feedback in the first session. In addition we began to seriously provide context to the method in the form of checklists, templates guidelines and much, much more. This was all reviewed in the second review, including the last open question: how are we going to write down requirements and gaps. In section 9.1 we describe some of the smaller results of the review, followed by method changes in section 9.2. In section 9.3 we present the final method. 9.1 SECOND REVIEW RESULTS During the second review the following method fragments were approved: Interview sales. After having done some additional interviews with sales, we realized that sales keeps track of every RFP’s answers very neatly in an answer overview. The value of this overview was realized by all, though some remarked that the answers in there are too specific to the customer. It might be a good idea to keep a separate RFP answer overview for internal use. Terminology survey (formerly ‘agree on definitions’). The original terminology survey contained, for each term, a Keylane|Quinity definition, two industry definitions and room for a client definition. As a result of the first review this was changed to, for each term, one column with the Keylane|Quinity definition and one column with room for client comments. This version was much better received. Some also mentioned that it is likely we will already pick up on some terminology differences in the sales trajectory, which means that some comment columns can be pre-filled for the customer. This was added to the internal guidelines document. Keylane Wiki. The Keylane wiki prototype was very well received, particularly because it is a fully functional genuine wiki that could, in theory, be put online as-is. The potential value was also recognized, though many agreed that much work would still have to be done to create a controlled environment for stakeholders. 9.2 POST-REVIEW METHOD CHANGES The following method fragments were still deemed insufficient and changed. Project definition – stakeholders list. The stakeholders list was originally described as ‘a list of stakeholders’ and nothing more. In the first review the feedback was that a list like that can quickly become unmanageably large. As a result we decided to only use stakeholders with a role in the ARCI matrix. Approves, Recommends, Consulted and Informed. We expected the Recommends role, those who recommend solutions, to be rejected (since Keylane|Quinity already avoids stakeholders getting involved in making design decisions), which it was. The informed role, those who should be informed of decisions, was also rejected, since the prevalent opinion was that the list would still be too big. In the final version we will only register the As and Cs: 57 Approves – Those who are responsible for reaching internal agreement about decisions. Consulted – Those who must be consulted in the decision making process. 1 method fragment was considered changed. End user survey. The end user survey was strongly rejected by many participants. Apparently engaging end users is really uncommon early in projects for one or more of the following reasons: The client company does not want it’s low level employees to be aware of a new software acquisition until the exact specifications are known and they can start up a proper change management trajectory internally. The client company wants to maintain control over the outgoing requests to the software supplier. Involving large groups of low level employees risks a loss of that control. The client company’s politics call for a strict separation of responsibilities. Participating in the acquisition of software is simply not part of end-user responsibilities. The client company does not want to risk disappointment among it’s low level employees when their requests aren’t fulfilled. Since Keylane|Quinity sometimes has to say no to feature requests to protect the integrity of the standard product, this is a likely scenario. As a response the closed survey was used to replace the open survey. Closed surveys are targeted towards client management and should not run into those problems. Since open surveys were replaced with closed surveys in the PDD, 1 method fragment is considered changed. Handling additional requirements in increments. I initially suggested to only write down new gaps that arise in the increments. The group made the valid argument that requirements that lead to product configurations should also be captured at all times. In fact, all requirements should, lest your colleagues in future increments have to operate with a knowledgedisadvantage. We collectively decided on the following approach to deal with new requirements and gaps arising in the increments: Requirements and gaps that apply to later increments should be captured so the participants in those increments do not miss out on valuable information. Requirements and gaps that apply to previous increments were missed, so they should be documented in order to have them included in later increments. Gaps that apply to the current increment should still be documented, so any resulting changes to QIS can be traced back later. Requirements that can be easily solved in this increment can be captured optionally. In the resulting PDD one method fragment was changed and one was removed. The requirements management method fragment was further cleaned up with the removal of one method fragment. Requirements notation. The last big open question was notation: what are we going to write down? In past projects that had requirements documentation, the attributes differed wildly from 58 project to project. In this review session we interactively decided upon a single basic notation standard for all future projects. My initial assumption was that Gaps needed an entirely different and much larger amount of attributes than requirements. I was proven wrong when the group agreed that the following would have to be registered Figure 25 – Deciding on notations in the review session for both: Name Domain (from a standard list) Subject (optional, own choice) Author Source (optionally with a role for human sources) Description containing: o One line statement of need o Client rationale o Our approach o Related process (optional to add context) o Related functionality if known (optional) The attributes exclusive to gaps are: ID number Priority based on: o Value to the client o Expected impact o Complexity o Risk o And including a one-sentence justification. More optional elements In the description: o Workarounds if available o Scope if necessary o System requirements if easily derived We decided to structure requirements into three distinct parts: A title consisting of an ID number (gaps only), name, domain, subject (optional), author and source. A subtitle containing a MoSCoW priority and a short justification (gaps only) A description containing the client need, client rationale, our approach, and room for contextual attributes using bullets. An example gap and requirement would end up looking as follows: 59 Implement standard customer views – Reporting (Customer view) – Wesley Crooijmans, in 12-7 workshop notes Should have. This functionality can be configured out of the box and contributes to the quality of client X’s communication processes. The client needs QIS to generate one single overview of each customer on demand, across both life and damage insurance policies. Client X wants this to assist communications, by having all of a client’s policies readily available. Client X has agreed to use the standard customer view functionality in QIS. QIS-010 Advertiser as an intermediary – Intermediary administration (Intermediary types) – Wesley Crooymans, from Bernard Brouwer (lead product-advisor Health) Must have. This functionality is absolutely necessary to continue working with a vital group of partners to the company. The client needs QIS to provide all intermediary administration capabilities for third party advertisers that do not have the authority to submit requests. These advertisers only act as Client X’s promoters and refer new end customers to the company. Client X wants them to be a part of the intermediary administration system so that they can continue to keep track of- and pay commissions for assisting sales. The standard relation administration capabilities can be re-used if these advertisers are added as a new intermediary type. These include: o Adding a relation. o Editing a relation. o Coupling a relation to policies. Four method fragments were considered changed. 9.3 FINAL METHOD After processing of the second review results the method was finally completed. A report of all changes made can be seen below in table 7. When reworking the PDD with the latest additions, we realized that a major error was made in the first review results PDD (appendix 7). The Front-Heavy method fragment (now renamed Participate in sessions) takes place in the sales phase of projects, not the requirements phase. This mistake led to the change of 4 method fragments and the removal of 1 method fragment. In the final count of 46 method fragments we do not count the out-of-scope end of the increments (design, develop, test, go live, and maintenance). Total before Added Changed Removed Review one 62 0 12 10 Revision one 53 3 7 7 Review two 49 0 11 3 Total after 53 49 46 Table 7 - evaluation session results overview The final method PDD has been included in Appendix 8. The concept and deliverable tables have been included in Appendix 9. 60 10 - OTHER RE EFFORTS Keeping in mind the external coach’s request for introducing some creativity (see 1.2 – objectives), we experimented with automated elicitation technique selection and crowd sourcing requirements in a wiki. The internal coach also recommended investigating the options of using Natural Language Processing (NLP) for the identification of requirements, which is included in this chapter’s 3rd section. 10.1 REQUIREMENTS ELICITATION TECHNIQUE SELECTION EXPERIMENT. Recall chapter 6.1 method - Elicitation technique selection in the candidate methods chapter. This chapter describes our initial findings of ACRE [46], MRETS [47] and the TT [80] framework, and the reasons why these three were eventually discarded in favor of a customized version of Carrizo et al.’s method [48]. We realized early on that none of the first three were very practically applicable or reliable. Our initial course was to try and synthesize our own technique selection method out of the three. 10.1.1 Three very different selection approaches The first sign that a synthesis was likely to fail was the fact that selection followed a very different process for all three approaches. Selection in ACRE is achieved by simply filling out a set of six project factors and looking up the resulting technique scores in reference tables. Scores are either not applicable, not very applicable, applicable or very applicable, expressed as symbols. Where these scores actually come from is somewhat questionable, as their sources nor creation are ever explained. Validation of the scores was reportedly achieved by sending a survey to an undisclosed number of experts. Nothing else is ever said on the subject. The biggest complaint we had with ACRE was the absurdity of some of the project factors. “knowledge type” for example asks the user whether they are looking for explicit, semi-tacit, or tacit knowledge. Something that is impossible to know up front. Where ACRE seems relatively simple, MRETS takes things to the other extreme. MRETS provides a standard technique base containing 46 techniques (17 for elicitation). Techniques are given an ad-hoc subset of 31 available attributes (7 for elicitation) measured on 6-point ordinal scales. Selection criteria are 21 project factors that describe varying project and domain characteristics, measured on 5-point ordinal scales (one exception is 4-point categorical). For each configuration of the 21 project factors recommendation rules are proposed. Recommendation rules are basically rules that prescribe 3 to 5 techniques for each specific combination of project factors. In the paper the authors provide some of these rules, and promise to complete the set in their future work. With 21 project factors, this means that there should be a total of (5^20)*4 = 12.800.000 recommendation rules. We wish the authors good luck. A preliminary selection is achieved by picking the techniques that match your project’s recommendation rule. This selection is then refined using a fuzzy clustering algorithm, a cost/value calculation (objective function) and expert opinion. The first two are insanely complicated, and an obvious ploy to feign objectivity by introducing complex logic and 61 mathematics into the paper. The end result should be 3 to 5 recommended elicitation techniques. The method was reportedly validated in three case studies. One of the three is elaborately described in the paper, but it conveniently skips over the recommendation rule problem. The other two case studies were never published. Finally the TT framework classifies techniques on a two dimensional matrix. The x axis runs from a static to a dynamic focus (very systematic to very loose and creative) and the y axis runs from closed to open objects (the object of study is ‘stable and well known’ to ‘unstable and unknown’). Six binary project factors determine your position on the same matrix, enabling you to pick the closest techniques for the best results. How to get grey area results (e.g. 60% systematic) from binary questions is not made clear. God only knows how techniques ended up in the grey area either, since their position is never explained nor validated. No case studies were ever published. 10.1.2 Lists upon lists of factors There is only one similarity between the three methods, and that is that all three use project factors as a crucial variable for selection. As mentioned above, both ACRE and the TT framework use six, but MRETS uses 21. The second sign of our failing synthesis was how different those factors really are. See the table below for a full listing of project factors: Criteria ACRE MRETS TT framework Purpose of requirements (bespoke, cots selection, contract procurement) Project size, Project Category (communication, embedded, semi-detached, organized), Product Type, Team Size, Project Complexity, Time Constraints, Organization and Customer Relationship, Acquaintance with the Domain, Product Quality Criteria, Cost Constraints, Degree of Safety Criticality, Knowledge of RE of the Teams, Degree of Knowledge of Requirements, Requirements Volatility, Availability of a Skilled Facilitator, Stakeholder Heterogeneity, Degree of Innovation of the Project, Customer Availability, Degree of the Importance of Reusability, Degree of the Importance of Eliciting implicit Knowledge, Degree of Outsourcing Application domain (stable, unstable) Knowledge type (behavior, process, data) Knowledge representation (new system, non-tacit, semi-tacit, tacit) Observable phenomenon (yes/no) Constraints (meeting needed, time to prepare, time for session, time to obtain, # engineers, # stakeholders, stakeholder friendliness, no technical overhead) Technique interdependencies (reported but not completed) Requirements engineers type (logical, imaginative) Information resources (abundant, scarce) Desired user involvement (little, much) Requirements quality (completeness, behavioral consistency, logical consistency, modifiability) Non-functional requirements (yes/no) There is really no consistent theme in ACRE’s factors. They range from project purpose to knowledge, and from project constraints to technique interdependencies. MRETS starts of simple enough with some statistics, but then delves into the unmeasurable (e.g. Degree of knowledge of requirements, Degree of the importance of eliciting implicit knowledge). The TT framework then seems to stay focussed on simple attributes, but goes on to break it’s binary pattern by asking for your desired requirements quality (why can’t I have all four?!). Not even the scoring systems are compatible (ACRE: 4 point categorical, MRETS: 5 point ordinal, TT: binary categorical). 10.1.3 Abandon ship! 62 After several days of headache inducing attempts to find a common thread; some way of tying these three together into a logical whole, I eventually had to give up. MRETS was far too complicated for practical use, with its millions of possible recommendation rules and completely unnecessary mathematical clustering. The TT framework results would be impossible to justify because of its weird black-and-white binary questions that would somehow lead to grey area techniques. ACRE seemed so promising but it’s weak validation and odd choice of project factors made it unusable. There was no way to make anything useful out of these three. Consider then my relief at finding the paper of Carrizo et al.. Thanks to its similarities to ACRE it has the same validity concern: How do you validate all those techniques scores for all of those project factors? Luckily the authors are open and honest about their approach and admit to this weaknesses in their paper, rather than citing an unavailable survey sent out to an unknown number of anonymous experts. 10.2 CROWD SOURCING REQUIREMENTS ENGINEERING IN A PRODUCT WIKI. 10.2.1 Wiki’s and crowd sourcing Crowd Centric Requirements Engineering (CCRE) is a term first coined by Snijders et al. in 2014 [81]. CCRE refers to the use of crowd sourcing [82] and gamification [83] principles throughout RE processes. In the accompanying paper Snijders et al. propose a method for gathering requirements from crowds of end-users, rather than a small group of high-ranking representatives. The gaming aspects are added to reward users with digital points and badges. Requirements elicitation is also covered within this paper. This was not the first attempt at melding crowd sourcing and requirements elicitation. Earlier attempts were made by Lim, Quercia and Finkelstein with their method StakeSource [84]. It was initially intended for stakeholder identification, using principles from social networking theory. One year later Lim, Damian and Finkelstein began development on the web-based tool StakeSource 2.0 which incorporates the identification and prioritization of requirements [85]. A demo was made available at http://www0.cs.ucl.ac.uk/research/StakeSource,but it appears that the tool was never released. Both of the above captured the interests of experts in this project, but in both cases the adoption of a new tool was perceived as too great a barrier to entry. Still, the idea of a semi-self regulated crowd doing the requirements elicitation autonomously struck gold. Crowd sourcing was proven to have significant cost reducing effects on various types of projects in the past [86,87,88]. In search of a costless yet effective means of crowd sourcing elicitation the use of a Wiki had the highest potential. A Wiki is essentially a collection of web pages created collaboratively by groups of people [89]. The use of web technology enables the use of a broader range of contents than traditional documents can, such as video materials, presentation slides and other media. Wikis have been used for crowd sourcing purposes successfully in the past [90,91]. The use of wikis in RE is not a novel concept either. Decker et al. used a wiki for the communication to- and negotiation of- requirements to stakeholders [92]. Silveira et al. present a wiki-based requirements documentation approach [93]. Fereira and da Silva propose a wiki for internal requirements engineering as a replacement to expensive tools (e.g. RequisitePRO, CaliberRM) [94]. There appear to be no wikis used specifically for the participatory elicitation of requirements with customers, so we decided to make a prototype. 63 Building a wiki anno 2015 is not particularly taxing. There are plentiful free and open source wiki frameworks, packages and builders available. Particularly popular variants are listed below: Engine MediaWiki Code PHP Database MySQL, PostgreSQL, SQLite Foswiki Perl Text files Pmwiki PHP Text files, MySQL, SQLite Examples Wikipedia, wikiquote, wikibooks, Uncylopedia Asap Library, W3C brazil, Blackfin consulting Canadian air force intranet, Netherlands patent office intranet, wikihistory Table 8 - Wiki platforms comparison 10.2.2 Building a Wiki The idea to build a proof of concept for Keylane|Quinity started as just that: an idea. The image below shows a picture made in MS paint for an earlier presentation at the company. The initial response was mostly positive. Figure 26 - QIS wiki concept image It wasn’t until much later, in the evaluation stage, that the time became available to actually get to work on a genuine proof of concept. The decision was made to use MediaWiki, the same engine that powers the famous Wikipedia, for it’s wide availability of documentation and plugins (not to mention its flexible open source licensing). 64 Setting up seemed difficult at first, particularly after looking at MediaWiki’s required software. No less than three servers would be needed: MySQL for the databases, PHP for the code and Apache for hosting the whole thing online. Luckily the popularity of Mediawiki means that others solved this problem before. We opted to use the very user friendly Wamp Server stack, which contains all the necessary materials: http://www.wampserver.com/en/ With Wamp and MediaWiki installed, you’re ready to go. That’s it. The Wiki is, albeit being a bit empty, ready for use. MediaWiki’s markup language may take some time to get used to, but due to its similarities to html even inexperienced web developers can get the basic jist of it pretty quickly. 10.2.3 Discussions To facilitate working with clients and discussing subjects within the wiki itself, the out of the box functionality wouldn’t suffice. The default approach to discussion in MediaWiki is to make a secondary page attached to every single page, a so called talk page. Discussion pages are completely empty and do not provide any functionality to help discussions along. Users would have to build them like they would any other page. This is no problem for those well-versed in the MediaWiki markup, but it provides a significant barrier to entry for client users. As a solution we included the LiquidThreads plugin: http://www.mediawiki.org/wiki/Extension:LiquidThreads. LiquidThreads converts the discussion pages of a Wiki into forums with full threading, comment and reply functionality. We advise Keylane to look into the use of Flow in the future, which is the threaded discussion plugin currently under construction for use in WikiPedia. Figure 27 - A wiki talk page with LiquidThreads 65 Forum style discussion should lower the barrier to entry significantly, especially for inexperienced users who won’t be learning Wiki markup just to make a simple comment. In addition the external coach would have liked to see support for in-line commenting, but there are currently no plugins that support similar functionality. MediaWiki’s static database structure would suffer an enormous size increase if comment sections were added to each and every single line of text. 10.2.4 Converting documents The biggest perceived challenge with Wikis was the required effort of converting Keylane|Quinity’s document collection into wiki pages. Several attempts have been made in the past by MediaWiki users to enable smooth conversions from Word to Wiki markup, but none appear to have succeeded. All MediaWiki plugins with this purpose are either unmaintained for years, or perpetually in an unstable beta phase. Microsoft once made a disconcerted attempt at building an official MS Word plugin, but it was so riddled with bugs and conflicts that it was eventually abandoned. Luckily, there is one somewhat reliable workaround available. Word documents can be saved with the OpenDocument (.odt) format, which makes them compatible with the open source Libre Office toolset. Libre Office’s document editor can in turn be used to export documents with the MediaWiki markup in a .txt file. Some minor issues still exist within these files like extra line breaks appearing and headings not always converting well. Compared to the myriad of problems in other available solutions these are easy to fix, and we don’t expect Keylane to start migrating its entire collection of functional designs any time soon though. The wiki in its current form would be a good place to house introductions, documentation of basic functionality , and some training materials. For a bigger collection of screenshots please refer to appendix 10. 10.3 USING NATURAL LANGUAGE PROCESSING FOR REQUIREMENT AND STAKEHOLDER IDENTIFICATION Natural Language Processing of requirements was suggested as a potentially valuable way of identifying requirements by the internal coach. His reasoning was as follows: A software supplier generates a lot of documentation about its software product in the form of functional descriptions, design documents, manuals and training materials. This documentation is full of keywords related to the software’s functions and capabilities. Similarly the software supplier’s clients have websites, process documents and sales communications that are rife with keywords related to their business processes. Natural language processing could potentially show the critical differences: keywords that are common in the client’s files, but rarely or never appear in the software documentation. These missing keywords may be indicative of requirements and gaps. We envisioned the results as pictured in figure 27 below. 66 Supplier documentation Gaps Client documentation The, it, on, off, next, to, up, down, left, right,Supplier over, under, policy, insurance, Keywords soft, board, legal, ware The, it, on, off, next, to, up, down, left, right, over, under, Difference policy, The,insurance, it, on, off, next, soft, to, board, legal, left, up, down, ware right, over, under, policy, Overlap insurance, soft, board, legal, ware The, it, on, off, next, to, up, down, left, right, over, under, Client Keywords policy, insurance, soft, board, legal, ware NLP Figure 28 - NLP experiment envisioned outcome Using the open source natural language processor AntConc we set to work on a large set of Keylane|Quinity’s functional descriptions, and an opposing set of client process descriptions. As a benchmark of success, we attempted to replicate a completed gap analysis report. The results were somewhat disappointing. Out of 66 general keywords that would likely lead to the known gaps, only 21 were present in the client’s keywords to begin with. Out of 37 specific keywords that would definitely lead to the known gaps, only 10 were found. Not only that, but these keywords appeared so low down in the rankings that they would likely be overlooked anyway (ranging from 747th to 2628th). They were not populating the top 100 or even the top 50 as we had hoped. This experiment did however lead us to try two more ideas, which were met with slightly better results: RFP analysis. Using pre-selected searchwords and KeyWords In Context (KWIC) views we attempted to extract requirements from RFP documents. Particularly the searchwords ‘must’, ‘shall’ and ‘could’ performed well, resulting in over 50% requirements per hit in one RFP. Stakeholder identification. Using KWIC sorting on the words before the same searchwords, we were able to identify 19 stakeholder groups from a 100+ page document in under 10 minutes. The full report on the NLP experiments is included in Addendum 1. 67 11 – DISCUSSION & CONCLUSION In this chapter we briefly discuss the results in 11.1, and the answers to our original research questions in 11.2. We continue with the validity and lessons learned in 11.3 and 11.4 respectively. Finally the business and academic relevance are discussed in 11.5. 11.1 RESULTS Figure 29 - Summarized final method 68 The method still begins with the original sales trajectory. RFI’s and RFP’s are answered, and if desired other information sessions are given to t he client. These three activities all form sources of requirements. Before we get to the actual search for requirements some setup activities are performed. The agree on terminology step contains a terminology survey, in which standard terms are shared with the client and feedback is received. This is followed by a short ~1 page project definition, in which the project’s purpose, objectives, milestones and critical stakeholders are captured. The wiki and closed survey can be presented to the client at this point. Since both have the client gather their own requirements independently, we consider both to be part of the setup. Then, if applicable, there is room for a sales interview and documents & systems analyses. The requirements phase setup ends with the collecting of all known requirements from: The RFI and RFP From sales information sessions From sales employees From the terminology survey From the wiki and closed survey From client documents and systems. In the actual requirements phase we begin elicitation with a quick check of the speaking points checklist. For subjects that have not been discussed we select techniques that will be used to elicit requirements about that subject. Derived requirements that have not yet been verified with the client are also part of these sessions. Throughout this phase we document all requirements in a central requirements dossier. Gaps are also captured in a separate overview table for easy access. When all planned elicitation techniques have been performed, the document gets one last check for structure, completeness and quality using a checklist. We then share the dossier with the client and plan a final workshop to discuss the last remaining open questions, undiscussed speaking points and unverified requirements. On the one hand project managers set up the rest of the implementation project in the project setup phase, followed by design, development, testing and go-lives in increments. On the other hand we continue to manage the status and contents of requirements. In addition we process new requirements arising in the increments and document them in the dossier and table. After the contextualization step, an extra step that was added to the MAA, the following were created: Deliverable Description Requirements SDE A process document in the style of the company’s style. Method walkthrough An elaborate walkthrough of an example project using the method. Dossier template A template for the requirements dossier. Gap table template A template for the gap overview table Speaking points checklist A list of high level subjects that should be discussed with clients Dossier checklist A checklist for checking quality, consistency and completeness of the dossier. Standard terminology A draft for the standard terminology list, with room for conversion into a survey. Elicitation technique list A list of available elicitation techniques, including descriptions, context, obstacles, resources and complementary techniques. 69 Table 9 - Thesis deliverables 11.2 CONCLUSION In the method section of this paper we presented the following research questions: MQ – How can Keylane|Quinity improve its requirements engineering method in terms of efficiency and effectiveness? SQ 1 – How can the current processes and future needs for early requirements engineering of a product software company be identified? SQ 2 – How can the steps of the Method Association approach be applied to inform the essential processes and deliverables of a method for the elicitation, capture, and analysis of early requirements? SQ 3 – How can the resulting method be implemented and evaluated? To answer the first sub-question we modeled the requirements engineering methods as they were documented by the company, and then validated it in interviews with individual users of the method. This turned out to be a very effective approach, since a lot of variations and inconsistencies were revealed. The company was aware of the existence of some variations, but was never exposed to such concrete evidence. Based on these findings needs for a new method were established, with the help of a senior manager. For the second question we applied the MAA with some minor variations. We tackle these variations in depth in section 11.4. The end result was a method that, according to review participants, does embody the essential processes and deliverables of a requirements engineering method. The third and last question was answered with two group reviews as evaluation and the addition of the contextualization step to the MAA. This topic is also discussed in depth in section 11.4. We hoped to have a project available to use as a case study for the resulting method, but sadly nothing became available in time. During the last weeks a candidate project was identified, for which we retain the opportunity to perform a case in a separate paper. It was the ‘efficiency and effectiveness’ part of the main question that proved hardest to answer. We assumed that efficiency could be achieved by finding techniques that delegate more work to the clients (e.g. wiki, survey, KJ technique). For effectiveness we proposed that the 90% biggest gaps should be found in the requirements phase, which we hope to achieve with several means (an SDE document containing tips for reaching completeness, a speaking points checklist, a document checklist). We do recognize that without without a case study it is not possible to measure an actual increase in ‘efficiency and effectiveness’, but participants in the reviews appeared very positive about the outcome regardless. 70 11.3 VALIDITY The validity of this thesis will be discussed on four points: Credibility of the approach, confirmability of the results, dependability of the created method and transferability of the results to other cases[95]. 11.3.1 Credibility of the approach The credibility of the approach used depends for the most part on the credibility of the Method Association Approach, which was used in this research. The MAA was originally published in the workshop proceedings of the 4th model driven web-engineering conference. Since then it has received attention from prominent names in IS research, particularly from the Utrecht University and the Pantheon-Sorbonne University (Paris 1). Another recent publication was made by the latter in the proceedings of the 9th conference on Research Challenges in Information Science, published by the IEEE. During this thesis we took some liberties with the original MAA on three occasions. We added an early review of the feature groups, a review of candidate methods, and added the contextualization step (see section 11.4 for more). We strongly believe that these steps added value to both the approach and the project as a whole. 11.3.2 Confirmability of the results Though somewhat methodical, the MAA does not provide a lot of guidance for the identification of feature groups and candidate methods. We must therefore conclude that, if repeated by another, the resulting method would likely turn out different. Particularly because the field of requirements engineering is so broad and rich with potential features and methods, it is entirely believable that another researcher would find other features and methods to include. However, confirmability depends more on the qualities of the method and it’s ability to fulfill the internship company’s needs. By carefully capturing and updating these business needs throughout the thesis we have created a method that is perceivd by the company as very satisfying. 11.3.3 Dependability of the created method With the MAA being a situational, the method should, in theory at least, be fully adaptable and usable regardless of project situations. The two major project situations, dominant versus passive clients, is one of the main goals we explicitly kept in mind during the creation of the method. After all the tailoring done as contextualization this method should be dependable. To fully validate the dependability of the created method a case study would have been perfect. Though we discussed the possibility of a case with the external coach early on, no suitable implementation trajectory presented itself during the thesis until the very last weeks. We still retain the opportunity to complete a case study as a separate paper after finishing this thesis. 11.3.4 Transferability of the results. Though tailored for Keylane|Quinity, some of the results should definitely be transferable to other software product producing companies. We further discuss the possible applications in section 11.5.2 – business relevance. 71 11.4 POST-PROJECT REVIEW After 5 years of books and classes, a project of this size and scale was a whole new world to me. Not surprisingly, I learned some valuable lessons in the process. 11.4.1 Working on a fuzzy problem During the first few weeks of the project it already became clear that this was not going to be a typical class assignment. There was no single correct answer to this problem. No perfect method that would guarantee a 10/10 outcome. In fact, on several occasions during interviews and interactions with Keylane employees, it became clear that even they were not fully aware of what they needed all the time. I quickly realized that my preconception of having to follow a set path had to go out the window. This project was going to take a lot of creativity. Sometimes this meant coming up with ideas, trying them out, and going back to the drawing board when they were inevitably rejected. This wasn’t always such a bad thing, since the end results always ended up better. 11.4.2 Working with the Method Association Approach The Method Association Approach, or MAA for short, was a creation of another MBI student back in 2008. For as far as I could find, this approach had only been used twice before. Once by the author himself and once by another fellow MBI student, who actually applied it to Quinity’s data warehousing method just one year prior. In addition, Deneckère and Hug from the Sorbonne University were collaborating with Onderstal and Brinkkemper to generalize the MAA, and I was allowed an early look into their paper. The final version was published in May of this year [22]. With these three sources I thought I had all I needed to apply the MAA at Keylane|Quinity. For the most part, this remained true, except for some minor tweaks and adjustments along the way. (1) Evaluate your features early. The original paper by Luinenburg et al kept it simple: gather features from literature. Their features were never reviewed. This did not appear to be the case for Deneckère et al., but only a single sentence on the subject is written: “We categorized these features in 18 groups and after informal interviews with two experts we combined several feature groups, resulting in 10 feature groups.” I started out the same way both papers did, by digging around in literature for feature groups. Particularly maturity models proved to be goldmines for this type of information. Their relevance for Keylane|Quinity however, was questionable at best. Sure, a maturity model’s feature of writing all requirements as formalized models counts, but is it desirable for Keylane|Quinity? No. Early on the company put it’s foot down and demanded natural language requirements. Anything else would simply be too big a change. To keep a ‘formalized model notation’ feature, use it in association, and have it influence the final method would simply make no sense. Our review of features and the resulting eliminations are reported on in section 5.2.4. (2) There are two types of MAAs, with subtle differences in features. During the collection of feature groups I noticed it was significantly harder for me to keep a clear distinction between feature groups, without features overlapping or being dependent on one anhother. This seemed to not at all be the case for Luinenburg et al.. Over time a key difference between my goal and theirs became clear. They created a method that would be used to create 72 product: namely a piece of software. I was creating a method that would be used to create a process: namely a requirements engineering process. At the time I named these two situations Product related MAA and process related MAA. In a later version of the Deneckère et al. paper the same distinction popped up. During their creation of an implementation method they noticed that Luinenburg et al. focussed on WHAT artifacts are produced, whereas they focussed on HOW artifacts are produced. They name these two situations the product perspective and the process perspective. (3) Candidate method selection does not exist in a vacuum. “Based on a literature study, four mature web modelling methods and a [sic] propriety web design method were selected” report Luinenburg et al.. Deneckère et al. follow suit in their case study by introducing method selection with “as this step is independent from the others”. Both sources are in agreement that selecting methods is an independent activity. This was not at all the case for me. I found that method selection was dependent on my understanding of the company, and my previous work identifying project situations and features. Perhaps this is more due to the high availability and variety of RE methods. Our initial unrestricted search for any methodical way of working with requirements rapidly resulted in a list of 30 method. Luinenburg et al. and Deneckere et al. probably had a lot less to work with. It makes sense then for them to perceive method selection as a separate activity, whereas I had to be critical and cut some candidates early. (4) Don’t do so much modelling! Before method selection I had already modelled the current situation in an elaborate PDD. After method selection I fired up Microsoft Visio again for the fourth MAA step: ‘model candidate methods’. Creating a full PDD for some of these methods proved to be a very time consuming effort. Getting all the concepts, deliverables, conditional activities, flows, relations and modularities right takes time, time that the external coach deemed too valuable for the creation of 8 models. He urged me to keep the models simple. As a result I eliminated modularity, modelled irrelevant processes as closed, and made no process or deliverable tables. In the end I finished the candidate method modelling MAA step right when planned. (5) Association/assembly as a creative process The fifth and sixth steps of the MAA, associating and building a preliminary method, proved to be the hardest to explain properly. Both Luinenburg et al. and Deneckère et al. take wildly different approaches. Luinenburg et al. suggest two creative approaches. In the first, start from a feature group and see which method fragments satisfy it. Which one of the candidates to select is not explained, but Luinenburg et al. suggest that this approach can then be used to compare the satisfying method fragments, which one would assume leads to a decision. The other approach starts from a method fragment and sees how many feature groups it satisfies. The method fragments that satisfy the most feature groups are deemed more valuable and are selected for assembly. Deneckère et al. make a, quite frankly, bizarre attempt at doing a formal analysis of feature groups and method fragments before association using rules based on logic. Some examples are: If a feature name or group name is the same as a method fragment name, they match. 73 If a method fragment’s name, goal or action is included in the name of feature (groups) they match. Similar rules are based on synonyms occurring in features and fragment names, or words from one appearing within proximity in the other name. Deneckère et al. make the claim that this analysis can be used to prove that all feature groups can be satisfied with the gathered method fragments. I wonder how this proof could be considered valid since they came up with the names for feature groups themselves. Any name overlaps, synonyms or word proximities depend on the names they have chosen. There’s no conceivable way to prove that naming was done objectively. I did not include Deneckere et al.’s approach as a result. (6) Added the ‘contextualize method’ step. The result of method assembly is a preliminary method that should, in theory, satisfy all the company’s needs. Some steps may be too elaborate, complicated or irrelevant, so there is an evaluation step included in the MAA. After evaluation the result is a method that should both theoretically and practically satisfy the company’s needs. The first thing I noticed was that after evaluation, some method fragments still lacked the contents needed to be useful or accepted by the company. ‘Send out the user survey’ for instance, is hardly a useful method fragment without an actual user survey to send. Other method fragments lacked integration into the company, like ‘define project’. Sounds like fun, but how is the actual definition going to be done? Which contents constitute a good project definition that this company can benefit from? I added and named a new step to the MAA: ‘contextualize method’ to address these issues. In this step a method engineer formally takes the time to create documents and training materials to make the method ready for use. This step is also used to create supporting artefacts required by the method, like questionnaires, surveys, checklists and templates. Deneckère et al. performed a similar activity in their case, but declared it a a part of the assembly step. This does not seem like a very efficient choice, since many method fragments will be changed or removed during evaluation. Your contextualization efforts may be lost if the associated method fragments don’t pass evaluation. (7) Estimating planning Estimating an accurate planning is never easy, but for this long project it was much harder than I’d ever experienced in the two-month timeframe of University courses. Originally I planned for association and preliminary method assembly to last a month each, not having had any experience with the MAA at all. This turned out to be a gross overestimation, since the combined effort for these two steps would barely take half a month. On the 25th of March I began sending out the invitations to an evaluation session. An activity that was originally planned for the first of June. This was no problem however, since contextualizing the method (i.e. processing evaluation results, creating supporting documents, checklists, templates etc.) would take the better part of 2 months. An activity that was originally planned for only one month. Remember the generalized MAA presented in figure 6? The actual application of the MAA in this project would have looked more like this: 74 Figure 30 - MAA as used in the thesis 11.5 RELEVANCE 11.5.1 Scientific Relevance. The first and obvious contribution this research can make is a new case study of the MAA in practice. This will be the first ever application of the MAA to requirements engineering, providing an opportunity for an interaction between situational method engineering and requirements engineering. Besides the relevance of the case study itself, this thesis has some contributions to offer to the MAA itself. Mainly the added feature evaluation, early method evaluation and addition of method contextualization: A feature evaluation helped us tremendously, by creating a feature list that was a lot more concise and a lot more relevant to the company. We would recommend using it when applying the MAA to a broad and mature field like requirements engineering. The early method evaluation did not just compact the method base, but also gave the recipients of the would-be method a more concrete example of ‘method fragments’ and what these fragments contain. Contextualization was an absolute necessity to make the resulting method ready for use. Some of the fragments definitely needed some tailoring in order to be accepted by the client company, and any method fragments that require supporting artefacts are inherently useless if nobody creates those artefacts. Maybe contextualization is more of an activity for Process Engineering or Change Management than Method Engineering, but in our case it led to the delivery of a far better method. 75 11.5.2 Business Relevance. The first major contribution to the business world is specific for Keylane|Quinity. The final deliverable of the internship will be a tailored method for the company, adjustable to the different project situations and with supporting artefacts ready to go. To the market of product software businesses, this research provides insight in the creation of requirements engineering methods. This research also provides a proof of concept of the Method Association Approach, creating opportunities for new cases. In addition to showing a way of implementing the MAA, this research provides detailed descriptions of feature group gathering, method selection, association and assembly that can be used to support future MAA projects. Lastly, the resulting method itself may be of use to other product software businesses. Specifically the following: Small to medium sized. The company in this thesis employs approximately 150 people. For a company this size large scale requirements engineering tools such as IBM’s Rational DOORS or Borland’s Caliber may be too big of an expense. The techniques used in this method are low cost, low impact alternatives to the adoption of large tools, and are conductive to agile tools like Atlassian’s Confluence. Smaller than it’s clients. The company in this thesis is usually a lot smaller, both in terms of personnel and revenue, than it’s clients. This means that the company has to: o Actively compete for the opportunity to become a supplier, rather than having clients come to them. The method assumes that a supplier selection process will be the norm, and provides the means to make the most from that process. o Follow the lead of clients, because the balance of power is not in their favor. The method assumes that some clients will be dominant and others will be passive when it comes to directing the flow of information. This would not be the case as often for large software suppliers, who have the reputation and clout to be the dominant party in most implementations. One of the method’s major goals is ensuring the same quality of requirements regardless of client disposition. Complex domain. The company in this thesis supplies to the insurance market. A high complexit y market with no shortage on third party standards, government regulations and rapidly changing trends. The method facilitates working with clients in this market through techniques like a standard terminology survey and a speaking points checklist. o The standard terminology survey prevents miscommunication by presenting clients with a standard list of the company’s definitions for market specific entities and objects (e.g. coverage, intermediary, insured object). The list contains room for comment from the client, and can help both parties detect potential miscommunications early in an implementation project. o The speaking points checklist is a large list of high level concepts that can be affected by an insurer’s software. Speaking points are divided into typical functional areas (for insurance examples are premium calculation, request administration and policy administration). It is worth re-iterating that this project was scoped only to functional requirements and project phases leading up to the design, development, and testing of software. Those looking for a method that also covers non-functional requirements and/or requirements engineering throughout the entire SDLC will likely find the method lacking. 76 REFERENCES 1. Regnell, B., Brinkkemper, S.: Market-driven Requirements Engineering for Software Products. Engineering and Managing Software Requirements, 287-308 (2005) 2. Boehm, B.: Verifying and Validating Software Requirements and Design Specifications. IEEE software, 32-41 (1991) 3. Nuseibeh, B., Easterbrook, S.: Requirements Engineering: a Roadmap. In : Proceedings of the Conference on the Future of Software Engineering (ICSE 00), Limerick, Ireland, pp.3546 (2000) 4. Ratchev, S., Urwin, E., Muller, D., Pawar, K., Moulek, I.: Knowledge based requirement engineering for one-of-a-kind complex systems. Knowlege-Based systems 16(1), 1-5 (2003) 5. Luinenburg, L., Jansen, S., van de Weerd, I., Brinkkemper, S.: Designing Web Content Management Systems Using the Method Association Approach. In Koch, N., Houben, G., Vallecillo, A., eds. : Proceedings of the 4th International Workshop on Model-Driven Web Engineering, Toulouse, France, pp.106-120 (2008) 6. Wiegers, K., Beatty, J.: Software Requirements 3rd edn. Pearson Education (2013) 7. Aurum, A., Wohlin, C.: Engineering and Managing Software Requirements. Springer Science & Business Media, New York, NY (2005) 8. Cannegieter, H., Arensen, M.: Success met de Requirements! 2nd edn. Academic service, The Hague, Netherlands (2008) 9. Bourque, P., Fairley, R.: Guide to the Software Engineering Body of Knowledge (SWEBOK) 3rd edn. IEEE Computer Society Press, Los Alamitos, CA (2006) 10. Larson, E., Satterthwaite, R.: Searching the literature: A professional imperative. American Journal of Infection Control 17(6), 359-364 (1989) 11. Johnson, J.: The Chaos Report. The Standish Group, West Yarmouth, MA (2008) 12. Langer, A.: System Development Life Cycle. In : Analysis and Design of Information systems 3rd edn. pp. 10-20. Springer, London (2008) 13. Nurmuliani, N., Zowghi, D., Fowell, S.: Analysis of Requirements Volatility During Software Development Life Cycle. In : Proceedings of the 15th Australian Software Engineering Conference, Melbourne, Australia, pp.28-37 (2004) 14. Regnell, B., Beremark, P., Eklundh, O.: A Market-driven Requirements Engineering Process: Results From an Industrial Process Improvement Programme. In : Requirements Engineering 2nd edn. 3. Springer-Verlag, Berlin, Germany (1998) 77 15. Carlshamre, P.: Release Planning in Market-Driven Software Product Development. Provoking an Understanding. In : Requirements Engineering 3rd edn. 7., Berlin, Germany (2002) 139-151 16. Bergstra, J., Jonkers, H., Obbink, J.: A Software Development Model for Method Engineering. Elsevier Science Publishers, North Holland, Netherlands (1985) 17. Brinkkemper, S.: Method Engineering: Engineering of Information Systems Development Methods., 275-280 (1996) 18. Rolland, C., Prakash, N.: A Proposal for Context-specific Method Engineering. In : Method Engineering. Springer-Verlag, New York (1996) 191-208 19. Ralyté, J., Deneckère, R., Rolland, C.: Towards a Generic Model for Situational Method Engineering. In : 15th International Conference on Advanced Information Systems Engineering, Klagenfurt, Austria, pp.95-110 (2003) 20. Van de Weerd, I., Brinkkemper, S., Souer, J., Versendaal, J.: A Situational Implementation Method for Web-based Content Management System-applications: Method Engineering and Validation in Practice. Software Process: Improvement and Practice 11(5), 521-538 (2006) 21. Van de Weerd, I., Brinkkemper, S.: Meta-modeling for Situational Analysis and Design Methods. In : Handbook of Research on Modern Systems Analysis and Design Technologies and Applications 1st edn. 3. IGI Global, Hershey, PA (2008) 22. Deneckere, R., Hug, C., Onderstal, J., Brinkkemper, S.: Method Association Approach: Situational construction and evaluation of an implementation method for software products. In : RCIS, IEEE 9th International Conference on, Athens, Greece, pp.274-285 (2015) 23. Hunink, I., Van Erk, R., Jansen, S., Brinkkemper, S.: Industry Taxonomy Engineering: the Case of the European Software Ecosystem. In : Proceedings of the Fourth European Conference on Software Architecture: Companion Volume, pp.111-118 (2010) 24. CMMI Product Team: CMMI for Development (CMMI-DEV) v1.2. Carnegie Mellon University/Software Engineering Institute, Pittsburgh, PA (2006) 25. Beecham, S., Hall, T., Rainer, A.: Defining a requirements process improvement model. Software Quality Journal 13(3), 247-279 (2005) 26. Solemon, B., Shahibuddin, S., Ghani, A.: Re-defining the Requirements Engineering Process Improvement Model. In : Asia Specific Software Engineering Conference, Penang, Malaysia, pp.87-92 (2009) 27. Svahnberg, M., Gorschek, T., Nguyen, T., Nguyen, M.: Uni-REPM: Validated and Improved. Requirements Engineering 18(1), 85-103 (2013) 78 28. Hickey, A., Davis, A.: A unified model of requirements elicitation. Journal of Management Information Systems 20(4), 65-84 (2004) 29. Finkelstein, A., Potts, C.: Evaluation of existing requirements extraction Strategies. Report, FOREST Project, London (1985) 30. Bekkers, W., van de Weerd, I., Spruit, M., Brinkkemper, S.: A framework for process improvement in software product management. In : Systems, Software and Services Process Improvement: 17th European Conference. Springer Berlin Heidelberg, Grenoble, France (2010) 1-12 31. Carlshamre, P., Sandahl, K., Lindvall, M., Regnell, B.: An industrial survey of requirements interdependencies in software product release planning. In : IEEE International Symposium on Requirements Engineering, pp.84-91 (2001) 32. van Gurp, J., Bosch, J., Svahnberg, M.: On the notion of variability in software product lines. In : Working IEEE/IFIP Conference on Software Architecture, Amsterdam, Netherlands, pp.45-54 (2001) 33. Fayad, M.: Accomplishing Software Stability. Communications of the ACM 45(1), 111-115 (2002) 34. Boehm, B., Egyed, B.: Software requirements negotiation: some lessons learned. In : IEEE International Conference on Software Engineering, Dunedin, New Zealand, pp.503-506 (1998) 35. Vessey, I., Conger, S.: Requirements specification: learning object, process, and data methodologies. Communications of the ACM 37(5), 102-113 (1994) 36. Paetsch, F., Eberlein, A., Maurer, F.: Requirements engineering and agile software development. In : Proceedings of the twelfth IEEE WET ICE conference, Linz, Austria, pp.308-313 (2003) 37. Karlsson, J., Wohlin, C., Regnell, B.: An evaluation of methos for prioritizing software requirements. Information and Software Technology 39(14), 939-947 (1998) 38. Clegg, D., Barker, R.: Case method fast-track: a RAD approach. Addison-Wesley Longman Publishing Co., Inc. (1994) 39. Karlsson, J., Ryan, K.: A cost-value approach for prioritizing requirements. IEEE Software 14(5), 67-74 (1997) 40. Berander, P., Andrews, A.: Requirements prioritization. In : Engineering and managing software requirements. IV. Springer Berlin, Heidelberg (2005) 41. Günther, R., Saliu, M.: The art and science of software release planning. IEEE Software 22(6), 47-53 (2005) 79 42. Fischer, K., Walker, G.: Improved software reliability through requirements verification. IEEE transactions on Reliability 28(3), 233-240 (1979) 43. Marciniak, J., Shumskas, A.: Acceptance Testing. John Wiley & Sons, inc. (1994) 44. Gotel, O., Finkelstein, A.: An analysis of the requirements traceability problem. In : Proceedings of the First international conference on Requirements Engineering., pp.94101 (1994) 45. Galin, D.: Software quality assurance: from theory to implementation. Pearson education (2004) 46. Maiden, N., Rugg, G.: ACRE: selecting methods for requirements acquisition. Software Engineering Journal 11(3), 183-192 (1996) 47. Jiang, L., Eberlein, A., Far, B., Mousavi, M.: A methodology for the Selection of Requirements Engineering Techniques. Software & Systems Modeling 7(3), 303-328 (2008) 48. Carrizo, D., Dieste, O., Juristo, N.: Systematizing requirements elicitation technique selection. Information and Software Technology 56(6), 644-669 (2014) 49. Andrews, D.: A crucial dimension for rapid applications development. Journal of Systems Management 42(3), 23-27 (1991) 50. Wood, J., Silver, D.: Joint Application Development 2nd edn. John Wiley & Sons (1995) 51. Duggan, E., Thachenkary, C.: Higher Quality Requirements: Supporting Joint Application Development with the Nominal Group Technique. Information Technology and Management 4(4), 391-408 (2003) 52. Knowledge Structures, Inc.: JAD Guidelines. (Accessed February 5, 2015) Available at: http://goo.gl/ey88gq 53. Carmel, E., Whitaker, R., George, J.: PD and Joint Application Design: A Transatlantic Comparison. Communications of the ACM 36(6), 40-48 (1993) 54. Yatco, M.: Joint Application Design/Development. In: System Analysis, Management Information Systems (MIS) Program. (Accessed February 6, 2015) Available at: http://www.umsl.edu/~sauterv/analysis/JAD.html 55. Mcconnell, S.: Rapid Development: Taming Wild Software Schedules. Microsoft Press, 449463 (1996) 56. Carmel, E., George, J., Nunamaker, J.: Supporting Joint Application Development (JAD) and Electronic Meeting systems: Moving the CASE Concept Into New Areas of Development. In : Proceedings of the Twenty-Fifth Hawaii Internation Conference on System Sciences, Hawaii, vol. 3, pp.331-342 (1992) 80 57. Davidson, E.: Joint Application Design (JAD) in practice. Journal of Systems and Software 45(3), 215-223 (1999) 58. Maiden, N., Jones, S.: An Integrated User-Centred Requirements Engineering Process, version 4.1. Design document, Centre for HCI Design, City University, London (2004) 59. Maiden, N., Robertson, S.: Integrating creativity into requirements processes: Experiences with an air traffic management system. In : Proceedings of the 13th IEEE international conference on Requirements Engineering, pp.105-114 (2005) 60. Maiden, N., Jones, S., Manning, S., Greenwood, J., Renou, L.: Model-driven requirements engineering: synchronising models in an air traffic management case study. Advanced Information Systems Engineering, 368-383 (2004) 61. Schwanke, R.: GEAR: A good enough architectural requirements process. In : The fifth Working IEEE/IFIP conference on software architecture, pp.57-66 (2005) 62. Koch, R.: The 80/20 principle: The secret to achieving more with less. Crown Publishing, New York, NY (2011) 63. Bresciani, P., Perini, A., Giorgini, P., Giunchiglia, F., Mylopoulos, J.: Tropos: An agentoriented software development methodology. Autonomous Agents and Multi-Agent Systems 8(3), 203-236 (2004) 64. Giorgini, P., Massaci, F., Mylopoulos, J.: Requirement Engineering meets Security: A Case Study on Modelling Secure Electronic Transactions by VISA and Mastercard. In : Conceptual Modeling-ER, pp.263-276 (2003) 65. Bryl, V., Dalpiaz, F., Ferrario, R., Mattioli, A.: Evaluating Procedural Alternatives. A Case Study in E-Voting. Electronic Government, an International Journal 6(2), 213-231 (2009) 66. Morandini, M., Nguyen, D., Perini, A., Siena, A., Susi, A.: Tool-Supported Development with Tropos: The Conference Management System Case Study. In : Agent-Oriented Software Engineering 8th edn. Springer Berlin Heidelberg (2008) 67. Mead, N., Stehney, T.: Security Quality Requirements Engineering (SQUARE) methodology. ACM SIGSOFT Software Engineering Notes 30(4), 1-7 (2005) 68. Mead, N., Hough, E.: Security requirements engineering for software systems: Case studies in support of software engineering education. In : Proceedings of the 19th Conference on Software Engineering Education and Training, pp.149-158 (2006) 69. Chen, P., Dean, M., Ojoko-Adams, D., Osman, H., Lopez, L.: Systems quality requirements engineering (square) methodology: Case study on asset management system. Technical report CMU/SEI-2004-SR-015, Carnegie Melon University/Software Engineering Institute, Pittsubrgh, PA (2004) 81 70. Mead, N., Konrad, M., Stoddard, R.: Eliciting Unstated Requirements: Tutorial presentation. In : Workshop at the 22nd IEEE International Requirements Engineering Conference, Karlskrona, Sweden (2014) 71. Kawakita, J.: The KJ method - A scientific approach to problem solving. Technical report, Kawakita Research Institute, Tokyo, Japan (1975) 72. Noriaki, K., Seraku, N., Takahashi, F., Tsuji, S.: Attractive quality and must-be quality. Journal of the Japanese Society for Quality Control 14(2), 147-156 (1984) 73. Lloyd, V., Rudd, C.: ITIL V3 - service design (vol. 5). TSO (2007) 74. Adlassnig, K.: ITIL Assessment in a healthcare environment: the role of IT governance at Hospital Sao Sebastiao. In : Medical Informatics in a United and Healthy Europe: Proceedings of MIE 2009. IOS press (2009) 76-80 75. Doran, G.: There's a SMART way to write management's goals and objectives. Management Review 70(11), 35-36 (1981) 76. Moore, J.: Communicating requirements using end-user GUI constructions with argumentation. In : 18th IEEE International Conference on Automated Software Engineering, pp.360-363 (2003) 77. Lohmann, S., Ziegler, J., Heim, P.: Involving end users in distributed requirements engineering. In : 2nd Conference on Human-Centered Software Engineering, Pisa, Italy, pp.221-228 (2008) 78. Schuler, D., Namioka, A.: Participatory design: Principles and practices. L. Erlbaum Associates Inc., Hillsdale, NJ (1993) 79. Lieberman, H., Paternò, F., Wulf, V.: End-User development: An emerging paradigm 1st edn. Springer Netherlands (2006) 80. Tsumaki, T., Tamai, T.: Framework for matching requirements elicitation techniques to project characteristics. Software Process: Improvement and Practice 11(5), 505-519 (2006) 81. Snijders, R., Dalpiaz, F., Hosseini, M., Shahri, A., Ali, R.: Crowd-Centric Requirements Engineering. In : Proceedings of the Second International Workshop on Crowdsourcing and Gamification in the Cloud, London, UK (2014) 82. Brabham, D.: Crowdsourcing. MIT Press, Cambridge, MA (2013) 83. Zichermann, G., Cunningham, C.: Gamification by design: Implementing Game Mechanics in Web and Mobile Apps. O'Reilly Media Inc., Sebastopol, CA (2011) 84. Lim, S., Quercia, D., Finkelstein, A.: StakeSource: Harnessing the Power of Crowdsourcing and Social Networks in Stakeholder Analysis. In : Proceedings of the 32nd ACM/IEEE 82 International Conference on Software Engineering, Cape Town, South Africa, vol. 2, pp.239-242 (2010) 85. Lim, S., Damian, D., Finkelstein, A.: StakeSource 2.0: Using Social Networks of Stakeholders to Identify and Prioritise Requirements. In : Proceedings of the 33rd International Conference on Software Engineering, Waikiki, Hawaii, pp.1022-1024 (2011) 86. Kazman, R., Chen, H.: The metropolis model a new logic for development of crowdsourced systems. Communications of the ACM 52(7), 76-84 (2009) 87. Kleemann, F., Voß, G.: Un(der)paid Innovators: The Commercial Utiliza-tion of Consumer Work through Crowdsourcing. Science, Technology & Innovation Studies 4(1), 5-26 (2008) 88. Negri, M., Mehdad, Y., Giampiccolo, D., Marchetti, A.: Divide and conquer: Crowdsourcing the creation of cross-lingual textual entailment corpora. In : Proceedings of the Conference on Empirical Methods in Natural Language Processing, Edinburgh, UK, pp.670-679 (2011) 89. Wagner, C.: Wiki: A technology for conversational knowledge management and group collaboration. The Communications of the Association for Information Systems 13(1), 265289 (2004) 90. Fritz, S., McCallum, I., Schill, C., Perger, C., Grillmayer, R., Achard, F., Obersteiner, M.: GeoWiki.Org: The use of crowdsourcing to improve global land cover. Remote Sensing 1(3), 345-354 (2009) 91. Bradshaw, P.: Wiki Journalism: Are Wikis the New Blogs? In : Future of Newspapers Conference2007, Cardiff, UK, pp.1-22 (2007) 92. Decker, B., Ras, E., Rech, J., Jaubert, P., Rieth, M.: Wiki-based Stakeholder Participation in Requirments Engineering. IEEE Software 24(2), 28-35 (2007) 93. Silveira, C., Faria, J., Aguiar, A., Vidal, R.: Wiki based requirements documentation of generic software products. In : Proceedings of the 10th Australian Workshop on Requirements Engineering, Melbourne, Australia, pp.42-51 (2005) 94. Ferreira, D., da Silva, A.: Wiki supported collaborative requirements engineering. In : Wikis4SE Workshop, Porto, Portugal (2008) 95. Lincoln, Y., Guba, E.: Naturalistic enquiry. Sage, Beverly Hills, CA (1985) 96. Pohl, K., Rupp, C.: Requirements Engineering Fundamentals 1st edn. Rocky Nook, Inc. (2011) 97. Ryan, K.: The Role of Natural Language in Requirements Engineering. In : Proc. of the IEEE Int. Symp. on RE, pp.240-242 (1993) 98. Natt och Dag, J., Gervasi, V., Brinkkemper, S., Regnell, B.: Speeding up Requirements Management in a Product Software Company: Linking Customer Wishes to Product 83 Requirements through Linguistic Engineering. In : proc. of the 12th Int. RE conference, pp.283-294 (2004) 99. Yadla, S., Hayes, J., Dekhtyar, A.: Tracing Requirements to Defect Reports: An Application of Information Retrieval Techniques. Innovations in Systems and Software Engineering 1(2), 116-124 (2005) 100. Sampaio, A., Loughran, N., Rashid, A., Rayson, P.: Mining Aspects in Requirements. In : Early Aspects workshop 2005, Aspect-Oriented Requirements Engineering and Architecture Design, Chicago, IL, vol. 1 (2005) 101. Anthony, L.: AntConc (version 3.4.3) [Computer Software]. Waesda University, Tokyo, Japan http://www.laurenceanthony.net. 102. Liu, F., Pennell, D., Liu, F., Liu, Y.: Unsupervised Approaches for Automatic Keyword Extraction Using Meeting Transcripts. In : Proc. of human language tecnologies: 2009 annual conference of the NAACL, pp.620-628 (2009) 103. Paquot, M., Bestgen, Y.: Distinctive Words in Academic Writing: A Comparison of Three Statistical Tests for Keyword Extraction. Language and Computers 68(1), 247-269 (2009) 104. Rayson, P., Garside, R.: Comparing Corpora Using Frequency Profiling. In : proc. of the Workshop on Comparing Corpora, 38th Annual Conference of the ACL, Hong Kong, pp.1-6 (2000) 105. Rayson, P.: Log-likelihood Calculator., Lancaster, UK http://ucrel.lancs.ac.uk/llwizard.html. 106. Luhn, H.: Key Word-in-context Index for Technical Literature (kwic index). American Documentation 11(4), 228-295 (1960) 107. Brennan, K.: A Guide to the Business Analysis Body of Knowledge (Version 2). International Institute of Business Analysis (2009) 84 APPENDIX APPENDIX 1 – GAP ANALYSIS META MODEL * for the full method, see the attached Quinity1.3.vsd This is the meta model for the GAP analysis activity, which was not part of the current method section since it is technically out of scope. Included here as extra context to the Keylane|Quinity development method. 1 APPENDIX 2 – CURRENT SITUATION PROCESS/DELIVERABLE TABLES Two tables containing descriptions of all activities and deliverables as seen in the PDD models of the current method. Structure and contents as proposed by Van de Weerd and Brinkkemper (2008). Activity Sales trajectory Sub-Activity Organize information sessions Class Optional Answer RFI Optional Answer RFP Optional Setup preliminary contract Optional Show proof of concept Optional Perform global RQ analysis Optional Description The potential customer plans a number of information sessions with the sales department. During sessions information about QIS and it’s capabilities is exchanged. Session results are documented in SESSION NOTES that may contain PRELIMINARY REQUIREMENTS. A Request for Information (RFI) is answered by sales, in cooperation with product experts. The RFI contains broad questions about the product, and is directed at multiple suppliers as a means of supplier selection by prospective clients. PRELIMINARY REQUIREMENTS can be gleaned from RFI questions. According to experts, this is rarely done in the current process. A Request for Proposal (RFP) is answerd by sales, in cooperation with product experts. An RFP is a far more specific follow up to the RFI and can easily reach up to a hundred pages. PRELIMINARY REQUIREMENTS can be gleaned from RFP questions. According to experts, this is rarely done in the current process. When a customer chooses to buy from Quinity, a PRELIMINARY CONTRACT can be created if they deem it necessary. Preliminary contracts cover all activities leading up to the increments. If desired the customer receives one or more Proof of Concept (POC) presentations. In these sessions a QIS demo environment is used to show client cases being performed. In some cases a prototype with new functionality can also be created specifically for the POC. The contents, costs and time consumed by the POC are agreed upon in the PRELIMINARY CONTRACT if there is one. If desired the customer can request a global RQ analysis. During a relatively short period of time (for example one week) workshops are held to set up a GLOBAL RQ ESTIMATE. The estimate contains a discussion of known requirements, expected future requirements and the estimated time and money needed to fill gaps. The contents, costs and time consumed by the global RQ analysis are agreed upon in the PRELIMINARY CONTRACT if there is one. 2 Project setup Increments Explain QIS Implementation method Regular Define project increments Regular Create plan of approach Regular Agree on project approach Regular Train the project team Regular Hold workshop Regular Document results Share results with customer Regular Regular Gap analysis Regular Estimate knowledge for next increment Irregular The QIS implementation METHOD DESCRIPTION is given to the client, at this time usually only to client management and project leaders. The METHOD DESCRIPTION is included in the FINAL CONTRACT. PROJECT INCREMENTS are defined in collaboration with the client. The PROJECT INCREMENTS are included in the FINAL CONTRACT. A PROJECT PLANNING is made with the customer. The activities in increments are planned, including a cost estimation for solving the requirements and gaps in those increments. The PROJECT PLANNING is included in the FINAL CONTRACT. The METHOD DESCRIPTION, PROJECT GOALS and PROJECT PLANNING are officially presented as part of the FINAL CONTRACT. If the client signs off on this contract, the project officially begins. Trainings are given to key stakeholders to prepare them for t their role in the project. During trainings stakeholders will work with QIS demo’s. Trainings can yield TRAINING NOTES that may contain KNOWN REQUIREMENTS. Workshops are held with key customer stakeholders on the current increment’s topic or a subsection of that topic (e.g. policy administration, premium calculation etc.). In workshops the following things can be discussed: An introduction to QIS and a broad description of functionalities An analysis of the client’s current system and processes. Standard functionality of QIS modules related to the topic. Configuration options of QIS modules related to the topic. Elaboration on KNOWN REQUIREMENTS During the workshop sessions WORKSHOP NOTES are made. The WORKSHOP NOTES are refined into DETAIL REQUIREMENTS. The DETAIL REQUIREMENTS are shared with the customer for their CUSTOMER REVIEW. If deemed insufficient REFINED DETAIL REQUIREMENTS are made, or additional workshops are held. If the customer approves of the requirements, QIS experts document them in a REQUIREMENTS DOCUMENT. The requirements in the REQUIREMENTS DOCUMENT are solved as shown in Appendix 1. Any knowledge (including requirements) that is relevant for the next increment is documented and handed over. This is reportedly not always done well, but outside of the scope of this project. 3 Gap Analysis full version (Appendix 1) Solve by configuration Regular Solve by process change Regular Determine gap priority/impact Regular Solve by adapting existing functionality Regular Solve by adding functionality Regular to the core Solve by making custom solution DELIVERABLE SESSION NOTES PRELIMINARY REQUIREMENTS DEMO NOTES GLOBAL RQ ESTIMATE PRELIMINARY CONTRACT METHOD DESCRIPTION Regular If a requirement can be solved by configuration of existing QIS functionalities, the configuration is made and the requirement is considered a SOLVED REQUIREMENT. If a requirement is already solved by QIS, but in a way that is not compatible with client processes, Quinity experts will push for the customer to adapt their processes. A process change would mean that no custom development is needed, which in turn is better for the standard product and less costly for the client. If successful the requirement is considered a SOLVED REQUIREMENT. Requirements that cannot be solved through configuration or process change are considered to be GAPS. GAPS are always functional requirements that are currently not or insufficiently fulfilled by QIS. The first priority for dealing with GAPS is to solve them by adapting existing QIS functionalities. Extensions, workarounds and adaptations all fall in this category. If this is possible, a REQUEST FOR CHANGE is created and sent to developers. The second priority for dealing with GAPS is to solve them by adding new functionality to the core (standard) QIS product. If this is possible, a REQUEST FOR CHANGE is created and sent to developers. The absolute last resort for dealing with GAPS is to design a custom solution for the client only. Again the resulting design is captured in a REQUEST FOR CHANGE and sent to developers. Description SESSION NOTES document the results of information sessions in the sales trajectory. PRELIMINARY REQUIREMENTS are requirements that can be gleaned from SESSION NOTES, RFIs and RFPs, captured in natural language [1, 2]. Note: If a requirement is expected to require some form of development to solve, it is recognized as a gap. In Quinity’s own terms the requirement will be named a gap. DEMO NOTES are notes taken during QIS demo sessions. A GLOBAL RQ ESTIMATE is a list of preliminary- and expected requirements, including an estimate of their time and resource costs [3]. A PRELIMINARY CONTRACT contains booked demo sessions, a proof of concept, and any other activities leading up to the increments. Contracts are optional at this point and can be subjected to change later in the project [4]. A METHOD DESCRIPTION contains a description of Keylane|Quinity’s approach to implementations [5]. 4 PROJECT INCREMENTS PROJECT PLANNING FINAL CONTRACT KNOWN REQUIREMENTS WORKSHOP NOTES DETAIL REQUIREMENTS CUSTOMER REVIEW REFINED DETAIL REQUIREMENTS DESIGN DOCUMENT SOLVED REQUIREMENTS GAPS REQUEST FOR CHANGE PROJECT INCREMENTS are the major iterations in which a QIS implementation will be carried out. Each increment has a theme and covers several requirements, QIS components or functionalities. A PROJECT PLANNING sets deadlines for the project and start/end dates for the increments. This includes deadlines for individual activities and deliverables[6]. The FINAL CONTRACT is the final legal definition of the project, agreed upon- and signed by the customer [4]. KNOWN REQUIREMENTS have been previously identified from the PRELIMINARY REQUIREMENTS, TRAINING NOTES, and DEMO NOTES [2]. WORKSHOP NOTES are made on the fly during design workshops. After workshops DETAIL REQUIREMENTS are gathered from the WORKSHOP NOTES [7]. DETAIL REQUIREMENTS are highly specific statements of what QIS must do, which are used to inform design decision. Most of these will be derived from KNOWN REQUIREMENTS, but some new requirements may still pop up. A CUSTOMER REVIEW is the result of sharing DETAIL REQUIREMENTS with the customer. A form of stakeholder participation in RE [8]. After processing CUSTOMER REVIEWs the detail requirements are refined and perfected into REFINED REQUIREMENTS [2]. REFINED REQUIREMENTS are gathered in DESIGN DOCUMENTS. These documents are usually large spreadsheet in which each designer gets his own tab [9]. SOLVED REQUIREMENTS are requirements that were solved by simple configuration of QIS or adapting customer processes to QIS. If you were to subtract all SOLVED REQUIREMENTS from all KNOWN REQUIREMENTS, only the GAPS would be left. GAPS are those REFINED REQUIREMENTS that cannot be solved without development efforts [10]. Note: only functional requirements can be considered GAPS. A REQUEST FOR CHANGE is a definition of what needs to be done to solve a GAP [11]. [1] Ambriola, V., & Gervasi, V. (1997, November). Processing natural language requirements. In Automated Software Engineering, 1997. Proceedings., 12th IEEE International Conference (pp. 36-45). IEEE. [2] Yu, E. S. (1997, January). Towards modelling and reasoning support for early-phase requirements engineering. In Requirements Engineering, 1997., Proceedings of the Third IEEE International Symposium on (pp. 226-235). IEEE. [3] Carlshamre, P. (2002). Release planning in market-driven software product development: Provoking an understanding. Requirements Engineering, 7(3), 139-151. 5 [4] Umble, E. J., Haft, R. R., & Umble, M. M. (2003). Enterprise resource planning: Implementation procedures and critical success factors. European journal of operational research, 146(2), 241-257. [5] Lim, C. S., & Mohamed, M. Z. (1999). Criteria of project success: an exploratory re-examination. International journal of project management, 17(4), 243-248. [6] Nutt, P. C. (1983). Implementation Approaches for Project Planning. 1. Academy of Management Review, 8(4), 600-611. [7] Hull, E., Jackson, K., & Dick, J. (2005). Requirements engineering (Vol. 3). London: Springer. [8] Decker, B., Ras, E., Rech, J., Jaubert, P., & Rieth, M. (2007). Wiki-based stakeholder participation in requirements engineering. Software, IEEE, 24(2), 28-35. [9] Heninger, K. L. (1980). Specifying software requirements for complex systems: New techniques and their application. Software Engineering, IEEE Transactions on, (1), 2-13. [10] Pol, P., & Madhup, P. (2011). SAP. Methods of Fit Gap Analysis in SAP ERP Projects. Bangalore, India: Infosys technologies limited. [11] Bennett, K. H., & Rajlich, V. T. (2000, May). Software maintenance and evolution: a roadmap. In Proceedings of the Conference on the Future of Software Engineering (pp. 73-87). ACM. 6 APPENDIX 3 – FEATURE GROUPS All feauters and their groups as created in the second step of the Method Association Approach. Yellow features are either not done (not marked in the Quinity column) or up for improvement (marked with a ‘/’ in the Quinity column). The source columns are marked with an ‘X’if a feature is mentioned in that source. The major group (e.g. elicitation, analysis, specification) is marked in bold italics in the top left corner of tables. Quinity LeanApps Success md requirements From an RFI From an RFP From existing customer documents / / X X X X X X X X From the analysis of existing systems From the analysis of existing processes From client demos From business rules From apprenticing From a requirements questionnaire X X X X X X X X X X X X From early information sessions From product demos/prototypes (POC) From trainings From workshops From interviews From brainstorming/think aloud sessions From laddering (game-ish) From JAD sessions X X X X X / Elicitation From documents A&W SWEBOK V3 Maturity models X X X X From exist. Sit. X X X X X X X X X From interact. Sess. / X X X X X X X X X X X X X X X X X X X From expertise 7 From our own expectations Involve stakeholders Identify the right stakeholders to involve Push client to express requirements appropriately Push for customer objectivity in trainings/prep Requirements for certain groups with group members present Involve own marketing/sales Notation Note requirements down in customer language or source language Note the RQ source and author for traceability in later stages Note down as user stories X X / X / / X X X X X X X X X X X X X X X X X X Quinity Success md LeanApps requirements A&W Filter Using common sense Filter using triage, in/out scope, heuristics X X Remove inconsistencies/overlap/duplicates Per-requirement checklist / / Assign requirements to experts and track Formally catagorize requirements / / Give requirements attributes Iteratively improve on requirements Track requirement version / X Analysis Filtering X X X SWEBOK Maturity v3 models X Clean up X X X Organize X X X X X X X X X Expand X X X X X X X 8 Determine requirement Impact (see impact analysis) Determine requirement complexity X X Derive a solution architecture Relate requirements to the solution architecture Obtain common understanding with different roles X X X Formally track interdependencies Categorize interdependencies / / X X Use design documents to mark affected areas Interview FO, TO and developers for impact analysis Use a checklist for impact analysis Track the cascading effect of change (impact) Use code slices to visualize affected areas X X X X X X X X X Early piority assesment / X X X Goal X X X X Interdepend. X Impact analysis X prioritisation X Tooling Tools for analysis Quinity A&W SWEBOK v3 Identify conflicts Define negotiable problems Elicit stakeholder goals / X X X Dicsuss alternative solutions Assist concessions/trade-offs X / X X X X Negotiation Ident. Conflicts Solutions 9 post conflict handling Analyse negotiation results Quality assurance review of results Make results traceable / X X X X Quinity Success md Aurum & SWEBOK Maturity LeanApps requirements Wohlin v3 models With experts After explicit permission from a PM X / X X Follow a written policy for notations Always formulate as individual requirements Natural language As use cases/scenarios / X X In a central excel document In a standard repository X / Rationale behind the RQ (rejection) Source (person or document) Include relation to (QIS) product With a unique ID number / Specification Inclusiveness X X Notations X X X X X X X / X X X X X X X X X X X X Storage Attributes X X X X X X Tooling Tools for notation Tools for storage/retrieval X X X 10 Validation Content checking Quinity Succes met de Aurum & SWEBOK Maturity LeanApps requirements Wohlin v3 Models Check individual RQ completeness Check RQ representativeness of customer wish Use content checklists / X X X Check correctness of RQ description Check adherence to internal features Use quality checklists / X Check overall RQ consistency Check RQ relevance for other customers Inspection Remove duplicates X / / X X X Share Requirements document with customer Establish a process to reach agreement with customer X X X X X X X X X Quality checking X X X X X X X Collection checking X X X X X X X X X X X X X X X X X X X Inclusiveness Tooling Tools for content checking Tools for quality checking Tools for duplicate removal Management Planning X X Quinity Plan RE practices in a project Assign ownership of RE practices to people X X X Succes met de Aurum & SWEBOK Maturity LeanApps Requirements! Wohlin v3 models X X X X X X 11 RQ status tracking Track requirement status Review RQ status with (project)management X X X Post-project analysis Close RQs when they become obsolete Document RQ experiences X X X X Define a formal RE process Apply change mangement practices to RQs Establish a formal process for including stakeholders in the RE process / X X X Process definition X X X X X X Glossary Create a Product-wide glossary of terms X Stakeholder training Train consultants/project leaders to recognize RQ engineering needs Train other roles how to recognize RQs Train customers how to recognize RQs and state them X X X X X X 12 APPENDIX 4 – ELIMINATED METHODS This table contains all candidate methods that were rejected by the author or rejected in evaluation with the external coach. The rationale for their elimination is included in the last column. Method Rational Unified Process (RUP) Source Various Accelarated SAP (ASAP) http://wiki.scn.sap.com/wiki/display/SM/ASAP+Methodology Exact’s method Visser, C. (2009). Customer involvement in Distributed Requirements Engineering. Master of Science Thesis Oracle Unified Method (OUM) http://www.oracle.com/partners/en/products/applications/oracleunified-method/get-started/index.html V model Forsberg, K., Mooz, H., & Cotterman, H. (2005). Visualizing project management: models and frameworks for mastering complex systems. John Wiley & Sons. Boehm, B. W. (1988). A spiral model of software development and enhancement. Computer, 21(5), 61-72. Spiral model of Software Development Test-driven development Extreme Programming Feature Driven Development Requirements Engineering Process Selection (REPS by Hewlett Packard) Issue-Based Information Systems (IBIS) Beck, K. (2003). Test-driven development: by example. Addison-Wesley Professional. Beck, K. (2000). Extreme programming explained: embrace change. Addison-Wesley Professional. Palmer, S. R., & Felsing, M. (2001). A practical guide to feature-driven development. Pearson Education. Padula, A. (2004, September). Requirements engineering process selection at Hewlett-Packard. In Requirements Engineering Conference, 2004. Proceedings. 12th IEEE International (pp. 296-300). IEEE. Kunz, W., & Rittel, H. W. (1970). Issues as elements of information systems (Vol. 131). Berkeley, California: Institute of Urban and Regional Development, University of California. Elimination rationale No academic or free sources with enough granularity to model method fragments accurately. Proprietary RUP variants are restricted under copyright or expensive. No sufficiently detailed free resources available. The proprietary method is very costly. The original hope was that this thesis provided enough insights into Exact’s methods to create usable method fragments. This was not the case. Though touted as an accessible method for various companies, Gold partnership or higher is needed to get access. The V model turned out to be an abstraction of a method, not an actual usable method. More suitable for informing development as a whole than just RE. Like the V model, more of an abstraction than an actual method. Leans too heavily on prototyping, which Keylane|Quinity’s software does not support. Seemed interesting at first, but way too agile to fit with Keylane|Quinity’s incremental approach. Completely ignores elicitation4 and how to do it. Other activities are too agile to match Keylane|Quinity’s incremental approach. No detailed descriptions available for the creation of method fragments. Too agile to fit with Keylane|Quinity. Free sources are not detailed enough to yield clear method framgents. Other sources are proprietary and restricted under copyright. Too much focus on ‘issues’ in every step to be useful. Implementing an incomplete product only to refine it based on real world issues is not a viable approach for Keylane|Quinity. 13 Method Open Web Application Security Process (OWASP) Source Sindre, G., & Opdahl, A. L. (2005). Eliciting security requirements with misuse cases. Requirements engineering, 10(1), 34-44. Software Cost Reduction (SCR) Heitmeyer, C. L. (2002). Software cost reduction. John Wiley & Sons, Inc.. Controlled Requirements Expression Finkelstein, A. (1988). Re-use of formatted requirements specifications. Software Engineering Journal, 3(5), 186-197. Elimination rationale The concept of formulating misuse cases seemed interesting, but the method turned out to be too focused on security. No other method fragments offered any value for Keylane|Quinity. Ignores elicitation completely4. It’s proposed notation seemed interesting but was far too convoluted to be usable. Ignores elicitation4 completely. The proposed model notation is not acceptable for Keylane|Quinity. Easy Winwin Gruenbacher, P. (2000). Collaborative requirements negotiation with EasyWinWin. In Database and Expert Systems Applications, 2000. Proceedings. 11th International Workshop on (pp. 954-958). IEEE. The author made interesting promises in the abstract, but the method turned out to focus almost exclusively on negotiation.No attention was paid to elicitation, analysis or specification. Usage Oriented Requirements Engineering (UORE) Regnell, B., Kimbler, K., & Wesslén, A. (1995, March). Improving the use case driven approach to requirements engineering. In Requirements Engineering, 1995., Proceedings of the Second IEEE International Symposium on (pp. 40-47). IEEE. Flynn, D. J., & Jazi, M. D. (1998). Constructing user requirements: a social process for a social context. Information Systems Journal, 8(1), 53-83. Use case models originally seemed interesting, but deemed to complicated for communication with the client, and too time consuming to justify for internal use. User Led Requirements Construction (ULRC) ALM Rangers Requirements Management (by practitioners of Microsoft’s Visual Studio Application Lifecycle Management tools). SQUARE-lite https://vsarquickguide.codeplex.com/ Gayash, A., Viswanathan, V., Padmanabhan, D., Mead, R. (2008). SQUARE-Lite: Case Study on VADSoft Project. Technical Report. Sounded promising but is too centered around the idea of having users create EFDs. The external coach deemd the efforts of training users and drawing models (claimed by the paper to take 60 hours per stakeholder) an unacceptable use of time and resources. The actual method described in the guide was deemed to specific to Microsoft products to be of any use. The additional materials such as checklists were used as inspiration in the contextualization of the method. Originally professed as a lighter, more flexible variant of SQUARE. After some analysis it turned out to be no less complex than the original, so the original was selected. By ‘ignores elicitation’ we mean that the source simply dismisses the process of elicitation. Rather than providing techniques or support, elicitation is reduced to a simple statement along the lines of ‘and now you gather requirements’. 4 14 Method Cooperative Requirements Engineering With Scenarios (CREWS) - Ecritoire Source http://crinfo.univ-paris1.fr/CREWS/Paris_chunk_index.html COTS Aware Requirements Engineering (CARE) Chung, L., & Cooper, K. (2002, July). A knowledge-based COTS-aware requirements engineering approach. In Proceedings of the 14th international conference on Software engineering and knowledge engineering (pp. 175-182). ACM. Procurement Oriented Requirements Engineering (PORE) Ncube, C., & Maiden, N. A. (1999, May). PORE: Procurementoriented requirements engineering method for the componentbased systems engineering development paradigm. In International Workshop on Component-Based Software Engineering (pp. 130-140). Checkland, P., & Poulter, J. (2010). Soft systems methodology. In Systems approaches to managing change: A practical guide (pp. 191-242). Springer London. Soft Systems Methodology Elimination rationale The external coach: 1. Deemed the use of ‘goals’ too abstract 2. Deemed the linguistic templates too complex 3. Deemed scenario authoring too time consuming In hindsight CREWS L’ecritoire wouldn’t have fit with Keylane|Quinity anyway. They never used scenarios in the first place, so it wouldn’t make sense to adopt a highly advanced scenario driven method. A method from the Software buyer’s perspective. Deemed interesting to learn about the client perspective. After further analysis turned out to be best suited for the acquisition of insanely complex multi-product software landscapes. Another method from the software buyer’s perspective. Significantly lighter than CARE, but doesn’t actually say anything about elicitation4 . Other method fragments were too specific to buyers to be of any use. Initially selected for it’s promise to help solve highly problematic situations by the creation of ‘world views’. Described as ‘te zweverig’ by the external coach. Uses a lot of modeling, which Keylane|Quinity was not willing to adopt. 15 APPENDIX 5 – ASSOCIATION TABLE This appendix contains the association table used in the association step of the Method Association Approach. Features mark the rows and method fragments mark the columns. If a method fragment’s name is red, then it was considered out of scope or rejected. In the second view of the association table all red method fragments were removed. The remaining fragments are collored white (was considered but not part of any method), yellow (was part of the preliminary method, but removed during evaluation) and green (is still part of the final method) 16 17 18 APPENDIX 6 – PRELIMINARY METHOD The images below show the method after association, before evaluations had been made. Red marks indicate method fragment sources and potential alternative method fragments. For brevity the deliverable side of the diagram was not modeled. 19 20 APPENDIX 7 – POST - FIRST EVALUATION This appendix containts the first revision of the method. The first revision is the result of the first evaluation session. For brevity the deliverable side of the diagram was not modeled. 21 3 1 2 22 4 5 23 APPENDIX 8 – FINAL METHOD This appendix contains the final delivered method, including the deliverable side of the diagram notation. 24 25 26 APPENDIX 9 – FINAL METHOD CONCEPTS AND DELIVERABLES Activity Sub activity Description Sales trajectory Answer RFI Preserved from the old method. The RFI is a broad-net question list sent out by prospects to (original) potential suppliers. Questions are generic and address topics like hosting, costs, architecture, support contracts and more. The RFI and RFI ANSWER can yield requirements. Answer RFP Preserved from the old method. The RFP is a higly specific question list sent out by prospects to potential suppliers on their short list. Questions address very specific needs and desires with regard to software. The RFP and RFP ANSWER always yield requirements. Participate in Sessions Dominant prospective clients will attempt to sate a large desire for information. The sessions they book include generic presentations, demo sessions, use cases, proof of concept sessions and more. We recommend following the client’s lead, as this shows commitment and builds trust. In these sessions: Remind Keylane|Quinity participants of requirements guidelines and where to find them. Make SESSION NOTES, preferably in one shared file. Collect potential requirements from the SESSION NOTES. Setup preliminary contract Included for completeness. When prospects decide to become clients they may want a preliminary contract outlining early project activities, including the requirements phase. This is not always the case. Agree on Send list of standard terms Keylane|Quinity will be keeping a list of STANDARD TERMS. This list can be easily converted definitions into a survey and sent out to the client. (based on Client comments The client is asked to add their comments, varying definitions and other remarks in CLIENT SQUARE) COMMENTS. Document finalized set of A FINALIZED SET OF TERMS is added to a new REQUIREMENTS DOSSIER. terms Define project Determine project purpose A PROJECT PURPOSE is written. Can be supplemented by the sales team and sales phase (Based on Jad) documents. Determine project scope A PROJECT SCOPE is written. This gives an early outline of the QIS components that will and will not be implemented. Determine project objectives The PROJECT OBJECTIVES are determined. For now general deadlines and delivery estimates will suffice. Identify critical stakeholders A list of CRITICAL STAKEHOLDERS is made. Collaboration with a client project owner or (Based on Tropos method) project manager is strongly recommended. 27 Not defined Provide wiki access/closed survey Gather known requirements Interview sales Analyze current systems & documents Elicitation (Based on ACRE) Check speaking points list Select elicitation technique Processing Workshop (Based on JAD) Elicit requirements Write RQs into the dossier and table Validate document structure Validate notation (Based on RESCUE/SQUARE/GEAR) Validate content completeness (Based on Wiegers & Beatty – Software requirements 3rd ed.) Share dossier with the client. (Inspired by LeanApps) Determine information needs Discuss open questions The wiki and closed survey are both passive means of interaction, where the client does most of their own requirements gathering and reports back to Keylane|Quinity. Though recommended at this point in projects, these two means can be used later if desired. Yields WIKI INTERACTIONS and CLOSED SURVEY ANSWERS. In addition to known requirements, it may be a good idea to book an interview with Keylane|Quinity’s own sales department. Sales has a lot of SALES KNOWLEDGE built up about the client, sometimes going back way before the client even began looking for a supplier. As an extra means of gathering requirements without having to burden the client, current systems and documents can be analyzed. Sometimes current systems will be too outdated to be worth analyzing, and some clients will have such low documentation standards that their document’s aren’t worth analyzing, so both are optional. A project manager will determine their worth. Yields DOCUMENTS & SYSTEMS KNOWLEDGE. A list of SPEAKING POINTS can be used to determine whether there are any MISSED POINTS left to discuss. For projects with passive clients this is a given. For dominant clients there may be no missed points at all. A TECHNIQUE LIST is provided with popular requirements elicitation techniques. The SELEC TED TECHNIQUES can be selected by checking MISSING POINTS against the optimal usage context and obstacles for usage for the techniques on the TECHNIQUE LIST. ELICITED REQUIREMENTS are obtained using the SELECTED TECHNIQUES. Any newly elicited requirements, just like known requirements, are written into the REQUIREMENTS DOSSIER. GAPS are also covered separately in the GAP TABLE. Once complete the structure of the REQUIREMENTS DOSSIER can be validated using the requirements phase checklist. The notation of requirements in the REQUIREMENTS DOSSIER can be validated using the requirements phase checklist. The completeness of requirements in the REQUIREMENTS DOSSIER can be validated using the requirements phase checklist. The REQUIREMENTS DOSSIER is shared with the client for review. Any questions that the client has will be covered in the workshop. Right before the workshop INFORMATION NEEDS are determined by looking up any remaining UNVERIFIED GAPS or MISSING POINTS from the SPEAKING POINTS LIST. Any open questions that still exist for both Keylane|Quinity and the client are discussed. 28 Discuss unverified requirements Discuss missing requirements Take notes Document requirements and gaps Requirements management (Based on RESCUE) Manage gap status Track requirement changes Register new requirements Prepare knowledge for next increment Project setup (original) Explain QIS implementation method Design increments Plan activities Increment (original) Post project Agree on project approach. Train session team Organize design sessions Document detail requirements Share results with customer Design, Develop, Test, Go live Maintenance Any unverified requirements in the GAP TABLE are verified now. Either party gets one last opportunity to discuss potentially missing requirements. As recommended in JAD, a scribe sits in and makes WORKSHOP NOTES about all discussed topics. Any new requirements and/or gaps resulting from the workshop are extracted from the WORKSHOP NOTES and written into the REQUIREMENTS DOSSIER. Gaps are also captured in the GAP TABLE. In the GAP TABLE gaps have a status attribute. Project managers manage this attribute to keep track of progress on each gap. Requirement changes are also tracked. Every time a requirement changes significantly a new version of the REQUIREMENTS DOSSIER is stored and the change documented. This is the same method that Keylane|Quinity uses for all document version tracking. New requirements can always arise during the INCREMENTS. Project managers have endresponsibility for keeping the REQUIREMENTS DOSSIER and GAP TABLE up to date with the latest. Out of scope. Once an increment is completed some time is taken to prepare the next increment. Gaps for the next increment that weren’t discovered until an earlier increment are given some extra attention. Out of scope. The QIS implementation method is explained to the client’s executive and managing personnel. The INCREMENTS are defined definitively. In each increment some subsection of QIS is changed and implemented in the client company. Activities like meetings, demos and other sessions with designers are planned into the increments. Out of scope. Keylane|Quinity agree on the approach, possibly in another contract. Out of scope. Any client participants in the design session that weren’t previously trained are given that training now. Out of scope. Design sessions are held with the client to elicit DETAIL REQUIREMENTS DETAIL REQUIREMENTS are documented. DETAIL REQUIREMENTS are shared with the client for verification. Out of scope. Solutions are designed, developed, tested and implemented. Out of scope. Maintenance is performed on the client’s implementation in the form of bugfixes, support, and quarterly releases (if the client is willing to update at least). 29 Document lessons learned. Deliverable RFI ANSWER RFP ANSWER SESSION NOTES PRELIMINARY CONTRACT STANDARD TERMS CLIENT COMMENTS FINAL SET OF TERMS PROJECT PURPOSE PROJECT SCOPE The LESSONS LEARNED from this project are documented and used to improve future projects. Description The answer to a prospect’s Request For Information [1]. Contains short answers to simple questions (e.g. ‘what hosting options are available?’ – ‘On client location, on our location, via a third party apache host or through a SAAS plan’). The answer to a prospect’s Request For Proposal [1]. Elaborate answers to specific questions. The base answers are: Yes we do this No, but we have this on the roadmap for future releases. No, but we are willing to make a solution. No, we won’t do this. Followed by an elaboration and/or justification of the answer. Session notes are made during various sales phase information sessions [2]. These sessions are booked by dominant clients looking to satisfy their information needs, and make an informed software supplier selection. The following are possible: Regular presentation Demo session (Keylane|Quinity is asked to present QIS however they like). Proof of Concept (PoC) (Keylane|Quinity is asked to achieve a certain goal. How to get there in QIS is up to them). Use cases (Keylane|Quinity is given a scripted task to perform in QIS. Parts of the script that aren’t possible are considered gaps) A PRELIMINARY CONTRACT typically contains any activities leading up to the actual increments, like a requirements phase, and the compensation for those activities. The exact contents of PRELIMINARY CONTRACTs are out of scope. The STANDARD TERMS are entities and objects related to the insurance domain, that are often defined differently by practitioners [3]. STANDARD TERMS are defined in a document with room for CLIENT COMMENTS. CLIENT COMMENTS can be just comments, own definitions or any other response to Keylane|Quinity’s STANDARD TERMS. In some cases CLIENT COMMENTS can even yield new gaps. The FINAL SET OF TERMS [3] includes Keylane|Quinity’s definitions and CLIENT COMMENTS. This document is kept to prevent miscommunication later in the project due to different definitions. The PROJECT PURPOSE [4] is a short description of the client’s purpose behind acquiring software. The PROJECT PURPOSE is written on the strategic level. The PROJECT SCOPE [4] consists of the major QIS components that will be implemented during the project. The major components are: Product definition Request administration Policy administration 30 Relation administration Intermediary administration Authorisation Damage administration Premium calculation Financial systems Distribution channels External interfaces Communication MyEnvironment (MijnOmgeving) Workflow support File management Reporting Re-insurance PROJECT The PROJECT OBJECTIVES [4] are major deadlines and delivery dates. At this point broad indications are fine (e.g. before the OBJECTIVES end of Q4 2015). The purpose is to give readers a sense of scale and time for the project. CRITICAL The CRITICAL STAKEHOLDERS [5, 6] are stored based on two roles in the ARCI matrix. Approves: those responsible for STAKEHOLDERS obtaining internal approvement of decisions. Consulted: those who must be consulted in the decision making process. The Recommends role and Informed Role were deemed irrelevant for Keylane|Quinity. WIKI WIKI [7] INTERACTIONS are interactions with stakeholders within the Keylane WIKI. The wiki is currently only a prototype INTERACTION running on the MediaWiki engine and is still subject to change. CLOSED The CLOSED SURVEY is a survey with closed questions directed at client management. The best CLOSED SURVEY questions are: SURVEY Simple questions that can be answered without elaboration sessions. Questions that serve as preparation for an elaboration sessions. Closed survey questions should not be used to get the client to describe complex concepts across several pages. SALES SALES KNOWLEDGE can be elicited from Keylane|Quinity’s own sales department. Sales builds up knowledge of the client’s KNOWLEDGE needs long before there even was a project. Their knowledge may provide some requirements [8]. DOCUMENT & DOCUMENT & SYSTEMS KNOWLEDGE is obtained by analyzing client documents [9] and their existing systems [10]. This SYSTEMS knowledge can include current processes, business rules, current solutions to problems, software components, architecture and KNOWLEDGE much more. KNOWN All requirements available before elicitation begins are considered to be KNOWN REQUIREMENTS [11]. KNOWN REQUIREMENTS REQUIREMENTS can be found in: RFI ANSWERS 31 RFP ANSWERS Sales INFORMATION SESSION NOTES WIKI INTERACTIONS CLOSED SURVEY responses CLIENT DOCUMENTS AND SYSTEMS SPEAKING SPEAKING POINTS are high level discussion subjects for each of the QIS components (see PROJECT SCOPE for the list). An POINTS undiscussed speaking point is a likely indicator of missed requirements, since the client is apparently not aware of that component and it’s capabilities. MISSED POINTS MISSED POINTS are SPEAKING POINTS that haven’t been discussed with the client. TECHNIQUES The TECHNIQUES LIST is a list of 16 well known requirements elicitation techniques. For each technique the list explains how LIST to do it, when it works best, which obstacles impede it, which resources are needed to do it, and which techniques complement it well. Techniques are divided into interview techniques (e.g. structured, unstructured, laddering), workshop techniques (e.g. brainstorm, KJ technique, JAD) and observation techniques (e.g. storytelling, protocol analysis, apprenticing). Based on [12, 13]. SELECTED SELECTED TECHNIQUES are techniques chosen to address MISSED POINTS. For example, if the way new relations are TECHNIQUES registered is not yet understood then an observation technique would be a good choice to see how it is done now. ELICITED ELICITED REQUIREMENTS are new requirements elicited using a SELECTED TECHNIQUE. ELICITED REQUIREMENTS are REQUIREMENTS written into the REQUIREMENTS DOSSIER. REQUIREMENTS Included as context. A REQUIREMENT is any customer need, wish or desire with regard to Keylane software. GAPS Included as context. A GAP is any customer need, wish or desire for functionality that is not or not sufficiently covered by Keylane software in it’s current state. REQUIREMENTS include GAPS. UNVERIFIED An UNVERIFIED GAP is any gap derived from documents, systems, or own expertise, that has not yet been communicated to the GAPS client. These UNVERIFIED GAPS should always be discussed to verify whether they still reflect a current need, wish or desire [14]. We keep track of the verified attribute in the GAP TABLE. INFORMATION INFORMATION NEEDS are gathered right before the kickoff of the final workshop to determine what information is still NEEDS missing. This is the last opportunity in the requirements phase to do so. Information needs include: Any remaining open questions Any remaining UNVERIFIED GAPS Any remaining MISSING POINTS from the SPEAKING POINTS LIST WORKSHOP WORKSHOP NOTES are made by a dedicated scribe for all points discussed in the workshop. A Scribe is appointed to this task to NOTES minimize distraction for the other workshop participants. REQUIREMENTS The REQUIREMENTS DOSSIER is used as a single repository for all requirements that will be shared with the client [15]. The DOSSIER REQUIREMENTS DOSSIER contains: A project definition (purpose, scope, objectives, stakeholders) An architecture draft (not in scope for this project) 32 Requirements Gaps A standardized notation has been made for requirements and gaps in the REQUIREMENTS DOSSIER. GAP TABLE The GAP TABLE only contains gaps and acts as an overview. In addition to the standard notation used in the DOSSIER the GAP TABLE is also used to keep track of status, the ‘verified’ attribute, and whether solutions will be generic or client specific. INCREMENT The INCREMENT PLANNING determines in which increments QIS will be implemented, and what each increment contains. PLANNING Typically increments consist of: One or more components of QIS per increment One or more client products and matching QIS components per increment A channel and all it’s needed QIS components per increment (e.g. first intranet, then extranet, then internet. A client business line per increment. ACTIVITIES ACTIVITIES are design sessions planned per increment, with the purpose of eliciting DETAIL REQUIREMENTS. DETAIL DETAIL REQUIREMENTS (similar to design requirements in [16]). are made by designers when they decompose GAPS into their REQUIREMENTS smallest functional parts. An example of a gap and It’s detail requirements: The system must provide a user with login data o The system must generate a username containing the first five letters of an employee’s first name and the first five letters of their last name. o The system must generate a random password containing at least 10 characters from the full Unicode set. o The system must auto-send an e-mail containing the username and password to the employee’s company address LESSONS Any good project ends with the documentation of LESSONS LEARNED. In this case LESSONS LEARNED can also be contributions LEARNED. to CLOSED SURVEYS, SPEAKING POINTS, the REQUIREMENTS DOSSIER and GAP TABLE templates, the TECHNIQUE LIST, the STANDARD TERMINOLOGY and more. [1] Humphrey, W. S., & Sweet, W. L. (1987). A Method for assessing the software engineering capability of contractors: preliminary version (No. CMU/SEI-87-TR-23). Carnegie-mellon Software Engineering Institute (SEI), Pittsburgh PA. [2] Johnson, W. L., Feather, M. S., & Harris, D. R. (1992). Representation and presentation of requirements knowledge. Software Engineering, IEEE Transactions on, 18(10), 853-869. [3] Mead, N. R., & Stehney, T. (2005). Security quality requirements engineering (SQUARE) methodology. ACM SIGSOFT Software Engineering Notes, 30(4), 1-7. [4] Duggan, E. W., & Thachenkary, C. S. (2003). Higher quality requirements: Supporting joint application development with the nominal group technique. Information Technology and Management, 4(4), 391-408. 33 [5] Bresciani, P., Perini, A., Giorgini, P., Giunchiglia, F., & Mylopoulos, J. (2004). Tropos: An agent-oriented software development methodology. In: Autonomous Agents and Multi-Agent Systems, 8(3), 203-236. [6] Lapào,L.P., Rebuge, A., Silva, M.M., Gomes, R. (2009). ITIL Assessment in a healthcare environment: the role of IT governance at Hospital Sao Sebastiao. In Medical Informatics in a United and Healthy Europe: Proceedings of MIE 2009, 150, 76-80. [7] Bradshaw, P. (2007).: Wiki Journalism: Are Wikis the New Blogs? In: Proceedings of the Future of Newspapers Conference 2007, 1-22. [8] Barney, S., Aurum, A., & Wohlin, C. (2008). A product management challenge: Creating software product value through requirements selection. Journal of Systems Architecture, 54(6), 576-593. [9] Wong, K. Y., Casey, R. G., & Wahl, F. M. (1982). Document analysis system. IBM journal of research and development, 26(6), 647-656. [10] Van Lamsweerde, A. (2001). Goal-oriented requirements engineering: A guided tour. In Proceedings of the Fifth IEEE International Symposium on Requirements Engineering, 249-262. [11] Hickey, A. M., & Davis, A. M. (2003, January). Requirements elicitation and elicitation technique selection: model for two knowledge-intensive software development processes. In Proceedings of the 36th International Conference on System Sciences, 10- 19. [12] Maiden, N. A. M., & Rugg, G. (1996). ACRE: selecting methods for requirements acquisition. Software Engineering Journal, 11(3), 183-192. [13] Carrizo, D., Dieste, O., & Juristo, N. (2014). Systematizing requirements elicitation technique selection. Information and Software Technology, 56(6), 644-669. [14] Boehm, B. W. (1984). Verifying and validating software requirements and design specifications. IEEE software, 1(1), 75. [15] Wiegers, K., & Beatty, J. (2013). Software requirements. Pearson Education. [16] Ball, L. J., Onarheim, B., & Christensen, B. T. (2010). Design requirements, epistemic uncertainty and solution development strategies in software design. Design Studies, 31(6), 567-589. 34 APPENDIX 10 – WIKI SCREENSHOTS 35 36 37 38 ADDENDUM 1 – NATURAL LANGUAGE PROCESSING OF REQUIREMENTS IN CLIENT DOCUMENTATION A N EXPERIMENT REPORT Abstract. A software supplier generates a lot of documentation about its software product in the form of functional descriptions, design documents, manuals and training materials. This documentation is rife with keywords related to the software’s functions and capabilities. Similarly the software supplier’s clients have websites, process documents and sales communications that are rife with keywords related to their business processes. Natural language processing could potentially show the critical differences: keywords that are common in the client’s documentation, that rarely or never occur in the supplier’s documentation. These keywords may be indicative of requirements. In two additional experiments we use NLP for the identification of stakeholders and requirements in a client’s sales documentation. 1 1 - INTRODUCTION In this report we will discuss the results of using Natural Language Processing (NLP) techniques to extract information from industry documents. This research was performed as part of a master’s degree thesis project performed in collaboration with a Dutch software supplier. This supplier sells a software package that offers broad support for insurance-related processes, products and services to damage/property insurance providers in Europe. The software supplier was particularly interested in ‘gaps’: the functionalities that new clients need, but are not or not sufficiently present in their current software product. Gaps are the most valuable type of requirements, since clients need these functionalities in order to operate their business. As estimated by Boehm, missing gaps until late in a software project can result in 10 to 200 times increased costs [1]. This has spurred the software supplier’s interest in new and innovative ways of identifying gaps. As a part of the thesis we suggested the use of NLP techniques. The software supplier generates a lot of documentation about their software. Think for instance about functional descriptions, design documents, and training materials. New clients, similarly, often have a stack of documents about their products, processes, and policies. If we were to extract keywords from the supplier’s documents, and compare them to keywords in the client’s documents, there is bound to be a lot of overlap among insurance specific terms (e.g. policy, premium, etc). What we are interested in are the differences. Because gaps are customer needs that are not yet present in the software, the expectation was that their keywords would occur significantly less in the software’s documentation Supplier documentation Gaps Client documentation The, it, on, off, next, to, up, Supplier down, left, Keywords right, over, under, policy, The, it, on, off, next, to, up, Difference down, The, it,left, on, off, right,next, over, to, up, under, policy, left, down, Overlap right, over, under, policy, NLP The, it, on, off, next,Client to, up, down, left, Keywords right, over, under, policy, Figure 31 - Envisioned NLP results In section 2 we will elaborate further on the domains of software requirements engineering and natural language processing, followed by the methods used in section 3. In section 4 we report on the results of the keyword finding. In section 5 we report on several techniques used for information extraction and their viability. Finally, we conclude this paper with a discussion and conclusion in sections 6 and 7 respectively. 2 - DOMAIN Wiegers and Beatty define a software requirement as “a statement of a customer need or objective, or of a condition or capability that a product must possess to satisfy such a need or objective” [1]. Requirements are often distinguished as either being one of the following: 2 Functional requirement. A description of a function that the software must support or perform independently. Non-functional requirement. A description of a property or characteristic that the software must exhibit, or a constraint that it must respect. NLP is an innovative field that has drawn a lot of attention from various other domains over the years; Requirements Engineering (RE) has been no different. As early as 1993 Kevin Ryan urged for a realistic attitude towards using NLP in RE [2]. Since then several applications of NLP have been devised by other RE researchers [3,4,5]. 3 - METHOD All experiments outlined in this report were performed using AntConc[6]. AntConc is a freeware corpus analysis toolkit that supports common NLP techniques such as concordancing, searching collocates, searching N-grams, and generating keyword lists. Out of the broader offering of NLP tools AntConc is one of the few truly (license-) free tools that boasts such a large feature set. KEYWORD FINDING Imagine taking a corpus of twenty documents and searching for their most used words; a frequency list. The likely result is a top 100 containing ‘the, and, a, to, of, in, is, it’ and so on. The most simple way of handling this problem is to use stop word removal [7]. With stop word removal a list of very common words is used to remove common words from the frequency list. This results in a list of keywords that are relevant compared to the stop word list, but what about comparing a corpus to another corpus? In keyword finding an attribute called ‘keyness’ is calculated. If a word occurs significantly more in the target corpus than in the reference corpus, it’s keyness attribute is higher as a result. Paquot and Bestgen put this technique to use by comparing a large collection of academic papers to a corpus of English fiction [8]. They successfully identified the keywords that set academic writing apart from fiction. AntConc by default calculates keyness using the log-likelihood statistic of words in their respective corpus [9]. Lancaster University’s centre for computer corpus research provides an explanation of this process including a simple log-likelihood calculator[10]. We used this technique on a corpus of client process descriptions with a corpus of supplier software descriptions as a reference. This experiment would be considered a success if we could easily identify the same gaps found in the supplier’s gap analysis using the list of keywords. RFP ANALYSIS USING SEARCH WORDS In the second experiment we attempted to rapidly extract requirements and stakeholders from a Request for Proposal (RFP). An RFP is typically a 100+ page questionnaire sent out by software buyers to learn more about the offerings of potential suppliers. RFP documents are rife with requirements and mentions of important people, but reading RFPs in their entirety may be very time consuming. Why not just ctrl+f your way through an RFP then? Antconc provides KWIC, KeyWords In Context [11], surrounding search hits to provide context as the name implies. In addition, with a single click a search hit can be viewed in its original position in a document, even when searching through a large corpus of Figure 32 - search hits for 'must' with KWIC sorting 3 multiple documents. We used these features to rapidly extract both requirements and stakeholders from a sample RFP document.. 4 - GAP ANALYSIS TEST In a previously completed gap analysis with one software buyer, the supplier identified nineteen gaps. Two of these gaps would not have been identifiable by keywords, leaving a total of seventeen gaps to work with. Words from the gaps’ original Dutch names were extracted. To prove that it is possible to replicate the gap analysis using NLP, these words would need to have very high keyness ranks compared to their original frequency ranks. Some extra keywords were added such as the parts of compound words and common synonyms, assuming that this would increase the success of finding keywords (marked with a superscript * in the table below). A total of 31 functional descriptions of the supplier’s software were uploaded into AntConc and saved as a reference corpus. A collection of 22 rigorous process descriptions of the client’s processes were uploaded as the target corpus, and word keyness was calculated using the functional descriptions as a reference corpus. A selection of the results is shown below in table 1. Keywords Gezondheidsverklaring Digitale Gezondheid* Verklaring* Premiebetaling* Creditcard Credit* Card* Sms Betaalbevestiging Betalingsbevestiging Communicatie Bericht* Telefoon* Telefonisch* Bevestiging* Uitbetaling Uitbetalen Stop-Loss Begunstigde* Keyness rank 872 747 Not found 2630 2208 Not found 1874 1844 Not found Not found Not found Not found 1675 2821 1281 2770 Not found 1212 2628 862 Frequency rank 968 795 Change +96 +48 1958 2637 - 672 +429 2230 2191 +356 +347 305 2750 1005 255 -1370 -71 -276 -2512 1586 1921 784 +374 -707 -78 Table 10 - Sample keywords and rank mutations Out of the total collection of 66 keywords, only 21 were actually found in the client’s documents. For six gaps we didn’t find any keywords at all. Comparing the results from the keyness tables to simple frequency tables, 13 keywords saw their rankings increase. The remaining 8 dropped down in the rankings. The average rank mutation using keyness rather than frequency was -116, meaning that the average keyword dropped 116 rankings. This can probably be explained by the addition of more generic words (i.e. the split compounds and synonyms), which are more likely to occur in the suppliers documents and thus result in a lower keyness. Only looking at the specific keywords (without a *), hit rates were even lower. 10 out of 37 were found, but their average rank change was 135, meaning that highly specific keywords had a keyness rank that was 135 places higher than their frequency rank on average. This does not take away the fact that only 10 out of 37 specific keywords were actually found in the client’s 4 documents. On top of that the 10 keywords that were found appeared so far out of the top 200 that it would have still taken quite some time to identify them. We hoped that using keyness would put some, if not all, keywords in the top 100. Total Found in client’s process descriptions Average rank mutation All Keywords 66 21 Specific keywords 37 10 -116 135 Table 2 - Sample keywords and rank mutations 5 - RFP ANALYSIS In this section we will explore the possibilities of using NLP and AntConc to identify requirements and stakeholders in client documentation. The source document used is a 134 page RFP document sent out by a Belgian insurance provider. This document was sent out to various software suppliers as a means to research the products of potential suppliers. The document contains natural language descriptions of the project context, project scope, the company’s working methods, business requirements, IT requirements, contractual requirements, localized market requirements and a short demonstration of their current software. The document also contains an extensive list of questions directed at the software supplier. The first approach used is a targeted search for modal verbs, a subset of auxiliary verbs that indicate properties of verbs. Requirements are often phrased using modal verbs. For example: ‘The system must support x’ or ‘A user should do y’. We opted to search the four modal verbs used in the popular requirements prioritization technique MoSCoW [12]: must, should, could and would and their present forms shall, can, and will. An example AntConc output for the search word must can be seen in figure 1. The results in table 3 were gathered by reading reading and assessing each search hit. Hits Must Shall/Should Can/Could Will/Would 55 81 137 161 Functional requirements 21 8 19 7 Non functional requirements 15 30 16 8 % 65.5% 59.3% 25.5% 9.3% Table 3 - RFP search words For statements containing must, shall and should, more than 50% was indicative of a client’s requirement for the software. Any statement of functionality that the system should have is counted as a functional requirement. . Non functional requirements were identified in accordance with the definition by Wiegers and Beatty [1]. This includes requests for system qualities (e.g. “the database must respond to queries within 100ms”), constraints (e.g. “these figures should not be made visible to the customer”) and strategic concerns (eg. “the system should be aligned with our agile way of working”) For can and could there is a steep drop-off, caused by prevalent use of those words in the company’s working methods description. For example: “an expert can enlist the help of the sales manager”. In this instance can refers to an activity that stakeholders perform amongst themselves without needing any intervention from software. The drop was even steeper for will and would, which were used often in the project context, project scope, project team role descriptions, and the question list. 5 For the identification of stakeholders the same seven target words were used. By sorting the KWIC to the left of search hits a pleasant, easily readable overview is created. An example of this output can be seen in figure 3. The identified stakeholders are the following: The bidder (software supplier) Client (a customer of the insurance provider) Additional party (third party acting on behalf of the client company’s customers) Direct insurers (the client and its competitors) The parent company The system The target audience The project team(s) Stakeholders The product manager/Product management The sales manager Portfolio management Team leaders Figure 33 - Stakeholder identification in KWIC Experts output Agents Administrative agents Partner organizations/partners Derogation authorities Subcontractors DISCUSSION The keyword-finding experiment did not at all turn out as hoped. We were only able to achieve a rank increase on highly specific keywords, but the increase was not statistically significant. On top of that less than 30% of our keywords were actually found in client documents, and they occured so far down the keyness rank list that replicating the original gap analysis would have been impossible. The second experiment fared much better. Extracting software requirements from an RFP resulted in many good finds. Particularly the modal verbs must, shall, and should, which produced more than 50% requirements per hit. In addition, by sorting context words to the left of modal verbs we were able to identify 19 stakeholder groups within minutes. CONCLUSION In the first experiment we attempted to replicate a gap analysis performed by a Dutch software supplier at a client company. Keywords were formulated to identify the gaps in client documents and their frequency rankings were calculated. The ‘keyness’ attribute of keywords was calculated by comparing their frequency in client process descriptions to their occurrence in supplier software descriptions. The keyness rankings were then compared to the original frequency rankings. Our original hypothesis was that keywords related to gaps would have a significantly higher keyness rank. This in turn would result in a significant increase in their keyness. Using a combination of specific and generic keywords actually resulted in an overall drop in rankings. Using specific keywords alone resulted in an average rank increase of 135 6 positions, but with nearly 3000 possible positions this increase was nowhere near as significant as expected. REFERENCES 1. Boehm, B.: Verifying and Validating Software Requirements and Design Specifications. IEEE software, 32-41 (1991) 2. Wiegers, K., Beatty, J.: Software Requirements 3rd edn. Pearson Education (2013) 3. Ryan, K.: The Role of Natural Language in Requirements Engineering. In : Proc. of the IEEE Int. Symp. on RE, pp.240-242 (1993) 4. Natt och Dag, J., Gervasi, V., Brinkkemper, S., Regnell, B.: Speeding up Requirements Management in a Product Software Company: Linking Customer Wishes to Product Requirements through Linguistic Engineering. In : proc. of the 12th Int. RE conference, pp.283-294 (2004) 5. Yadla, S., Hayes, J., Dekhtyar, A.: Tracing Requirements to Defect Reports: An Application of Information Retrieval Techniques. Innovations in Systems and Software Engineering 1(2), 116-124 (2005) 6. Sampaio, A., Loughran, N., Rashid, A., Rayson, P.: Mining Aspects in Requirements. In : Early Aspects workshop 2005, Aspect-Oriented Requirements Engineering and Architecture Design, Chicago, IL, vol. 1 (2005) 7. Anthony, L.: AntConc (version 3.4.3) [Computer Software]. Waesda University, Tokyo, Japan http://www.laurenceanthony.net. 8. Liu, F., Pennell, D., Liu, F., Liu, Y.: Unsupervised Approaches for Automatic Keyword Extraction Using Meeting Transcripts. In : Proc. of human language tecnologies: 2009 annual conference of the NAACL, pp.620-628 (2009) 9. Paquot, M., Bestgen, Y.: Distinctive Words in Academic Writing: A Comparison of Three Statistical Tests for Keyword Extraction. Language and Computers 68(1), 247-269 (2009) 10. Rayson, P., Garside, R.: Comparing Corpora Using Frequency Profiling. In : proc. of the Workshop on Comparing Corpora, 38th Annual Conference of the ACL, Hong Kong, pp.1-6 (2000) 11. Rayson, P.: Log-likelihood Calculator., Lancaster, UK http://ucrel.lancs.ac.uk/llwizard.html. 12. Luhn, H.: Key Word-in-context Index for Technical Literature (kwic index). American Documentation 11(4), 228-295 (1960) 13. Brennan, K.: A Guide to the Business Analysis Body of Knowledge (Version 2). International Institute of Business Analysis (2009) 14. Pohl, K., Rupp, C.: Requirements Engineering Fundamentals 1st edn. Rocky Nook, Inc. (2011) 7
© Copyright 2026 Paperzz