<<

AEGAEUM JOURNAL ISSN NO: 0776-3808

IMPLEMENTATION PROCESS OF CONTINUOUS INTEGRATION AND CONTINUOUS DEPLOYMENT USING AGILE TECHNOLOGY

Prabhu Thangavelu 1, Research Scholar, HITS University, Chennai, Tamil Nadu, India. Dr. M. Rajeswari 2, Associate Professor, HITS University, Chennai, Tamil Nadu, India.

ABSTRACT:

The software industry operates based onbreaking down larger projects into smaller and simpler bits and assigning each bit to individual teams that integrate, test, and collaborate the results. For several years, has followed the waterfall approach which has been found to be more coherent and much free of bugs. But, in a rapidly changing such as this smartphone era where customers demand new features and bug fixes frequently, the software developers find the previous approaches slower and inadequate to meet the ever- growing demands. Agile methodologies such as continuous integration, automated testing and continuous deployment are relatively new strategies that have found a place of prominence among software developers. These techniques focus on rapidly integrating new changes into the software using iterative methods and achieve frequent delivery of functional parts of a software or an application.

Numerous studies have indicated that iterative agile techniques have resulted in faster delivery rates and continuous improvement of the quality of software. But as much as the advantages, agile methodologies are relatively new to the scenario and are still ridden with numerous challenges. One of the major challenges for any developer is the implementation strategy that needs to be used for agile techniques as CI and CD are processes in the pipeline for software delivery and proper implementation will ensure the success rate of such methods.

Keywords: CI, CD, Agile, Deployment, Testing, Software development

INTRODUCTION:

In a rapidly developing software industry, the requirement for adaptive techniques is increasing parallelly. Continuous integration is one such software development technique where the work is integrated continuously daily and tested for integration errors leading to better cohesiveness in teamwork and software development.Agile techniques offer great flexibility and

Volume 8, Issue 8, 2020 http://aegaeum.com/ Page No: 1641 AEGAEUM JOURNAL ISSN NO: 0776-3808

adaptability in software development that requires frequent changes based on the customer expectations. These techniques have been found to be greatly successful as the work of team members is continuously integrated and tested to avoid irrelevance and functional pieces of the software or application are regularly deployed as soon as they are ready. Continuous integration and deployment are iterative and people centric approaches and software development much adaptive and simple in comparison to its predecessor known as the waterfall approach. These agile methodologies have been found to be a great support mechanism in an everchanging software environment (Euro Laukkanen, 2015) and is important for prompt delivery of new features. Agile methodologies are quite relatable and practically applicable in a software industry which has greatly moved towards rapid development of mobile applications which requires frequent updates and security patches on a day to day basis.

Agile techniques emphasize on the four core values of interaction over the development process, deployment of working models, rapid responses to changes and encouraging customer collaboration in the development process. Any industry grows on the simple factor of satisfying customer needs. The software industry is no different and needs to adapt continuously. Studies conducted on open source software development have proven that continuous integration greatly influences and improves the product quality and benefits developers greatly (Barbara Russo, 2009). Continuous integration(CI) and Continuous deployment (CD) are mostly perceived as separate processes but both CI and CD are phases in a software delivery process where customers get access to new features and bug fixes at a faster rate. Though agile techniques have been found to be successful, a well-defined implementation process is still under question as these methodologies are iterative and hence arriving at a finish line is not possible. These methods are highly exploratory in nature and hence extensive studies need to be done on the most beneficial methods of implementation strategies.

STATEMENT OF THE PROBLEM:

Continuous integration and continuous deployment arebased on a set of rules for operation and certain strategies and practices to be followed that help a developer or a team to deliver changes in the code more frequently and also increasing reliability on the code integrity. The implementation process of CI and CD is known as the CI/CD pipeline and is one of the best agile methodologies in practice. The objective of using such methods is based on business

Volume 8, Issue 8, 2020 http://aegaeum.com/ Page No: 1642 AEGAEUM JOURNAL ISSN NO: 0776-3808

requirements, Code integrity and quality and security. Technically CI establishes an automated approach to building and testing applications with consistency leading to better collaboration.CD is the continuation of CI and delivers applications to selected environments. CI/CD automation tools follow the necessary procedures that are imperative in deploying the applications. The Study aims at understanding the agile process and the practices that are beneficial to developers in the CI/CD pipeline as is not the only solution for every application used in business.

Objectives of the study:

• Understand the CI/CD pipeline • Understand various control tools, integration servers and deployment tools • Analyze problems faced by developers while using agile techniques • Discern beneficial strategies for implementation

