An Exploratory Study of Requirements Engineering Practices in Indonesia – Part 2: Efforts, Processes and Techniques

This paper provides the second part of the statistical research findings of an exploratory study of the requirements engineering practices implemented in software development processes in Indonesia. This second part attempts to reveal facts regarding efforts, processes, and techniques that exist in such requirements engineering practices. Such facts were captured in accordance with the first part which were surveyed through a comprehensive online questionnaire consisting of both closedand open-ended questions. We invited 158 participant candidates representing industry and higher education institutions, however, 31 of them joined our web-based survey. Results which respect to efforts, processes, and techniques are presented along with related interpretations. Keyword: Requirements, Respondents, Processes


Introduction
In software development, requirements engineering (RE) is considered as one of the most crucial stages as it addresses the critical problem in determining what kind of software to build according to the customer. Some software project failures due to poor requirements specification have been reported (e.g. see [1]). In order to improve the way how such requirements specified in a requirements engineering process, firstly, we need to better understanding RE practices in software industries. There is a few numbers of exploratory studies that attempt to reveal RE practices in software development (e.g. [2] [3] [4] [5]).
We intend to perform this study as there is no publication of such a study in Indonesian software development. This research attempts to conduct an exploratory study of RE practices in software development in Indonesia by conducting an online survey. We have published the first part of this study presenting facts in the RE concepts understanding and problems which are encountered [6]. While, this second part will discuss the other concerns including efforts, processes, and techniques which are used in RE practices in Indonesia.
The rest of this paper is structured as follows. Section 2 briefly discusses the JITeCS Volume 5, Number 1, April 2020, pp 65-74 p-ISSN: 2540-9433; e-ISSN: 2540-9824 related works on surveys of RE practices in software development which respect to the efforts, processes, and techniques. Section 3 presents the research methodology.
In Section 4, we elaborate on the results of the study. We discuss all findings in Section 5. Finally, Section 6 describes the conclusion and future work of this survey.

Related Work
There exists a number of studies to capture findings in requirements engineering practices in software industries, especially in terms of efforts, processes, and techniques. Zowghi et al. [7] presented the state of the art and practice of requirements elicitation techniques, approaches, and tools. Some techniques and approaches were discussed including interviews, questionnaires, task analysis, as well as their related issues, trends, and challenges. Quispe et al. [8] carried out a diagnostic study on requirements engineering practices in very small software enterprises (VSSE) in Chile. The authors attempted to figure out processes practiced in requirements engineering, i.e. user satisfaction, problem identification, scope creep, requirements management, requirements specification, requirements validation, in such enterprises. Karlson et al. [4] performed a qualitative study using a semi-structured interview with 14 respondents from 8 software companies in Sweden. This research strived to find out challenges in RE practiced in marketdriven software development with respect to some aspects of RE, e.g. techniques, processes, quality. Liu et al. [5] presented survey results of the current state of RE practice in China including techniques, processes, efforts, and tools. Kassab et al. [9] conducted an exploratory survey involving 3,000 software professionals around the world for capturing the state of practice in requirements engineering including techniques, processes, and efforts.

Research Methodology
A detailed explanation of the research methodology used in this study has been described in the first part of the findings publication of the study [6]. Therefore, this section will only summarize such methodology. This study used an online questionnaire to obtain information related to the RE concepts that are understood, the problems that are encountered, and RE practices (i.e. efforts, processes, and techniques) that are carried out in software development in Indonesia. The questionnaire consisted of 40 closed-ended questions. In addition, we also provided several open-ended questions to capture other information that is more specific and descriptive.
The questionnaire was made available online for a month from August to September 2018 using commercial survey software, i.e. SurveyMonkey 1 . The survey participants were selected from software experts appointed by institutions from a number of software companies and universities. Further, we also conducted a focus group discussion with a software company to get insights about the survey data. We, however, considered some limitations of this study, i.e. bias in selecting the survey participants since they were initially selected based on the online information of their institutions, and they might be appointed by their own institutions without any requirements engineering background.

