Technical Debt and Waste in Non-Functional Requirements Documentation: An Exploratory Study
Gabriela Robiolo Ezequiel Scott Santiago Matalonga Michael Felderer




Technical Debt and Waste in Non-Functional Requirements Documentation





Robiolo et al.



LIDTUA (CIC), Facultad de Ingeniería, Universidad Austral, Argentina 
 grobiolo@austral.edu.ar Institute of Computer Science, Tartu Unviersity, Estonia 

ezequiel.scott@ut.eeSchool of Computing, Engineering and Physical Sciences, University of the West of Scotland, United Kingdom 

santiago.matalonga@uws.ac.uk Department of Computer Science, University of Innsbruck, Austria

michael.felderer@uibk.ac.at

Technical Debt and Waste in Non-Functional Requirements Documentation: An Exploratory Study
    Gabriela Robiolo1 Ezequiel Scott2 Santiago Matalonga3 

Michael Felderer4

    
===========================================================================================




Background: To adequately attend to non-functional requirements (NFRs), they must be documented; otherwise, developers would not know about their existence. However, the documentation of NFRs may be subject to Technical Debt and Waste, as any other software artefact.
Aims: The goal is to explore indicators of potential Technical Debt and Waste in NFRs documentation.
Method: Based on a subset of data acquired from the most recent NaPiRE (Naming the Pain in Requirements Engineering) survey, we calculate, for a standard set of NFR types, how often respondents state they document a specific type of NFR when they also state that it is important. This allows us to quantify the occurrence of potential Technical Debt and Waste. 
Results: Based on 398 survey responses, four NFR types (Maintainability, Reliability, Usability, and Performance) are labelled as important but they are not documented by more than 22% of the respondents. We interpret that these NFR types have a higher risk of Technical Debt than other NFR types.
Regarding Waste, 15% of the respondents state they document NFRs related to Security and they do not consider it important.
Conclusions: There is a clear indication that there is a risk of Technical Debt for a fixed set of NFRs since there is a lack of documentation of important NFRs. The potential risk of incurring Waste is also present but to a lesser extent.







§ INTRODUCTION


Non-functional requirements (NFRs) are of high importance for the success of a software project <cit.>. Nevertheless, there exists evidence that NFRs tend to come second class to functional requirements <cit.> <cit.>. We see this as a pervasive problem, regardless of the methodology that the development process follows. Quality management models and standards like ISO 9001:2015 <cit.> and CMMI <cit.> require that functional and non-functional requirements are documented as way of conveying their importance. These software development models and standards take a“do as you say, say as you do" approach where documentation and upfront planning is used to mitigate the risk of not delivering the software product within the constraints of the project. In fact, the ISO/IEC/IEEE 29148:2018 standard for software and systems requirements engineering <cit.>, prescribes that both functional and non-functional requirements have to be documented.

Agile software engineering highlights the need of “continuous attention to technical excellence" <cit.>. Agile software engineering methods mainly rely on immediate feedback and postulate the sufficient availability of knowledgeable software developers to mitigate potential quality risks. Unfortunately, agile values and principles often seem to be adopted naïvely <cit.>, i.e., equating agile with avoiding documentation <cit.>. 

The starting point of the research presented in this paper is the assumption that in order to be able to adequately handle NFRs, they must be documented –otherwise developers would not know about their precise nature or even their existence. Based on a subset of data acquired from the most recent NaPiRE (Naming the Pain in Requirenments Engineering) survey conducted in 2018 <cit.>, we calculate for the NFR types Compatibility, Maintainability, Performance, Portability, Reliability, Safety, Security, and Usability how often respondents state they document a specific type of NFR when they also state that this type of NFR is important. We address the following research questions:

RQ1: Can we identify Technical Debt and Waste in requirements documentation from the responses in the NaPiRE questionnaire? To understand the current status of Technical Debt and Waste in the context of NaPiRE, we calculate the occurrence of potential Technical Debt (i.e., NFR not documented although labeled as important) and the occurrence of potential Waste (i.e., NFR documented although labeled as not important) with regard to the different NFR types (i.e. Compatibility, Maintainability, Performance, Portability, Reliability, Safety, Security, and Usability).

