Next Article in Journal
Particular Dimensions of the Social Impact of Leisure Running: Study of Poland
Previous Article in Journal
Offset Obligation in Defense Projects: Schedule, Budget, and Performance Implications
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Green Software Process Factors: A Qualitative Study

by
Siti Rohana Ahmad Ibrahim
*,
Jamaiah Yahaya
* and
Hasimi Sallehudin
Centre for Software Technology and Management, Faculty of Information Science and Technology, Universiti Kebangsaan Malaysia, Bangi 43600, Selangor, Malaysia
*
Authors to whom correspondence should be addressed.
Sustainability 2022, 14(18), 11180; https://doi.org/10.3390/su141811180
Submission received: 1 July 2022 / Revised: 26 August 2022 / Accepted: 30 August 2022 / Published: 7 September 2022

Abstract

:
In the twenty-first century, the use of software is growing due to many applications requiring large and complex software. Many people do not realise that the use of software has influenced the operation of computer hardware to move indirectly as it affects the hardware’s energy consumption and carbon emissions. Previous studies focused more on models and tools to measure the impact of power consumption and energy efficiency from hardware than on software development studies. Energy consumption can be optimised by the greening software process throughout all phases of development activity. Besides, the current green software process models are more focused on environmental and economic elements and do not integrate with the waste elements in the development phase. Integrating sustainability and waste elements is essential to ensure that the development process complies with green process standards. A qualitative method is used through interviews involving eight informants from Malaysia’s public and private sectors. The objectives of the empirical study are to reveal the current practices of the green software process in industry, identify software process waste and determine green factors associated with the software process. The analysis is guided by a thematic approach using Atlas.ti 8 software. This paper describes the results from the qualitative study that consists of three main themes: best practices of a software process, nine software wastes (building the wrong feature, rework, unnecessarily complex solutions, extraneous cognitive load, psychological distress, waiting, knowledge loss, ineffective communication, delay), and six green factors (resources, people, organisational, technical, environmental, technology). The analysis findings indicate that the software industry needs elements of best practices, green practices, and software technologies in each development phase to produce a green and sustainable software process. The advancement of computing today presents technology as an essential factor in green elements to ensure that the software process is constantly updated and always green.

1. Introduction

A decade ago, software development prioritised the quality and user acceptance of the end product. Essentially, previous parameters, such as functionality, accessibility, security, and scalability are used to evaluate software quality [1]. Today’s users are referred to the software’s capabilities and usability for long-term operation. This circumstance is consistent with green and sustainable development, ensuring that the software remains valuable and relevant. Software is becoming more widely available and capable of adjusting nearly every area of our personal and work lives. Many applications nowadays necessitate massive and complicated software. The future evolution of software’s relevance and use raises the issue of its environmental impact.
The green software process is essential in supporting ‘greening through IT’ or making societies more environmentally sustainable through IT technology [2]. It turns out that, in contrast to the hardware components, the software side acquires relevance in research in the framework of ‘Green in IT’, which means to make ICT itself greener and ‘Green via IT’, which explains possibilities to stimulate environmental-friendly movements through ICT. Software is indirectly linked to energy consumption since it drives hardware activity. It has become an essential part of everyday life, and most people cannot survive without software now and in the future. Energy-efficient software is necessary because one of the primary goals of Green IT initiatives is to develop answers to the problem of rising energy usage. To create such software, programmers must understand how it can be done and must have the necessary tools.
The importance of green in software is an application that generates the least amount of waste during development and operation. A previous study found that green software poses minimal direct and indirect harm to the economy, society, humans, and environment due to its growth, deployment, and use, and positive impact on long-term development. Furthermore, producing green software promotes environmental awareness (green by software) and generates less waste during the development cycle [2]. Thus, software development, operation, and maintenance are handled and managed in an environmentally friendly product. Software engineering methods for development, maintenance, and disposal must be resource-efficient, waste-free, and contribute to long-term development [3]. Software’s energy efficiency and sustainability are vital parameters for obtaining green software by considering software design that can support a long service life and reuse of components and energy resources [4].
Based on previous works, green studies concentrated on hardware for energy consumption control, analysis, and monitoring that involved essential hardware components [5,6,7]. Hardware runs software systems that may affect energy consumption [7]. Carbon emissions from hardware energy consumption can have an environmental impact related to software that indirectly controls computer hardware. As a result, software becomes a factor in achieving environmental sustainability [8]. At the same time, there is a lack of studies on integration between the dimensions of sustainability and waste reduction [9]. It is supported by [10] that green software can be achieved through sustainable development and waste reduction. Current models in the green software process focus more on environmental and economy elements, without incorporating other components of sustainability, such as social and technical [10,11].
This study aims to conduct an in-depth qualitative analysis to investigate the best practices and green process factors in collaboration with the software industry in Malaysia. The scope of this study focused on the fundamental software development phases: requirement, design, implementation, and testing. The objectives are: (1) investigate the current practices of the green software process in the industry, (2) identify software process waste, and (3) determine green factors associated with the software process.
This paper presents the qualitative analysis and findings on green software process factors and measures from industrial perspectives. It starts with the background study and related work in Section 2 and discusses the empirical study in Section 3. Section 4 presents the analysis and findings, while Section 5 elaborates on the result and discussion. This paper concludes with a conclusion in Section 6.

2. Background Study and Related Work

This section discusses the green software process’s current issues, challenges, concepts, and related works.

2.1. The Software Process

Researchers and scientists in software engineering believe that a systematic software development life cycle (SDLC) could improve the software development process. The waterfall model is the most popular SDLC model. The waterfall model has five key phases: the analysis and definition of requirements, systems and software design, unit implementation and testing, system integration and testing, and operations and maintenance [12]. According to [13], green in software engineering could be implemented in three ways: producing green software, producing software to support environmental awareness (green with software), and producing less waste during the software development process.
Software development is a process that describes the main activities to be performed by a software developer to produce software. The issue and challenge in software engineering regarding the development process are ensuring the software’s quality, functionality, and usability, which depends on the development model used. Some well-known software development models are waterfall, prototype, incremental, spiral, agile development, and RUP [14].
In all the software development models, there are five main phases or fundamental processes: requirement engineering, design, implementation, testing, and maintenance. The requirement engineering phase is to obtain software specifications by collecting user requirements. The design phase is to change the requirements specification to the structural form of the software model. It is developed using a modelling language, such as Unified Modelling Language (UML), to describe the design of a system. The implementation phase is code conversion using a specific programming language from the Software Design Document (SDD). Next, the software construction is related to the initial model built during the design phase. The testing phase aims to ensure that the software does not have any errors/bugs during use and is developed to meet user needs specifications. The last phase of the development cycle is the maintenance phase. It is where the software is already placed and operated at the user’s site. The software requires modification and maintenance throughout its life cycle [15].
In a software project, the development process can be carried out within a budget or resource without exceeding the targets, or it can be over budget and exceed resources. The activities of each phase have their significance in the development. Collecting and analysing the requirement is the most crucial and initial activity in developing the software system. The development teams were assigned to obtain the required input from the customer or user through several techniques, such as discussion, brainstorming, interviews, and others [16].
After analysing the requirement, the product requirements are documented through the SRS (Software Requirements Specification). The SRS document contains all the product requirements throughout the project lifecycle. The design refers to SRS as the primary reference for product architecture. Input and software architecture is useful for implementing system development. At least one architectural product approach is proposed and documented in DDS (Design Document Specification). The stakeholders review the DDS, and the best approach is selected based on budget, time constraints, risk, robustness, and design method [13].
The next phase is the implementation phase. It is where the source code is generated based on a detailed and well-organized design. This phase involves source code written in a high-level programming language based on the target-developed software. The testing phase refers to the product errors that will be detected and re-analysed until they meet the SRS quality requirements. Different types of tests are performed by integrating system testing and integration. The User Acceptance Test (UAT) is the end user’s final test to ensure the system meets their needs. The last phase is the operation and maintenance of the implementation of a product in the environment. The maintenance of the product is related to issues that come and need to be repaired. It also has improvements to be made and taken care of by the developer [17].

The Principal Practices in the Software Process

