The Development of Green Software Process Model

Software process and development are the fundamental activities in software engineering. Increasing software usage either develops in-house or outsourcing requires improving the software process accordingly to minimise the adverse effects on the environment. The resources and power consumption controlled by hardware affected the software to move the process that causes high emission of power and energy. Thus, most of the existing work on software development is aimed at the efficiency of hardware operation through CPU, memory, and processor. Although sustainability is still initial in software engineering, the green software process can be achieved through sustainable development that concerns the preservation of the environment. However, there is still a lack of study and effort in the software process that emphasises sustainability perspectives and software waste elimination. Therefore, this study proposes the green factors for the software process that consider the sustainability elements and waste reduction during development. The green factors are the benchmark to measure a sustainable and green software process. Besides, this paper also presents the qualitative interview design and pilot study. The pilot study analysis has demonstrated the reliability of the interview protocol. Therefore, the actual interview and data analysis are currently in progress. Keywords—Software process; green factor; waste reduction; qualitative instrument; green software process model


I. INTRODUCTION
Software was becoming crucial and became part of our life today. The development of software systems needs to reflect on sustainability and environmental impact [1]. Software is vital to do work and tasks more efficiently. Software causes hardware activity, and it is responsible for the increment of energy consumption in that way. It has become the central aspect of daily life, and most people cannot imagine that future development without software.
Electricity consumption in the ICT sector is expected to increase by 60% from 2007 to 2020. Since ICT contributes to 2% of carbon dioxide emissions from the electronics, household, ICT services, and equipment sector, an estimated 8% is from electricity consumption [1]. Systematic methods for improving the organisation's environmental sustainability provided several guidelines such as the Eco-Management and Audit (EMAS) Scheme, the ISO 14001 standard, and the Environmental Management System (EMS). Meanwhile, large organisations need to publish their organisation's corporate social reports for employee compliance [2].
Generally, sustainability means the beginning to nurture the future generation aligned with the present and compliance with the own needs [3]. Sustainability in the software system is a concept of recycling to protect the environment as excessive waste production can harm the environment's wellbeing [4]. In addition, sustainability is a resource to support life and the environment that requires the courage of individuals or communities to be maintained for a long time [5]. In engineering, it needs to demonstrate efforts to improve the environment, social and economic. Therefore, sustainable software development is for the system requirements required [6] to ensure the sustainability of nature.
Today, "going green" is an essential part of business practices worldwide related to the environment [7]. Several factors that determine the greenness of the software process have been considered that take into account the sustainability aspect such as resources and products [8] [9], people [7][10], organisation [11] [12], technical [13] [14], and environmental [15] [16].To create every phase of the software process sustainable, it must go through the green strategy, guideline, and green metric that ultimately reflect the greenness of the entire stage [4].
Over the past three years, green software engineering has grown and evolved due to concerns over the software, industry, and consumers' development. However, it focuses on the fundamental aspects of energy efficiency and power consumption, affecting the environment [17]. Many studies discuss green software development that focuses on hardware perspective on energy efficiency and power consumption [18]. Green software development as a whole, the software process methodology should be considering investigating their requirement to create sustainable and green manner.
Green software engineering goals are to minimise the negative effect on the environment [1] [19] and produce sustainable software products. Previous studies [20][21][22][23] emphasise green hardware in energy efficiency, power consumption, waste reduction, and disposal. However, it seems to lack studies on green software even though the impacts are direct to hardware [17], but the software also indirectly impacts. The initiatives of green software are to save resources such as energy, power, and natural resources to preserve the stability of the ecosystem [24]. Nowadays, the software is no longer viewed in terms of productivity but needs to focus on scalability, usability, and quality [25] with recent advances in-demand new technology. www.ijacsa.thesai.org Therefore, this research is essential to ensure the software development process complies with the green requirement as needed by the community and industry in general. Currently, the green development issues are not being focused on comprehensively, especially from a sustainability perspective.
The article organisation is as follows. In Section 2, we discuss the background study and related works of the green software process. While in Section 3, the research method and activities are presented. It discusses the approach of carrying out this research. In Section 4, we will discuss the qualitative design and pilot analysis, and lastly, we will conclude this paper with a conclusion and future work.

