Technical Debt and Waste in Non-Functional Requirements Documentation: An Exploratory Study

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.

[1]  Peng Liang,et al.  A systematic mapping study on technical debt and its management , 2015, J. Syst. Softw..

[2]  Tony Gorschek,et al.  Quality Requirements in Practice: An Interview Study in Requirements Engineering for Embedded Systems , 2009, REFSQ.

[3]  Xavier Franch,et al.  Non-functional Requirements Documentation in Agile Software Development: Challenges and Solution Proposal , 2017, PROFES.

[4]  Andreas Vogelsang,et al.  Are "Non-functional" Requirements really Non-functional? , 2017, Software Engineering.

[5]  李明賢,et al.  ISO 9001: 2015「組織情境」導入的因應對策之個案研究 , 2017 .

[6]  Xavier Franch,et al.  How do software architects consider non-functional requirements: An exploratory study , 2012, 2012 20th IEEE International Requirements Engineering Conference (RE).

[7]  Pekka Abrahamsson,et al.  Exploring the Sources of Waste in Kanban Software Development Projects , 2010, 2010 36th EUROMICRO Conference on Software Engineering and Advanced Applications.

[8]  Maria Haigh,et al.  Software quality, non-functional software requirements and IT-business alignment , 2010, Software Quality Journal.

[9]  Michael Felderer,et al.  Preventing Incomplete/Hidden Requirements: Reflections on Survey Data from Austria and Brazil , 2016, SWQD.

[10]  Michael Felderer,et al.  Agile Requirements Engineering in Practice: Status Quo and Critical Problems , 2018, CLEI Electron. J..

[11]  Roel Wieringa,et al.  Naming the pain in requirements engineering , 2016, Empirical Software Engineering.

[12]  Andreas Borg,et al.  The Bad Conscience of Requirements Engineering : An Investigation in Real-World Treatment of Non-Functional Requirements , 2003 .

[13]  Carolyn B. Seaman,et al.  Measuring and Monitoring Technical Debt , 2011, Adv. Comput..

[14]  Julio Cesar Sampaio do Prado Leite,et al.  On Non-Functional Requirements in Software Engineering , 2009, Conceptual Modeling: Foundations and Applications.

[15]  Christoph J. Stettina,et al.  Necessary and neglected?: an empirical study of internal documentation in agile software development teams , 2011, SIGDOC '11.

[16]  Andreas Vogelsang,et al.  Are "Non-functional" Requirements really Non-functional? An Investigation of Non-functional Requirements in Practice , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[17]  Neil A. Ernst On the role of requirements in understanding and managing technical debt , 2012, 2012 Third International Workshop on Managing Technical Debt (MTD).

[18]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2000, The Kluwer International Series in Software Engineering.

[19]  Standard Glossary of Software Engineering Terminology , 1990 .

[20]  Michael Felderer,et al.  Requirements Engineering Practice and Problems in Agile Projects: Results from an International Survey , 2016, WER.

[21]  Björn Regnell,et al.  An Empirical Study on the Importance of Quality Requirements in Industry , 2011, SEKE.

[22]  Mordechai Ben-Menachem,et al.  Review of "CMMI: guidelines for process integration and product improvement by Mary Beth Chrissis, Mike Konrad and Sandy Shrum." Addison Wesley 2003 , 2004, SOEN.

[23]  Inge van de Weerd,et al.  How Architects See Non-Functional Requirements: Beware of Modifiability , 2012, REFSQ.

[24]  Tayana Conte,et al.  Naming the Pain in Requirements Engineering: Comparing Practices in Brazil and Germany , 2015, IEEE Software.

[25]  James Noble,et al.  Becoming Agile: A Grounded Theory of Agile Transitions in Practice , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[26]  Daniel Méndez Fernández Supporting Requirements-Engineering Research That Industry Needs: The NaPiRE Initiative , 2017, IEEE Software.

[27]  Roel Wieringa,et al.  Status Quo in Requirements Engineering , 2018, ACM Trans. Softw. Eng. Methodol..

[28]  Jeff Sutherland,et al.  Manifesto for Agile Software Development , 2013 .

[29]  Mary Beth Chrissis,et al.  CMMI: Guidelines for Process Integration and Product Improvement , 2003 .

[30]  Oisín Cawley,et al.  "Leagile" software development: An experience report analysis of the application of lean approaches in agile software development , 2012, J. Syst. Softw..