# Exploring the Benefits of Combining DevOps and Agile
## 2 Literature Review  
### DevOps Concepts and Model  
In 2009, [PERSON] and [PERSON] presented the talk \"10+ Deploys Per Day: Dev and Ops Cooperation at Flickr\" [20]. They explained how the developers' teams (Dev) and operations teams (Ops) could contribute to more agile and scalable software development. Tight integration between Dev and Ops to safely achieve several software deployments (more than 10) in a single day was a disruptive idea regarding software development and its evolution. Later, [PERSON] coined the term DevOps (Development and Operations) and created the DevOps Day event [21]. Although the DevOps movement has been discussed for more than a decade [13; 14; 15; 22] it still lacks a unique formal definition. For [PERSON] et al. [23], the lack of a unique definition could be intentional to allow each team to choose the definition that better suits its needs. Nevertheless, several authors proposed definitions such as the one by [PERSON] et al. [13]--\"DevOps is a collaborative and multidisciplinary effort within an organization to automate continuous delivery of new software versions while guaranteeing their correctness and reliability\"--and others view it as a combination of values, principles, methods, practices, and tools [24]. Some other common definitions can be found in [23]. One of the key points in the execution of a project is the approach used to manage it. The traditional approach based on the waterfall model looks at the project in a linear way with several events, while in the iterative approach the development of software is undertaken through successive progress [25]. Therefore, it is common that the system is presented still incomplete or with some deficient parts. The objective is that the refinement of the product happens in stages until the desired result is achieved. The software development process does not end with the release of the code, but only when it closes the feedback loop between those who write the code and those who use it. DevOps aims to remove the barriers between traditionally independent teams: development and operations. Under the DevOps approach, these teams should work together across the entire software life cycle, from development and testing through deployment to operations. More than only a technical subject, DevOps deals with the organizational and human issues that arise in the software life cycle. It promotes a culture of collaboration, integration, and communication between teams to reduce the disconnect between them while assuring the delivery of software in an agile, safe, and stable way. According to [PERSON] et al. [14], the DevOps movement is currently a widely adopted software development approach having as a major benefit the ability to deploy releases more frequently and at a higher rate. Some related concepts used in conjunction with DevOps are Continuous Integration, Continuous Delivery, and Continuous Deployment. As noted in [14], these concepts are considered key practices within DevOps, but are not always clearly used, as stressed by [PERSON] et al. [24]. Continuous Integration is a development practice where developers frequently integrate the code they produce, that has successfully passed testing, to the project under development [24]. Those integrations occur typically once a day. Continuous Delivery is a development practice where the software is kept in a reliable deployable state at any time [14]. Potentially, after every change, the software can be released. This leads to several release candidates that are evaluated. The deployment to production is made manually by a team member, with the appropriate authority, who decides when and which candidate should be released [14]. Apart from Continuous Delivery, in Continuous Deployment, release candidates resulting from software changes are automatically deployed to production without the intervention of any team member [14; 24]. Regarding how organizations could adopt DevOps and measure its success, the CALMS framework is considered a foundational model for DevOps.