The lifecycle of a software system must be considered at the requirements collection phase by providing current and future requirements based on project and organisational goals. One principle in using the computers during requirement collection is that when not in use or in low power mode, the monitor must switch off to save electricity [18]. Users are encouraged to reuse prototypes to grasp system requirements better. The previous study suggests using the internet and any communication media to reduce transportation costs. Using cloud computing for document storage, reusable systems, reducing non-system activities, and running the system on low-power computers are goals that can meet environmental sustainability in the requirement collection phase [19].
Programmers should build efficient algorithms using a compact code design and data structures based on applications, programming languages, and hardware architecture. Furthermore, the experience will lead to optimisation. Subsystems must adhere to the functions described in the requirements stage and be designed to be as efficient and intelligent as possible to provide efficient algorithms with fewer programmed lines in the execution stage [20].
Reuse in the design phase is an essential factor in attaining sustainability. It can prevent the re-implementation of existing components [21]. The system is designed to be simple to promote stakeholder understanding and reduce unnecessary rework and paper use. Suppose design is excessively complex and frequently changes with the help of a computer; more power consumption, tools, and other extra resources to develop are likely to occur [18]. To maximise hardware, memory, disc space, and processor cycles, avoid using hardware-specific APIs, resource-intensive APIs, and duplicate code during the implementation phase. Pair-programming can also reduce the resources needed, such as computers or other resources. Automating the implementation operations is an essential part of long-term implementation since it cuts down on time and eliminates manual errors to the best extent possible [19]. Automated tools include automatic code generation and code review [18].
A software system’s correctness is tested and validated during the testing process. Unit tests are critical to developing defect-free software at a more granular level. The fewer the flaws, the more minor software change is necessary. Test automation should be encouraged since it reduces human mistakes. They also promote test case reuse and testing process standardisation. It improves testing accuracy and productivity and minimises the energy consumed by additional resources in the manual testing process. Software testing is more environmentally friendly and energy-efficient with tests that should be written early, such as during the requirement stage, to ensure that the requirements are correct and meet the user’s expectations [22].

2.2. The Importance of Green Software Process

Green software is aimed at being environmentally friendly, which encourages improving the environment. Greener software can be achieved through less energy consumption while it’s operating. Additionally, ref. [23] suggested that embedded intelligent software is considered to support green operation in computing environments. Software is a vital element in improving environmental sustainability. Sustainability in software refers to managing and understanding climate change and assessing its implications with the appropriate policy responses [23]. To achieve green, software must meet the high-level requirement of reducing waste and conserving resources in development, maintenance, and disposal [10]. The software execution must minimise waste, conserve resources, and thus support sustainable development. The other meaning of green software is during the development and operation; an application must produce as little waste as possible. The definition of green and sustainable software is ‘the art of developing green and sustainable software with a green and sustainable software engineering process.’ Sustainability can also be defined as the development of software products with a negative and positive impact on the development results. It is expected to result from the software product over its whole life cycle that is continuously accessed, documented, and used for further optimisation of the software product [24].
Green software can be divided into two types: green by software and green in software. Green by software can help to manage energy-intensive applications. It includes software developed for the domain to ensure environmental preservation. For example, dematerialisation, grid management, cloud management, or data centre [25]. On the other hand, green in software is an approach to making software more environmentally friendly and producing more sustainable products. Green in software involves the process, the development life cycle, and governance.
Several efforts have highlighted the importance of incorporating green aspects in software engineering over the past few years. Researchers need to give software developers and users awareness to be more responsible for the selection and demand of a software development process that respects the environment [26]. The entire software development ecosystem can be achieved by adopting green software processes and producing green software products to maintain competitiveness [27]. Later, the term can be used more clearly when the issue of green software has already begun to evolve and be reinforced.
Literature highlights that current research in software processes does not focus on integrating sustainability measurement to achieve green strategies [27,28]. Many studies have been conducted on the development of green software. Still, little attention has been focused on green measurement in terms of sustainability and improving green processes through waste management approaches [9].
Waste management is essential to achieving a green environment [23]. Previous studies have shown that reducing waste will increase the efficiency and productivity of specific jobs [29,30,31]. Preliminary investigations indicate that the software process and waste management are still immature due to the lack of integration between the three basic dimensions of sustainability, namely economic, environmental, and social, which are then extended to the individual and technical aspects of software system evaluation.
There have been several studies on green hardware regarding energy consumption and disposal, but [32] indicates that there is still less research on software. However, the software indirectly affects the environment and the software itself. Some studies touch entirely on the green but are still less integrated with the dimensions of sustainability and waste management [9]. The integration between sustainability and waste management has the potential to make the software more tolerable and usable for a new generation that demands a greener environment [33]. Most current software process models also do not consider issues and impacts of software development processes and activities [19,34].

2.2.1. Green Software Process Models

The GREENSOFT model is a conceptual reference model for green and sustainable software that intends to aid software developers, administrators, and users build, using, and maintaining the software in a more sustainable manner [35]. The life cycle of a software product is one of the four primary components of the GREENSOFT paradigm. This life cycle differs from traditional life cycles. It includes the objective of sustainability, which involves assessing the ecology, social, and human compatibility, and overall product economics. This procedure begins with product development and concludes with product disposal and recycling.
A software development life cycle transition model illustrated the appropriate ways to assist organisations in moving toward greener and more sustainable development by lowering carbon emissions from power and paper [36]. Furthermore, based on the proposed model, the organisation’s electronic waste can be steadily decreased in terms of the additional costs associated with the software development process. As a result, the designed product is ecologically friendly and adds value to the consumer.
Another green and sustainable model includes life cycle procedures, models, recommendations, and checklists. The process models are essential for determining a software product’s current life cycle activity and assessing its sustainability. Green or sustainable techniques are used in the rules and checklists when designing, administering, or using software products with the support of numerous levels of specialists [37].

2.2.2. The Green Software Process Factors

The literature review found at least five vital factors for assessing the green level in the development process. Resource, people, organisation, technical, environmental, and technology are the identified factors in the literature review (refer to Table 1). The resource is the way to optimise ICT’s resource and energy consumption, which occurs during its whole life cycle [38]. The people factor refers to satisfaction in performing tasks for the developed software. It includes an individual’s human capital, health, knowledge, skills, and leadership [39]. The organisation factor for the green software process is referring or can be described as the acknowledgment and priority given by the organisation, stakeholders, and society [40].
Technical is another factor to observe from the perspective of software. The technical aspect has a primary goal of the long-term use of systems and their proper evolution in response to changing environmental conditions and requirements [41]. It focuses on the software being designed to adapt to future changes quickly. In contrast, the environment factor involves human welfare by protecting natural resources, such as water, air, and ecosystems. Still, the concept of software is about the ability of software development to influence and impact the environment. Practically, all computing efforts and works are trained quickly and effectively with little or no environmental impact [42]. Technology is a new factor supporting green software processes that establish eco-friendly growth sources, build new eco-friendly industries, and provide jobs and technology [43].

2.3. Software Sustainability

Sustainability has become more important to software engineering, design, development, and maintenance. Traditionally, sustainability is the maintenance of the software to ensure it can be long-time usage [41,42]. Sustainability is the capacity to endure and, for humans, the potential for long-term maintenance [44]. It means something of power for a longer usage life and provides a greener aspect when applied in software. The primary dimension of sustainability is economic, social, and environmental [45]. Economic sustainability is referred to as the wealth creation and asset maintenance process. The software developed must ensure the holders of the investment can invest safely in the long run and be free from economic risk [44].
Meanwhile, social sustainability aims to maintain social capital and unite the community. For the social dimension, software is created to increase capital’s value, such as maintaining social relations in society [46]. In addition, environmental sustainability protects natural resources to improve human welfare [42]. The software environment must be friendly to create, use, maintain and dispose of with minimal impact. The environmental issue can be divided into energy consumption and resource utilisation. Resources are related to software products, configurations, hardware, and other materials. In software, energy use is related to efficiency, including energy efficiency, timeframe, CPU intensity, and memory usage.
Some authors added and proposed the other dimensions of sustainability, which included the technical and the individual [39,46,47]. For the technical dimension, the software is designed to be easily customised and valuable in the future. Durability means the software can be used for a long time, so it’s easy to reuse, customise and modify in terms of technical software sustainability. Technical sustainability implies the system can be used for a long time even though the requirements or conditions change [48]. The individual dimension is described as the software’s capability to be created and maintained in a more personal manner and way. The approach is necessary to ensure the developers enjoy their work in the working environment. It also refers to the employment of appropriate work, skills, and experience for the developers. The individual maintains a good attitude toward personal development in computing and the software-related area [49].

2.4. Waste in Software Process

Waste is any activity that uses resources without producing value for the customer or user [50]. Waste is related to unnecessary activity and increases the cost or time without adding value [51]. Waste also refers to non-value-added activities (NVAs), situations, or circumstances that reduce resources. It may impact to system or process in terms of time, quality, and cost [52]. The waste formation can happen in manufacturing as unimportant goods and more municipal solid waste [53]. Other than that, waste occurs in construction [54], and it is generated in the industrial business and software development [55].
Based on lean principles, waste disposal in manufacturing, identification, and disposal of waste is related to user value. It indicates that any product or work that does not consider aspects and value to the consumer is considered waste [55,56]. Despite lean’s principles in the manufacturing context, it is appropriate for adoption in the software development process. It involves the user commitment and involvement from the beginning of the development to the system operation [57].
Lean software development was created by [58] to be tailored to lean thinking and Toyota’s production system, from manufacturing to software development. In the software domain, waste can occur during development activities. The wastes affect the quality and time of delivery of the products. The presence of waste restricts the project’s potential to succeed. It could also influence project delays, cost overruns, and dissatisfied customers [59].

