A Survey of DevOps Concepts and Challenges <s> Producing the conceptual framework <s> PREPARING YOUR PRESENTATION. Professional Presentations: Types, Tools, Techniques, and the Planning Process. Presentational Aims/Objectives Plus Audience Analysis. Researching Your Presentation. Organizing Your Presentation. Drafting Your Presentational Script: Style and Language. DESIGNING AND USING EFFECTIVE AUDIO AND VISUAL MEDIA. Selecting and Using Audio and Visual Presentation Media. Designing Presentation Graphics. MANAGING THE LOGISTICS OF YOUR PRESENTATION. Managing Presentation Logistics. DELIVERING YOUR PRESENTATION. Establishing a Professional Delivery Style. PROFESSIONAL PRESENTATION MODELS. Model No. 1: A Technical Presentation from NCR Corporation. Model No. 2: A Scientific Presentation from Pfizer Inc. Model No. 3: A Management--Based Presentation from Grumman Technical Services. PRESENTING IN INTERNATIONAL ENVIRONMENTS. Internationally Speaking... Postscript. Appendices. Index. <s> BIB001 </s> A Survey of DevOps Concepts and Challenges <s> Producing the conceptual framework <s> D uring its 40-year history, grounded theory has served as a major method for conducting emergent qualitative research. What is an emergent method? I start with a working definition of an emergent method as inductive, indeterminate, and open-ended. An emergent method begins with the empirical world and builds an inductive understanding of it as events unfold and knowledge accrues. Social scientists who use emergent methods can study research problems that arise in the empirical world and can pursue unanticipated directions of inquiry in this world. Emergent methods are particularly well suited for studying uncharted, contingent, or dynamic phenomena. These methods also allow for new properties of the studied phenomenon to appear that, in turn, shape new conditions and consequences to be studied. By adopting emergent methods, researchers can account for processes discovered in the empirical world and direct their methodological strategies accordingly. How does grounded theory fit the definition of an emergent method? In which ways does the grounded theory method advance the development of emergent methods? Grounded theory is predicated on an emergent logic. This method starts with a systematic, inductive approach to collecting and analyzing data to develop theoretical analyses. The method also includes checking emergent categories that emerge from successive levels of analysis through hypothetical and deductive reasoning. Grounded theory offers systematic analytic strategies that combine explicitness and flexibility. Fundamental tenets of the grounded theory method include: (1) minimizing preconceived ideas about the research problem and the data, (2) using simultaneous data collection and analysis to inform each other, (3) remaining open to varied explanations and/ or understandings of the data, and (4) focusing data analysis to construct middle-range theories. Rather than viewing only the product of inquiry—the completed grounded the- <s> BIB002 </s> A Survey of DevOps Concepts and Challenges <s> Producing the conceptual framework <s> Abstract Context Continuous Deployment (CD) is an emerging software development process with organisations such as Facebook, Microsoft, and IBM successfully implementing and using the process. The CD process aims to immediately deploy software to customers as soon as new code is developed, and can result in a number of benefits for organisations, such as: new business opportunities, reduced risk for each release, and prevent development of wasted software. There is little academic literature on the challenges organisations face when adopting the CD process, however there are many anecdotal challenges that organisations have voiced on their online blogs. Objective The aim of this research is to examine the challenges faced by organisations when adopting CD as well as the strategies to mitigate these challenges. Method An explorative case study technique that involves in-depth interviews with software practitioners in an organisation that has adopted CD was conducted to identify these challenges. Results This study found a total of 20 technical and social adoption challenges that organisations may face when adopting the CD process. The results are discussed to gain a deeper understanding of the strategies employed by organisations to mitigate the impacts of these challenges. Conclusion While a number of individual technical and social adoption challenges were uncovered by the case study in this research, most challenges were not faced in isolation. The severity of these challenges were reduced by a number of mitigation strategies employed by the case study organisation. It is concluded that organisations need to be well prepared to handle technical and social adoption challenges with their existing expertise, processes and tools before adopting the CD process. For practitioners, knowing how to address the challenges an organisation may face when adopting the CD process provides a level of awareness that they previously may not have had. <s> BIB003 </s> A Survey of DevOps Concepts and Challenges <s> Producing the conceptual framework <s> Grounded Theory (GT) has proved an extremely useful research approach in several fields including medical sociology, nursing, education and management theory. However, GT is a complex method based on an inductive paradigm that is fundamentally different from the traditional hypothetico-deductive research model. As there are at least three variants of GT, some ostensibly GT research suffers from method slurring, where researchers adopt an arbitrary subset of GT practices that are not recognizable as GT. In this paper, we describe the variants of GT and identify the core set of GT practices. We then analyze the use of grounded theory in software engineering. We carefully and systematically selected 98 articles that mention GT, of which 52 explicitly claim to use GT, with the other 46 using GT techniques only. Only 16 articles provide detailed accounts of their research procedures. We offer guidelines to improve the quality of both conducting and reporting GT studies. The latter is an important extension since current GT guidelines in software engineering do not cover the reporting process, despite good reporting being necessary for evaluating a study and informing subsequent research. <s> BIB004 </s> A Survey of DevOps Concepts and Challenges <s> Producing the conceptual framework <s> DevOps is a predominant phenomenon in the web domain. Its two core principles emphasize collaboration between software development and operations, and the use of agile principles to manage deployment environments and their configurations. DevOps techniques, such as collaboration and behaviour-driven monitoring, have been used by web companies to facilitate continuous deployment of new functionality to customers. The techniques may also offer opportunities for continuous product improvement when adopted in the embedded systems domain. However, certain characteristics of embedded software development present obstacles for DevOps adoption, and as yet, there is no empirical evidence of its adoption in the embedded systems domain. In this study, we present the challenges for DevOps adoption in embedded systems using a multiple-case study approach with four companies. The contribution of this paper is to introduce the concept of DevOps adoption in the embedded systems domain and then to identify key challenges for the DevOps adoption. <s> BIB005 </s> A Survey of DevOps Concepts and Challenges <s> Producing the conceptual framework <s> The purpose of this research is to propose what fundamental Knowledge (K), Skills (S), and Abilities (A) should be taught in web development courses, which can support not only development but also operations, namely DevOps. Instead of focusing on client side web application development using standard web technologies, we focus on server side web application development which holds many challenges due to a diversity of languages and emerging technologies. The advent of cloud computing reduced the gap between web application development and deployment/operation. Also, it brought an emerging concept, DevOps, to the web application development community. We identify what KSAs are needed to support DevOps and attempt to include them in web development courses. When the KSAs are included in web application development courses, students are well prepared for the emerging practice and computing paradigm of DevOps. <s> BIB006 </s> A Survey of DevOps Concepts and Challenges <s> Producing the conceptual framework <s> The emerging DevOps movement emphasizes development and operations staff working together as early as possible--sharing tools, processes, and practices that smooth the production path. This article is part of a theme issue on DevOps. <s> BIB007
According to Miles and Huberman, a conceptual framework explains graphically the main things to be studied in a given field, including elements such as key factors and their relationships  . Our conceptual framework is composed of conceptual maps, which are are diagrams structured as graphs in which nodes depict concepts and arrows represent relationships among concepts BIB001 . Our process of building the conceptual maps was based on Grounded Theory, which is a recognized method for conducting emergent qualitative research  and whose adoption in software engineering has grown considerably in recent years BIB004 . According to Charmaz, it reduces preconceived ideas about the research problem and helps researchers remain amenable to alternative interpretations and apprehend the data in different ways BIB002 . Grounded Theory is usually applied to primary sources, such as interviews and observational field-notes  . In this paper, we adopted Grounded Theory strategies in the literature review to handle the inherent subjectivity of conceptual analysis. A core strategy of Grounded Theory is coding BIB002 , which breaks down and labels data into smaller components  . In the initial coding, also called open coding, researchers avoid injecting previous assumptions, biases, and motivations BIB004 . Researches then apply constant comparison by constantly comparing and correlating codes from different sources to produce concepts and group concepts into categories  BIB004 . In our study, we read the 50 core studies and applied open coding on them to produce codes. Then, through constant comparison, we analyzed, abstracted, and grouped the codes into concepts and categories, presenting each category in a conceptual map. The open coding phase was carried as follows: while reading a core paper, the researchers used the Mendeley software to highlight excerpts containing potential DevOps concepts. In the following, we provide six examples of codes and their corresponding highlighted text. DevOps emphasizes collaboration: "DevOps is a new phenomenon in software engineering, emphasizing collaboration (. . . ) that bridge software development and operations activities (...)" BIB005 . DevOps advocates collaboration: "DevOps is a set of practices that advocate the collaboration between software developers and IT operations (...)" BIB003 . DevOps emphasizes collaboration and communication: "DevOps is a culture, movement or practice that emphasizes the collaboration and communication of both software developers and Information Technology (IT) professionals (...)" BIB006 . DevOps shares knowledge and tools: "DevOps was introduced to include cross-functional roles of teams with four perspectives: (...), and 4) sharing of knowledge and tools (...)" BIB006 . DevOps has a culture of collaboration / Collaboration means sharing knowledge and tools: "Achieving these benefits within enterprises requires the discipline of DevOps: a culture of collaboration between all team members; (...); sharing of knowledge and tools (...)"  . DevOps emphasizes working together / working together by sharing tools, processes, and practices: "That is why the DevOps movement's recent emergence is so heartening. It emphasizes development and operations staff working together as early as possible -sharing tools, processes, and practices to smooth the path to production (...)" BIB007 . By applying constant comparison in these codes coming from different sources, we defined the concept "Culture of collaboration" and linked it to the "DevOps" concept in the form "(DevOps) → is a → (culture of collaboration), " with concepts represented within parenthesis. From the excerpts we also understood that a "culture of collaboration" means sharing "knowledge, tools, processes, and practices", so we grouped these last concepts, from different sources, to state that "(DevOps) → is a → (culture of collaboration) → based on sharing → (knowledge, tools, processes, and practices), " as we can read from Figure 6 in Section 5. As concepts emerged, we assembled a single conceptual map, linking concepts nodes in a graph. The categories emerged afterwards mostly from observing the following connectivity patterns in the graph: i) hubs: a single concept is linked to many other concepts, as it is the case of "teams" in Figure 6 , which is linked to another 7 concept nodes, with 13 references supporting such connections; and ii) cycles in the corresponding undirected graph, such as the one present in Figure 6 : "(DevOps) → is a → (culture of collaboration) → shared across different types of → (teams) → may or may not have a → (DevOps role) → requires certain → (knowledge, skills, and capabilities for DevOps) ← must teach ← (programming education) ← imposes challenges for ← (DevOps). " The presented hub and cycle examples led to the emergence of the people category. We were driven by data to identify the following categories: process, people, delivery, and runtime. We then fit other concepts into these categories. If some concepts did not fit in the found categories, new categories could be created, but this did not happen. The process of building our conceptual maps also obeyed the following rules and restrictions: • Nodes in the map contain DevOps concepts. • The map can link nodes to describe relations among concepts. • A link can be read as a sentence binding the linked concepts, such as "(DevOps) → is a → (culture of collaboration). " • Each core paper received a unique reference code. • Every concept and link must be supported by at least one core paper. • The link's label contains reference codes. • A link can have different labels, each one with its references. • Some concepts, with common links, are grouped to save space in the figure. • A concept can belong to multiple categories. Usually Grounded Theory procedures end with theoretical coding leading to the formulation of a new theory by the development of hypotheses linking concepts and categories BIB004 . In this work, we do not aim at the formulation of a new DevOps theory nor to answer open questions posed by the literature. Instead, we use our conceptual framework on DevOps, built with open coding and constant comparison, as input to: i) study and classify DevOps tools; ii) identify practical DevOps implications and segment such implications for engineers, managers, and researchers; and iii) discuss the main DevOps open challenges. Moreover, by providing a global view of the DevOps field, we expect our conceptual maps to be used by engineers and managers to guide their continuing education, by teams to support reflection and continuous improvements of their DevOps journeys, and by academics to identify research topics, influences, and implications. In the next section, we give an overview of articles analyzed to build our conceptual maps, as well as other relevant sources of knowledge on DevOps. In Section 5, we present the conceptual maps we produced to structure a set of relevant DevOps concepts grounded in the literature.