Nothing Special   »   [go: up one dir, main page]

Academia.eduAcademia.edu

Proposal To Cope Change Resistance Using DevOps

2020, Proposal To Cope Change Resistance Using DevOps

This paper is written to support a phenomenon in which development and operations (DevOps) teams work together to deliver software on a continuous pace, eliminating the walls of confusion between stakeholders, and facilitating the business to seize and cope up with existing and constantly emerging opportunities. The main processes are development, quality assurance, pre-operational and operational. There are many tools involved in the implementation of DevOps such as Git, Jenkins, Chef, Vegrant, Docker and Hadoop. Due to the technical expertise in variety of tools, DevOps faces many factors that hinder its adoption such as change in the working norms of traditional teams, team structure and cost. The most significant factor is resistance to change by the traditional teams. In this paper, we will identify the possible change-resistant personnel, the reasons behind change-resistant and a solution is proposed to overcome change-resistant. A survey is used as a research design to validate the proposed solution. The results of survey support the proposed solution that it will help the software companies to cope the change resistance while adopting DevOps.

Ahmed Osama Mansour et al, International Journal of Computer Science and Mobile Computing, Vol.9 Issue.9, September- 2020, pg. 43-49 Available Online at www.ijcsmc.com International Journal of Computer Science and Mobile Computing A Monthly Journal of Computer Science and Information Technology ISSN 2320–088X IMPACT FACTOR: 7.056 IJCSMC, Vol. 9, Issue. 9, September 2020, pg.43 – 49 Proposal To Cope Change Resistance Using DevOps Ahmed Osama Mansour1; M. Rizwan Jameel Qureshi2 ¹Department of Information Technology & King Abdul-Aziz University, Saudi Arabia ²Department of Information Technology & King Abdul-Aziz University, Saudi Arabia 1 aahmedmansour@stu.kau.edu.sa; 2 rmuhammd@kau.edu.sa Abstract— This paper is written to support a phenomenon in which development and operations (DevOps) teams work together to deliver software on a continuous pace, eliminating the walls of confusion between stakeholders, and facilitating the business to seize and cope up with existing and constantly emerging opportunities. The main processes are development, quality assurance, pre-operational and operational. There are many tools involved in the implementation of DevOps such as Git, Jenkins, Chef, Vegrant, Docker and Hadoop. Due to the technical expertise in variety of tools, DevOps faces many factors that hinder its adoption such as change in the working norms of traditional teams, team structure and cost. The most significant factor is resistance to change by the traditional teams. In this paper, we will identify the possible change-resistant personnel, the reasons behind change-resistant and a solution is proposed to overcome change-resistant. A survey is used as a research design to validate the proposed solution. The results of survey support the proposed solution that it will help the software companies to cope the change resistance while adopting DevOps. Keywords— DevOps, resistance to change, agile software engineering, automation, people factor I. INTRODUCTION Agile software engineering is one of the hot areas of research from last several years because it promotes to accept changes quickly and efficiently during software development resulting in several potential benefits such as time saving, cost reduction, less resources and high customer satisfaction. Lean and DevOps are the emerging areas of agile software engineering to adapt it for the development of medium and large size projects. Lean concept is taken from manufacturing industry and it is found extremely compatible with agile Scrum methodology. DevOps is a set of practices that provides significant optimization to the software development (SD) process i.e., starting from the creation of ideas and requirements gathering to actually implementing the hardware to run the application. DevOps optimizes the SD process by automating the collaboration between developers and operations teams to deliver software continuously in short releases with high quality. One of the main tasks is to cope resistance to change while implementing DevOps [1]. Software development teams always hesitate to accept new processes and practices that need extra efforts and time due to anonymous risks of failure. There is always a tension between the development and operations teams because of different opinions and goals such as developers are eager to deliver the new code whereas operations team is more concerned with the © 2020, IJCSMC All Rights Reserved 43 Ahmed Osama Mansour et al, International Journal of Computer Science and Mobile Computing, Vol.9 Issue.9, September- 2020, pg. 43-49 quality [2-3]. In this paper, an attempt is made to identify the problems relevant to adopting DevOps with respect to change resistant. The change resistant problem is addressed by proposing a solution to identify the possible personnel obstacles and provide tips to overcome these challenges. Further paper is arranged as: Section 2 outlines the literature review. Section 3 defines the problem. Section 4 presents the details of the proposed solution. Section 5 validates the proposed solution. II. RELATED WORK There are several advantages of the DevOps process such as it improves communications and collaboration among stakeholders [4]. The factor of improved collaboration between development and operation teams helps to ensure continuous and smooth delivery to clients. DevOps also helps SD companies to deal easily with emerging market's requirements and it cuts short customer's feedbacks cycle. There is not enough effort made in majority of the software companies to implement DevOps adoption strategies. Consequently, DevOps is not being adequately communicated and the desired benefits are not achieved. A study has been conducted to investigate the reasons behind the hindering of DevOps adoption. To identify the DevOps hindering factors, several interviews have been conducted to actively involved DevOps practitioners. Lack of training, risk of losing authority, resistance to change, lack of long term direction from senior management and silo mentality are the main factors hindering the software development companies to implement DevOps. It is concluded from the study that social values has a dominating factor in most of the success stories that are reported about DevOps adoptions [3]. A major criticism, to the study of Kamuto and Langerman [4], is that it does not provide practical evidences to validate. There is a need to generalize the results because the case study was conducted in South Africa. Gupta et al. [5] present their experience of working in a SD project in which distributed teams are involved based in USA, India, and Germany. It is mentioned that the team has successfully established continuous delivery cycle of short releases using DevOps and agile Scrum methodology. There are three main challenges reported to integrate agile and DevOps i.e., how to convert: 1) fixed scope based releases into time boxed release strategies; 2) traditional milestone based execution into value stream based execution and 3) manual processes into automated processes from development to deployment. To address the challenges of integrating DevOps and agile Scrum, there are several recommendations reported in the study of Gupta et al. [5] such as organize seating of developers and operational staff close to improve their collaboration, create a Q-interface, that is a type of mapping documents for common quality documents, in case of distributed teams and automate the process of test, deployment and operation. Software logging plays a critical role to ensure the quality of the deployed software using DevOps [3]. Chen [3] proposes the automated approaches to improve software logging practices. DevOps logging challenges are summarized as follows. According to Chen [3],  “Challenges 1 and 2 are reported on the development side o No existing guidelines on producing high-quality logging code. o Difficulty in maintaining and evolving logging code.  Challenges 3 and 4 are described on the operation side o Limited mechanism for quality feedback. o Heterogeneous and complex telemetry data.” To tackle these challenges, four software repositories are recommended i.e., historical, communication, runtime and bug [3]. Historical repository refers to the source code version control systems like GitHub and SVN. The communication repository will be used for the online communication. The runtime repository is used to store telemetry data generated in various scenarios. The bug repository is used to track the issues related to bugs and project such as JIRA and Bugzilla. For each challenge, a solution is proposed as follows.     Filter and analysis the problems of logging. Estimate the impact of various logging techniques. Measure code coverage via execution logs. Relating telemetry data to fix the problems. It is highly recommended to utilize security practices while using DevOps [4]. A survey is conducted in nine software development organizations, opted DevOps, to conclude the recommendation. It is also reported that automated monitoring activity is beneficial to the security of software developed in a DevOps environment. There are only nine organizations involved while conducting the survey therefore it is hard to generalize the findings [4]. There is also no discussion about the automated activities of DevOps on the quality of resultant software. © 2020, IJCSMC All Rights Reserved 44 Ahmed Osama Mansour et al, International Journal of Computer Science and Mobile Computing, Vol.9 Issue.9, September- 2020, pg. 43-49 In the past few years, an increase in the adaptation of DevOps is observed due to the fact that it improves collaboration between development and operations teams resulting in speedy delivery of high quality software [5]. One of the main technologies, essential to implement DevOps, is the use of infrastructure as code (IaC) scripts such as Puppet [5]. SD organizations use IaC scripts to automate its operations and configuration of infrastructure. IaC scripts can contain defects resulting in dire consequences such as consistency of code in the GitHub. Defect prediction could help software teams to prioritize inspection efforts. Rahman et al. [5] proposed defect prediction model-related metrics to help software practitioners in prioritizing inspection efforts for IaC infrastructure scripts. A process is discussed to identify metrics that characterize defect in IaC scripts using Constructivist Grounded Theory. Eighteen metrics are identified and each of these metrics corresponds to a specific characteristic of defects in IaC scripts. The metrics are categorized into three types i.e., Churn-related metric (CH), IaC-related code metric (CO) and generic metric (GE). There is a further need of a study to validate the eighteen metrics because only three datasets are used. DevOps provides automation to increase the speed of software delivery but there is a great challenge to maintain the momentum of speedy delivery while performing security activities in parallel [6]. A key security enabler is threat modeling acquiring highly skilled individuals. Valani [6] proposes a lightweight threat modeling approach relying on a correlation matrix. The correlation matrix mapped security requirements over application archetypes. Thereupon, the result has been translated and it is claimed that the proposed lightweight threat modeling approach removed many DevOps security bottlenecks. The problem in most of the agile SD companies is that they focus more on the development side rather than the operation side [7]. DevOps is introduced to overcome this problem and it breaks the barrier between developers and operations teams. However, both sides have to pay attention to bridge the communication gap especially in case of distributed teams. An exploratory observational study is conducted in a multinational company opted DevOps. The study is based on the data that is gathered from distributed teams. The development team is located in Australia and the operational team is based in Brazil. Seven main challenges are reported for the successful implementation of DevOps. These challenges are geographical distance, sociocultural distance, temporal distance, communication frequency, direction of communication, modality, and content. The results cannot be considered reliable because these are mainly concluded from the interviews [7]. DevOps is gaining popularity due to its ability to deliver software continuously and ease of adaptation in case of changing requirements. Hussain et al. [8] investigate online job advertisements and interviews to identify key knowledge, capabilities, and skills of DevOps teams. The investigation findings show that “DevOps being adopted as a philosophy whereby responsibilities of individual members are shared across increasingly joint Development and Operations teams”. The investigation is carried out on DevOps jobs in the SD companies of New Zealand with collocated teams therefore it is difficult to generalize the results in other settings. DevOps methodology implementation does require considering security quality standards but the problem appears when SD company is trying to maintain delivery velocity and adhere to security standards [9].The investigation identified that the SD organizations have to adjust their infrastructure according to DevOps methodology before taking its advantage of speedy delivery. In the past few years, many enterprises have adopted continuous integration practice of agile practice in their software delivery lifecycle [10]. It is emerged from last few years that continuous integration practice is not enough to consistently maintain the momentum of delivery cycle. This is a dilemma for the SD companies because the development teams are delivering at a much faster pace than the operational teams are deploying resulting in a gap between both teams. Virmani [10] claims that the DevOps methodology is one of the solutions to bridge the gap between the development and operational teams. The main limitations of related work are shown in Table 1. III. PROBLEM STATEMENT DevOps is one of the emerging technologies opted in the software industry from the last few years due to several potential benefits such as time saving, within budget and high quality products with short release cycles. It is not easy to ascertain the benefits of DevOps implementation as it demands to change the working environment. The working environment needs highly skilled, motivational and synchronized people. The people are reluctant and resistant to change their behaviors and adapt the requirements of DevOps implementation in terms of new roles and responsibilities [11]. The research question is narrated as follows.  How to overcome change resistance to implement DevOps? IV. THE PROPOSED SOLUTION The proposed solution defines two goals to address the change resistant to achieve successful adaptation of DevOps in a SD company to achieve win-win. Goal A- Identify the challenges of change-resistant people. Goal B- Address the challenges of change-resistant people. © 2020, IJCSMC All Rights Reserved 45 Ahmed Osama Mansour et al, International Journal of Computer Science and Mobile Computing, Vol.9 Issue.9, September- 2020, pg. 43-49 A. Identify the challenges of change-resistant people Project manager (PM) is the one of the team members who is resistant and affected the most while implementing the DevOps concept. The reasons behind the resistance of project manager are due to his new responsibilities and required abilities such as clarify the DevOps necessity to all stakeholders, familiar with DevOps techniques and tools and support collaboration between the quality assurance, development and operations teams. DevOps implementation ensures frequent releases in a short span of time whereas the quality assurance (QA) teams require ample time to apply possible test cases in the traditional system development life cycle. The QA teams are also reluctant to implement DevOps due to learning new skills and tools to perform automated testing. The development teams are also resistance to opt DevOps because they need to work along with the operations team and caring about infrastructure issues those are cumbersome to make software operational. The operational teams are also reluctant to be a part of DevOps. This is because they have to coordinate with developers and quality assurance engineers and regularly status reporting to project manager. Also, the new roles of operational teams demand to get familiar with version control and automation tools. B. Address the challenges of change-resistant people To address the challenges of change resistant PM, it is recommended in this research to train him adequately in all areas of DevOps environment such as process, tools, continuous integration, continuous delivery (CI/CD), containerization, cloud technologies and infrastructure as code (IaC). PM is also responsible to create a collaborative environment to control and manage developers, operations and quality assurance teams. It will enable a PM to accomplish projects successfully following DevOps. PM has to foster developers' soft skills to create a mutual harmony between developers and operations teams in order to make sure that the operations team can work with the tools used by the developer team e.g. automation server (Jenkins) and containerization tools (Docker). To decrease the efforts consume in performing manual testing, a PM should collaborate with the QA manager to clarify his concerns with respect to DevOps. QA team needs adequate training in API automated testing tools. PM has to use his soft skills in order to increase the operations team's desire to work closely with developers and quality assurance teams. Fig. 1 shows the proposed solution to address the change resistant to implement DevOps. TABLE I MAIN LIMITATIONS OF RELATED WORK Paper Title Factors inhibiting the adoption of DevOps in large organisations: South African context [1]. Challenges in Adopting Continuous Delivery and DevOps in a Globally Distributed Product Team: A Case Study of a Healthcare Organization [2]. Improving the Software Logging Practices in DevOps [3]. Software Security in DevOps: Synthesizing Practitioners’ Perceptions and Practices [4]. Poster: Defect Prediction Metrics for Infrastructure as Code Scripts in DevOps [5]. Rethinking Secure DevOps Threat Modeling: The Need for a Dual Velocity Approach [6]. Communication Challenges and Strategies in Distributed DevOps [7]. Emerging Trends for Global DevOps: A New Zealand Perspective [8]. © 2020, IJCSMC All Rights Reserved Limitation The researchers didn’t provide practical evidence on their proposed framework validity. So, there is a need for evidence of the presented conceptual framework validity. Also, the use case was held in the South Africa domain, so to some extent, we can’t generalize the findings on the rest domains. The organization was already implementing agile methodology in their development before converting to DevOps, the researchers didn't mention the case of coming from different development backgrounds which may differ the whole process. The thesis provides an empirical study, so it may require practical evidence to confirm its efficiency. The number of surveyed organizations is small; we could not claim findings are generalizable, and there is no examination of the relationship between the use of automation activities, and the quality of deployed software. The chosen eighteen metrics were not comprehensive and only three datasets were used to evaluate the methodologies which are not enough for generalization. It’s claimed that the proposed lightweight threat modeling approach removed many secure DevOps bottlenecks. Although a practical evidence is needed. A small sample of DevOps employees were used from only one company. Therefore, the result may vary from different teams, putting into consideration their different contexts and cultural backgrounds. Also, results rely only on observations confirmed by interviews, which may affect reliability. The researcher assumed the content of online job postings is valid as a representation of employers' specifications. 46 Ahmed Osama Mansour et al, International Journal of Computer Science and Mobile Computing, Vol.9 Issue.9, September- 2020, pg. 43-49 Also, investigation held on DevOps jobs in the New Zealand domain; it is difficult to generalize the results. Data collection is not sufficient, observing an environment that fully implemented DevOps and technical compliance testing could improve data collection. Compliance at Velocity within a DevOps Environment [9]. Understanding DevOps & bridging the gap from continuous integration to continuous delivery [10]. A practical evidence is needed to validate the proposal. V. VALIDATION A survey is conducted to evaluate the proposed solution. A questionnaire is designed that is consisting of nineteen close ended questions those are further divided into two goals. A sample size of thirty participants is collected against the two goals to statistically analyze and interpret. Goal 1 identifies the possible changeresistant personnel. Goal 2 overcomes the change-resistant for each personnel. Likert scale, one to five, is used to evaluate the questions from very low to very high. The results are shown in the form of frequency tables and bar charts. Thirteen questions are designed to evaluate the goal 1. Table 2 shows the cumulative descriptive analysis of goal 1. Six questions are asked to evaluate the goal 2. Cumulative results of six questions are shown in Table 3. Fig. 1 The proposed solution to manage change resistant using DevOps A. Cumulative Statistical Analysis of Goal 1 Table 2 shows that 27.5% of the participants are strongly agreed, 38.3% are agreed, 23% are Neutral, 10% are disagreed and 3% are strongly disagreed. Fig. 2 displays the results graphically. TABLE II CUMULATIVE ANALYSIS OF GOAL 1 Q. No. 1 2 3 Very Low 1 0 11 © 2020, IJCSMC All Rights Reserved Low 18 0 8 Nominal 1 2 1 High 3 17 4 Very High 7 11 6 47 Ahmed Osama Mansour et al, International Journal of Computer Science and Mobile Computing, Vol.9 Issue.9, September- 2020, pg. 43-49 4 5 6 7 8 9 10 11 12 13 Total Avg. % 0 0 0 0 1 2 0 2 11 1 28 7.3 1 1 0 1 11 16 1 12 2 3 74 19.4 0 6 2 2 4 2 0 2 3 1 28 7.3 19 15 20 18 5 2 18 4 6 15 146 38.3 10 8 8 9 9 8 11 10 8 10 105 27.5 Fig. 2 The cumulative analysis of goal 1 B. Cumulative Statistical Analysis of Goal 2 Table 3 shows that 26.6% of the respondents are strongly agreed, 49.4% are agreed, 22.7% are neutral, 0.5% are disagreed and 0.5% are strongly disagreed. The graph in fig. 3 appears to be supporting the suitability of goal 2. TABLE III CUMULATIVE ANALYSIS OF GOAL 2 Q. No. Very Low Low Nominal High Very High 14 15 16 17 18 19 Total Avg. % 0 1 0 0 0 0 1 0.5 0 0 1 0 0 0 1 0.5 7 6 8 6 7 7 41 22.7 20 16 16 15 13 9 89 49.4 3 7 5 9 10 14 48 26.6 Fig. 3 The cumulative analysis of goal 2 C. Final Cumulative Statistical Analysis of Two Goals The final cumulative evaluation of two goals is shown in Table 4. Table 4 shows that 27.1% of the respondents are strongly agreed, 43.9% are agreed, 15% are neutral, 9.9% are disagreed and 3.9% are strongly disagreed. The graph in fig. 4 appears to be supporting the suitability of two goals. © 2020, IJCSMC All Rights Reserved 48 Ahmed Osama Mansour et al, International Journal of Computer Science and Mobile Computing, Vol.9 Issue.9, September- 2020, pg. 43-49 TABLE IV CUMULATIVE ANALYSIS OF TWO GOALS Goal No. Very Low Low Nominal High Very High Goal 1 Goal 2 Total Avg. % 7.3 0.5 7.8 3.9 19.4 0.5 19.9 9.9 7.3 22.7 30 15.0 38.3 49.4 87.7 43.9 27.5 26.6 54.1 27.1 Fig. 4 The cumulative analysis of two goals VI. CONCLUSION DevOps is a methodology where the development of a product or service is integrated with its operation. In DevOps, the development and operations teams are broken down into smaller groups consisting of members from both teams. This integration allows teams to use methods such as continuous integration and continuous delivery (CI/CD) which allows them to deliver new features to market faster and fix bugs more efficiently. When it is time to adopt the DevOps methodology, each personnel, involved in the software development life cycle, has his own reasons to resist against the DevOps methodology such as new roles and duties, uncomfortable to work closely with other teams and apply DevOps technology. In order to overcome the resistance, the company's chief information officer (CIO) has to establish open communication between each staff member involved in the SDLC and clarify their new duties and take notes of their concerns. It is also necessary to train the team in order to explain the advantages and changes that DevOps will bring into the SDLC. REFERENCES [1] M. B. Kamuto, and J. J. Langerman, “Factors inhibiting the adoption of DevOps in large organisations: South African context,” in Proc. RTEICT’17, 2017, p. 48-51. [2] R. K. Gupta, M. Venkatachalapathy and F. K. Jeberla, “Challenges in Adopting Continuous Delivery and DevOps in a Globally Distributed Product Team: A Case Study of a Healthcare Organization,” in Proc. ICGSE’19, 2019, p. 30-34. [3] B. Chen, “Improving the Software Logging Practices in DevOps,” in Proc. ICSE '19, 2019, p. 194-197. [4] A. A. Rahman, L. A. Williams, “Software security in DevOps: synthesizing practitioners' perceptions and practices,” in Proc. CSED’16, 2016, p. 70-76. [5] A. Rahman, J. Stallings and L. Williams, “Poster: Defect Prediction Metrics for Infrastructure as Code Scripts in DevOps,” in Proc. ICSE’18, 2018, p. 414-415. [6] A. Valani, “Rethinking Secure DevOps Threat Modeling: The Need for a Dual Velocity Approach,” in Proc. SecDev’18, 2018, p. 136-136. [7] E. Diel, S. Marczak and D. S. Cruzes, “Communication Challenges and Strategies in Distributed DevOps,” in Proc. ICGSE’16, 2016, p. 24-28. [8] W. Hussain, T. Clear and S. MacDonell, “Emerging Trends for Global DevOps: A New Zealand Perspective,” in Proc. ICGSE’17, 2017, p. 21-30. [9] M. Z. Abrahams and J. J. Langerman, “Compliance at Velocity within a DevOps Environment,” in Proc. ICDIM’18, 2018, p. 94-101. [10] M. Virmani, “Understanding DevOps & bridging the gap from continuous integration to continuous delivery,” in Proc. INTECH’15, 2015, p. 78-82. [11] C. Craven (2019) What is DevOps? Definition. [Online]. Available: https://www.sdxcentral.com/industry/devops/definitions/what-is-devops-definition/ © 2020, IJCSMC All Rights Reserved 49