Research Findings
We received responses from 31 participants. However, the complete answers were contributed by 30 participants. We summarize the information concerning personal backgrounds and organization of the participants, while the detail have been presented in the first part of the publication of the findings of this study [6]. We will present in detail facts regarding efforts, processes, and techniques in the following sub-sections.
In regard personal backgrounds, the study revealed the majority of the participants (23.33%; n = 7) worked as general manager and most of them (36.67%; n = 11) had more than 10 years experiences in software development. In addition, the majority of the participants (66.67%; n = 20) held bachelor honors degree and most of them (36.67%; n = 11) held informatics engineering background. While, according to the organization, most of them (83.33%; n = 25) were from information technology or software business area in which dominantly categorized as small size organizations (i.e. 80% with less than 100 employees).

Efforts Findings
The following information depicts the facts related to efforts allocated in dealing with RE within a particular software development project. Concerning the portion of time allocated for each activity in RE, the respondents were asked to rank RE activities according to the largest portion of time consumed. The majority of participants placed requirements elicitation as the most time-consuming activity (score 5.86), while documentation as the less one (score 2.58), as shown in Fig. 1. While Fig. 2 confirms that most of the participants (more than 70%; n = 23) understood that RE process spends on average a maximum of 30% of project time. Further, the respondents were asked about the efforts that their institutions need to arrange in order to improve the competence of staffs in dealing with RE process. The majority of the participants (80.65%; n = 25) considered short courses provided by the institutions as an important tool for such competence improvement, as shown in Fig. 3. As this question had a multi-selections answer, the respondents also took into account encouraging staffs to learn independently (61.29%; n = 19) as the second option. Some respondents (19.35%) proposed other options including joining a community of practitioners (n = 1); arranging any internal workshop and sharing session (n = 1); encouraging staffs to attend any relevant training (n = 1); engaging project with RE standards/concepts (n = 1); as well as attending any international training and certification (n = 1).

Processes Findings
The following information presents processes carried out in practicing RE. In regard the role of the software analyst in each software development project (Table 1), most of the participants (74.19%; n = 23) suggested that such a role always existed. However, there was an insignificant number of respondents (3.23%; n = 1) which indicated that such a role did not exist. While, concerning requirements documents availability (Table 2), the majority of the participants (70.97%; n = 22) reported that such documents were always available in each software project. While there existed no project without any requirements document.
In addition, the participants were asked whether there existed any standard to be used in requirements documentation, as well as the types of requirements document they created. Most of the participants (70.97%; n = 22) reported that they always used requirements documentation standards, while 19.35% (n = 6) of respondents not always used such standards, as described in However, there existed only 3 respondents (9.68%) who reported that such a standard was not available. While, the majority of the participants (93.55%; n = 29) indicated Software Requirements Specification (SRS) as the most widely used in documenting requirements, as presented in Table 4. Given a multi-selections response, the participants also reported that Interface Requirements Specification (IRS) as the second requirements document type to create (48.39%; n = 16). Some respondents (16.13%) explained other requirements document types including entity-relationship diagram (ERD) (n = 1); terms of reference (TOR) (n = 1); functional specification document (FSD), logbook, minutes of meeting (MoM) (n = 1); user requirements specification (n = 1); and requirements definition (RD), technical design (TD) (n = 1).

Techniques Findings
In regard to techniques used in practicing RE, Fig. 4 to Fig. 8 illustrate the facts.
The participants were asked about the methods used in dealing with RE process. The majority of participants indicated the object oriented approach as the most widely used method (80.65%; n = 26), as shown in Fig. 4. Given a multi-selections response, the participants also reported that the structured approach as the second method to use (41.94%; n = 13). Some respondents (12.90%) described other methods including agile (n = 2); design thinking, diverge, converge (n = 1); kanban (n = 1). Concerning techniques used in requirements elicitation (Fig. 5), most of the participants (63.33%; n = 19) confirmed that group interviews is widely used. Given a multi-selections answer, the participants also reported that rapid prototyping as the second technique to use (53.33%; n = 16). In addition, some respondents (3.33%) also explained other techniques including demo and application hands-on (n = 1).
In regard to requirements modeling tools, the majority of the participants (73.33%; n = 22) indicated that MS Visio is widely used, as illustrated in Fig. 7. As a multi-selections answer was provided, some participants also explained other requirements modeling tools including draw.io (n = 3); MS Power Point (n = 2); Adobe XD (n = 1); Balsamic Mockup (n = 2); XMind (n = 2); Data Modeller (n = 1); StarUML (n = 1); Sketch (n = 1); as well as paper and ballpoint (n = 1). In additon, the participants were asked to indicate the requirements representation approaches they used. They confirmed that flowchart was widely used approach (74.19%; n = 23), while entity relationship and use case diagrams were considered as the second (64.52%; n = 20) and the third (58.06%; n = 18) approaches, respectively, as described in Fig. 8. A number of participants also reported other approaches including prototyping (n = 1); BPMN (n = 1); user story, backlog, kanban and user story mapping (n = 1).