Elements of Software Waste

Various types of waste in software development are found by [60] in building the wrong feature or product. In this situation, products are failed to meet the user’s expectations. Some users fail to recognise the need for the software product, leading to the software not being used to its maximum potential. The following waste is mismanaging the back, which refers to duplicating effort, rushing low-value user improvements, or postponing critical problem solutions [29]. For instance, working on many other features in the same period and delaying testing is a fundamental problem related to waste. Additionally, rework is frequently wasted during development, correcting work to be delivered but not done appropriately.
Furthermore, unnecessarily complex solutions discuss overcomplicating a solution, a missed opportunity to simplify functionality, the user interface, or the code. It looks at the complexity of features, the technical complexities always present in system design, and the lack of reusing programming code or functions that make systems challenging to develop. Extraneous cognitive load state the wasting of mental energy that is not required for software developer. The ability of workers has its limits. If a given workload exceeds the employee’s knowledge, it can cause the employee to be unfocused and ill. It will result in overload and the occurrence of waste. Another is psychological distress—undesired and unhelpful stress—that affects the team. The significance is that job-related psychological stress can lead to health problems, absenteeism, fatigue, and lower productivity [61].
In literature, the study revealed that waiting is one of the wastes in software development that contributes to idle time. It’s because the developer needs to wait for input from the user before performing the next task. Indirectly, it causes project delays and cost overruns. During the testing phase, the developer remains for feedback from the user about the system that has been tested. Knowledge loss usually occurs when there are programmers who quit work and do not inform or preserve their work and knowledge. This makes it difficult for new programmers to continue the old job and slows down the development process in the implementation phase. Ineffective communication leads to misleading or absent communication in a team due to less or not asking for certainty or misunderstanding something important [29,60].

3. Empirical Study

The objectives of the empirical study are to investigate green software practices, classify software wastes in each of the phases, and identify the green software process factors from industrial perspectives. This study was conducted by interviewing industrial practitioners or software developers. The scope of this study is on the fundamental development process: requirements, design, implementation, and testing.
The purpose of the interview is to explore the informants’ experiences and enable them to provide a deeper understanding of the issue or phenomenon being studied [62]. In addition, the researcher believes that the research topic should be expressed verbally based on the idea or opinion of the informants if the subject is sensitive or unfamiliar. The interview method is the most appropriate when the researcher has limited knowledge of the phenomenon or research issue.

3.1. Research Design

The informants were invited through personal contact using purposive sampling and snowball methods. Upon mutual agreement, the interview date was set by both parties. This study was conducted during the COVID-19 pandemic, and informants only agreed to be interviewed online. The interview sessions were performed using an online meeting platform and recorded with the informants’ consent.
The organisations involved in this study were selected based on in-house software projects developed for each development phase. The selection of informants needs to be done wisely because most software developers have specific roles for each development phase, especially in the public sector. We need to properly check the background of software practitioners with experience and knowledge in software development.
The semi-structured questions were designed to elicit more information from the informants. The semi-structured interview protocol provides guided questions that allow the informants to propose their opinions and ideas during the interview. This approach guides the researcher to conduct the interview properly and accordingly. The semi-structured interview method has received the most consideration and is frequently used to express the informant’s thoughts and views [63] in the research works.

3.2. Interview Protocol Design

The interview protocol (refer to Table A1) was designed and established before the interview was conducted. The interview protocol is based on the previous literature review and theoretical framework [28]. The protocol is divided into three main parts: Part 1: The Practice of Green Software Process consists of six questions, Part 2: Waste in Software Process contains three main questions, and Part 3: Green Factor and Measurement for Software Process involves twenty-one questions.
Three field experts were invited to participate in the pilot study. They were selected based on their expertise in the software engineering field and software development experience. The developed interview protocol was reviewed and validated by these industrial and knowledge experts. Before the actual interview was conducted, the protocol consisting of questions referred to as Part 1, Part 2, and Part 3 was corrected and refined as explained in [64].

3.3. The Sampling

According to [65], the sampling technique should be used to set the target group in the study. There are two methods used to select interview participants. In the initial stage, the purposive sampling method was used to identify the target group of software developers. Next, during the interview, the informant suggested the other potential candidates that can be considered valid informants for this study. This method is known as snowball sampling. The availability of resources, time for analysis, and the level of data saturation are the criteria required to determine the sample size of the study [66]. When the interviews that are carried out do not provide new and additional information, the saturation level has been reached, and the following interview no longer needs to be conducted.
The interview sessions were conducted among developers and software practitioners. The selection criteria of informants were based on experience and knowledge in the research area that focuses on in-house software development. The duration of working experience was also considered in the selection criteria, where they have working experience of at least five years in the industry. This study’s interview period was conducted from January 2021 until June 2021.
Table 2 shows the background of the informants involved in this interview. Most informants have more than ten years of working experience in industrial software. A, B, C, D, F, G, and H labels represent the informants that participated anonymously in this study. The percentage of informants working in the public sector and private sector is the same, which is 50%.

3.4. Protocol Validation Process

The validation process is implemented to increase the reliability of data analysis results. An internal member review is adopted and implemented to perform the validation process. This method involves examining the data and interpreting it for reference by informants to enable them to confirm the accuracy and truthfulness of the information and research reports.

3.5. Analysis Method

The qualitative technique is used to answer the research objectives in this study. During the data collecting session, the qualitative approach is the primary instrument to further investigate the topic to ensure informants’ proper explanation and interpretation [67]. In this study, we apply thematic analysis as the data analysis technique. When the data has been collected, the data needs to be repeatedly analysed to find the emerging patterns, themes, and sub-themes. This allows the data to be categorised accordingly [68]. This study was conducted based on a guideline in qualitative research to make it systematic and practical. Figure 1 indicates the five basic steps in the qualitative research approach [69].
  • Step 1—Prepare and manage the data
    Audio data is transcribed into text form to analyse the information thoroughly. This process involves copying interviews, scanning, typing, and sorting data according to categories.
  • Step 2—Intensive read the data
    Records of interviews are analysed and transcribed in text form. The recording is heard repeatedly to understand the meaning conveyed by the informants. Then, the texts are read carefully to get a general understanding of the meaning of the whole text. It may help to determine the code of the text content.
  • Step 3—Coding
    Coding is breaking down and classifying text to form explanations for broad themes in data. This study uses two coding methods: open coding and axial coding. The process groups the content code according to specific themes or contexts. Principles and codes of the same meaning are combined to eliminate duplication and redundancy.
  • Step 4—Construct the theme
    Coding helps separate data into categories or themes so that data from different sources can be sorted and compared easily. After analysing the code in each group, the appropriate theme is identified. This study uses thematic analyses to examine the processes of selecting codes, generating themes to code data, and producing the conclusion report [70].
  • Step 5—Validation of findings
    The validation process is carried out with experts to confirm the findings. Validation is done to ensure that the results are correct and accurate and thus improve the reliability of the empirical findings. In this study, the triangulation method is ‘in-method’ by using the same questions in the interview protocol but implemented at different times to increase the validity of the position or data given by the informants [71].

4. Data Analysis and Findings