II. RELATED WORK
The software process is a work in progress requiring changes to the user's needs to use the software effectively. In addition, the target of the software process is to improve the job done and used by various companies facing the inevitable difficulties and uncertainties of the process software. Some aspects of software development require the user's attention; the product developed should reach the customer well based on the specified cost and time [26].
Applying green practices as part of the software development process attempts to achieve a green software process. It means to practice for the software is considering the environmental aspects. In addition, the software process involves the development, operation, and maintenance that is carried out in a green approach and producing green software processes. Besides, the green software process can create less waste throughout the development [17,22].
The transition to the green software process requires careful study as it involves several critical activities in the software development process. The implementation of green initiatives can be done in phases, observing how the software works without cost during the software development process. Research on the transition and development of green software processes is to improve the practices of the process. There are ways to develop green software processes that are to implement green software process practices. Implementing this method supports reducing waste during software development, such as unproductive workers, power savings, and resources.

A. Issues and Challenges in Green Software Process
Information and Communication Technology (ICT), particularly in software development, remains significant and increasingly important even with the emergent of new areas such as big data, cloud computing, Cyber-Physical Systems (CPS), and IoT [25]. Nevertheless, software development still has issues and challenges maintaining relevance and sustainability of the process to ensure the quality of the developed product.
1) Software development process: As described by [27], software development involves a wide range of skills and disciplines, including identifying user needs, values, and features that support the final product. Software development projects have many obstacles and barriers to complete and deliver the project. Several factors come from the organisation environment, team, and user perspective that are not wellprepared according to requirement, budget, and time [28][29]. Most software development projects failed due to higher budgets, overtime, and low customer satisfaction. According to [25], the causes of failures are time, finances, staffing, and management.
Various software projects are often ambiguous, where the goals and objectives are unclear due to the lack of experience from the users. Software project development requires a lot of communication and the time taken to complete it successfully. As developers, they are intelligent users who do not use specialists to translate their needs into software engineering. In addition, developers should engage users in software development to help them understand the needs and delivery of project functions well. Users involvement [26], from the beginning of software development to the end, is vital as this is one of the criteria for the success of a project.
Generally, the software process has five main phases: requirement specification, design, implementation, testing, and maintenance. Some activities in this phase may cause problems and challenges, especially in fulfilling current demands such as reducing paper use, e-waste generation, and controlling carbon footprint and energy efficiency.
Shenoy and Eeratta [22] suggested creating sustainable and green software processes without adversely affecting global economic, environmental, social, and individual wellbeing. At the same time, there are five primary and fundamental activities associated with the development process and will be discussed in the following subsections: a) Requirement Specification Phase: The requirement specification is an important activity in software development. It is conducted with the specified team by getting information from the users. The software requirements specification (SRS) is delivered as the outcome of requirement gathering and analysis activity [30]. A good software requirement specification aims to satisfy the needs of its customers. Based on [31], some possible green analysis criteria include viability, requirements, and tests.
Many problems exist in requirement analysis, such as lack of user input, incomplete and frequently changing requirements, and specifications. The literature suggested coming across the software regarding its lifespan and durability [22]. In addition, the collection of requirement specifications is required through electronic methods to save resources such as paper and preserve the environment. Furthermore, as [30,32] suggested, software should adopt new hardware for energy efficiency and coping with power down during its operation.
b) Design Phase: The functional and technical requirements gathered during the requirement stage create the design document and artefact. During the design phase, the SRS is referred to as the primary reference for product architecture.
This documentation is supportive of the software development process. Therefore, the design team needs to cooperate with the software developer on this document www.ijacsa.thesai.org before proceeding to the next phase. All stakeholders must review the Document Design Specification (DDS), and the best approach is selected based on budget, time constraints, risk, robustness, and design method [30]. Reference [31] suggested that performance, reusability, and documentation are among the green analysis criteria in the green process. Design reuse and virtual design are also other factors defined in the green process by [33]. Furthermore, previous researchers [22,33] argue that the initial design should be moderate to avoid frequent design changes. The design should not be too large and lead towards practices that protect the resources.
c) Implementation Phase: Implementation and coding are the subsequent activities in the software development process. The source code is generated based on a detailed and well-organised design to avoid problems during the development. This phase involves source code written in specific programming languages based on the developer's preference and the project approach.
The implementation phase is an emphasis on programming. There are several things to avoid, which are the use of duplicate code, custom hardware APIs, and resourceintensive APIs. It encouraged the user to utilise the high resources on tap systems that need to process programming complexity. In addition, paired programming, code reuse, and automated code generation support minimising and saving energy consumption [22].
The guidelines in the design and implementation phase can support the sustainability of the environment if the programmer needs to be proficient in writing algorithms by summarising design code and data structure according to the hardware architecture, programming languages, and applications. Programmers must produce practical algorithms by minimising the number of program lines to reduce their execution later. As mentioned by [33][34], extending the program code requires energy efficiency and additional work to execute the code. d) Testing Phase: The testing phase relates to the product errors detected and re-analysed until they meet the quality requirements of SRS. There are different types of tests performed by integration system testing. Reference [30] stated that testing aims to ensure that the developed software is free of bugs, faults, or defects and meets all requirements specified during the requirement stage. The specifications are needed to be understood by conducted initial testing at the final stage of requirements. Then, different testers [35] can avoid bias and validate requirements correctly and consistently. The user acceptance test is the last activity in the system testing. The end-users [31] usually are carried out this task to ensure the system meets their needs.
According to [32], the software development team faces time constraints to find errors through testing. Therefore, previous studies [22,30] recommend using automated testing, reusing test cases to determine performance scalability and resource testing. In the testing phase, the program involved improvement of energy efficiency will use energy measuring instruments. The green analysis criteria are functionality and measurement. The functionality refers to all tests explained in the requirements, while the measurement evaluates the suitability of product energy consumption [35] measured and inspected during testing. e) Maintenance Phase: The maintenance phase is associated with software operation and maintenance, which implement the product in the real environment. Software maintenance takes place if issues need to be repaired or improved [36] [37] to ensure the sustainability and quality of the product are maintained and guaranteed.
Any errors and complaints should take through electronic documentation to save time and paper during the maintenance phase. Furthermore, software archaeology, reverse engineering, and software migration are not recommended because these will contribute to the high costs and effort in execution. It is encouraged to manage knowledge among the team member effectively [22] in the development and maintenance phase to ensure a clear understanding of the system. It may reduce cost and efforts in maintenance.
Maintenance costs are high due to understanding the system and the changes that need to be analysed. Some maintenance and development contracts are separate during system development because they are kept by the company and not by the system developer. It makes it difficult for maintenance tasks and increases energy consumption if there are any changes in the system as it needs time to understand the system [34]. It is suggested by [72] that the programmer write the code that is easy and more under regular programming because if any code change is required at any stage, the correction could be done quickly. The maintenance phase could be green by including the matrices like fault tolerance, failure management, and disposal stage.
Furthermore, to reduce costs and improve energy efficiency, managers must provide training or courses to the staff to understand the old and new programming languages to speed up the maintenance process. Environmental sustainability can be supported at the implementation stage, in which program development is written for good and clear understanding by programmers. If any changes are required, the program can be easily understood, and the internal maintenance work is completed quickly, improves energy efficiency [33,71], quality and long life of the product [38].
2) Software waste: According to [39], waste management is one of the critical aspects of preserving the environment. Waste is deemed by [40] as irrelevant and has no value to production. Solid waste produces waste in the manufacturing [40] and construction [41] industries. In general, software waste is used by resources without delivering any advantage. It may contain characteristics, objects, conditions, processes, and actions in project elements. In the software domain, wastes act as friction and occur throughout the development process [42] until they produce the end of the product. The wastes need to be reduced and thus will increase efficiency in development even though the awareness and identification of waste are critical during production. www.ijacsa.thesai.org Software waste often has a problem related [43] to scope, unclear requirements, specification and design, unnecessary features and technical, team conflict, and unorganised code programming during the development process. Many researchers have been investigated software waste during the development process [27,[44][45][46]. These wastes are identified, such as building the wrong feature or product, mismanaging the backlog, rework, unnecessarily complex solutions, extraneous cognitive load, psychological distress, waiting/multitasking, knowledge loss, and ineffective communication in software development.
Sedano et al. [47] suggested the way to improve software engineering productivity by proposing a theory of sustainable software development that incorporates sustainability toward the principles, policies and practices into the knowledge of extreme programming. These included encouraging knowledge sharing, developing a positive attitude toward the team disruption, and considering code quality. Besides that, the policies include team code ownership, a standard schedule, and avoiding technical debt. The developers can apply good practices like test-driven development, continuous refactoring, pair programming, overlapping pair rotation, and knowledge pollination [47].
3) Green software process: Previously, the general issues in the software development process are related to time constraints, high costs, bugs and errors. But nowadays, [48] discovers that more known problems are related to people, resource and development tasks coordination and tracking.
As mentioned earlier, the software development process in a suitable environment manner and practices will lead and enhance the efficiency of the development. Sound environmental practices attempt to improve the activities that need to be implemented through software process methodology. The method of green software refers to the use of resources to meet the needs of the software with regards to the economic, social, and environmental aspects and effects. Software sustainability is considered as the ability of the software to have a longer life. In addition, the production of little waste during software development and operation [49] is one of the meanings of green software.
Sustainability and green are closely related in software engineering to ensure the long-lasting of the software in their environment. The sustainable design of the software is essential to fulfilling the user's needs and current demands.
Sustainable software refines user needs in terms of economy, society, and environment [50] in the whole life cycle phase. It concerns ensuring the long-lasting software to design, develop and deploy. From a software perspective, green is aimed to reduce the carbon footprint and negative impacts of software based on economy, society, and environment [31] during the development process. The software engages with the life cycle in green software engineering and sustainable criteria. Furthermore, Agarwal, Nath, and Chowdhury [32] proposed integrating green software development life cycle and sustainability criteria. Sustainability supports these three main dimensions, namely economic, social and environmental. There are two different views when it comes to software. The first is sustainable software that prioritises the principles, practices, and processes that contribute to the durability of technical sustainability software. Next, [51] argues that software systems need to support other dimensions of sustainability and solve problems external to software systems. The second is software engineering for sustainability (SE4S). Both of these views are considered important as the centre of software sustainability development [53], and they need to support the five primary dimensions of economic, social, environmental, individual, and technical [52].
Generally, the economic dimension refers to capital assets or values involving capital investment, income, wealth, and profit. In contrast, the social element encompasses society, which consists of organisations and groups of people engaged in democracy, justice, employment, and social equality. The environmental dimension relates to ecosystems, climate, pollution, waste, and natural resources that can long-term impact humans and biological systems. The individual dimensions include mental and physical well-being, selfesteem, and the freedom to view human well-being as an individual. The latter is the technical dimension which involves system maintenance, infrastructure, the evolution of changing environmental conditions, and the long-term concept of system information.

