Mind the Chasm: A FishEye Lens View of Sustainable Software Engineering in UK Higher Education Madeleine L. Gibson Colin C. Venters Leticia Duboc Stefanie Betz University of Huddersfield University of Huddersfield State Univ. of Rio de Janeiro Karlsruhe Insitute of Technology Huddersfield, UK Huddersfield, UK Rio de Janeiro, Brazil Karlsruhe, Germany U1364186@unimail.hud.ac.uk c.venters@hud.ac.uk leticia@ime.uerj.br stefanie.betz@kit.edu Ruzanna Chitchyan Maria Palacin-Silva Birgit Penzenstadler Norbert Seyff University of Leicester LUT CSU Long Beach FHNW and University of Zurich Leicester, UK Lappeenranta, Finland Long Beach, CA, USA Windisch, Switzerland rc256@leicester.ac.uk maria.palacin.silva@lut.fi birgit.penzenstadler@csulb.edu norbert.seyff@fhnw.ch Abstract—Requirements that express the needs of all stake- a paradigm shift in research towards large-scale computational holders and cover the key aspects of a software system (such science and engineering, and data intensive science [5], [6]. as those addressing sustainability) are critical to the system’s Software’s increasing importance in the field of research, has successful development and adoption. For practitioners who want to develop sustainable software-intensive systems, it is also argued led for calls for it to be classified as a first-class, experimental that software requirements are the key leverage point. scientific instrument [7] based on the maxim, if your software But what do software developers know about broader sustain- is incorrect, so will your science [8]. However, it is suggested ability and sustainability requirements in particular? As part of that in terms of structure, content, and functionality, software the University of Huddersfield’s ’Student as a Researcher’ initia- systems are the most complex artifacts ever created [9]. As tive1 , this paper provides a FishEye2 Lens View on how novice software developers who design and develop software systems at such, software designers are responsible for the long-term software companies relate to the notions of sustainability and consequences of their designs [10]. sustainability requirements. The study has found that although The vision of sustainable software engineering is based on sustainability is valued highly by the novice software developers, the idea of delivering software systems, which are designed the concept of sustainability and sustainability requirements are and developed in a way that the consideration of the different not fully understood. This lack of knowledge in the software industry and organizations must be addressed to enable delivery sustainability dimensions and orders of effects are reflected of truly sustainability enabling software systems. in the system. Although there is no clear definition of the Index Terms—Karlskrona manifesto, requirements engineer- term ’sustainability requirement’ [11], the bespoke reflection ing, software engineering, software requirements, sustainability, and discussion is often based on requirements that align sustainability design, sustainability requirements, sustainable with specific dimensions of sustainability. This highlights the software importance of requirements engineering as a central aspect of sustainable software engineering. Moreover, it is argued I. I NTRODUCTION that requirements are the key to sustainability, as it is during Post-industrial societies are highly dependent on complex the requirement engineering phase when the foundations of a software systems that underlie almost every aspect of daily systems are laid [12]. living from communication, entertainment, energy, commerce, The goal of the work presented in this paper is to better transportation, finance, governance, health care, as well as understand the perception of sustainable software engineer- defense and security [2], [3], [4]. In addition, software also ing among UK students enrolled on computing degree pro- now plays a critical role in the advancement of knowledge with grammes and young software developers in industry, which we will collectively refer to as novice software engineers 1 Student as a Researcher is ’a pedagogic approach to supporting students in in the reminder of this paper. More specifically, the paper their engagement with undergraduate research within and/or beyond the formal curriculum with the aim of furthering their own knowledge and understanding, aims to find out what these novice developers think about and in some cases contributing to, the broader knowledge base of their sustainability requirements and what they may know about discipline. The term is used to describe a pedagogic approach, rather than it. The remainder of this paper is structured as follows: In the students themselves’ [1]. 2 A Fisheye lens is a special type of lens that shows a distorted view of the section II, we describe relevant background research, while world. section III gives an overview of the methodology used for Copyright © 2017 for the individual papers by the papers' authors. Copying permitted for private and academic purposes. This volume is published and copyrighted by its editors. the study. In section IV, we present the results of this work, There exist interdependencies between these dimensions with several relevant issues discussed in section IV. The paper including trade-offs and synergies. Moreover, the impact on concludes in Section V, with recommendations for next steps sustainability in these five dimensions manifests in three toward a more comprehensive and consistent perspective on different orders of effect [12], [19], defined as follows: sustainability requirements and their relationship to the field of • First order effects appear when software systems are built software engineering, and the role of education in facilitating and used for their primary purpose, e.g. the work time a programme of sustainable software engineering. used for implementation of Youtube; • Second order effects appear when the use of the system II. BACKGROUND over some time induces new types of behavior or expec- A. Sustainability and Software tations for the previous system, e.g. the energy waste due to letting Youtube videos play in the background, while Derived from the Latin word sustinere, the Oxford English only listening to the music; Dictionary [13] defines sustainability as ‘the quality of being • Finally, third order effects appear due to a large-scale, sustained’, where sustained can be defined as ‘capable of be- longer term use of the system, e.g. as most people use ing endured’ and ‘capable of being maintained’. This suggests YouTube for music, professional music record producers that longevity and the ability to maintain are key factors at the and sellers gradually disappear as domain actors (which is heart of understanding sustainability. As a part of the concept a clear detrimental effect on the economic sustainability of sustainable development, the Brundtland commission [14], of these businesses), making self-production and free defined the term as ‘meeting the needs of the present without availability of music on Youtube a new social norm compromising the ability of future generations to meet their (which democratises the music market for the musicians, own needs’. The word ‘need’ is central to this definition and and increases the variety of available music for con- includes a dimension of ‘time’, present and future. sumers, positively affecting individual and social sustain- In the last decade the concept of sustainability has emerged ability). as a topic of interest in a range of different areas in the field of computing including software engineering (SE) [15] and While there have been a number of contributions to formal- requirements engineering (RE) [11]. In relation to software and ize a definition of software sustainability [20], [15], [16], [18], software systems, there are primarily two distinct viewpoints [21], consensus on what sustainability means in the field of that make up the topic area around software and sustainability: software and requirements engineering is still emerging [22], sustainable software and software engineering for sustainabil- [23]. The term is increasingly described in the literature as a ity (SE4S), where the former is concerned with the principles, first-class, non-functional requirement or software quality [24], practices, and process that contribute to software endurance i.e. [25], [11]. However, research is required to confirm or refute technical sustainability [16], and the latter focuses on software this position. systems to support one or more dimensions of sustainability, Furthermore, Ramsey [26] argues that the fundamental concerning issues outside the software systems itself [17]. problem with definitions of sustainability is the definitional The Karlskrona Manifesto [10] recognizes both viewpoints approach itself and not just with any particular definition. on sustainability as an emerging concern of central relevance It is suggested that definitions do not lead to clarity about and suggests to view sustainability as a construct across the the meaning of sustainability because the meaning of the five dimensions of sustainability: environmental, economic, component terms, as well as the meaning of the general individual, social and technical [12], [18]. These dimensions concept, presupposes the existence of a set of social structures are defined as follows: within which the activity of defining makes sense. As such, any attempt to impose interpretations without recognizing the • The economic dimension refers to assets, capital, and necessity and importance of those structures are doomed to added value including for example profitability and cap- failure. ital investment, etc; • The environmental dimension refers to the long term As a result, the concept of sustainability requires context effects of human activities on natural ecosystems and (such as that proposed by Tainter [27]), [social] structure resources; [26], and the simultaneous consideration of several interrelated • The individual dimension refers to the individual well- dimensions of sustainability [12]. In addition, rather than being including for example freedom, self-respect, edu- seeking broad conformity of definitions, the aim should be cation etc; to clarify how the terms are used by different communities in • The social dimension refers to the interaction between order to have a shared understanding [28]. individuals and the societal constructs based on this in- B. Sustainability Studies in Software Engineering teraction and constituting a society including for example trust, communication, employment, democracy, etc; A number of recent studies have been conducted to under- • The technical dimension refers to the concepts of stand how sustainability is perceived in the practice of software longevity of man-made systems, and infrastructure and engineering and how sustainability can become an inherent their adequate evolution. part of software engineering practice. Chitchyan et. al., [29] explored requirements engineering through analysis of 11 case studies. The overall results suggest practitioners’ perceptions and attitudes towards sustainability that technical and economic sustainability are the primary through interviews. The results revealed that software practi- focus in current SPLE practice, with social sustainability tioners tend to have a narrow understanding of the concept issues, where they relate to organisations, also addressed. of sustainability with a focus on environmental and economic However, environmental and individual sustainability concerns sustainability. Their organizations also showed limited aware- were less prominent. ness of the potential opportunities and benefits for engineering Overall, these studies suggest that practitioners have a sustainability in or through software. Notably, several inter- narrow perception of sustainability and that sustainability is viewees explicitly considered sustainability as a separate field not a major concern in their current projects. However, more from that of software engineering. elaborate concepts and a more stable theoretical background Manotas et. al., [30] investigated what software practitioners regarding the body of knowledge about sustainable software from ABB, Google, IBM, and Microsoft thought about energy engineering is emerging, which might also influence the usage in relation to requirements, design, construction, testing, perception of suitability in software engineering education. and maintenance of their software. Their results suggest that Therefore, we could expect to see a higher degree of awareness software engineering practitioners are concerned about energy regarding sustainability issue when it comes to undergraduate when they build applications; however, it was suggested that and graduate students, but there is no related work exploring they are not as successful as they could be because they this issue. The research presented in this paper contributes to lack the necessary information and support infrastructure. In filling this void. addition, the results also highlighted that energy-usage is often stated in terms other than energy usage being more often C. Emergence of Sustainability Requirements desires rather than specific targets, which focus on idle time As the concept of sustainability has started to be discussed and are difficult to specify directly. in software engineering, so has the concept of sustainability Kasurinen, Palacin-Silva and Vanhala [31] investigated the requirements. Becker et. al., [12] argue that the critical role views of professional game developers on sustainability and that software plays in society demands a paradigm shift in Green IT. The results of their study highlighted that Game the mindset of software engineering and that the focus of development organizations are not likely to consider eco- this shift begins in requirements engineering. A number of impact factors such as code reusability, energy-efficient pro- approaches have been proposed for sustainability requirements graming, social awareness impact, reuse or repurposing old elicitation [34], [35], codification [36], modeling [37], [38], hardware components or marketing materials or support to and management [18]. For example Penzenstadler and Femmer legacy systems in their daily work. If anything at all, code [18] proposed a goal modelling based approach to capture reusability was the most regarded factor due to efficiency rea- sustainability requirements using a generic reference model. sons. This suggests that the game developers do not recognize Betz [39] presents a business process based view to modelling what sustainability means in their industry. Their organiza- sustainability requirements. While Makropoulos [40] analyses tions, as a whole, do not practice sustainability-conducive the specific case of sustainable urban water management, activities either. The authors attributed this to the lack of proposing a general model of sustainability that needs to be a common definition of sustainability in the field as a way contextualized to assess sustainability. As far as we can ascer- of understanding what constituted eco-impact factors; a view tain, there exists no formal definition of the term sustainability supported by Penzenstadler [18]. In addition, it was also requirement. In most instances, a sustainability requirement is suggested that a sustainability body of knowledge for software defined in terms of a non-functional requirement or software engineering could provide specific guidance with regards to quality and aligned with one or more of the dimensions of addressing sustainability aspects from a software development sustainability [37], [34], [36], [41] based on characteristics perspective. defined in ISO/IEC 25010 [42]: functional suitability, reliabil- Groher and Weinreich [32] investigated how sustainability ity, performance, efficiency, usability, security, compatibility, is perceived by software engineering professionals in order maintainability, and portability. Roher and Richardson [35] to understand how sustainability is currently dealt with in defined a sustainability requirements as ‘requirements that may software development projects in practice. The results of the be used to specify system behavior (e.g. requirements that will study revealed that practitioners primarily relate sustainability reduce a system’s energy consumption) as well as to influence to technical sustainability with a strong focus on maintain- the users’ behavior (e.g. the system incentivizes sustainable ability and extensibility of the software systems. Economic actions)’. In contrast, Huber, Hilty, and Glinz [43] in their sustainability was an indirect consideration related to influ- investigation into the requirements of a decision support encing factors such as the market and customers. In contrast system (DSS) suggested that a sustainability requirement is a to Chitchyan et. al., [29], environmental sustainability was not ‘requirement for a sustainable software system which concerns mentioned at all by the study participants. sustainability’. They argue that sustainability requirements Chitchyan, Groher and Noppen [33] investigated what sus- cannot simply be reduced to quality aspects and should be tainability means to the field of software engineering within related to positive effects suggesting that when positive en- the context of Software Product Line Engineering (SPLE) abling effects are taken into consideration the requirements for a software system change under the lens of sustainable • Former students were required to hold a Bachelors of development. While the latter definition is overly simplistic it Science (BSc.) or Masters (MEng, MSc.) degree in one implicitly suggests that requirements can be viewed through a of the above listed areas; multi-perspective lens of sustainability. The former definition • Employed in the software industry for a minimum of six essentially points towards a subset of functional requirements months; and towards user influence. As a result, neither definition • Worked or are currently working in the software industry provides any insight into how sustainability requirements as part of their industrial placement year3 ; differ from existing taxonomic classifications of requirements • Elicited software requirements as part of their respective [44], [45]. However, Venters et. al. [11] revealed that the projects. term sustainability requirement is used ambiguously and con- The study included eight participants of which, seven par- tains significant variations across the different application and ticipants were male and one was female. Four are currently scientific discipline domains. Their study suggests, that the working in the software industry as part of their industrial dimensions of sustainability and its time effects could help to placement year. Three were former students currently em- see which requirements pertain to sustainability of the software ployed in the software industry. One was enrolled on the system and its wider impact. MEng. degree programme in Software Engineering. Their age III. M ETHODOLOGY range was between 20-29 years and they were associated with one of the following institutions: The principal aim of this study is to explore the knowledge 4 • LNT Software : a small to medium sized Enterprise of novice software developers with respect to sustainability, (SME) software production company dedicated to the de- sustainability requirements, and their relationship to software sign and development of a range of management software engineering principles and practices. Its objective is two- systems used in care homes across the UK; folded: to learn about the perspectives and ideas of novice • School of Computing and Engineering, University of software developers in relation to sustainability and sustain- Huddersfield5 : a public university located in Hudders- ability requirements, and to highlight whether sustainability is field, West Yorkshire, UK; taught within the software engineering education. Therefore, 6 • Canalside Studios Game Design : an independent game the study considered the following research questions: studio, within the School of Computing and Engineering RQ1 What are the opinions and expectations of novice at the University of Huddersfield. software developers on sustainability and sustainabil- 3) Data Collection: The data collection was undertaken ity requirements? through in-person, semi-structured interview, which lasted RQ2 What do novice software developers know about approximately thirty minutes and covered four key areas: sustainability (within software engineering) when 1) Personal background, including demographics, software developing software systems? industry experience, and education level; 2) Sustainability, including their understanding of the term A. Study Design and concrete actions towards sustainability in both pri- A qualitative research approach was chosen to answer the vate and professional lives; above research questions using semi-structured interviews, 3) Software engineering principles and practices, normally which included open and closed questions to elicit the data. applied in their work and their potential to contemplate This approach allows the classification of the data into con- sustainability; cepts and themes in order to explain a particular phenomena 4) Sustainability requirements, covering their understand- and to gain a deeper understanding of the underlying reasons, ing of functional and non-functional requirements, as opinions, and motivations [46], [47]. well as sustainability requirements. 1) Planning: At the planning stage, the interview questions 4) Data Analysis: The qualitative content analysis method were designed collaboratively by all authors. The study was [48] was used to extract views and perceptions on sustain- piloted with one interviewee to validate the clarity of questions ability, sustainability requirements, and software engineering and the interview structure resulting in no major changes. principles and practice from these interview transcripts. The 2) Interviewees: The subjects were selected from current interviews were fully transcribed and analyzed using Saturate and former students from the School of Computing and En- [49]; a qualitative data analysis tool. A codebook was created gineering at the University of Huddersfield, using the contact by the first two authors of the paper in order for the data to be network of the first two authors of this paper. The criteria for classified and trends observed. The initial set of codes were selection was as follows: 3 All undergraduate programs in the School of Computing and Engineering • Current students were required to be enrolled on a Bach- at the University of Huddersfield include an optional year in industry: elors of Science (BSc.) or Masters (MEng, MSc.) degree https://www.hud.ac.uk/ce/placements/ 4 LNT Software: www.lntsoftware.com programme in Computing, Computer Science, Games 5 School of Computing and Engineering, University of Huddersfield: Design, Game Programming, Information Systems or https://www.hud.ac.uk/ce/ Software Engineering; 6 Canalside Studios Game Design: http://www.canalsidestudios.com created by the first coder and was updated with each following terms in relation to sustainability generally had a good un- coding activity. The initial codebook, as well as the updates, derstanding of the environmental, economic and technical were discussed and agreed upon by all co-authors of this paper. dimensions of sustainability but lacked any real understanding The first two authors read each of the interviews and coded with regard to the individual and social dimensions; these were the text with conceptual categories relevant to sustainability unheard of by seven of the participants. The other participant perceptions, as well as peer-reviewed each other’s work. The stated that they had not considered sustainability in relation interview guide and the codebook are available at [50]. to the five dimensions. This is in itself surprising especially with regards to the prominence of environmental sustainability B. Limitations of the Study in post-industrial societies particularly around recycling and As is normally the case with qualitative research, the results energy conservation. cannot be generalized to the wider population of software Four interviewees (Scott, Claire, Steven and Thomas) stated developers. This is both due to the limitations of the approach that they had considered environmental sustainability, citing is- and the limited number of subjects [51]. In addition, this study sues related to the impact of the environment including global focused solely on novice software developers, as a means to warming, deforestation, resource depletion and farming, as also evaluate the coverage of sustainability within software well as ways to mitigate that impact in terms of moving engineering education. As a result, participants may not have towards renewable energy sources such as wind and tidal, had enough industry experience to provide valuable insights and recycling. However, Steven also highlighted that envi- into sustainability with software engineering and sustainability ronmental sustainability “doesn’t need to be natural, it could requirements. Furthermore, the fact that all participants at- be artificial such as this office space” emphasizing that the tended the same university, also limits the conclusions to that environments we work in also need to consider sustainability. particular institution. However, the results corroborate with the In addition, Thomas related environmental sustainability to findings from other similar studies [29], [31], [32]. hardware and server capacity stating that “if the servers went down, the software’s environment must also be sustainable”, IV. S TUDY F INDINGS indirectly acknowledging the relevance of the wider notion of the systems dependability for sustainability. The main findings of this qualitative study fall into three Four interviewees (Steven, Thomas, Ryan, James) also categories, which are discussed in the following sections. Each stated that they had considered economical sustainability, three of the individual interviewees is referenced by a fictitious name of whom referred to it as ensuring business value, capital to ensure anonymity. growth and investment, and financial operations. For example, James suggested that in terms of economic sustainability “I A. Sustainability Findings don’t think they’ve made as much money as they have put into The first set of questions were intended to uncover the par- this [Canalside Studios], so really, they are paying for the ticipants’ understanding of and commitment to sustainability. students to get experience really”. What is your understanding of the concept of Sustainabil- Finally, four interviewees (Steven, Claire, Mark and Ryan) ity? All interviewees related sustainability to the concept of stated that they had considered technical sustainability, which endurance over time. For example, Scott stated that sustain- covered both the software and hardware aspects of software ability is “something that can be sustained effectively over a systems. Steven stated that technical sustainability was “re- long or short period of time”. In addition, two interviewees lated to the ability to build a software product that is built suggested that sustainability could also be related to tech- in a way so that it does not die”. Similarly, Claire and Mark nical aspect of sustainability including software metrics and highlighted the importance of maintainability and extendability hardware. Thomas stated that sustainability was also related of the software systems. Claire emphasized the importance of to the “metrics used to quantify how sustainable a piece of “the ability to maintain and evolve software systems over a software is” both through the “development phase and after prolonged period of time”. Mark explained that “I program in its hand-off to a client”. Jamie suggested that sustainability a way that’s easily maintainable for people other than myself, was related to the longevity of resources stating that there I make short methods that are recognizable so we minimize are issues with “hardware sustainability” particularly with the amount of lines we use”. Ryan suggested that technical advances in hardware driving the game industry. Ryan said that sustainability was related to effectively utilizing resources, the concept should be considered in relation to the environment explaining that “technical sustainability is not using more in a more direct manner, stating that sustainability is also resources than you have, such as computer power or man related to “using less or an equal amount of resources that power”. are being produced at the same time”. What do you do for sustainability in your daily private Have you ever considered the following sustainability life? The most common answers amongst participants were dimensions: Environmental, Economic, Individual, Social related to [environmental] sustainability. Ben, Jamie, Scott, or Technical? When asked whether they had ever considered Claire, Steven and Thomas articulated tasks such as switching sustainability in relation to the five sustainability dimensions, lights off, saving energy, and recycling. However, Ben, Jamie those participants who understood the differentiation of the and Scott also emphasized the importance of saving and investment in relation to ensure economic stability thereby DRY11 , KISS12 , and best software engineering practice. linking activities related to economic resource usage to [eco- What are the software engineering principles you apply nomic] sustainability. However, Mark stated, “I don’t think I that are related to sustainability in software systems? Similar do sustainable, I rarely recycle or take consideration of the to the responses to the previous question on software engi- environment”. neering principles, the most common answer was related to What do you do for sustainability in daily work life? improving the overall readability of the code through a variety In contrast to how participants viewed sustainability in their of best practice activities i.e. code structure, use of comments private life, there was a strong emphasis by seven participants etc. However, Mark and Ryan emphasized that this was pri- on [technical] sustainability specifically related to code main- marily to achieve the “maintainability” of the code base. Mark tainability and evolution associated with actions to ensure code explained that “I code in a maintainable way. I always code readability, code efficiency, coding standards, as well as the so if I wasn’t here or available, other people would continue importance of refactoring legacy code and code reusability. from me easy, without causing [memory] leaks”. This suggests Mark highlighted the issues related to unsustainable practice that participants consider that maintainability is a core activity stating that “the current project I am recoding is full of in ensuring that the code is [technically] sustainable. However, memory leaks because it wasn’t coded well”. Ryan stated three participants (Claire, Ben and Steven) could not suggest that “the team make sure the code is sustainable so others any software engineering principles specifically related to can read it later on, change it and understand it”, which sustainability. suggested that this was an important task for the entire team. What software engineering practices do you consider This was a view shared by the majority of participants. Claire when building software systems? With regard to software also highlighted the importance of the role of project man- engineering practices, the most common answer was related to agement in underpinning the process. Notably, the activities software development process with four participants (Steven, related to environmental sustainability previously mentioned Claire, Thomas and Scott) stating that they employed SCRUM for the context of private life (e.g., switching lights off, saving and Agile development processes’ and practice. Claire stated energy, and recycling) did not explicitly cross over into the that everything starts off with “an ‘amigo’ meeting in which a interviewees’ daily working practice. small team discusses the software systems features, with tasks B. Software Engineering Principles and Practice be delegated into sprints”. Steven added that in addition to the core SCRUM approach, they regularly employ techniques The second set of questions investigated the subjects’ such as prototyping, code reviews, pair programming, and knowledge with respect to software engineering principles and automated testing and deployment. The majority of responses practices. here are related to software engineering process. What are the main software engineering principles you consider when working on a project? What software engineering practices do you consider when building software systems? With respect to software engineering principles, the most common answer was related to improving “code readbility” When asked to relate sustainability with software engineer- including coding style, formatting, naming, comments, coding ing practices, half of the participants (James, Scott, Mark, conventions, and documentation. James emphasized that it Steven) fell back to the concepts of efficiency and maintain- was critical that “others within the team must be able to ability. The remaining four participants (Ben, Ryan, Claire, understand the code with minimal explanation”. In addition, Thomas) could not relate any of their current software en- Thomas also mentioned the need to have comprehensive gineering practice to sustainability. Thomas stated, “I really testing and utilise requirements traceability. The most in- don’t know if I contemplate sustainability at all when consid- depth answer was given by Steven, who referred to the ability ering practice”. to “adapt to change” and the ”agile principles”. He also As a general observation of the interview, even though all claimed that “everything I apply within the project is to participants studied computing related subjects at a UK insti- ensure sustainability, everything is considered for the long- tution of Higher Education with a common core of software term effects of the software”. Two participants (Ben, Claire) engineering courses, the majority of the them struggled to were unsure of what software engineering principles were. answer the questions related to the basic concepts of software Ben stated that “as a Game Designer, I have never really engineering principles and practices, suggesting that these considered software engineering principles”. However, the were not well understood by our volunteers. For instance, there responses highlight a general misperception between software is a general lack of clarity on the difference between software engineering principles7 such as GRASP8 , SOLID9 , YAGNI10 , engineering principles and practice, suggesting that this dif- ferentiation may not have been covered in the Huddersfield’s 7 principle, (n). a primary assumption forming the basis of a chain of curriculum. reasoning [13] 8 GRASP: General Responsibility Assignment Software Patterns 9 SOLID: Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion 11 DRY: Don’t Repeat Yourself 10 YAGNI: You Ain’t Gonna Need It! [52] 12 KISS: Keep It Simple, Stupid! C. Sustainability Requirements that is sustainable, rather than having requirements that just meets functionality demands”. One interviewee was unable to The last set of questions referred to the participants’ give an answer. understanding and ideas about requirements in general and Elicitation, modelling, and evaluation of “sustainability sustainability requirements in particular. requirements”. The last three questions of the interview What is your understanding of the term Functional focused on elicitation, modelling and the evaluation of sus- Requirement (FR)? Surprisingly, participants’ formal under- tainability requirements13 . standing of the term functional requirement deviated signif- However, while the questions generated a small amount icantly from how it is generally understood within the field of discussion, participants either lacked confidence or were of software and requirements engineering, defined in standard unable to answer these questions with the majority opting for software engineering textbooks [53] or SWEBOK [54]. Four a fall back position of “I don’t think I could give you an participants (Ryan, Scott, Claire, Steven) gave reasonable answer to that”. Five participants (Ryan, Jamie, Scott, Mark, definitions or examples of a functional requirement, such as Steven and Thomas) were unsure how to formally analyze “it is what the users of the product need to be able to achieve requirements per se, which may in some instance be related [...] ultimately the users have some action that they need to to their working environment where “the specifications and achieve [...] I guess it could be related to the controls of the requirements are already drawn up for us” suggesting that game. [...] a feature you expect to do something”. However, this task is the responsibility of another team member. Most four participants (Ben, James, Mark, Thomas) had no or telling was that the majority of the participants were unable an incorrect understanding of the term. For example, Mark to relate any existing software and requirements engineering stated, “no idea, I’d just assume it’s coding in a clean and practice to the elicitation, modelling or the evaluation of sus- clear way and following common practices”. These results are tainability requirements. However, with regards to modelling unexpected, as all participants work in the software industry. a sustainability requirement, Thomas suggested , “I would What is your understanding of the term Non- Functional use basic UML modelling so I could visualize the problem Requirement (NFR)? or requirement...I don’t really have any examples”. Claire Similarly, participants’ understanding of the term non- suggested employing “user stories then breaking that down functional requirement also deviated significantly from the into scenarios”; she believed that the method as a whole could common view in the software/requirements engineering com- be used to enable sustainability within software development. munities. Three participants (James, Scott, Steven) suggested that non-functional requirements were related to “perfor- V. D ISCUSSION mance” or “reliability”. However, four participants (Ryan, A. Sustainability Ben, Mark, Thomas, Claire) had no or an incorrect interpre- All interviewees had a very broad understanding of sus- tation of this term. Ben described it as “something that is tainability, which was not limited to an environmental or not compulsory, such as something that the project doesn’t technical perspective. Only when prompted on the dimensions, need to succeed, but something the user wants”, ignoring that the interviewees related specific aspects, and, unsurprisingly, fact that software is unlikely to be successfully used if non- they could relate better to the environmental, economic, and functional requirements are overlooked. Again, these results technical dimensions than to the individual and social ones. are somewhat surprising given respondents’ previous work in Emphasis on action for sustainability in their private lives cen- the software industry. tered around the environmental dimension, including activities What is your understanding of the term “sustainability like saving energy and recycling. In their work lives, it was requirements”? When asked about “sustainability require- focused strongly on technical sustainability, especially in terms ments”, interviewees gave answers which were consistent of maintainability, coding practices and team management. with their understanding of sustainability. Four participants These findings confirm the results reported for experienced (Mark, Scott, James, Ben) considered the notions of ”time”, software [32] and requirements [29] engineering practitioners, ”longevity” or ”maintenance”. For example, Mark suggested and professional game developers [31]. Even though we cannot that it is related to “making a system that will keep going [yet] draw wider conclusions on the generalisability of the over a long period of time [...], followed by examples of results, this may serve as indicator that we need to better coding standards (e.g. classes with less than 1000 lines, infuse the different dimensions of sustainability into software methods limited to 20 lines and a maximum of five variables engineering education, and specifically give examples for the within a method). Ryan suggested a relationship with reuse individual and social dimensions [55]. when describing a sustainability requirement: “someone could 13 The questions are: review my code and easily reword/restructure it as well as • How would you elicit a sustainability requirement? Could you utilise read it and understand it easily”. In general, explanations any existing techniques? lacked precision and showed confusion over the concept. For • How would you model a sustainability requirement? Could you utilise example, James suggested that a sustainability requirement is any existing techniques? • How would you test or evaluate a sustainability requirement? Could “a requirement that is sustainable over a prolonged period”. you utilise any existing metrics and measures? Thomas said that it was about “having a piece of software B. Sustainability Requirements This shows that there is a lack of coverage of sustainability The interviewees in this study sample appear to have no in software engineering education, although there exist several considered opinion on or grounded knowledge of sustainability examples that propose principles and practices for including in software engineering in general and sustainability require- and explicitly addressing sustainability in SE; some of this ments in particular. Though, when pressed for an answer, they work is described in the background section of this paper. For relate the notion of sustainability requirements to software example, the principles for sustainabiltiy design are explicitly maintainability and longevity, which is consistent with findings listed in the Karlskrona Manifesto [10], and many practices from [29]. Moreover, our interviewees were not clear about are proposed by Naumann et. al. [15], Mahaux [59], Penzen- the notions of functional and non-functional requirements stadler [60], Betz [39], Chitchyan et. al., [58]. This is even either. While the missing knowledge on sustainability could more evident as the study has been conducted with recently be attributed to lack of this topic’s coverage in Software graduated students. Engineering Curriculum, we are certain that the notion of Overall, this leads to the question as to what education functional and non-functional requirements is presented to the about sustainable software engineering should look like and students within several modules throughout their SE studies. how to integrate sustainability principles and practice into Yet, as per this study, this knowledge has not been retained, it? Should there be a dedicated teaching module for this, or suggesting that it has not been applied in common practice. should the topic be spread across the regular SE modules? Furthermore, the SE community is well aware that non- One way of integrating sustainability education into the SE functional requirements (such as maintainability, extendabil- curriculum is through infusing the sustainability considerations ity, usability, security, etc.) are often the key factors in the into SE courses as an overall aspect of long-term (strategic) software systems’ success or failure. Yet, our interviewees development, which prevents accumulation of sustainability lack proper understanding of these. One explanation of this debt (including technical debt, social and personal dissatisfac- contradiction may lie in the “early career” stage of our tion, economic losses, and environmental costs) [39]. Indeed, sample. As novice developers, they are likely to be focused sustainability is an ever present concern in SE, even if not on the specific functionality implementation allocated to them, always explicitly acknowledged [10]. while senior colleagues, such as team leads, or software VI. C ONCLUSIONS AND O UTLOOK architects handle the concerns of non-functional (including sustainability-related) requirements. This view is supported by This paper reported results of an interview study on the prior work (e.g., [56]) where senior engineers demonstrate key knowledge of novice software developers with respect to engagement with NFRs. sustainability, sustainability requirements, and the relationship Consideration of the concept of a sustainability require- of these concepts to software engineering principles and prac- ments did not lead our interviewees to relate it to their tices. practice (e.g., one even interpreting environmental dimension Our findings highlight that sustainability is generally un- of sustainability as having to do with the weather). While dis- derstood in its broadest sense i.e. ‘capable of being endured’ appointing, this result is not entirely unexpected, as the notion but it also often encompasses environmental, economic, and of sustainability is so very broad that, at first encounter, it technical dimensions. However, we also observe a gap in seems not connected to a specific task. Moreover, requirements understanding the notions of social and individual sustainabil- that directly relate to sustainability are not perceived as such, ity, which is corroborated by the findings from other similar as they are traditionally treated under segregated headings studies [33], [32], [31]. (e.g., accessibility and usability directly relate to the individ- The results also suggest that while sustainability is not a ual sustainability dimension; maintainability to the technical primary or overarching focus of our interview participants’ and economic dimension, etc.). To address this challenge, cohort, the concept of sustainability is valued highly by related research on collecting domain-specific sustainability these novice software developers, with a strong emphasis requirements has recently been initiated [57], as well as an on attaining technical sustainability through maintainability effort to illustrate sustainability relevance to software process related activities. In this context, the drive towards achieving and products with examples [12], [58]. A collection of such maintainability aligns with ‘the ease with which a software practical examples could serve as a good educational resource system or component can be modified to correct faults, im- for the novice practitioners, such as our interviewees. prove performance or other attributes, or adapt to a changed environment’ [54]. As such, it is important to recognize that C. Software Engineering: Principles and Practice sustainability is an explicit consideration even if the primary From our interviews we observe, that none of the partici- focus of the system under design is not sustainability; a view pants considered principles specifically dedicated to sustain- supported by the Karlskrona Manifesto [10]. ability. Some participants have their own sets of practices In addition, the results highlight a deficit in the knowl- that pertain to system longevity and maintainability, and also edge of basic software engineering theory and practice as used agile methods (like code reviews and pair programming). it is generally understood by the software and requirements However, four out of eight interviewees, were not able to engineering community as a whole, as well as a misalignment relate any software engineering practice with sustainability. with existing software engineering principles and practice in relation to sustainability. While these results by themselves [8] Z. Merali, “Computational science: Error, why scientific programming provide a Fisheye view lens of software engineering and does not compute,” Nature, vol. 467, no. 7317, pp. 775–777, 2010. [9] M. M. Lehman, “Software’s future: Managing evolution,” IEEE soft- sustainability, it raises serious questions regarding whether ware, vol. 15, no. 1, pp. 40–44, 1998. software engineering education at this particular institution [10] C. Becker, R. Chitchyan, L. Duboc, S. Easterbrook, B. Penzenstadler, is fit for purpose or whether it is symptomatic of a larger N. Seyff, and C. C. Venters, “Sustainability design and software: The karlskrona manifesto,” in Proceedings of the 37th International problem in the software engineering curriculum. To address Conference on Software Engineering - Volume 2, ser. ICSE-SEIS ’15, this question, we require further research and evidence. May 2015, pp. 467–476. We note that the education sector as a whole has an [11] C. C. Venters, N. Seyff, C. Becker, S. Betz, R. Chitchyan, L. Duboc, D. McIntyre, and B. Penzenstadler, “Characterising sustainability re- important role to play in ensuring that software designers of quirements: A new species, red herring, or just an odd fish?” in Pro- the future fully understand the concept of sustainability and ceedings of the 39th International Conference on Software Engineering: its integral relationship to the field of software engineering by Software Engineering in Society Track, ser. ICSE-SEIS ’17, 2017, pp. 3–12. bridging the chasm between software engineering and sustain- [12] C. Becker, S. Betz, R. Chitchyan, L. Duboc, S. M. Easterbrook, ability. Education presents a key avenue for improvement in B. Penzenstadler, N. Seyff, and C. C. Venters, “Requirements: The Key understanding sustainability. Educators need to consider how to Sustainability,” IEEE Software, vol. 33, no. 1, pp. 56–65, Jan-Feb to integrate sustainability into software engineering curricula 2016. [13] “Oxford English Dictionary Online, 2nd edition,” http://www.oed.com/, and articulate the competencies required for successful sus- July 2003. tainability design. In this context, there is a need to expand [14] G. H. Brundtland and UN World Commission on Environment and the pool of examples of how to include sustainability in Development, Our common future. Oxford University Press, 1987. [15] S. Naumann et al., “The greensoft model: A reference model for green software engineering curricula, particularly from the inter- and sustainable software and its engineering,” Sustainable Computing: national organizations that provide curricula guidelines. In Informatics and Systems, pp. 294–304, 2011. ACM/IEEE SWE Curricula, sustainability is mentioned only [16] H. Koziolek, “Sustainability evaluation of software architectures: a systematic review,” in ACM SIGSOFT Conf. QoSA and ISARCS. ACM, once. Similarly, in the SWEBOK curricula, sustainability is 2011, pp. 3–12. mentioned twice in the software economics area. [17] A. Molla, V. A. Cooper, and S. Pittayachawan, “It and eco-sustainability: This paper provides further evidence that we must consider Developing and validating a green it readiness model,” ICIS 2009 Proceedings, p. 141, 2009. the question of what would sustainable software engineering [18] B. Penzenstadler, “Towards a definition of sustainability in and for soft- education would look like? To further investigate the current ware engineering,” in Proceedings of the 28th Annual ACM Symposium situation with regards to software engineering education and on Applied Computing, ser. SAC ’13, 2013, pp. 1183–1185. sustainability, future work will extend this study by conducting [19] L. M. Hilty and B. Aebischer, “Ict for sustainability: An emerging research field,” in ICT Innovations for Sustainability. Springer, 2015, more studies in different organizations from different coun- pp. 3–36. tries. Based on the results of theses studies, we are planning [20] R. C. Seacord et al., “Measuring software sustainability,” in ICSM, Sept to work on curricula guidelines and recommendations. 2003, pp. 450–459. [21] C. Calero et al., “Quality in use and software greenability,” in Workshop ACKNOWLEDGEMENTS RE4SuSy, 2014. We would like to express our sincere thanks and gratitude [22] C. C. Venters, C. Jay, L. Lau, M. K. Griffiths, V. Holmes, R. Ward, J. Austin, C. E. Dibsdale, and J. Xu, “Software sustainability: The mod- to our friend and colleague Professor Christoph Becker14 , ern tower of babel,” in Proceedings of the Third International Workshop University of Toronto (Canada), for his significant contribu- on Requirements Engineering for Sustainable Systems (RE4SuSy 2014), tions and insights into the ongoing research agenda of the 2014. [23] C. Calero and M. Piattini, Green in software engineering. Springer, Karlskrona Consortium into sustainability design15 . We also 2015. gratefully acknowledge the eight participants who willingly [24] C. C. Venters, L. Lau, M. K. Griffiths, V. Holmes, R. R. Ward, C. Jay, gave up their time to participate in this study. C. E. Dibsdale, and J. Xu, “The blind men and the elephant: Towards an empirical evaluation framework for software sustainability,” Journal R EFERENCES of Open Research Software, vol. 2, no. 1, 2014. [25] B. Penzenstadler, A. Raturi, D. Richardson, and B. Tomlinson, “Safety, [1] H. Walkington, “Students as researchers: Supporting undergraduate Security, Now Sustainability: The Nonfunctional Requirement for the research in the disciplines in higher education,” 2015. 21st Century,” IEEE Software, vol. 31, no. 3, pp. 40–47, May 2014. [2] H. Pham, Software reliability. Wiley Online Library, 1999. [26] J. L. Ramsey, “On not defining sustainability,” Journal of Agricultural [3] F. P. Deek, J. A. M. McHugh, and O. M. Eljabiri, Strategic Software and Environmental Ethics, vol. 28, no. 6, pp. 1075–1087, 2015. Engineering: An Interdisciplinary Approach. Auerbach Publications, [27] J. A. Tainter, “Social complexity and sustainability,” Journal of Ecolog- 2005. ical Complexity, no. 3, pp. 91–103, 2006. [4] R. Kitchin and M. Dodge, Code/space: Software and everyday life. Mit [28] B. Knowles et al., “Exploring sustainability research in computing: Press, 2011. Where we are and where we go next,” in UbiComp. ACM, 2013, [5] A. Geist and R. Lucas, “Major computer science challenges at exascale,” pp. 305–314. Journal of High Performance Computing Applications, vol. 23, no. 4, [29] R. Chitchyan, C. Becker, S. Betz, L. Duboc, B. Penzenstadler, N. Seyff, pp. 427–436, 2009. and C. C. Venters, “Sustainability design in requirements engineering: [6] T. Hey, S. Tansley, K. M. Tolle et al., The fourth paradigm: data- State of practice,” in Proceedings of the 38th International Conference intensive scientific discovery. Microsoft research Redmond, 2009, on Software Engineering Companion, ser. ICSE-SEIS ’16, 2016, pp. vol. 1. 533–542. [7] C. Goble, “Better software, better research,” IEEE Internet Computing, [30] I. Manotas, C. Bird, R. Zhang, D. Shepherd, C. Jaspan, C. Sadowski, vol. 18, no. 5, pp. 4–8, Sept 2014. L. Pollock, and J. Clause, “An empirical study of practitioners’ per- spectives on green software engineering,” in Proceedings of the 38th 14 Christoph Becker: https://ischool.utoronto.ca/christoph-becker/ International Conference on Software Engineering, ser. ICSE ’16, 2016, 15 Sustainability Design: http://sustainabilitydesign.org/ pp. 237–248. [31] J. Kasurinen, M. Palacin-Silva, and E. Vanhala, “What concerns game [57] M. Al Hinai and R. Chitchyan, “Engineering requirements for social developers?: A study on game development processes, sustainability and sustainability,” ICT4S, 2016. metrics,” in Proceedings of the 8th Workshop on Emerging Trends in [58] R. Chitchyan, W. Cazzola, and A. Rashid, “Engineering sustainability Software Metrics, ser. WETSoM ’17, 2017, pp. 15–21. through language,” in Proceedings of the 37th International Conference [32] I. Groher and R. Weinreich, “An interview study on sustainability on Software Engineering - Volume 2, ser. ICSE ’15, vol. 2. IEEE, 2015, concerns in software development projects,” in Proceedings of the pp. 501–504. 43rd Euromicro Conference on Software Engineering and Advanced [59] M. Mahaux, P. Heymans, and G. Saval, “Discovering sustainability Applications, ser. SEAA ’17, 2017. requirements: an experience report,” in International Working Confer- [33] R. Chitchyan, I. Groher, and J. Noppen, “Uncovering sustainability ence on Requirements Engineering: Foundation for Software Quality. concerns in software product lines,” Journal of Software: Evolution and Springer, 2011, pp. 19–33. Process, vol. 29, no. 2, February 2017. [60] B. Penzenstadler, “Infusing green: Requirements engineering for green [34] M. Mahaux, P. Heymans, and G. Saval, “Discovering sustainability in and through software systems.” in RE4SuSy@ RE, 2014, pp. 44–53. requirements: an experience report,” in Intl. Working Conf. REFSQ, 2011, pp. 19–33. [35] K. Roher and D. Richardson, “A proposed recommender system for eliciting software sustainability requirements,” in Workshop USER, 2013, pp. 16–19. [36] ——, “Sustainability requirement patterns,” in Requirements Patterns (RePa), 2013 IEEE Third Intl Workshop on, 2013, pp. 8–11. [37] J. Cabot et al., “Integrating sustainability in decision-making processes: A modelling strategy,” in 31st ICSE. IEEE, 2009, pp. 207–210. [38] S. A. Kocak, “Green software development and design for environmental sustainability,” in 11th International Doctoral Symposium an Empirical Software Engineering (IDOESE 2013). Baltimore, Maryland, vol. 9, 2013. [39] S. Betz, “Sustainability aware process management using xmlnets,” in Proceeding of the 28th EnviroInfo Conference, 2014. [40] C. K. Makropoulos, K. Natsis, S. Liu, K. Mittas, and D. Butler, “Decision support for sustainable option selection in integrated urban water management,” Environ. Model. Softw., vol. 23, no. 12, pp. 1448– 1460, Dec. 2008. [41] S. A. Kocak, G. I. Alptekin, and A. B. Bener, “Integrating environmental sustainability in software product quality,” in RE4SuSy 2015: Require- ments Engineering for Sustainable Systems, vol. 1416. CEUR, 2015, pp. 17–24. [42] “ISO/IEC 25010:2011: Systems and software engineering. Systems and software quality requirements and evaluation (SQuaRE),” 2011. [43] M. Z. Huber, L. M. Hilty, and M. Glinz, “Uncovering sustainability requirements: An exploratory case study in canteens,” in RE4SuSy 2015: Requirements Engineering for Sustainable Systems, vol. 1416. CEUR, 2015, pp. 35–44. [44] M. Glinz, “Rethinking the notion of non-functional requirements,” in Third World Congress for Software Quality, Sep. 2005, pp. 55–64. [45] J. Eckhardt, A. Vogelsang, and D. M. Fernández, “Are ”non-functional” requirements really non-functional?: An investigation of non-functional requirements in practice,” in Proceedings of the 38th International Conference on Software Engineering, ser. ICSE ’16, 2016, pp. 832–842. [46] E. Fossey, C. Harvey, F. McDermott, and L. Davidson, “Understanding and evaluating qualitative research*,” Australian and New Zealand Journal of Psychiatry, vol. 36, no. 6, pp. 717–732, 2002. [47] J. W. Creswell, Qualitative inquiry & research design: choosing among five approaches, 3rd ed. SAGE, 2013. [48] P. Mayring, “Qualitative Content Analysis,” in Forum Qualitative Sozial- forschung/Forum: Qualitative Social Research, vol. 1, no. 2, 2000. [49] Simple Collaborative Qualitative Analysis. [Online]. Available: http: //www.saturateapp.com [50] “Fisheye lens view: Interview guide & codebook,” http://tinyurl.com/ h8dz4s3. [51] P. A. Ochieng, “An analysis of the strengths and limitation of qualitative and quantitative research paradigms,” Problems of Education in the 21st Century, vol. 13, June/2009 2009. [52] R. E. Jeffries, A. Anderson, and C. Hendrickson, Extreme Programming Installed. Addison-Wesley Longman Publishing Co., Inc., 2000. [53] I. Sommerville, Software engineering, tenth, global ed. Pearson Education Limited, 2016. [54] P. Bourque, R. E. Fairley, and I. C. Society, Guide to the software engineering body of knowledge: SWEBOK, version 3.0. IEEE, 2014. [55] R. Chitchyan, S. Betz, L. Duboc, B. Penzenstadler, S. Easterbrook, C. Ponsard, and C. Venters, “Evidencing sustainability design through examples,” in Fourth International Workshop on Requirements Engineer- ing for Sustainable Systems (RE4SuSy), August 2015. [56] D. Ameller, C. P. Ayala, J. Cabot, and X. Franch, “Non-functional requirements in architectural decision making,” IEEE Software, vol. 30, no. 2, pp. 61–67, 2013.