REVIEW OF LITERATURE:

Eero Laukkanen (2015) attempted to study the adoption of continuous integration in research and development. Continuous integration is a support mechanism which is important for delivering new features promptly in an everchanging software environment. But studies have revealed that social challenges make adoption of CI in industries exceedingly difficult. The study was conducted in a R&D program inside Ericsson and attempts to understand the stakeholder’s perception on the need for adoption of continuous integration. The author was able to deduce that the product architecture had a considerable impact on the adoption of CI. Training the team for CI was also imperative and needed sufficient learning space and time and most importantly cross site communication was necessary instead of centralizing.

Likoebe M. Maruping (2009) attempted to understand the use of agile techniques under various conditions by using the control theory. The author tries to analyze the effectiveness of agile methodology in improving the quality of software projects.Deployment of agile techniques offers immense potential in improving the outcome of a software development project.Extremely limited studies have been conducted on methods to maximize the effectiveness of agile methodology resulting in ambiguity to the project managers. 862 developers were studied based

Volume 8, Issue 8, 2020 http://aegaeum.com/ Page No: 1643 AEGAEUM JOURNAL ISSN NO: 0776-3808

on four objectives that influence the project quality.Use of agile methodology proved more useful in occasions where project control was imperative in a changing environment.

Barbara Russo (2009) conducted a study on the common factors between open source software development and use of advanced approaches such as agile methodology. The author attempted to understand the how developers benefitted in terms of quality and client satisfaction. The study analyses the strategies that may be used in implementing agile techniques in open source software development for software advancement. Studies such as this will benefit project managers and developers greatly.

Yunfang Guo (2019) states that continuous integration is indispensable in a software industry where prompt delivery of new features and bug fixes is imperative. The author builds his research on the findings of Bernardo, da Costa &Kulesza (2018) and attempted to recreate the research conceptually using a adaptive technique of regression discontinuity design and attempted to analyse how many open source projects were successfully able to deliver pull requests (PR) faster by adapting a continuous integration technique. Hilton et al. (2016) conducted a study on 34,544 open source projects and conducted a survey on 442 developers who were known to use continuous integration and deployment techniques in their projects. The author analyzed the effectiveness of the projects based on delivery speed of pull requests and concluded that continuous integration techniques led to faster release and frequently as much as twice in comparison to projects that did not use CI. Also, the acceptance rate of PRs was faster in the median.

Vasilescu et al., (2014) argues in his study that continuous integration techniques provide several benefits such as quick delivery of new features and functionalities and at the same time reduces problems that arise in collaborative environment such as incoherence and lack of code integrity. This also improves the stability of the entire software in the mainline.

SUGGESTIONS:

Extensive study of literature has led to a few suggestions that have been at the core of every successful implementation of agile techniques.

Agile methodology:

Volume 8, Issue 8, 2020 http://aegaeum.com/ Page No: 1644 AEGAEUM JOURNAL ISSN NO: 0776-3808

Several agile methodologies have been developed in the recent years such as Scrum, , and hybrid agile methods. These are based on task management within the development environment and involves a task master, Product owner and the team.

Extreme programming techniques are used to meet the constantly changing requirements and helps in short development cycles. Crystal methodologies, Dynamic software development methods, feature driven development and lean software development are a few methods used in .

CI/CD Pipeline:

CI/CD tools such as CircleCI, ., etc., help in automating the implementation and provide reporting.A continuous deployment pipeline accommodates building the code and testing it continuously to maintain integrity and finally deploys functional stages. Studies indicate that the following steps are followed in most CI/CD pipelines.

• The process starts with referring to records and writing the codebased on requirements • Converting the code as per the required computing environment • Managing and configuring variables for the required environment • Every application will have service based (web server, API services and database services) components which as linked to appropriate services • Any necessary step required to push the new code is executed • and rollback in case of test failure are done • Logs and alerts of every activity is recorded

Testing challenges faced by developers:

Agile techniques are lauded for their speed of delivery without compromising on efficiency. Testing every component of a code will take longer time and hence testing must be prioritized based on risk factors. Involving automations for testing is imperative to increase efficiency of delivery. Exploratory mode of testing where learning, design and execution of the test occurs parallelly will accelerate the period and ensures the functionality of the code. Agile techniques have time-boxed sprints at their core and hence changes must be adapted at every sprint and must be planned appropriately. A major challenge to the developer would be the