B. Green Factors
The green factor is the benchmark used to assess the greenness of the software development process based on a certain standard. It should be used to ensure greenness in the software process and be applicable for future generations.
A literature study has identified green resources, people, organisational, technical, and environmental factors. From the software perspective, resource means the natural resources that must be protected from human needs and wastes. For instance, cloud computing is an alternative way to reduce energy and space in physical conditions. Meanwhile, people refer to improving the quality of human life [54] that reflects emotional health, including behaviour, thought, and action.
Organisational refers to the current need of an organisation includes leadership, employee, and performance [55]. Besides, the technical factor [56] is to cope with changes, quickly adapt to future changes, and the longevity of software systems. The environmental aspect relates to avoiding harm to the environment [57], and thus software should have minimal effects on the background during the development and maintenance process. Table I indicates the green factors and elements in the software process based on previous studies. It shows that the most popular aspects are energy efficiency, resource optimisation, environmental effect, performance, organisational support, employee support, and capacity optimisation associated with the green software process (refer to Table I). www.ijacsa.thesai.org A2 [58] A3 [11] A4 [59] A5 [60] A6 [8] A7 [56] A8 [61] A9 [62] A10 [63] A11 [64] A12 [65] A13 [66] A14 [67] A15 [68]  III. METHOD During the literature study, a list of green software process factors is identified. The factors are broken down into several elements and measurements. They are used to assess the greenness compliance and level of specific software. Fig. 1 presents the flow of this research, which shows the step-bystep activities carry out in this study.
The literature study has revealed five primary green factors: resource, people, organisation, technical and environmental. The qualitative interview is designed and constructed for field expert's or academician's validation of the factors. A pilot study and content validation are carried out before the actual survey is conducted to ensure the reliability of the interview protocol. After completing the pilot study, the actual empirical study through the interview approach will be carried out. The informants are the developers, practitioners, or project managers of in-house software development companies and agencies in the public sector, which is the scope of this study.
Then, the next activity will be the data analysis. This activity will be carried out after the interview series have been completed. The data analysis will be conducted using Atlas.ti 8 software to determine the code and thematic of the interview finding. Another important task during the analysis is triangulation. Triangulation refers to measuring the reliability www.ijacsa.thesai.org of the study and the extent to which it is accurate for evaluating the concept or idea. One way to conduct the triangulation is through obtaining confirmation and approval from the interviewees on the findings.
As shown in Fig. 1, this research is conducted in four main phases. The following sub-sections explain each of the phases in detail.