The findings from the interviews based on investigation of current practice software process, identification of software waste, and exploring the green software factors are demonstrated in this section. The observation of Table 3, Table 4 and Table 5 shows the interview findings on the software development model used, compliance with process standards, and green practices in specific organisation projects. The data was analysed, and the informants’ frequency of mentioned keywords was counted and shown in the tables.
The finding shows that most organisations still adopt the waterfall model in software development. The model depends on the project and adherence to process standards, such as requirements planning, design analysis, development, implementation, and testing. Organisations do not provide specific practices but indirectly apply certain green techniques in software development. It shows that the software industry is not fully adopting green practices in the software process.
In this study, we asked, “What is the software process model used in software development (Waterfall, Prototyping, Iterative, Spiral or Agile)?” Table 3 illustrates the informant’s response to the development model practices question. Most of the software development models used are waterfall and agile. It was stated by Informant G “In our development, we often use waterfall and agile models.” “The software process model used is usually Agile, but Waterfall is as the basic” mentioned by informant D. Informant E said, “There are times we use Waterfall software processes, sometimes we use agile. It depends on the time, audience, type of project”.
The question in Table 4 refers to “Does your organisation have a Standard Operating Procedure (SOP) or standard process? If any, state the standard process.” The primary development process is mainly applied in the organisation based on SDLC activities; as stated by Informant E, “The standard process for our development follows the SDLC as a basis.” Informants F and H indicated that they used and adopted steps according to ISO standards. The interview said, “We follow the development steps in the ISO standard. Start from the requirement, design, implement and follow the flow.”
The question in Table 5 relates to “Does your organisation implement green practices?” Informant A’s answer stated, “There are no specific guidelines on green practices that we implement.” And this statement was supported by Informant B by saying, “We do paper saving, and it relates to green practices.”
Table 6, Table 7, Table 8 and Table 9 represent the green software process in each of the phases, namely, requirement, design, implementation, and testing. The three primary components of this section have been revealed: best practices, green practices, and software technology. Best practices in the software process breaks down into methods constantly practised by software practitioners, while developing software for each phase. It also aims to streamline the software development process. Green practices reduce the negative impact on the development process that can involve the economic, social, environmental, technical, and individual. It can go through with energy resource reduction, cost savings, paper savings, use of computing technology, and information sharing. Software technology involves using tools or software to accelerate the development process in line with the latest technology and security.
The question of Table 6 is, “What are the best practices and software technologies used for the requirement phase? Informant C mentioned, “Most of the time we communicate online, we rarely want to meet physically. We use WhatsApp, Zoom, and Google Meet applications. These relate to green practices since we do not use physical transportation.” These arguments relate to green practices in the requirement phase, as shown in Table 6.
“What are the best practices and software technologies used for the design phase?” is asked, and the analysis is shown in Table 7. The best practices of design activity refer to “Database must be designed appropriately. If the design is wrong, it will cause a lot of storage usage”, said Informant A.
The implementation phase concerns the use of software technology during the programming stage. Informant G cited, “The framework of PHP is already implemented with security. This framework is used to make it easier and faster for us to create a project. The framework is matured, and we improve and customise it based on our project”. This statement refers to the question in Table 8, “What are the best practices and software technologies used for the implementation phase?
The best practice in testing is highlighted by Informant D, “Testing phase is asking the users to do the system or software testing. If there are any bugs or errors, we will fix them. There is no implementation of sustainability.” Mostly the informant follows the step of testing, which are UAT, FAT, user feedback, and fixing the error. The question in Table 9 is, “What are the best practices and software technologies used for the testing phase?”.
The list of software wastes during the software development process for the requirements, implementation, and testing phases was also investigated and surveyed. The result is shown in Table 10. The identified wastes from the literature review are building wrong product/features, reworking unnecessary complex work, extraneous cognitive overload, waiting, knowledge loss, and ineffective communication [72]. This survey has revealed there is no waste identified in the design phase. Meanwhile, the new waste discovered in this study is delayed.
The question related to Table 10 is, “What is the software waste that exists during the software development process in your organisation based on the following activities for requirement, design, implementation, and testing?”. The informant’s answers to software waste are stated in Table 10. Building the wrong features is a software waste that Informant B said: “When we collect requirements and they are incorrect, the change needs to be handled and this causes us to re-evaluate our specifications. It affects in terms of costing, resources, and man-days”. Conversely, Informant C stated, “We always wait for user feedback after testing has been done. We normally give the users two weeks, but sometimes it is up to two months longer.”
In this survey interview, informants were asked, “How to solve the waste in the software process?” The revealed solutions for the waste are shown in Table 11. Informant H said, “Waste that occurs in development must be resolved. The best way is to implement best practices from the beginning of development.” The solution for software waste that occurs is by solving the problem at a rapid rate. In addition, developing SOPs is required so establish procedures can carry out development work. Task management must also be given attention so that every software developer can carry out tasks well.
In this interview protocol, informants were asked their opinions about green factors related to the software process, measurement, and metrics. Table 12 shows the green practices that apply by organisations to ensure the software development runs efficiently and saves time. These findings are associated with the green factor Resource. Resources are identified by cost reduction, computer and ICT tool usage, paper usage, 3R practices, and cloud computing.
The first question related to Table 12 are (1) “Do you take into account the aspect of cost reduction during the software development process, such as energy consumption of computers and ICT equipment, the use of paper, and 3R practice (Reduce, Reuse, Recycle)?”. It answered by Informant C “We can use a lot of open-source software during development to cut the cost of buying a license if we have enough expertise in this technology.” Informant F indicated, “We use a virtual machine server to change the previous physical server. So that we can save the server storage space.”
The second question related to Table 12 is the following. (2) “Do you use cloud computing for development process work? What is the percentage (%) of the usage?” One of the informants, Informant D, said, “We fully use cloud computing to store the document, share the document to other teams. It useful and easy to manage it”.
Human resources is referred to as the well-being of human beings as individuals. These include mental and physical well-being, education, self-esteem, and skills. Table 13 presents the green factor and measurement for people in terms of human resource development, the health of software developers, the role of the software development group, work satisfaction, and green practices among software developers. The team’s positive attitude and pleasure in their work show the highest frequency and is considered the vital measurement that supports the green factor for humans.
Questions of Table 13 are as follows: (1) “Does your organisation have initiatives to improve human resource development among software developers?” Informant C mentioned, “Training open source is good for the developer to improve or enhance your skill and knowledge about technology.” (2) “In your opinion, are the software development procedures disruptive and affect the health of software developers? If any, state it.” Informant H said, “We, the developer, got stressed due to a lot of additional work other than software development. Manpower also limited”.
(3) “What are the important roles to have in a software development team?” (4) “Are you as a software developer satisfied with the work produced?” and (5) “How are green practices implemented in software developers in your organisation?” Informant E stated, “Most development works are not using the hard papers but just softcopy and through email or shared in the drive.”
An informant offered an example of green practice awareness in an organisation, “Some are involved in open-source campaigns that are related to the green. It has the potential to save cost and time. “We have participated in a government or corporate event to encourage the usage of open-source software” by Informant C. Table 14 indicates the green factor and measurement for an organisation based on the application of green practices, green practices awareness, stakeholder involvement in green development aspects, investment through developed software, and sharing of knowledge.
Questions on green organisational factors include (1) “How can green and sustainable software development process impact organisations?” Informant F agreed, “When we apply the green practice indirectly, the works become more manageable and systematic.”
The second question (2) “Has your organisation held or attended a campaign to improve awareness of software developers about the importance of green development practices?” (3) “Does the project in your organisation involve stakeholders, such as top management and system users in software development?”. Informant B mentioned that “Yes, most of the software that we develop involve the stakeholder like system users, top management, and so on.” (4) “Do you have plans to make software for a long-term investment with stakeholders?” Informant C stated that “We already generate income for our organisation through this software development.”
Depending on the type of change, all informants considered that system changes without affecting the system’s workflow. Table 15 shows the green factor and measurement for technical related to the software’s ability to recover from failure, requirement changes in software, conditional changes, additions and modifications to system functions, the operating of software, hardware, and operating system or support system changes.
Technical questions in the green factor are shown as (1) “How do you overcome the situation when there is a software failure?” Informant A stated, “When software fails, it must be fixed and depend on the problem.” (2) “Is the software in your organisation easy to adapt to changes in the future, such as the addition and modification of software functions?” Informant E mentioned, “System must be designed as flexibility so that it is easy to modify or changes in future”. (3) “How do you expect your software able to be used in 5–10 years?” and (4) “Is your software adaptable in different operating environments for the operating system, hardware, and support system changes?” Informant C said, “Some systems still difficult to integrate with other systems depend on their capabilities and functionalities.”
Environmental green factors focus on conservation by minimising harmful impacts on the environment. It also considers the management of e-waste regarding unused hardware and old software. All informants agreed that IT activities are environmentally friendly and do not affect the environment. Table 16 shows the green factor and environmental measurement in digital platforms, environmental greenery support, e-waste principles and regulations, environmental impact from IT activities, and information gathering process.
The questions of green factors by environmental in Table 16 are as presented (1) “Do you use a video conference system or teleconferencing during the process of software development?” (2) “How do software developers in your organisation support greening?” Informant F said, “During the pandemic, we use online communication to organise meetings even though it takes a long time to adapt to the new situation” (3) “Do you think the software development and maintenance process can affect the environment?”. Informant D thought that “Software development did not harm the environment unless if any carbon dioxide emission” and (4) “Are there any e-waste policies or regulations in the organisation? If Yes, do you have any knowledge of the matter?”. Informant E stated, “Usually, we apply e-waste management to handle the hardware, such as old computers, unused servers, and hard disks.”
The question in Table 17 is, “Do you know there are other factors that can contribute to green practices in software development?”. Informants D, F, and G agree that no new factors from the green software process perspective are currently needed, and the existing factors from the literature review are adequate and significant.
Table 17 presents the other green factors and measurements that influence the software process by informants. Political and cultural factors are selected as elements in organisational factors, whereas technology is identified as an essential factor in the green software process.
Technology factors are considered necessary in software development due to the rapidity of software technology [73]. It is proved by programming languages and the selection of development tools, as shown in Table 18. Computing technology is also essential as a storage place for information and data. In addition, communication media are becoming increasingly popular because it makes it easier for developers to communicate with other developers in carrying out development work.

