Article

Evolución de DevOps: Lecciones aprendidas para el éxito como parte de la estrategia digital

Authors:
To read the full-text of this research, you can request a copy directly from the authors.

Abstract

Resumen El objetivo fue investigar las buenas prácticas que se deben seguir para implementar la cultura DevOps para acelerar el desarrollo de aplicaciones de software en periodos más cortos y unificar la historia para que puedan trabajar de la mano. La investigación fue bajo un enfoque cualitativo y una revisión de referencias para proporcionar información sobre los términos y metodologías de desarrollo utilizadas. Finalmente, para poner en práctica DevOps, es necesario entender que, aunque se tengan las mejores herramientas disponibles, si no se cuenta con la cultura, no se obtendrán mejores resultados ya que es una combinación de buenas prácticas para poder funcionar. En este sentido, para colaborar con este cambio de cultura, es fundamental el apoyo de líderes capacitados, que apoyen y apadrinen la nueva forma de trabajo, donde se puedan integrar todas las áreas de la empresa.

No full-text available

Request Full-text Paper PDF

To read the full-text of this research,
you can request a copy directly from the authors.

ResearchGate has not been able to resolve any citations for this publication.
Article
Full-text available
There are different ways to examine and explain a study and its findings based on using numbers as a measure, a descriptive style, or a mixture of both. These three research approaches are quantitative, qualitative, and mixed methods that are commonly used by researchers in various research studies. However, with many options regarding the research design, it seems challenging for researchers to select the most appropriate approach based on the study and realize differences. This study provides a comprehensive review of qualitative, quantitative, and mixed-method research methods. Each method is clearly defined and specifically discussed based on applications, types, advantages, and limitations to help researchers identify select the most relevant type based on each study and navigate accordingly. Keywords: Research methodology Research approach Qualitative research Quantitative research Mixed methods approach Research design 1. Research Approaches Different types of research are classified based on a range of criteria including the application of study, the objectives of the research, and information sought [1]. These three main groups can be divided into sub-categories which are shown in Figure 1 [2]. However, there are also other types of categories that consider the time factor for the research. This method considers the data collection time and categorizes the research into historical, present, and futuristic types. The focus of this study is on different types of information sought from the research including qualitative and quantitative research approaches [1]. The most important differences between these two methods are: • The degree of understanding and explanation of the phenomena as the aim of inquiry. • The differences between impersonal and personal roles of the researchers. • The differences between the constructed and discovered knowledge [3] .
Article
Full-text available
DevOps is a set of practices and a cultural movement that aims to break down barriers between development and operation teams to improve collaboration and communication. Different organizations have embraced DevOps principles due to the massive potential, such as a much shorter time to production, increased reliability and stability. However, despite the widespread adoption of DevOps and its infrastructure, there is a lack of understanding and literature on the key concepts, practices, tools, and challenges associated with implementing DevOps strategies. The main goal of this research paper is to explore and discuss challenges related to DevOps culture and practices. Moreover, it describes how DevOps works in an organization, provides a detailed explanation of DevOps, and investigates the cultural challenges that organizations face when implementing DevOps. The proposed paper reveals ten critical challenges that need to be addressed in adopting the DevOps culture. The challenges are further analyzed on the basis of the various continents. According to the findings, the following critical challenges are considered during the implementation of a DevOps culture: lack of collaboration and communication, Lack of skill and knowledge, complicated infrastructure, Lack of management, Lack of DevOps approach, and trust confidence problems.
Article
Full-text available
The purpose of this study is to perform a synthesis of API research. The study took stock of literature from academic journals on APIs with their associated themes, frameworks, methodologies, publication outlets and level of analysis. The authors draw on a total of 104 articles from academic journals and conferences published from 2010 to 2018. A systematic literature review was conducted on the selected articles. The findings suggest that API research is primarily atheoretical and largely focuses on the technological dimensions such as design and usage; thus, neglecting most of the social issues such as the business and managerial applications of APIs, which are equally important. Future research directions are provided concerning the gaps identified.
Conference Paper
Full-text available
Software-Defined Systems are offering great opportunities for deploying programmable networks, as well as large-scale services distributed across clouds. Starting from the baseline principles of both Software-Defined Networking and Network Function Virtualization, they embrace a number of novel enabling technologies (like containers, container orchestrators, and many other supporting tools) that significantly simplify the integration and the management of virtual components, while promising high level of flexibility, isolation, and performance. The major tech giants are drastically building their business on these technologies. However, many other companies are struggling in the selection of suitable platforms, tools, and any other software instruments allowing them to move forwards in this direction. Based on these premises, this paper provides a three-folded contribution. First, it explores the state of the art of container engines and container orchestrators. Second, it analyzes the main supporting tools that offer advanced and additional features to the resulting container networking. Third, it defines a set of qualitative Key Performance Indicators to carry out a preliminary comparison of the reviewed technologies. The proposed study aims at providing high-level guidelines and constructive comments to foster the widespread usage of Software-Defined Systems.
Conference Paper
Full-text available
Over the last decade, distributed software development (DSD) become very popular for most of the major companies. According to the effects of globalization, software development methodologies and practices are also impressed. Because of the underlying philosophy of agile, agile teams are paying more attention to communication that is mostly applicable for collocated teams. Most of the companies that apply distributed development, adopted Agile software methodology into their software development lifecycle to reduce temporal, geographical and socio-cultural distance challenges. Regarding this, DSD brings along various challenges to be conducted by the distributed development team and also difficulties to apply Agile practices at different locations. In this paper, the findings from a case study on geographical challenges in three small, one medium and one large distributed agile software development projects are presented. The empirical investigation with twelve people was done at one German-based global company that operates more than twenty countries. Finally, geographical distance based challenges were reported that create risks for communication, coordination, and control processes at DSD.
Conference Paper
Full-text available
DevOps is a set of principles and practices to improve collaboration between development and IT Operations. Against the backdrop of the growing adoption of DevOps in a variety of software development domains, this paper describes empirical research into factors influencing its implementation. It presents findings of an in-depth exploratory case study that explored DevOps implementation in a New Zealand product development organisation. The study involved interviewing six experienced software engineers who continuously monitored and reflected on the gradual implementation of DevOps principles and practices. For this case study the use of DevOps practices led to significant benefits, including increase in deployment frequency from about 30 releases a month to an average of 120 releases per month, as well as improved natural communication and collaboration between IT development and operations personnel. We found that the support of a number of technological enablers, such as implementing an automation pipeline and cross functional organisational structures, were critical to delivering the expected benefits of DevOps.
Article
Full-text available
Scientific research adopts qualitative and quantitative methodologies in the modeling and analysis of numerous phenomena. The qualitative methodology intends to understand a complex reality and the meaning of actions in a given context. On the other hand, the quantitative methodology seeks to obtain accurate and reliable measurements that allow a statistical analysis. Both methodologies offer a set of methods, potentialities and limitations that must be explored and known by researchers. This paper concisely maps a total of seven qualitative methods and five quantitative methods. A comparative analysis of the most relevant and adopted methods is done to understand the main strengths and limitations of them. Additionally, the work developed intends to be a fundamental reference for the accomplishment of a research study, in which the researcher intends to adopt a qualitative or quantitative methodology. Through the analysis of the advantages and disadvantages of each method, it becomes possible to formulate a more accurate, informed and complete choice.
Article
Full-text available
Since last two decades, agile software development methodologies have been one of the most debating topics for researchers. These are called light weight development methods because of informal, adaptive and flexible approach. These models are based on the collection of best practices which help to handle problems related to changing requirements, customer satisfaction, and product quality. A number of agile models are available to meet the needs of different projects. However Extreme Programming and Scrum are two most familiar and commonly used models. This study makes a valuable contribution by exploring these models in detail. In this paper a detailed comparison of Extreme programming and Scrum is conducted to find their similarities, differences and explores those features which complement each other
Article
Full-text available
Context: Continuous practices, i.e., continuous integration, delivery, and deployment, are the software development industry practices that enable organizations to frequently and reliably release new features and products. With the increasing interest in and literature on continuous practices, it is important to systematically review and synthesize the approaches, tools, challenges, and practices reported for adopting and implementing continuous practices. Objective: This research aimed at systematically reviewing the state of the art of continuous practices to classify approaches and tools, identify challenges and practices in this regard, and identify the gaps for future research. Method: We used systematic literature review (SLR) method for reviewing the peer-reviewed papers on continuous practices published between 2004 and 1st June 2016. We applied thematic analysis method for analysing the data extracted from reviewing 69 papers selected using predefined criteria. Results: We have identified thirty approaches and associated tools, which facilitate the implementation of continuous practices in the following ways: (1) "reducing build and test time in continuous integration (CI)"; (2) "increasing visibility and awareness on build and test results in CI"; (3) "supporting (semi-) automated continuous testing"; (4) "detecting violations, flaws and faults in CI"; (5) "addressing security and scalability issues in deployment pipeline", and (6) "improving dependability and reliability of deployment process". We have also determined a list of critical factors such as "testing (effort and time)", "team awareness and transparency", "good design principles", "customer", "highly skilled and motivated team", "application domain", and "appropriate infrastructure" that should be carefully considered when introducing continuous practices in a given organization.
Article
Full-text available
Continuous Delivery (CD) is a relatively new software development approach. Companies that have adopted CD have reported significant benefits. Motivated by these benefits, many companies would like to adopt CD. However, adopting CD can be very challenging for a number of reasons, such as obtaining buy-in from a wide range of stakeholders whose goals may seemingly be different from—or even conflict with—our own; gaining sustained support in a dynamic complex enterprise environment; maintaining an application development team's momentum when their application's migration to CD requires an additional strenuous effort over a long period of time; and so on. To help overcome the adoption challenges, I present six strategies: (1) selling CD as a painkiller; (2) establishing a dedicated team with multi-disciplinary members; (3) continuous delivery of continuous delivery; (4) starting with the easy but important applications; (5) visual CD pipeline skeleton; (6) expert drop. These strategies were derived from four years of experience in implementing CD at a multi-billion-euro company. Additionally, our experience led to the identification of eight further challenges for research. The information contributes toward building a body of knowledge for CD adoption.
Conference Paper
Full-text available
Context: DevOps, the combination of Development and Operations, is a new way of thinking in the software engineering domain that recently received much attention. Given that DevOps is a new term and novel concept recently introduced, no common understanding of what it entails has been achieved yet. Consequently, definitions of DevOps often only represent a part that is relevant to the concept. Objective:This study aims to characterize DevOps by exploring central components of DevOps definitions reported in the literature, specifying practices explicitly proposed for DevOps and investigating the similarities and differences between DevOps and other existing methods in software engineering. Method: A systematic mapping study was conducted that used six electronic databases: IEEE, ACM, Inspec, Scopus, Wiley Online Library and Web of Science. Result: 44 studies have been selected that report a definition of DevOps, 15 studies explicitly stating DevOps practices, and 15 studies stating how DevOps is related to other existing methods. Papers in some cases stated a combination of a definition, practices, and relations to other methods, the total number of primary studies was 49. Conclusion: We proposed a definition for DevOps which may overcome inconsistencies over the various existing definitions of individual research studies. In addition, the practices explicitly proposed for DevOps have been presented as well as the relation to other software development methods.
Article
Full-text available
Today, little is known about what tools software companies are using to support their Agile methods and whether they are satisfied or dissatisfied with them. This is due to lack of objective surveys on the subject. The surveys that have been conducted so far are of a subjective nature and have mostly been performed by tool vendors. They are very limited in number and focus mainly on company structure and adherence to a specific Agile method rather than on tool usage and needs. For this reason, many companies have difficulties to choose appropriate tools to support their Agile process. One such company is the Swedish telecommunications giant Ericsson. To account for this lack of data, Ericsson commissioned us to conduct an independent survey focusing on the tool usage and needs as experienced by the Agile software community today. In this paper, we report on the results of our survey. The survey covers 121 responses from 120 different companies coming from 35 different countries. Our results show that the most satisfactory tool aspect is ease of use, whereas the least satisfactory one is lack of integration with other systems. Finally, our results provide a list of features that are most desired by the software companies today.
Article
Full-text available
Ever since the agile manifesto was created in 2001, the research community has devoted a great deal of attention to agile software development. This article examines publications and citations to illustrate how the research on agile has progressed in the 10 years following the articulation of the manifesto. Specifically, we delineate the conceptual structure underlying agile scholarship by performing an analysis of authors who have made notable contributions to the field. Further, we summarize prior research and introduce contributions in this special issue on agile software development. We conclude by discussing directions for future research and urging agile researchers to embrace a theory-based approach in their scholarship.
Article
Full-text available
Press releases, scientific publications and anecdotal evidence demonstrate that organisations worldwide are adopting agile software development methods at increasing speed. Little is still known about the current usefulness of agile methods in the complex environment of the embedded software development industry. Embedded devices are already commonplace in regular households. The goal of this survey is to provide first-hand knowledge of the adoption and experience of two of the most known agile methods, namely Extreme Programming and Scrum, in a number of European organisations of embedded software known to be interested and active in experimenting with agile software development methods. The survey involved 13 industrial organisations in eight European countries and 35 individual software development projects. The focus of the questionnaire was to enquire into the level of use as well as the experienced usefulness - or expected usefulness if there was no experience available - of the two agile methods and their individual practices. The results show that the embedded industry has been able to apply agile methods in its development processes. The results also indicate that the appreciation of the agile methods and their individual practices appears to increase once adopted and applied in practice.
Article
Agile development and operations (DevOps) is a model for delivering software as a service that comprises a set of practices and tools combining the responsibilities for both developing and operating the software into a single team. DevOps has been shown to offer advantages over traditional, waterfall-based software development methods. Agile software development practices have radically changed how developers realize software, breaking traditional structures. DevOps enables the team to continuously deliver software. The scope of DevOps is different, as it focuses on the relation between the development and operations teams. Both the academic literature and business press opine on DevOps implementation challenges and failures. The literature on DevOps is abundant but fails to convey with clarity what DevOps is. The lack of a homogeneous and clear conceptualization of DevOps is considered a major obstacle to the diffusion of this methodology. We perform a systematic literature review to identify, review, and synthesise all the relevant studies published in the field of information systems and software engineering between 2012 and 2020. As a result of our review, we derive a conceptual model providing a logical categorisation and a clear definition of the conceptual elements of DevOps.
Book
Use this book as your one-stop shop for architecting a world-class DevOps environment with Microsoft technologies. .NET DevOps for Azure is a synthesis of practices, tools, and process that, together, can equip a software organization to move fast and deliver the highest quality software. The book begins by discussing the most common challenges faced by developers in DevOps today and offers options and proven solutions on how to implement DevOps for your team. Daily, millions of developers use .NET to build and operate mission-critical software systems for organizations around the world. While the marketplace has scores of information about the technology, it is completely up to you to put together all the blocks in the right way for your environment. This book provides you with a model to build on. The relevant principles are covered first along with how to implement that part of the environment. And while variances in tools, language, or requirements will change the needed implementation, the DevOps model is the architecture for the working environment for your team. You can modify parts of the model to customize it to your enterprise, but the architecture will enable all of your teams and applications to accelerate in performance. What You Will Learn: • Get your .NET applications into a DevOps environment in Azure • Analyze and address the part of your DevOps process that causes delays or bottlenecks • Track code using Azure Repos and conduct acceptance tests • Apply the rules for segmenting applications into Git repositories • Understand the different types of builds and when to use each • Know how to think about code validation in your DevOps environment • Provision and configure environments; deploy release candidates across the environments in Azure • Monitor and support software that has been deployed to a production environment This book is for .NET Developers who are using or want to use DevOps in Azure but don’t know where to begin. Jeffrey Palermo is Chief Architect and CEO of Clear Measure, Inc., a DevOps-centered software engineering company. He is also the founder of the Azure DevOps Podcast and the Azure DevOps User Group. Previously, he was a founding board member of AgileAustin, the founder of AzureAustin, and a leader in the Austin .NET User Group. Jeffrey is a well-known author and international public speaker. He has received 13 Most Valuable Professional awards from Microsoft and has spoken at industry conferences such as Microsoft TechEd, Microsoft Ignite, Microsoft Build, DevTeach, VSLive, and various other regional conferences.
Article
Context: DevOps is considered important in the ability to frequently and reliably update a system in operational state. DevOps presumes cross-functional collaboration and automation between software development and operations. DevOps adoption and implementation in companies is non-trivial due to required changes in technical, organisational and cultural aspects. Objectives: This exploratory study presents detailed descriptions of how DevOps is implemented in practice. The context of our empirical investigation is web application and service development in small and medium sized companies. Method: A multiple-case study was conducted in five different development contexts with successful DevOps implementations since its benefits, such as quick releases and minimum deployment errors, were achieved. Data was mainly collected through interviews with 26 practitioners and observations made at the companies. Data was analysed by first coding each case individually using a set of predefined themes and thereafter perform a cross-case synthesis. Results: Our analysis yielded some of the following results: (i) software development team attaining ownership and responsibility to deploy software changes in production is crucial in DevOps. (ii) toolchain usage and support in deployment pipeline activities accelerates the delivery of software changes, bug fixes and handling of production incidents. (ii) the delivery speed to production is affected by context factors, such as manual approvals by the product owner (iii) steep learning curve for new skills is experienced by both software developers and operations staff, who also have to cope with working under pressure. Conclusion: Our findings contributes to the overall understanding of DevOps concept, practices and its perceived impacts, particularly in small and medium sized companies. We discuss two practical implications of the results.
Article
Perfect should never be the enemy of better.
Article
Perfect should never be the enemy of better.
Article
DevOps aims to reduce the time between committing a system change and placing the change into normal production, while ensuring high quality. The article topics in this theme issue include using DevOps to migrate to microservices, adopting DevOps, and DevOps tools. The Web extra at https://youtu.be/NzX6JmwDS0s is an audio recording of Davide Falessi speaking with Len Bass and George Champlin-Scharff about the IEEE Software May/June 2016 theme issue on DevOps and its practices.
Conference Paper
Rally Software transitioned from shipping code every eight-weeks, with time-boxed Scrum sprints, to a model of continuous delivery with Kanban. The team encountered complex challenges with their build systems, automated test suites, customer enablement, and internal communication. But there was light at the end of the tunnel - greater control and flexibility over feature releases, incremental delivery of value, lower risks, fewer defects, easier on-boarding of new developers, less off-hours work, and a considerable up tick in confidence. This experience report describes the journey to continuous delivery with the aim that others can learn from our mistakes and get their teams deploying more frequently. We will describe and contrast this transition from the business (product management) and engineering perspectives.
Conference Paper
This paper provides a practical solution, based on process reuse and knowledge management techniques, to make software engineering theories more accessible, easier, and cheaper for software development organizations to implement. It shows how the PIBOK-PB architecture (Process improvement based on knowledge-pattern based) and the extensions of a commercial product, Microsoft solution Visual Studio Team System, are used to achieve this.
Article
Agile manufacturing sprang to prominence in the USA in 1992 when the Agile Manufacturing Forum was set up. The term is generally less commonly used in the UK, but there is great interest in a number of its constituent elements, such as mass customisation and virtual companies. The concept of agile manufacturing is trying to address new ways of running companies, which will enable them to compete in the future. It is based on an evolving vision of what companies will look like in 10 to 20 years' time, taking an all-encompassing view. This does not discount the value of some existing approaches, and thus the recipe for agility contains some elements of current approaches as well as new ones. The author identifies the elements of agility, and how they relate to the other buzzwords of our time
State of DevOps Report
  • P Dora