A. Phase 1: Theoretical Study
The first phase is the theoretical study investigating the integration between sustainability elements and waste management for software processes. The references consist of the current journals, books, and proceedings that are being studied and investigated. This phase aims to identify the types of waste and the green factors that influence the software process. It also examines issues and problems concerns to green software process from literature. The result of this phase is the theoretical framework for the Green Software Process Assessment based on Sustainability and Waste Elements. The author in [17] shows the theoretical framework.

B. Phase 2: Empirical Study
In this phase, interviews will be conducted involving software practitioners to get real input from the industry. The informants of this study will be identified and selected from software practitioners, project leaders, information technology (IT) officers, software engineers and related IT positions. They must involve in the software development process with experience and knowledge in the field of software development. The selection of informants is based on the purposive sampling technique and aims to the organisations involved in in-house software development.
This paper presents the activity in this empirical study phase. In this phase, the interview questions are designed and constructed. The validity of the content is determined through expert validation. Furthermore, we conducted a pilot study to ensure the reliability of the interview protocol. The pilot analysis is carried out and presented in this paper as the preliminary findings. The next step in this phase will be the actual interview sessions with the identified informants. This phase will reveal and verify the influential factors in the green and sustainability software process and the current green practices in the actual software industry. In addition, software wastes formed during the software process's development and sustainability measurements will also be identified at the end of this phase.