5. Result and Discussion

The empirical study conducted through several interview sessions found six essential factors considered influential in ensuring a green software process: resources, people, organisation, environment, technical, and technology. Table 19 indicates the theme of the green software process based on sustainability elements and software waste, as explained in this paper. It illustrates the findings and results based on each phase in the software process and the implementation of best practices, green practices, and supported software technology. As presented in Table 19, this study reveals the industry and experts by green factors and software wastes. Furthermore, the green factors are broken down into measurements and metrics.

6. Conclusions

This study has revealed research findings on the software process, green software process, software sustainability, and software waste. This paper elaborates further on the qualitative study gathered from the interview sessions. Eight experts from industrial practice in software development were invited to participate in this study. Three primary contexts of the software process: best practices of the software process, software process waste, and green factors were investigated. The goals are to discover industry best practices in the green software process and to determine existing software wastes and factors influencing the green development process.
The analysis has revealed three principles of green software process practices (best practice, green practice, and software development tool) in each development phase, nine significant components of waste and six green factors in the software process: resource, people, organisation, environmental and technology. This research indicates that technology is distinct due to its use, development, and popularity. During the COVID-19 pandemic, digital platforms began to be widely used, and communication media facilitated work matters. Meanwhile, delays are a discovery in software waste due to disrupting software delivery, which can affect the entire development work process. For future work, the findings of this study will be examined to further develop the proposed model’s components.

Author Contributions

Conceptualization, S.R.A.I.; methodology, S.R.A.I., J.Y. and H.S.; writing—original draft preparation, S.R.A.I. and J.Y.; review and editing, J.Y. and H.S.; supervision, J.Y. and H.S. All authors have read and agreed to the published version of the manuscript.

Funding

This research is funded by the Malaysia Ministry of Higher Education under the Fundamental Research Grant Scheme (FRGS/1/2019/ICT01/UKM/02/1).

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Informed consent was obtained from all subjects involved in the study.

Data Availability Statement

Not applicable.

Acknowledgments

The authors would like to thank the Faculty of Information Science and Technology, UKM, for providing resources to encourage research activities among faculty members.

Conflicts of Interest

The authors declare no conflict of interest.

Appendix A. Interview Questions

Table A1. Interview protocol for green software process.
Table A1. Interview protocol for green software process.
Part 1: The Practice of Green Software Process
1.What software process model is used in software development (Waterfall, Prototyping, Iterative, Spiral or Agile)?
2.Does your organisation have a Standard Operating Procedure (SOP)/standard process? If any, state the standard process, and is it related to green practices?
3.What are best practices and software technologies used for requirement, design, implementation, and testing?
Part 2: Waste in Software Process
1.What do you understand and know about waste in the software development process?
2.What is software waste existing during your organization’s software development process based on the requirement, design, implementation and testing?
3.How to solve the waste in the software process?
Part 3: Green Factor and Measurement for Software Process
i.Source
1.Do you consider the aspect of cost reduction during the software development process, such as energy consumption of computers and ICT equipment, using paper, and 3R practice (Reduce, Reuse, Recycle)?
2.Do you use cloud computing for development process work? What is the percentage (%) of the usage?
ii.Humans
1.Does your organisation have initiatives to improve human resource development among software developers?
2.In your opinion, are the software development procedures disruptive and affect the health of software developers? If any, state it.
3.What are the essential roles to have in a software development team?
4.Are you as a software developer satisfied with your work?
5.How do software developers implement green practices in your organisation?
iii.Organisation
1.How does the green and sustainable software development process impact the organisation?
2.Has your organisation held or attended a campaign to improve software developers’ awareness of the importance of green practices in software development?
3.Does the project in your organisation involve stakeholders, such as top management and system users in software development?
4.Do you have plans to make software for a long-term investment with stakeholders?
iv.Technical
1.How do you overcome software failure?
2.How do you ensure that the system in your organisation can change to current needs and conditional change?
3.Is the software in your organisation easy to adapt to changes in the future, such as the addition and modification of software functions?
4.How do you expect your software to be used in 5–10 years?
5.Is your software adaptable in different operating environments for the operating system, hardware, and support system changes?
v.Environment
1.Do you use a video conference system or teleconferencing during software development?
2.How do software developers in your organisation support greening?
3.Do you think the software development and maintenance process can affect the environment?
4.Is there any information gathering process during software development by electronic means? If any, what is the percentage (%)?
5.Are there any e-waste policies or regulations in the organization? If yes, do you have any knowledge of the matter?
vi.Do you know the other factors that can contribute to green practices in software development?
vii.In your opinion, do green practices benefit the software development process? If either yes or no, please state your reason.