P. Dora. "State of DevOps Report." Puppet. http://www.berrykersten.nl/wp-content/uploads/2017-state-ofdevops-report.pdf (accessed 2022).
DevOps overview for VSTS and TFS
  • Microsoft
Microsoft. "DevOps overview for VSTS and TFS." Microsoft. https://docs.microsoft.com/en-us/azure/devops/ user-guide/devops-alm-overview?view=azure-devops (accessed 2022).
Tooling up for DevOps
  • H Admin
H. Admin. "Tooling up for DevOps." HDWebsoft. https://www.hdwebsoft.com/blog/tooling-up-for-devops.html (accessed 2022).
A proposal for integrating DevOps into software engineering curricula
  • C Jones
C. Jones, "A proposal for integrating DevOps into software engineering curricula," in Software Engineering Aspects of Continuous Development and New Paradigms of Software Production and Deployment: First International Workshop, DEVOPS 2018, Chateau de Villebrumier, France, March 5-6, 2018, Revised Selected Papers 1, 2019: Springer, pp. 33-47, doi: https://doi.org/10.1007/978-3-030-06019-0_3.
Team Foundation Version Control
  • J Levinson
  • D Nelson
J. Levinson and D. Nelson, "Team Foundation Version Control," Pro Visual Studio 2005 Team System, pp. 59-102, 2006, doi: https://doi.org/10.1007/978-1-4302-0171-7_3.
A decade of agile methodologies: Towards explaining agile software development
  • T. Dingsøyr
  • S. Nerur
  • V. Balijepally
  • N. B. Moe