C. Phase 3: Development of Green Software Process (Green SoftPro) Model
The third phase of this study is developing the proposed green software process model based on sustainability and waste elements. The proposed model also integrates the concepts of software waste based on inputs from theory and empirical findings. The model will identify and embed the relationship between green factors and sustainability measures that influence the greenness of software processes. In addition, the wastes specified at each phase of the software process and in line with the sustainability requirements will be considered during the model construction. The outcome of this phase is a Green Software Process (Green SoftPro) model.

D. Phase 4: Model Validation
The last phase of this research is to validate the Green SoftPro model, and the validation involves two steps. The first step is the verification by experts. The experts from the software developers and practitioners will be invited to review and validate the Green SoftPro model, which consists of green factors, elements and measurements. Further, the validation will be conducted through a case study approach. At least two software companies or government agencies will be invited to participate in the case study. The Green SoftPro model will be applied and will be validated in the actual software-industrial environment. (IJACSA) International Journal of Advanced Computer Science and Applications, Vol. 12, No. 8, 2021 595 | P a g e www.ijacsa.thesai.org

IV. THE QUALITATIVE STUDY: DESIGN AND PILOT ANALYSIS
This study uses the interview method to identify the current practices, issues, and challenges for green and sustainable software processes. This paper focuses on the interview protocol design and pilot study.