References

  1. Rashid, N.; Khan, S.U. Agile Practices for Global Software Development Vendors in The Development of Green and Sustainable Software. J. Softw. Evol. Process 2018, 30, e1964. [Google Scholar] [CrossRef]
  2. Mohankumar, M.; Anand Kumar, M. Green based Software Development Life Cycle Model for Software Engineering. Indian J. Sci. Technol. 2016, 9, 1–8. [Google Scholar] [CrossRef]
  3. Lago, P. Architecture Design Decision Maps for Software Sustainability. In Proceedings of the 2019 IEEE/ACM 41st International Conference on Software Engineering: Software Engineering in Society, ICSE-SEIS 2019, Montréal, QC, Canada, 25–31 May 2019. [Google Scholar]
  4. Condori Fernandez, N.; Lago, P. The Influence of Green Strategies Design Onto Quality Requirements Prioritization. In International Working Conference on Requirements Engineering: Foundation for Software Quality; Springer: Cham, Switzerland, 2018; pp. 189–205. [Google Scholar] [CrossRef]
  5. Vaishnavi, P.J.; Pallavi, K.C.; Nalina, V. Green Hardware and The Approaches for its Energy Efficiency. Int. J. Recent Eng. Sci. 2019, 6, 1–5. [Google Scholar]
  6. Katal, A.; Dahiya, S.; Choudhury, T. Energy Efficiency in Cloud Computing Data Center: A Survey on Hardware Technologies. Clust. Comput. 2022, 25, 675–705. [Google Scholar] [CrossRef]
  7. Bener, A.B.; Morisio, M.; Miranskyy, A. Green Software. IEEE Softw. 2014, 31, 36–39. [Google Scholar]
  8. Duboc, L.; Penzenstadler, B.; Porras, J.; Akinli Kocak, S.; Betz, S.; Chitchyan, R.; Leifler, O.; Seyff, N.; Venters, C.C. Requirements Engineering for Sustainability: An Awareness Framework for Designing Software Systems for a Better Tomorrow. Requir. Eng. 2020, 25, 469–492. [Google Scholar] [CrossRef]
  9. Ibrahim, S.R.A.; Yahaya, J.; Salehudin, H.; Bakar, N.H. Towards Green Software Process: A Review on Integration of Sustainability Dimensions and Waste Management, IEEE. In Proceedings of the 2019 International Conference on Electrical Engineering and Informatics (ICEEI), Bandung, Indonesia, 9–10 July 2020. [Google Scholar] [CrossRef]
  10. Taina, J.; Mäkinen, S. Green Software Quality Factors. In Green in Software Engineering; Springer: Cham, Switzerland, 2015; pp. 129–154. [Google Scholar]
  11. Naumann, S.; Kern, E.; Dick, M.; Johann, T. Sustainable Software Engineering: Process and Quality Models, Life Cycle, and Social Aspects. In Advances in Intelligent Systems and Computing; Springer: Cham, Switzerland, 2015; pp. 191–205. [Google Scholar]
  12. Sommerville, I. Software Engineering, 10th ed.; Pearson: Harlow, UK, 2016; ISBN 0133943038. [Google Scholar]
  13. Kramer, M. Best Practices in Systems Development Lifecycle: An Analyses Based on The Waterfall Model. Rev. Bus. Financ. Stud. 2018, 9, 77–84. [Google Scholar]
  14. Azharudheen, M.; Natarajan, S.A. An Analysis of Software Process Model to Minimize the Software-Development Issues. Int. J. Sci. Res. 2014, 3, 362–368. [Google Scholar]
  15. Haraty, R.A.; Hu, G. Software Process Models: A Review and Analysis. Int. J. Eng. Technol. 2018, 7, 325–331. [Google Scholar] [CrossRef]
  16. Iqbal, J.; Ahmad, R.B.; Khan, M.; Fazal-e-Amin; Alyahya, S.; Nasir, M.H.N.; Akhunzada, A.; Shoaib, M. Requirements Engineering Issues Causing Software Development Outsourcing Failure. PLoS ONE 2020, 15, e0229785. [Google Scholar] [CrossRef]
  17. Saeed, S.; Jhanjhi, N.Z.; Naqvi, M.; Humayun, M. Analysis of Software Development Methodologies. Int. J. Comput. Digit. Syst. 2019, 8, 445–460. [Google Scholar]
  18. Sharma, S.K.; Gupta, P.K.; Malekian, R. Energy Efficient Software Development Life Cycle-An Approach Towards Smart Computing. In Proceedings of the 2015 IEEE International Conference on Computer Graphics, Vision and Information Security, CGVIS 2015, Bhubaneshwar, India, 2–3 November 2015. [Google Scholar]
  19. Mahmoud, S.S.; Ahmad, I. A Green Model for Sustainable Software Engineering. Int. J. Softw. Eng. its Appl. 2013, 7, 55–74. [Google Scholar]
  20. Iwanaga, T.; Rahman, J.; Partington, D.; Croke, B.; Jakeman, A.J. Software Development Practices in Integrated Environmental Model Development. In Proceedings of the 9th International Congress on Environmental Modelling and Software, Fort Collins, CO, USA, 24–28 June 2018; pp. 1–10. [Google Scholar]
  21. Ezoji, A.; Boujut, J.F.; Pinquié, R. Requirements for Design Reuse in Open-Source Hardware: A State of the Art. Procedia CIRP 2021, 100, 792–797. [Google Scholar] [CrossRef]
  22. Umar, M.A. Comprehensive Study of Software Testing: Categories, Levels, Techniques, and Types. Int. J. Adv. Res. Ideas Innov. Technol. 2019, 5, 32–40. [Google Scholar]
  23. Murugesan, S.G.R.G. Harnessing Green IT Principles and Practices; John Wiley and Sons Ltd: Hoboken, NJ, USA, 2012. [Google Scholar]
  24. Penzenstadler, B.; Duboc, L.; Venters, C.C.; Betz, S.; Seyff, N.; Wnuk, K.; Chitchyan, R.; Easterbrook, S.M.; Becker, C. Software Engineering for Sustainability: Find the Leverage Points! IEEE Softw. 2018, 35, 22–33. [Google Scholar] [CrossRef]
  25. Calero, C.; Piattini, M. Green in Software Engineering; Springer International Publishing: Cham, Switzerland, 2015. [Google Scholar]
  26. Raisian, K.; Yahaya, J.; Deraman, A. Green Measurements for Software Product Based on Sustainability Dimensions. Comput. Syst. Sci. Eng. 2022, 41, 271–288. [Google Scholar] [CrossRef]
  27. Yahaya, J.; Ibrahim, S.R.A.; Raisian, K.; Deraman, A. Green Software Process Based on Sustainability Dimensions: The Empirical Investigation; Incitest: Bandung, Indonesia, 2019. [Google Scholar] [CrossRef]
  28. Ibrahim, S.R.A.; Yahaya, J.; Salehudin, H.; Deraman, A. Green Software Process Assessment: The Theoretical Framework. Turk. J. Comput. Math. Educ. 2021, 12, 2011–2016. [Google Scholar]
  29. Alahyari, H.; Gorschek, T.; Berntsson Svensson, R. An Exploratory Study of Waste in Software Development Organizations Using Agile or Lean Approaches: A Multiple Case Study at 14 Organizations. Inf. Softw. Technol. 2019, 105, 78–94. [Google Scholar] [CrossRef]
  30. Fatima, N.; Nazir, S.; Chuprat, S. Software Engineering Wastes—A Perspective of Modern Code Review. In Proceedings of the ACM International Conference on Software Engineering and Information Management, Sydney, NSW, Australia, 12–15 January 2015; pp. 93–99. [Google Scholar]
  31. Felderer, M.; Galster, M.; Izurieta, C.; Seaman, C. Introduction to the Special Issue on Value and Waste in Software Engineering. Inf. Softw. Technol. 2022, 144. [Google Scholar] [CrossRef]
  32. Al-Sarayreh, K.T.; Meridji, K.; Alenezi, M.; Zarour, M.; Al-Majali, M.D. A Sustainable Procedural Method of Software Design Process Improvements. Indones. J. Electr. Eng. Comput. Sci. 2021, 21, 440–449. [Google Scholar] [CrossRef]
  33. Abdullah, Z.H.; Yahaya, J.; Ibrahim, S.R.A.; Fadzli, S.; Deraman, A. The Implementation of Software Anti-Ageing Model Towards Green and Sustainable Products. Int. J. Adv. Comput. Sci. Appl. 2019, 10, 42–50. [Google Scholar] [CrossRef]
  34. Anwar, H.; Pfahl, D. Towards Greener Software Engineering using Software Analytics: A Systematic Mapping. In Proceedings of the Euromicro Conference on Software Engineering and Advanced Applications SEAA 2017, Vienna, Austria, 30 August–1 September 2017; pp. 157–166. [Google Scholar]
  35. Naumann, S.; Kern, E.; Dick, M. Classifying Green Software Engineering-The GREENSOFT Model. Softwaretechnik-Trends 2014, 33, 18–19. [Google Scholar] [CrossRef]
  36. Mourão, B.C.; Karita, L.; do Carmo Machado, I. Green and Sustainable Software Engineering—A Systematic Mapping Study. In Proceedings of the 17th Brazilian Symposium on Software Quality, Curitiba, Brazil, 17 October 2018; pp. 121–130. [Google Scholar]
  37. Mohankumar, M.; Kumar, D.M.A. An Empirical Study on Green and Sustainable Software Engineering. In Proceedings of the 14th WSEAS International Conference on Software Engineering, Parallel and Distributed Systems (SEPADS’15), Dubai, United Arab Emirates, 22–24 February 2015; Volume 27, pp. 95–105. [Google Scholar]
  38. Ahmed, S. Environmental Sustainability Coding Techniques for Cloud Computing. Int. J. Adv. Comput. Sci. Appl. 2020, 11, 231–237. [Google Scholar] [CrossRef]
  39. Nazir, S.; Fatima, N.; Chuprat, S.; Sarkan, H.; Nurulhuda, F.; Sjarif, N.N.A. Sustainable Software Engineering: A Perspective of Individual Sustainability. Int. J. Adv. Sci. Eng. Inf. Technol. 2020, 10, 676–683. [Google Scholar] [CrossRef]
  40. Nedelko, Z.; Potocan, V. Sustainability of Organizations: The Contribution of Personal Values to Democratic Leadership Behavior Focused on The Sustainability of Organizations. Sustainability 2021, 13, 4207. [Google Scholar] [CrossRef]
  41. Venters, C.C.; Capilla, R.; Betz, S.; Penzenstadler, B.; Crick, T.; Crouch, S.; Nakagawa, E.Y.; Becker, C.; Carrillo, C. Software Sustainability: Research and Practice from a Software Architecture Viewpoint. J. Syst. Softw. 2018, 138, 174–188. [Google Scholar] [CrossRef]
  42. Dharan, B. Harnessing Green Cloud Computing—An Energy Efficient Methodology for Business Agility and Environmental Sustainability. Int. J. Emerg. Trends Eng. Res. 2020, 8, 4193–4200. [Google Scholar] [CrossRef]
  43. Ghisetti, C.; Quatraro, F. Green Technologies and Environmental Productivity: A Cross-sectoral Analysis of Direct and Indirect Effects in Italian Regions. Ecol. Econ. 2017, 132, 1–13. [Google Scholar] [CrossRef]
  44. Oyedeji, S.; Seffah, A.; Penzenstadler, B. A Catalogue Supporting Software Sustainability Design. Sustainability 2018, 10, 2296. [Google Scholar] [CrossRef]
  45. Venters, C.C.; Jay, C.; Lau, L.M.S.; Griffiths, M.K.; Holmes, V.; Ward, R.R.; Austin, J.; Dibsdale, C.E.; Xu, J. Software Sustainability: The Modern Tower of Babel. In Proceedings of the Third International Workshop on Requirements Engineering for Sustainable Systems, Karlskrona, Sweden, 26 August 2014; Volume 1216, pp. 7–12. [Google Scholar]
  46. Amri, R.; Bellamine Ben Saoud, N. Towards a Generic Sustainable Software Model. In Proceedings of the 4th International Conference on Advances in Computing and Communications, ICACC 2014, Cochin, India, 27–29 August 2014; pp. 231–234. [Google Scholar]
  47. Penzenstadler, B. Sustainability and Requirements: A Manifesto. IEEE Softw. 2015, 32, 90–92. [Google Scholar] [CrossRef]
  48. García-Berna, J.A.; de Gea, J.M.C.; Moros, B.; Fernández-Alemán, J.L.; Nicolás, J.; Toval, A. Surveying the Environmental and Technical Dimensions of Sustainability in Software Development Companies. Appl. Sci. 2018, 8, 2312. [Google Scholar] [CrossRef]
  49. Calero, C.; Piattini, M. Sustainable Computing: Informatics and Systems Puzzling out Software Sustainability. Sustain. Comput. Inform. Syst. 2017, 16, 117–124. [Google Scholar]
  50. Ferronato, N.; Torretta, V. Waste Mismanagement in Developing Countries: A Review of Global Issues. Int. J. Environ. Res. Public Health 2019, 16, 1060. [Google Scholar] [CrossRef] [PubMed]
  51. Hossain, S.; Sarkar, A.T.; Rafie, S.A.A.; Rahat, S.H. Waste Management Models (WMM) and Their Application to Sustainable Waste Management in a Mega City like Dhaka. In Proceedings of the 4th International Conference on Solid Waste Management in the Developing Countries, Khulna, Bangladesh, 15–17 February 2015; Volume 20, pp. 1–10. [Google Scholar]
  52. Santhiapillai, F.P.; Ratnayake, R.M.C. Identifying and Defining Knowledge-work Waste in Product Development: A Case Study on Lean Maturity Assessment. In Proceedings of the 2018 IEEE Conference on Industrial Engineering and Engineering Management, Bangkok, Thailand, 16–19 December 2018; pp. 834–838. [Google Scholar]
  53. Khan, A.H.; López-Maldonado, E.A.; Khan, N.A.; Villarreal-Gómez, L.J. Current Solid Waste Management Strategies and Energy Recovery in Developing Countries—State of Art Review. Chemosphere 2022, 291, 133088. [Google Scholar] [CrossRef] [PubMed]
  54. Dajadian, S.A.; Koch, D.C. Waste Management Models and Their Applications on Construction Sites. Int. J. Constr. Eng. Manag. 2014, 3, 91–98. [Google Scholar]
  55. Al-Baik, O.; Miller, J. Waste Identification and Elimination in Information Technology Organizations. Empir. Softw. Eng. 2014, 19, 2019–2061. [Google Scholar] [CrossRef]
  56. Burger, C.; Kalverkamp, M.; Pehlken, A. Decision Making and Software Solutions with Regard to Waste Management. J. Clean. Prod. 2018, 205, 210–225. [Google Scholar] [CrossRef]
  57. Ebert, C.; Abrahamsson, P.; Oza, N. Lean Software Development. IEEE Softw. 2012, 29, 22–25. [Google Scholar] [CrossRef]
  58. Yadav, R.K.; Mittal, M.L.; Jain, R. Lean Practices in Software Development Projects: A Literature Review. In Proceedings of the AIP Conference 1st International Conference On Advances In Mechanical Engineering And Nanotechnology (ICAMEN 2019), Jaipur, India, 8–9 March 2019; Volume 2148, p. 030044. [Google Scholar]
  59. Julião, J.; Gaspar, M.C. Lean Thinking in Service Digital Transformation. Int. J. Lean Six Sigma 2020, 12, 784–799. [Google Scholar] [CrossRef]
  60. Sedano, T.; Ralph, P.; Peraire, C. Removing Software Development Waste to Improve Productivity. In Rethinking Productivity in Software Engineering; Apress: Berkeley, CA, USA, 2019; pp. 221–240. [Google Scholar]
  61. Sedano, T.; Ralph, P.; Peraire, C. Software Development Waste. In Proceedings of the International Conference on Software Engineering Software Engineering in Practice Track (ICSE SEIP), Buenos Aires, Argentina, 2–28 May 2017; pp. 130–140. [Google Scholar]
  62. Islam, M.A.; Aldaihani, F.M.F. Justification for Adopting Qualitative Research Method, Research Approaches, Sampling Strategy, Sample Size, Interview Method, Saturation, and Data Analysis. J. Int. Bus. Manag. 2021, 5, 1–11. [Google Scholar]
  63. Galanis, P. Methods of Data Collection in Qualitative Research. Arch. Hell. Med. 2018, 35, 268–277. [Google Scholar]
  64. Ibrahim, S.R.A.; Yahaya, J.; Salehudin, H.; Deraman, A. The Development of Green Software Process Model: A Qualitative Design and Pilot Study. Int. J. Adv. Comput. Sci. Appl. 2021, 12, 589–598. [Google Scholar]
  65. Aspers, P.; Corte, U. What is Qualitative in Qualitative Research. Qual. Sociol. 2019, 42, 139–160. [Google Scholar] [CrossRef]
  66. Hennink, M.; Kaiser, B.N. Sample Sizes for Saturation in Qualitative Research: A Systematic Review of Empirical Tests. Soc. Sci. Med. 2022, 292, 114523. [Google Scholar] [CrossRef]
  67. Onwuegbuzie, A.J.; Leech, N.L.; Collins, K.M.T. Qualitative Analysis Techniques for The Review of the Literature. Qual. Rep. 2012, 17, 1–28. [Google Scholar] [CrossRef]
  68. Lochmiller, C.R. Conducting Thematic Analysis with Qualitative Data. Qual. Rep. 2021, 26, 2029–2044. [Google Scholar] [CrossRef]
  69. Creswell, J.W.; Poth, C.N. Qualitative Inquiry & Research Design; Choosing Among Five Approach, 4th ed.; SAGE Publications, Ltd.: Thousand Oaks, CA, USA, 2018. [Google Scholar]
  70. Kiger, M.E.; Varpio, L. Thematic Analysis of Qualitative Data: AMEE Guide No. 131. Med. Teach. 2020, 42, 846–854. [Google Scholar] [CrossRef]
  71. Guest, G.; Namey, E.E.; Mitchell, M.L. Collecting Qualitative Data: A Field Manual for Applied Research; SAGE Publications, Ltd.: Thousand Oaks, CA, USA, 2017. [Google Scholar]
  72. Amin, N.N.H.M.; Elias, N.F.; Abdul Wahab, A.N. Identifiying Wastes for the Development of Lean Postal Services. In Proceedings of the International Conference on Electrical Engineering and Informatics, Kuala Terengganu, Malaysia, 12–13 October 2021. [Google Scholar] [CrossRef]
  73. Ebert, C.; Duarte, C.H.C. Software Technology—Digital Transformation. IEEE Softw. 2018, 35, 16–21. [Google Scholar] [CrossRef]