RQ2: How does the practitioners' context influence the occurrence of Technical Debt and Waste in requirements documentation? The system type, the project size, and the type of development process are usually the first variables to be considered in exploratory studies. We explored the practitioners' responses related to these variables in order to understand how they influence the occurrence of Technical Debt and Waste in the context of NaPiRE.

Our results show a clear indication of Technical Debt in several NFRs, with Maintainability, Reliability, Usability, and Performance being the NFRs with the highest frequency of occurrence of potential Technical Debt. Furthermore, when breaking down the analysis by the type of development process, the development processes at the extremes of the spectrum (i.e., purely plan-driven or purely agile) alter the indication of the Technical Debt pattern. 
Furthermore, our results show that there is less risk of incurring in Waste. Less than 15% of the respondents stated that they document NFR which they do not consider important. With Security being the NFR with the highest frequency of respondents at about 15%.





§ BACKGROUND
 

In this section, we introduce the Naming the Pain in Requirenments Engineering (NaPiRE) initiative[NaPiRE web site – http://napire.org] and present an overview on research about NFRs.



 §.§ The NaPiRE Project
 
The objective of the NaPiRE project is to establish a comprehensive theory of requirements engineering (RE) practice and to provide empirical evidence to practitioners that helps them address the challenges of requirements engineering in their projects. These objectives shall be achieved by collecting empirical data in surveys conducted world-wide and in repeating cycles.
At the time of writing this paper, three rounds of the NaPiRE survey have been carried out. The first survey round was conducted in Germany and the Netherlands in 2012 <cit.>. The second round, conducted in the years 2014 and 2015, was extended to ten countries <cit.>. The third round of the survey was conducted in 2018 and collected data from 42 countries.
The research presented in this paper is based on the data collected in the third round. Since the NaPiRE survey instrument has evolved since 2014/2015, a direct comparison between past analysis results and currently ongoing analyses is not always possible. This holds especially for the topic of non-functional requirements covered in this paper, which is the first one published on data from the third run.
 
The previous installments of the NaPiRe survey have been successful in sparking complementing research into several viewpoint of requirements engineering. For instance, to compare requirements engineering practices across geographical regions <cit.><cit.> or by development method <cit.><cit.>. We argue that, although NaPiRE data has been extensively analyzed, it has so far not been analyzed with regards to practitioners' perceptions about handling NFRs. 





















 §.§ Published Research on Non-Functional Requirements
 

This section presents an overview of past directions in non-functional requirements (NFR) research with a focus on survey research in the context of software industry.


Borg et al. <cit.> presented a case study on how NFRs are dealt with in two software development organisations. The authors interviewed 14 software developers in two organisations. Their results show that, in both contexts, functional requirements take precedence over non-functional requirements. 


Berntsson Svensson et al. <cit.> investigated the challenges for managing NFRs in embedded systems. They interviewed ten practitioners from five software companies. Their results show a widespread variation in how the respondents dealt with NFR, they also suggest a relationship between a lack of documentation of NFR and a dismissal of NFR during the project lifecycle.

Behutiye et al. <cit.> investigated how software development teams using agile projects deal with non-functional requirements. The authors interviewed practitioners in four companies developing software with agile methodologies. Each company followed a different practices when documenting NFR (including not documenting them and relying on tacit knowledge). 


Ameller et al. <cit.> looked at how software architects deal with non-functional requirements. 
Their results highlight a lack of common vocabulary among software architects to convey NFR, the two most important NFR types were performance and usability, and that NFRs are often not documented, and when documented, the documentation was usually imprecise and was rarely maintained. Also, Proot et al. <cit.> presented a survey about the perceived importance of non-functional requirements among software architects. 
Their results suggest that architects consider NFRs important to the success of their software projects. 

De la Vara et al. <cit.> present a questionnaire-based survey capturing the more important NFRs from the point of view of practitioners. 31 practitioners from 25 organizations were selected within the industrial collaboration network of the authors. The top five NFRs identified are Usability, Maintainability, Performance, Reliability, and Flexibility. 
Haigh et al. <cit.> empirically examined the requirements for software quality held by different groups involved in the development process. She conducted a survey of more than 300 current and recently graduated students of one of the leading Executive MBA programs in the United States, asking them to rate the importance of each of 13 widely-cited attributes related to software quality. The results showed the following ranking of NFRs: Accuracy, Correctness, Robustness, Usability, Integrity,  Maintainability,  Interoperability,  Augmentability, Efficiency, Testability,  Flexibility, Portability, Reusability. 







In summary, we conclude that the topic of NFRs has been extensively researched but there is few evidence of how the NFRs are documented. Furthermore, the specific relationship between importance level and degree of documentation has not yet been investigated. 



§ RESEARCH METHOD
 

Before describing the research method we first present our understanding of relevant concepts and assumptions about our research. Secondly, we introduce the terminology used in this paper. Then, we present our research questions. Finally, we describe the data extraction and analysis procedure that we followed in order to answer those research questions.



 §.§ Concepts and Assumptions
 
According to the software product quality standard ISO 25010:2011 <cit.>, a non-functional requirement is a “requirement that specifies criteria that can be used to judge the operation of a software system” <cit.>. The same standard defines a model for the evaluation of quality in use and product quality of a software system. Within this quality model, the product quality attributes (also known as quality characteristics) are defined. A quality attribute is a specification of the stakeholders' needs (Functional Suitability, Performance Efficiency, Compatibility, Usability, Reliability, Security, Maintainability, Portability). We argue that both terms, NFR and product quality attribute, are related and often used interchangeably in industry, even though this is not correct according to the precise definitions of these terms. Upon careful consideration, in particular looking at how the NaPiRE survey instrument framed the questions related to NFRs, in this work we interpret NFRs to be all requirements that do not specify a functional behaviour. Furthermore, we do not differentiate between NFR and product quality attribute. We claim that (1) the NaPiRE questionnaire has not made this distinction evident, (2) most practitioners would not care for the subtleties of this differentiation, and (3) interchangeable use of terms is pervasive among practitioners and researchers <cit.>, <cit.>, <cit.>. 
In order to be consistent with the survey instrument used in the NaPiRE survey, in this paper, we use the term “quality attribute" instead of “NFR" when we present our research questions and the results of our analyses. 

This research is driven by our assumption that, in agreement with <cit.>, both functional and non-functional requirements have to be documented. In the context of software quality assurance, which is defined in ANSI/IEEE Standard 729-1983 <cit.>, the confidence of the established technical requirements is achieved by checking the software and the documentation and verifying their consistency.

Therefore, the ideal situation is that when a quality attribute is considered as important for the development project, then it must be documented. To better convey this understanding we refer to the Technical Debt metaphor. Technical Debt, as defined by <cit.>, is “a metaphor for immature, incomplete, or inadequate artefacts in the software development lifecycle that cause higher costs and lower quality in the long run. These artefacts remaining in a system affect subsequent development and maintenance activities, and so can be seen as a type of debt that the system developers owe the system." Also, Zengyang et al. <cit.> pointed out that documentation of Technical Debt refers to insufficient, incomplete, or outdated documentation in any aspect of software development. That is, when practitioners perceive a quality attribute as important but fail to document requirements associated to the quality attribute, we will interpret this as an indication of the incurred Technical Debt. We differentiate from <cit.>, which defines Technical Debt in requirements as the distance between the implementation and the actual state of the world. 

We follow similar reasoning on the other end of the spectrum but we rely on the concept of Waste in Lean development. In Lean development, Waste is defined as anything that does not add value <cit.>. In the domain of software development, the types of Waste can be interpreted as: extra features, waiting, task switching, extra processes, partially done work, movement, defects, or unused employee creativity <cit.>. Therefore, when practitioners are investing effort in documenting requirements for artifacts (quality attributes) that they do not consider important, we are interpreting that such an effort could be better placed elsewhere in the development process, and understand it as a source of Waste.

In the most recent round of the NaPiRE survey, practitioners were asked about their perception of importance regarding a set of pre-defined quality attributes in the context of the project they were currently working on. In addition, they were asked whether they document quality attributes. The specific questions related to these aspects and their possible responses are shown in Table <ref>. Question Q1 asks for the level of importance of each NFR type and Q2 for its degree of documentation. Questions Q3, Q4, and Q5 request the context factors project size, system type, and development process type, respectively. By combining the answers to Q1 and Q2, we can investigate if practitioners are following the requirements documentation recommendation for quality attributes in a specific context determined by Q3, Q4, and Q5.




Table <ref> conveys our perception of the possible scenarios. In the ideal world, practitioners do not incur in Technical Debt (Important and Not Documented), nor do they Waste effort in documenting requirements which they do not consider important (Not Important and Not Documented (NI_ND)). However, our experience leads us to expect that, practitioners are restricted by the context of their development projects and they are bound to incur in Technical Debt and Waste. In this research, we will look for evidence of this understanding in the responses to the NaPiRE 2018 survey.






 §.§ Research Questions
 

As mentioned in section <ref>, we argue that if a quality attribute is perceived important, then it should be documented. We have, therefore, divided our analysis into the following research questions:

RQ1: Can we identify Technical Debt and Waste in requirements documentation (as interpreted in section <ref>) from the responses in the NaPiRE questionnaire? This question expresses our overarching objective of understanding the juxtaposition between the perception of the importance of a quality attribute and if it has been documented. The question is framed in the Technical Debt metaphor, as it conveys our understanding that: “If a quality attribute is considered important, then it should be documented". Any deviation in this direction should be interpreted as a project decision that, for whatever reason, lead the practitioners into not documenting a quality attribute they consider important (i.e., an expression of Technical Debt). Likewise, “if a quality attribute is not considered important, then it need not be documented". Any deviation in this direction we consider as an indication of Waste, as the effort invested in documenting the quality attribute, could have been better spent elsewhere in the development lifecycle. RQ1 is divided into:

RQ1.1: For which quality attributes do the practitioners' responses indicate Technical Debt? Through this sub-question, we will explore practitioners' responses to the NaPiRE 2018 dataset an identify the quality attributes in which a deviation is present of a quality attribute is perceived important and yet, it is not documented (referred in the analysis as I_ND).

RQ1.2: For which quality attributes do the practitioners' responses indicate Waste? Through this sub-question, we will explore the practitioners´ responses to the NaPiRE 2018 dataset and identify the quality attributes in which a deviation is present of a quality attribute that is not perceived as important and yet, it has been documented (referred in the analysis as NI_D).

RQ2: How does the practitioners' context influence the occurrence of Technical Debt and Waste in requirements documentation? This second research question conveys our pre-conception that practitioners fail to document some quality attributes that they consider important. 
RQ2 is divided into:

RQ2.1: How does the system type influence the occurrence of Technical Debt and Waste? This question conveys our pre-conception that the type of system can have an influence on the perceived importance of a quality attribute, and therefore on the occurrence of Technical Debt or Waste. 

RQ2.2: How does the project size influence the occurrence of Technical Debt and Waste? This question conveys our pre-conception that the size of the software project can have an influence on the perception of importance or the documentation needs of a quality attribute. 

RQ2.3: How does the type of development process influence the occurrence of Technical Debt and Waste?. This question conveys our pre-conception that the development process type might have an influence on the perception of importance or the documentation needs of a quality attribute. 



 §.§ Data Extraction and Analysis Procedure
 

We base our analysis on the NaPiRE 2018 dataset and, thus, have access to the corresponding raw data as well as the pre-processed codification of the questionnaire and answers. Table <ref> presents the variables included in this research.

A total of 488 responses are recorded for the NaPiRE 2018 instance of the survey. All recorded responses are complete for variables v_6 to v_13 (perceived importance of quality attributes, see Table <ref>) whereas only 455 responses are complete for variables v_97 to v_102, v_303, v_103 (documentation of requirements for quality attributes, see Table <ref>). We removed 57 responses for incompleteness in other variables of interest. Therefore, the total number of responses considered for this research is 398. Table <ref> presents the distribution of responses in the aforementioned categories by the type of quality attribute. 



The distribution of the contextual project information that will be analyzed for RQ2 is shown in Table <ref>. It is worth mentioning that we applied a pre-processing step to variable v_3 since it represents a free-text response. We used the results from the variable coding made by the collaborators of the NaPiRE initiative during their data analysis phase. For the purpose of analysing this variable, we grouped the responses into equal-sized buckets that represent small-sized (v_3 < 7), medium-sized (7 ≤ v_3 < 15) and large-sized projects (v_3 ≥ 15). 














§ RESULTS
 

This section shows the results of our analysis organized by the research questions.

RQ1: Can we identify Technical Debt and Waste (as interpreted in Section <ref>) from the responses in the NaPiRE questionnaire? To answer RQ1, we cross-reference the responses to the perceived importance of quality attributes (v_6 to v_13) with the availability of documentation (v_97 to v_102, v_303, and v_103). Important and not documented (I_ND) requirements indicate Technical Debt, whereas not important and documented (NI_D) requirements indicate Waste (see Table <ref>).

RQ1.1: For which quality attributes do the practitioners' responses indicate Technical Debt? Table <ref> shows the occurrence of Technical Debt for each quality attribute. The percentage of responses showing Technical Debt (I_ND) ranges from 12% to 31%. The average percentage of responses related to Technical Debt over all quality attribute types is 22%. The quality attributes which are most likely to incur in Technical Debt are Reliability (31%), Maintainability (31%), Usability (24%), and Performance (23%).

RQ1.2: For which quality attributes do the practitioners' responses indicate Waste? Table <ref> shows that waste also occurs in all quality attributes (albeit at a smaller response rate). The percentage of responses showing Waste (NI_D) ranges from 7% to 15%. The  quality attributes which exhibit higher Waste are Security (15%), Performance (12%), and Compatibility (12%).

RQ2: How does the practitioners context influence the occurrence of Technical Debt and Waste? To answer RQ2, we blocked the response data by the variables type of system, project size, and development process type to investigate their influence on the occurrence of Technical Debt and Waste. Figure <ref> shows the percentage of responses by quality attribute that indicate Technical Debt for each of the variables under study. Similarly, Figure <ref> shows the percentage of responses related to Waste.

RQ2.1: How does the system type influence the occurrence of Technical Debt and Waste?. When broken down by the system type (see Figure <ref> (a)) we can observe that Reliability is the most prone to Technical Debt in all types of systems. On the other end, Portability, is not prone to Technical Debt in the system types under analysis. The HYB type of system is type of system where the average percentage of responses indicating Technical Debt is the highest (23%) (see Table <ref>). Four quality attributes surpass the average percentage of responses for all the quality attributes (22%), namely Usability (25%), Reliability (31%), Performance (27%), and Maintainability (29%). Security (23%) can be considered a borderline case. The percentage of BIS showing Technical Debt ranges from 9% to 37% with highest values for Maintainability (37%), Reliability (32%), and Usability (26%). From Figure <ref> (a) we can see that BIS systems three quality attributes surpass the average percentage of responses for all the quality attributes (22%), namely Usability (26%), Reliability (32%), and Maintainability (37%). This system type also shows the highest percentages for Maintainability (37%) and Reliability (32%). Finally, SIES systems show percentages of Technical Debt ranging from 12% to 28%, and four quality attributes surpass the average percentage of responses (19%), namely, Reliability (28%), Performance (22%), Security (21%), and Usability (21%). Maintainability (20%) can be considered as a borderline case.

Regarding Waste, the average percentage of responses for all the quality attributes is 10%, 9%, and 11% for BIS, HYB, and SIES type of systems (see Table <ref>). When broken down by the system type (see left-side of Figure <ref> (a)), the highest percentages of responses are related to the Security of BISs (18%) and the Compatibility of SIES (16%). At the other end, the lowest percentage is related to the Maintainability of HYB systems (4%). 




RQ2.2: How does project size influence the occurrence of Technical Debt and Waste? Figure <ref> (b) shows the Technical Debt for each quality attribute blocked by project size (S, M, L). Similarly, Figure <ref> (b) shows the Waste. The average percentages of responses indicating Technical Debt is 24%, 20%, and 21% for projects of size S, M, and L, respectively (see Table <ref>). 

Maintainability, and Reliability are the quality attributes which show the highest percentages of Technical Debt (regardless of project size). On the other end, Portability is the quality attribute with the lowest Technical Debt regardless of project size. Small projects incur in Technical Debt having percentages ranging from 13% to 35%. This kind of projects particularly shows high percentages related to Reliability (35%) and Maintainability (35%). As for medium-sized projects, the percentages range from 10% to 30%. In large-sized projects, the percentages of Technical Debt range from 12% to 28%.

Regarding Waste, the average percentages of responses indicating Waste is 8%, 11%, and 10% for projects of size S, M, and L, respectively (see Table <ref>). The percentages range from 5% to 12% for small-sized projects, from 7% to 17% for medium-sized projects, and from 7% to 16% for large-sized projects. In particular, the data points for Security and Safety seem to indicate that the number of responses showing Waste becomes larger as the project size increases. 



RQ2.3: How does type of development process influence the occurrence of Technical Debt and Waste? Figure <ref> (c) shows the percentages of Technical Debt for every quality attribute organized by development process types. Similarly, Figure <ref> (c) shows the percentages related to Waste. Three quality attributes exhibit the highest percentages of Technical Debt regardless of the type of development process, namely Maintainability, Reliability, and Usability. On the other hand, Portability is the only quality attribute without Technical Debt for any type of development process. 





Regarding Waste, the percentage responses indicating Waste related to Security is the highest. In addition, the percentage seems to increase as the projects become more plan-driven. The development process characterised as Rather plan-driven shows the highest overall exposure to Waste.













§ DISCUSSION
 


In this section we first discuss the results achieved regarding the relation between NFRs with Technical Debt and Waste, respectively. In addition, we discuss possible threats to validity of our study.



Observations Related to NFR and Technical Debt Our results show that the majority of the participants of the survey stated that they document NFRs when they are important and they don't document NFRs when they are not important. This is what we had hypothesized. However, we observed that there is a substantial subset of respondents who stated that they don't document (some of the) important NFRs. This is what we interpret as being at risk of Technical Debt. Certain types of NFRs were particularly prone to this phenomenon, i.e., Reliability, Maintainability, Usability, and Performance. 

We can only speculate what would drive practitioners into this behaviour. For example, either these NFR types are difficult to document, knowledge on how to properly document NFRs is missing, or no appropriate tool is available. Furthermore, reasons might vary by NFR type. For example with Maintainability, it can be argued that is left to good coding practices (i.e., avoiding code smells and focusing on refactoring). This phenomenon might also be true for other NFR types, i.e., there exist standard procedures or standard requirements that always hold and do not have to be explicitly stated in each individual project. When respondents answered the NaPiRE questionnaire, they might only have thought about project-specific documentation of NFRs.












Observations Related to NFRs and Waste We also observed the occurrence of Waste, i.e., cases where respondents stated they document NFRs although they are not considered important. However, the observed Waste was consistently smaller than the Technical Debt (for the same quality attribute). Furthermore, when looking at the percentages observed for Waste, the proportion of Waste increases as project size increases: 5-11% for small-sized projects, 7-17% for medium-sized projects, and 7-16% for large-sized projects. This might be a signal that - consistent with common expectation - for larger projects the risk of Waste is higher than for small projects with respect to NFRs. 
Surprisingly, and probably against common expectation, our analyses do not give any indication that projects using rather agile or purely agile processes produce less Waste than projects using plan-driven development approaches. 

Threats to Validity We consider threats to construct, internal, external and conclusion validity according to Wohlin et al. <cit.> as well as measures to mitigate them.

This research is grounded on the NaPiRE 2018 survey, therefore we inherit some of the decisions taken during the development of the survey instrument. Of particular importance to the research presented in this paper is the fact that the NaPiRE 2018 survey does not differentiate between quality attribute and NFR. Both concepts are confounded in the questions on which we based our analysis. As a research team we have discussed this issue in depth and decided to accept this threat as it is in line with our shared understanding that (1) we cannot revert this decision; (2) we share the understanding that practitioners would probably not differentiate between both (and even for those who do, we can probably not guarantee a shared understanding). The latter argument is in line with the results of Eckardt et al. <cit.> (already mentioned in Section <ref>) that there is a large variety in the understanding of what is quality and what are NFRs. Continuing with inherited threats, external validity of our results highly depends on the profile of participants in the NaPiRE survey. The survey received overall 488 responses from all over the world and we have shown in a previous paper <cit.> that there are no significant differences in the NaPiRE data with respect to different cultural regions. Furthermore, we analyzed the data also with respect to the system type, the project size and the type of development process. We therefore think that threats to external validity are low.

An important construct validity injected by the approach described in this work relates to how the metaphor of Technical Debt and the concept of Waste were introduced into the analysis of the data set. First of all, the NaPiRE survey makes no reference to these concepts. Secondly, there is a subtle but present gap between the formulation of the questions and our interpretation. It can be argued that "which quality attribute is of particular high importance?" (as asked in the survey) is not the same as asking "List all quality attributes that are important".  

Regarding internal validity, a limitation that we always have with survey research is that surveys can only reveal perceptions of the respondents that might not fully represent reality. However, the analysis stems from the well-validated NaPiRE questionnaire (see Section <ref>), which has continuously been improved based on piloting and the first two runs. Furthermore, we tried to be explicit in our decision about our data cleaning criteria (see Section <ref>) to be able to perform a thorough analysis.














§ CONCLUSION
 
This paper explored the relationship between the level of importance and the degree of documentation for the NFR types Compatibility, Maintainability, Performance, Portability, Reliability, Safety, Security, and Usability. The analysis is based on the data collected during the most recent run of the NAPiRE survey. To analyze this relationship, we refer to the Technical Debt and Waste metaphors. To the best of our knowledge, this is the first publication in which these two concepts were explored in the context of NFRs. The starting point of our analysis was the assumption that important NFRs must be documented. If a project breaks this rule, then we interpret it as a possible source of Technical Debt. Likewise, we postulated that not important NFRs should not be documented. If a project breaks this rule, then we interpret it as a possible source of Waste.

Our analyses indicate that for four types of NFR (Maintainability, Reliability, Usability, and Performance) more than 22% of the survey respondents who labelled the respective NFR type as important said that they did not document it. We interpret this as an indication that these NFR types have a higher risk of Technical Debt than other NFR types. Our analysis also indicates that the risk of Waste is less evident than the Risk of Technical Debt. Regarding Waste, NFR relating to Security exhibit the highest (about 15%) number of respondents that say that they do not consider Security important, but do document related requirements. For the remaining NFR under analysis, the respondents indicate that the problem of Waste is much less evident (when compared to Technical Debt). Additional analyses indicate that our results are not sensitive to the type of system class, the project size, or the type of development process.


Overall, we conclude that, for specific NFR types (i.e., Maintainability, Reliability, Usability, and Performance), there is a clear indication that lack of documentation of important NFRs occurs regularly, pointing to the risk of Technical Debt. Regarding Waste, with the exception of Security, we conclude that the manifestation of Waste is not as clear as the manifestation of Technical Debt. We discussed several potential reasons for the occurrence of this phenomenon. However, investigating the true causes of Technical Debt and Waste requires more empirical research, which we consider as future work. 



















§ ACKNOWLEDGMENTS

The authors would like to thank all practitioners who took the time to respond to the NaPiRE survey as well as all colleagues involved in the NaPiRE project. The authors further acknowledge Dietmar Pfahl's contribution to research process described in this paper. Ezequiel Scott is supported by the Estonian Center of Excellence in ICT research (EXCITE), ERF project TK148 „IT Tippkeskus EXCITE“. Gabriela Robiolo is supported by Universidad Austral.







splncs04