Volume 8, Issue 8, 2020 http://aegaeum.com/ Page No: 1645 AEGAEUM JOURNAL ISSN NO: 0776-3808

plethora of dependencies that need to happen and are not controlled by the developing team. Such dependencies induce ambiguity in predicting the completion time.

Behaviour driven development (BDD) and Acceptance test driven development (ATDD) are some frequently known testing methods which must involve unit tests, integration tests, acceptance tests and UI tests.

Tools involved in Agile:

Use of appropriate tools is especially importantfor the effectiveness of an agile methodology. Source version control tools such as CVS, SVN, GIT need to be employed for version control as the very first step of agile depends on pulling the code from version control. Version control has a great place of prominence in agile methodology as it allows any person from any location to work together on the project.

Continuous integration servers such as Jenkins and continuous deployment tools for distribution channel must also be effectively used.

Metrics for Agile efficiency:

Drag factors in any project increase the time of delivery and hence must be reduced to increase efficiency. Reducing shared resources and works that do not contribute to the sprint must be eliminated during planning. The sprint goal must be kept in mind while modifying the drag factors.

Metrics on the number of backlogs that get converted into functionality will define the velocity of the agile methodology. The number of unit tests added, and the time interval taken to complete the build must be logged. The most important metric of all would be the log of bugs detected in every iteration and production defect leakages.

CONCLUSIONS:

Agile techniques such as continuous integration and continuous deployment are software development practices targeted at increasing the delivery frequency. Even though these methods have been lauded for their effectiveness, it is not appropriate for larger development projects as estimating the development time is not possible. Agile techniques require a close communication between developers and customers right from the planning stage. Small releases, regressive

Volume 8, Issue 8, 2020 http://aegaeum.com/ Page No: 1646 AEGAEUM JOURNAL ISSN NO: 0776-3808

testing and demo reviews would improve the quality of the project overall. As agile techniques are time based, use of automated tools is essential and the choice of such tools would also influence the outcome. One of the major disadvantages that can be linked to the agile techniques is the number of dependencies that hinder the progress of the development. Any lag in development due to dependencies can be overcome by proper planning of the complete process.

References:

1. https://www.infoworld.com/article/3271126/what-is-cicd-continuous-integration-and- continuous-delivery explained. 2. https://techbeacon.com/app-dev-testing/top-agile-tools-keep-software-engineers- productive 3. https://www.guru99.com/agile-scrum-extreme-testing. 4. Yu Y, Yin G, Wang T, Yang C, Wang H. 2016. Determinants of pull-based development in the context of continuous integration. Science China Information Sciences 59:080104 DOI 10.1007/s11432-016-5595-8. 5. Zhao Y, Serebrenik A, Zhou Y, Filkov V, Vasilescu B. 2017. The impact of continuous integration on other software development practices: a large-scale empirical study. In: Proceedings of the 32nd IEEE/ACM international conference on automated . Piscataway: IEEE, 6071. 6. Yu Y, Wang H, Filkov V, Devanbu P, Vasilescu B. 2015. Wait for it: determinants of pullrequest evaluation latency on GitHub. In: 2015 IEEE/ACM 12th working conferenceon mining software repositories. Piscataway: IEEE. 7. Manglaviti M, Coronado-Montoya E, Gallaba K, McIntosh S. 2017. An empirical study of the personnel overhead of continuous integration. In: MSR '17 proceedings of the 14th international conference on mining software repositories. 471_474. 8. McIntosh S, Kamei Y, Adams B, Hassan AE. 2014. The impact of coverage and code review participation on : a case study of the Qt, VTK, and ITK projects. In: Proceedings of the 11th working conference on mining softwarerepositories, MSR 2014. New York: ACM, 192_201 DOI 10.1145/2597073.2597076. 9. Miller A. 2008. A hundred days of continuous integration. In: Agile 2008 conference.

Volume 8, Issue 8, 2020 http://aegaeum.com/ Page No: 1647 AEGAEUM JOURNAL ISSN NO: 0776-3808

10. Parsons D, Ryu H, Lal R. 2007. The impact of methods and techniques on outcomesfrom agile software development projects. In: Organizational dynamics of technologybasedinnovation: diversifying the research agenda. 235_249. 11. Romano J, Kromrey J, Coraggio J, Skowronek J. 2006. Appropriate statistics for ordinallevel data: should we really be using t-test and Cohensd for evaluating group differences on the NSSE and other surveys? In: Annual meeting of the florida association ofinstitutional research.

Volume 8, Issue 8, 2020 http://aegaeum.com/ Page No: 1648