Figure 1. Steps of qualitative research approach.
Figure 1. Steps of qualitative research approach.
Sustainability 14 11180 g001
Table 1. Green Software Process Factors.
Table 1. Green Software Process Factors.
FactorDescription
ResourceConserve and use resources and energy economically
PeopleRole and job satisfaction in software process
OrganisationalThe awareness of green practice at different levels of stakeholder
TechnicalThe ability of the system to be long-lasting with changes in system function
EnvironmentalEnsure the resources used are less or do not affect the environment
TechnologyThe usage of tool support and software technology applied.
Table 2. Informant’s Background.
Table 2. Informant’s Background.
InformantJob DescriptionYears of Working ExperienceSector
ASoftware Developer >15 yearsPublic
BExecutive Information Technology >15 yearsPrivate
CSoftware Developer >15 yearsPrivate
DHead of Software developer >10 yearsPrivate
EExecutive Information Technology>20 yearsPublic
FExecutive Information Technology>15 yearsPublic
GHead of Software developer >10 yearsPrivate
HExecutive Information Technology>15 yearsPublic
Table 3. Software development model practices.
Table 3. Software development model practices.
Informants
ABCDEFGHFreq.
Waterfall 5
Prototype 3
Agile 5
RAD 2
Table 4. Compliance with a process standard.
Table 4. Compliance with a process standard.
Informants
ABCDEFGHFreq.
The basic process of development 5
Software development standards document
ISO standard 2
Organisation guideline 2
Table 5. Implementation of green software practices.
Table 5. Implementation of green software practices.
Informants
ABCDEFGHFreq.
Indirect implementation of green practices 3
No specific guidelines on green practices 3
Table 6. Green software process practices (in the requirement phase).
Table 6. Green software process practices (in the requirement phase).
Measurement/MetricInformants
ABCDEFGHFreq.
Best practice
Software development guidelines and procedures 2
Brainstorming/Discussion 1
Two-way understanding (developer and user) 3
Complete Documentation (URS, SRS) 5
Prototype demonstration 2
Continuous progress 1
Green practices
Saving (time, transportation, meeting space) 2
Video conferencing 3
Time efficiency 1
Softcopy document 4
Shared document 2
Software technology
Software development tool (Confluence, UML)
Table 7. Green software process practices (in the design phase).
Table 7. Green software process practices (in the design phase).
Measurement/MetricInformants
ABCDEFGHFreq.
Best practices
Software Design Document (SDD) 3
Database design 2
Use of appropriate fonts and colours 2
Use of tabs for extensive paging 3
Green practices
License cost open-source (GNU/GPL) 1
Open-source software 1
Proper layout interface 1
Paper reduction 1
Flexibility design 2
Software technology
Software development tool (Figma, draw.io, Ms. Visio) 1
Table 8. Green software process practices (in the implementation phase).
Table 8. Green software process practices (in the implementation phase).
Measurement/MetricInformants
ABCDEFGHFreq.
Best practices
Simple programming with object-oriented 4
Software security 4
API requirements for integration 2
Sharing expertise 2
Green practices
Optimise coding 1
Versioning code 3
Inheritance object-oriented programming 2
Software technology
Open-source software (PHP, MySQL, Linux) 5
Framework technology (Laravel, Zend, Joomla, CodeIgniter) 3
Table 9. Green software process practices (Testing phase).
Table 9. Green software process practices (Testing phase).
Measurement/MetricInformants
ABCDEFGHFreq.
Best practices
User Acceptance Testing (UAT) 5
Final Acceptance Testing (FAT) 3
User Feedback 3
Change requests during the testing 2
Errors during testing 4
Green practices
Remote system check 1
Software technology
Software development tool (JMeter, Penetration test) 2
Table 10. Software waste in the development process.
Table 10. Software waste in the development process.
Software Process Waste (Items)Informants
ABCDEFGHFreq.
Requirementphase
Building wrong feature
- The developed software is not used
2
Rework
- Re-discussion
- Not correctly identifying user’s needs
5
Unnecessary complex work
- URS document is too complex
1
Extraneous cognitive load
- User demand without consideration
2
Waiting
- Document the requirements of the user
1
Delay
- Running out of time
2
Ineffective communication
- Misunderstanding
- Different understandings
4
Implementationphase
Rework
- Rewrite the coding
1
Extraneous cognitive load
Additional work other than development work
1
Knowledge loss
No expertise
- Take over the work of the programmer
3
Testingphase
Waiting
- Waiting for user testing feedback
4
Table 11. The solution of software process waste.
Table 11. The solution of software process waste.
Software Process Waste (Solution)Informants
ABCDEFGHFreq.
Implementation of development best practices 5
Efficient implementation of SOPs 1
Provide complete development documents 1
Table 12. Green factor (Resource) and measurements.
Table 12. Green factor (Resource) and measurements.
Measurement/MetricInformants
ABCDEFGHFreq.
Cost reduction
Development strategy and planning 2
Human resource expertise 1
Use of open-source technology 2
Computer and ICT tool usage
ICT hardware guideline 2
Virtual hardware (virtual machine) 5
Sharing network (printer) 5
Paper usage
Reduction or paperless (softcopy, email)8
3R practices
Reduce (source codes, paper, workforce (process automation)) 5
Recycle (design, source code) 3
Reuse (source code, prototype, function) 7
Cloud computing
Computing technology (Google Drive, Dropbox)8
Table 13. Green factor (People) and measurements.
Table 13. Green factor (People) and measurements.
Measurement/MetricInformants
ABCDEFGHFreq.
Human capital development
Human resource activities (training, workshop, conference)8
Human resource target (skill, knowledge, quality) 5
The health of software developers
Mental and physical health 3
Workplace environment 3
Role of the software development group
The positive attitude of the team8
Work satisfaction
Work pleasure8
Award for work 4
Green practices among software developers
3R Practices (Reuse, Reduce, Recycle) 2
Cloud storage
Use of software technology 4
Electricity saving 2
Sharing knowledge 2
Paper savings 3
Software developer expertise 2
Impact of software development 3
Table 14. Green factor (Organisational) and measurements.
Table 14. Green factor (Organisational) and measurements.
Measurement/MetricInformants
ABCDEFGHFreq.
Application of green practices
The precise direction of the organisation. 5
Encourage systematic work practices. 5
Manageable and efficient development work. 4
Green practices awareness
Software development activities (compliance with standards) 5
Stakeholders in software development
Stakeholder involvement8
Investment through developed software
Long-term investment in software 5
Long-term planning for software 4
Sharing knowledge
Information (resource, source code, design, artefact system) 3
Table 15. Green factor (Technical) and measurement.
Table 15. Green factor (Technical) and measurement.
Measurement/MetricInformants
ABCDEFGHFreq.
The ability of the software to recover from failure
Error recovery8
Requirement changes in software
Flexibility8
Conditional changes
Software capabilities change (policy changes and management) 6
Additions and modifications to software functions
Ability to add & modify functions8
The operating of software
The ability of the software to operate in maintenance and upgrades.8
Hardware, operating system, or support system changes
Integrate adaptation 7
Integrate limitation 4
Table 16. Green factor (Environmental) and measurement.
Table 16. Green factor (Environmental) and measurement.
Measurement/MetricInformants
ABCDEFGHFreq.
Use of digital platforms
Digital platform (Zoom, Google Meet, Webex, MS Team)8
Environmental greenery
Environmental support8
E-waste principles and regulations
E-waste implementation 4
E-waste management 4
Implementation of IT activities in the environment
IT-friendly8
Table 17. The other green factors and measurements for the software process.
Table 17. The other green factors and measurements for the software process.
Informants
ABCDEFGHFreq.
Green factor and measurement
Politic 1
Technology 1
Culture 3
None 3
Table 18. Green factor (Technology) and measurement.
Table 18. Green factor (Technology) and measurement.
Measurement/MetricInformants
ABCDEFGHFreq.
Software tool
Programming language 5
Development tool 5
Cloud computing
Data storage8
Repository hosting services8
Intelligent devices
Communication media (WhatsApp, Telegram) 6
Table 19. Theme Analysis Based on Group, Measurement, and Metric.
Table 19. Theme Analysis Based on Group, Measurement, and Metric.
No.GroupMeasurementsMetrics
Theme 1Best practices of software process
  • Software development model
  • Compliance with a process standard
  • Green practice implementation