A. Design and Development of Interview Protocol
The interview protocol is designed based on the literature review and the proposed theoretical framework (refer to [17]). The protocol consists of four main parts, Part 1: Demographics Background, Part 2: The Practice of Green Software Process, Part 3: Waste in Software Process, and Part 4: Green Factor and Measurement for Software Process. Table II shows the items of part 1, part 2 and part 3, which are designed in the interview protocol. And Table III shows the items associated with part 4 of the protocol that consists of the green factor and measurement. The factors are resources, people, organisational, technical and environmental.

B. Pilot Study
In qualitative research, the purpose of a pilot study is to validate and reliable the interview instruments. The pilot study was conducted in three selected organisations. The interview session was performed in 2020, and each session took about one hour during a face-to-face interview. Each of the interview sessions was recorded with permission and transcribed were analysed using transcription software. All comments and recommendations were recorded and taken into consideration.
The interview sessions in this pilot study were carried out with three software or IT experts. The selection criteria of experts are based on expertise in software engineering and, more specifically, in the in-house software development process. The duration of working experience was also considered in selection criteria where they have working experience of at least five years in the industry. The experts' working experience is based on the years suggested by [69][70]. Table IV shows the expert's background who was involved in this interview's session.  V. RESULT AND DISCUSSION Based on the pilot analysis, the experts recommended that some items in the protocol be improved because they believed that they were not related to the green software process. Some of the items required correction for clarification. Other than that, the expert agreed with the defined content in the protocol.
Three interview scripts were translated and analysed. The findings consist of the three main issues: current issues in the software development process, factors and elements of the green software process, and elements of software waste.

A. Current Practice in Software Process Development
Current practice in software development is an essential part of ensuring the process runs smoothly and correctly. The findings of this pilot study discover that software practitioners apply sustainability practices indirectly in the software development process; for instance, reducing paper usage, writing more effective programming code, and using online data storage space. www.ijacsa.thesai.org

B. Factors and Elements of Green Software Process
The pilot findings show that the green software measurements can be identified as effectiveness, cost reduction, job creation, competitiveness, usability, participation, ecosystem, resource, protection, human health, change, adaptation, endurance, satisfaction, happiness, and skills. The pilot informants propose and agree that these elements are appropriate and applicable for measuring the green software process. Table V signifies the finding of new green factors and their elements through the pilot study. Based on this pilot study has revealed a further aspect, namely technology. The technology factor consists of two separate elements, namely IoT (Internet of Things) and IR 4.0 (Industrial Revolution), that relate to smartphones and automation technology in future software development.

C. Elements of Software Waste
The green process can be achieved through the elimination of waste. Thus, this pilot study has identified software wastes and is consistent with the literature [27,44]; for instance, over-requirement, design, ineffective communication, rework, lack of knowledge, and expertise. These elements of wastes may affect the software development process in terms of budget, time constraint, and duration of completion.
During the pilot study, it discovers that most informants are not familiar with the meaning of software waste. After being explained further, they admit that particular wastes during the software development process include rework, loss of knowledge, and miscommunication. However, all these problems can be solved well and effectively in the end-stage. Furthermore, the pilot study proves the reliability of the protocol and the practicality of the interview instrument. The content of the interview protocol was validated and verified. The pilot study aims to test the questions' content, identify ambiguous questions, and test responses from small selected respondents. At the same time, findings from the pilot study are used to enhance the instrument via improving the questions to be more coherent or readable, accurate, presentable, justifiable, and relevant. Moreover, the time to answer the questionnaire was also identified in preparation for the actual interview session.

VI. CONCLUSION AND FUTURE WORK
This paper has presented the literature review on the green software process, the qualitative interview design, and the pilot findings. The literature study has revealed five primary green factors: resource, people, organisation, technical and environmental. The interview protocol was designed and constructed as discussed in this paper. Later, the pilot study was conducted to test the reliability and practicality of the interview protocol. The pilot analysis discovered the initial elements associated with the green software process. The current green practices in the software development process were identified through this pilot study.
Furthermore, it also discovers the influential green factors of the software process. In addition, this study reveals the relevant software wastes which the pilot informants have identified. For future work, the actual interview sessions are to be conducted until the information obtained is saturated. The data analysis will be performed to finalise the factors, elements, and measurements that will become the Green SoftPro model development input.