Discussion
Most of the participants considered requirements elicitation as the most timeconsuming activity in practicing RE in software development processes in Indonesia. This fact confirms that requirements elicitation is a very complex process involving many tasks, multiple techniques, as well as multi-disciplinary nature of such activity [10]. Requirements elicitation is practically carried out in an iterative way which frequently relies on the communication skills between the software analysts and the software stakeholders. Problems in such an elicitation process may occur due to the lag of the communication skills required, which is in turn some resolutions need to be performed. Consequently, such resolutions may take time. Further, the majority of the participants (more than 70%) reported that RE process takes on average a maximum of 30% of project time. It is proportionally accepted as RE becomes an early and crucial phase in a software development process for establishing functional and non-functional software requirements.
In regard to improvement in RE competence for staffs, most of the participants agreed the institutions to provide short courses. While encouraging staffs to learn independently becomes another important option to do so. There, however, exist some useful activities to consider, e.g. software engineering course, training and certification, workshop and sharing session.
The survey also found that the role of software analyst always exists in each software project as reported by most of the participants (74.19%). While only 1 respondent reported such a role does not exist. This fact represents a high level of software process awareness of the institutions to establish software requirements seriously as the basis of software development. Reports on the role of software analyst are consistent with other facts relating to requirements documentation, i.e. requirements documents always exist (70.97%). Fortunately, there is no response in which a project does not create any requirements document.
In terms of standards in requirements documentation, most of the participants indicated that such standards are available even though some of them do not always use them in their projects. Only 3 respondents (9.68%) reported that such standards are not available. Given this fact, we can generally infer that requirements documentation standards are already considered in software development processes. In addition, the survey indicated SRS as the main document (almost 100% of the respondents) to create in RE processes.
Concerning methods used in dealing with RE process, it is not surprising that object-oriented becomes the most popular approach (see Fig. 4) used in each software development project, due to the popularity of the Unified Modeling Language (UML) and object technology [11] [12] [13] [14]. Further, most of the respondents reported that group interviews and rapid prototyping are the most two techniques used in performing requirements elicitation.
In addition, the survey found that most of the participants indicated MS Word and MS Visio as the tools used in documenting and modeling requirements, respectively, rather than the more integrated ones (e.g. Requisite Pro, Power Designer). This is understandable given that MS Word and MS Visio are very widely used, easy to use, and much cheaper. As the majority of the participants came from small size organizations, it is not easy to invest much money for an integrated tool such as Requisite Pro. Finally, the majority of respondents confirmed that the flowchart is the most widely used approach to representing requirements, while the use case and data flow diagrams are ranked third and fourth, respectively (see Fig.  8). This fact may reflect the existence of a misunderstanding among practitioners about the requirements modeling concept. Requirements are theoretically represented using data flow, entity-relationship, statechart, use case, and class diagrams, while flowchart may be used to represent an algorithm [15]. In addition, this may also reveal inconsistency between method and representation approach which are mostly used in requirements engineering. According to the widely used method, i.e. object-oriented, the most used representation approach should be use case diagram.

Conclusion and Future Work
This study has revealed some findings in capturing the RE efforts, processes and techniques which may exist in software development in Indonesia. In general, we can infer that software projects in Indonesia have spent much time in elicitation activity during RE process in which software analysts take vital roles in developing software requirements. The object-oriented approach becomes the main method used in dealing with RE process. There, however, exists inconsistency with the requirements representation approach which is widely used, i.e. flowchart. Future work may be carried out to investigating relationships among the facts in RE implementation in order to better understanding RE practices in Indonesia for getting further improvements.