Green software process practices (requirement phase)1. Best practices
  • Software development guidelines and procedures
  • Brainstorming/Discussion
  • Two-way understanding (developer and user)
  • Complete Documentation (URS, SRS)
  • Prototype demonstration
  • Continuous progress
2. Green practices
  • Saving (time, transportation, meeting space)
  • Video conferencing
  • Time efficiency
  • Softcopy document
  • Shared document
3. Software technology
  • Software development tool
Green software process practices (design phase)1. Best practices
  • Software Design Document (SDD)
  • Database design
  • Use of appropriate fonts and colours
  • Use of tabs for extensive paging
2. Green practices
  • License cost open-source (GNU/GPL)
  • Open-source software
  • Proper layout interface
  • Paper reduction
  • Flexibility design
3. Software technology
  • Software development tool
iii. Green software process practices (implementation phase)1. Best practices
  • Simple programming with object-oriented
  • Software security
  • API requirements for integration
  • Sharing expertise
2. Green practices
  • Optimize coding
  • Versioning code
  • Inheritance of object-oriented programming
3. Software technology
  • Open-source software
  • Framework technology
Green software process practices (testing phase)1. Best practices
  • User Acceptance Testing (UAT)
  • Final Acceptance Testing (FAT)
  • User feedback
  • Change requests during the testing
  • Errors during testing
2. Green practices
  • Remote system check
3. Software technology
  • Software development tool
Theme 2Software process waste
  • Building the wrong feature
  • Rework
  • Unnecessarily complex solutions
  • Extraneous cognitive load
  • Psychological distress
  • Waiting
  • Knowledge loss
  • Ineffective communication
  • Delay
Theme 3Green factors1. Resource
  • Cost reduction
  • Computer and ICT tool usage
  • Paper usage
  • 3R practices
  • Cloud computing
2. People
  • Human capital development
  • The health of software developers
  • Role of the software development group
  • Work satisfaction
  • Green practices among software developers
3. Organisational
  • Application of green practices
  • Green practices awareness
  • Stakeholders in software development
  • Investment through developed software
  • Sharing knowledge
4. Technical
  • The ability of the software to recover from failure
  • Requirement changes in software
  • Conditional changes
  • Additions and modifications to system functions
  • The operating of software
  • Hardware, operating system, or support system changes
5. Environmental
  • Use of digital platforms
  • Environmental greenery
  • E-waste principles and regulations
  • Implementation of IT activities in the environment
6. Technology
  • Software development tool
  • Cloud computing
  • Intelligent devices
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Ahmad Ibrahim, S.R.; Yahaya, J.; Sallehudin, H. Green Software Process Factors: A Qualitative Study. Sustainability 2022, 14, 11180. https://doi.org/10.3390/su141811180

AMA Style

Ahmad Ibrahim SR, Yahaya J, Sallehudin H. Green Software Process Factors: A Qualitative Study. Sustainability. 2022; 14(18):11180. https://doi.org/10.3390/su141811180

Chicago/Turabian Style

Ahmad Ibrahim, Siti Rohana, Jamaiah Yahaya, and Hasimi Sallehudin. 2022. "Green Software Process Factors: A Qualitative Study" Sustainability 14, no. 18: 11180. https://doi.org/10.3390/su141811180

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop