21 research outputs found
Practices and Infrastructures for Machine Learning Systems: An Interview Study in Finnish Organizations
Using interviews, we investigated the practices and toolchains for machine learning (ML)-enabled systems from 16 organizations across various domains in Finland. We observed some well-established artificial intelligence engineering approaches, but practices and tools are still needed for the testing and monitoring of ML-enabled systems.Peer reviewe
A taxonomy of software engineering challenges for machine learning systems: An empirical investigation
Artificial intelligence enabled systems have been an inevitable part of everyday life. However, efficient software engineering principles and processes need to be considered and extended when developing AI- enabled systems. The objective of this study is to identify and classify software engineering challenges that are faced by different companies when developing software-intensive systems that incorporate machine learning components. Using case study approach, we explored the development of machine learning systems from six different companies across various domains and identified main software engineering challenges. The challenges are mapped into a proposed taxonomy that depicts the evolution of use of ML components in software-intensive system in industrial settings. Our study provides insights to software engineering community and research to guide discussions and future research into applied machine learning
DevOps in an ISO 13485 Regulated Environment: A Multivocal Literature Review
Background: Medical device development projects must follow proper directives
and regulations to be able to market and sell the end-product in their
respective territories. The regulations describe requirements that seem to be
opposite to efficient software development and short time-to-market. As agile
approaches, like DevOps, are becoming more and more popular in software
industry, a discrepancy between these modern methods and traditional regulated
development has been reported. Although examples of successful adoption in this
context exist, the research is sparse. Aims: The objective of this study is
twofold: to review the current state of DevOps adoption in regulated medical
device environment; and to propose a checklist based on that review for
introducing DevOps in that context. Method: A multivocal literature review is
performed and evidence is synthesized from sources published between 2015 to
March of 2020 to capture the opinions of experts and community in this field.
Results: Our findings reveal that adoption of DevOps in a regulated medical
device environment such as ISO 13485 has its challenges, but potential benefits
may outweigh those in areas such as regulatory, compliance, security,
organizational and technical. Conclusion: DevOps for regulated medical device
environments is a highly appealing approach as compared to traditional methods
and could be particularly suited for regulated medical development. However, an
organization must properly anchor a transition to DevOps in top-level
management and be supportive in the initial phase utilizing professional
coaching and space for iterative learning; as such an initiative is a complex
organizational and technical task.Comment: ACM / IEEE International Symposium on Empirical Software Engineering
and Measurement (ESEM '20), October 8--9, 2020, Bari, Ital
Managing and Composing Teams in Data Science: An Empirical Study
Data science projects have become commonplace over the last decade. During this time, the practices of running such projects, together with the tools used to run them, have evolved considerably. Furthermore, there are various studies on data science workflows and data science project teams. However, studies looking into both workflows and teams are still scarce and comprehensive works to build a holistic view do not exist. This study bases on a prior case study on roles and processes in data science. The goal here is to create a deeper understanding of data science projects and development processes. We conducted a survey targeted at experts working in the field of data science (n=50) to understand data science projects’ team structure, roles in the teams, utilized project management practices and the challenges in data science work. Results show little difference between big data projects and other data science. The found differences, however, give pointers for future research on how agile data science projects are, and how important is the role of supporting project management personnel. The current study is work in progress and attempts to spark discussion and new research directions.acceptedVersionPeer reviewe
DevOps in practice : A multiple case study of five companies
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.Peer reviewe
DevOpsin käyttöönotto ja toteutus ohjelmistokehityskäytännössä : Käsite, käytännöt, edut ja haasteet
AbstractIn the last decade, the software industry has been marked by a growing trend of software companies’ ability to deploy new software features fast and frequently in short release cycle times. The companies’ software release cycles have been shortened to hours and minutes rather than months. To enable the transformation towards short release cycle times, companies have adopted several different strategies, including the DevOps approach. DevOps in the software industry emerged to represent a professional movement emphasising the collaboration between software development and operations. In practice, DevOps affects the company culture, processes, products, associated technologies and organisational structures used in software development and operations processes. The multifaceted nature of DevOps makes the concept ambiguous and difficult for software companies to adopt as there are many different paths to its adoption.The purpose of the thesis is to provide detailed description of the adoption and implementation of DevOps in software development comprehending the DevOps concept definition, and its practices, benefits and challenges. The research was performed by systematically reviewing the literature, multi-vocal documents and making qualitative inquiries among software practitioners; and based on that the consolidated body of knowledge of DevOps was constructed.The key finding of the research is that the DevOps approach includes an automated software deployment mechanism focusing on the rapid and repeatable release of software changes and automated management of operational infrastructure. The adoption and implementation of DevOps practices are prominent in software companies that use cloud computing technology, while its adoption is challenging in the embedded system domain. DevOps is not a silver bullet; challenges pertaining to the management of infrastructures due to legacy technologies still persist. The key lesson learned in the adoption and implementation of DevOps is that the software operational infrastructure is no longer considered separate from the development of software features; and this is achieved by having software development and operations teams jointly working together.TiivistelmäViimeisen vuosikymmenen aikana ohjelmistoteollisuudessa on ollut kasvavana trendinä ohjelmistotalojen lisääntyvä kyky toimittaa ohjelmistomuutoksia nopeasti ja usein toistuvina päivityksinä. Yritysten ohjelmistotoimitus- ja päivitysjaksot ovat lyhentyneet kuukausista tunneiksi ja jopa minuuteiksi. Yritykset ovat ottaneet käyttöön useita erilaisia toimintatapoja kyetäkseen muuttamaan toimintaansa lyhyen aikavälin ohjelmistopäivityksiin kykeneväksi, joista yksi viimeisimmistä on DevOps (saumaton ohjelmiston kehittäminen ja käyttö). Ohjelmistotuotannossa DevOps syntyi ohjelmistoteollisuudessa ammattilaisten alkaessa painottaa ohjelmistojen kehittämisen ja käytön yhteistyön tärkeyttä. Käytännössä DevOpsilla on vaikutusta ohjelmisto-organisaation toimintakulttuuriin, prosesseihin, tuotteisiin, sekä teknologioihin ja organisaatiorakenteisiin, joita käytetään ohjelmistokehityksessä ja käyttöönottoprosessissa. DevOpsin käsitteen moniulotteisuudesta johtuen käsitteen sisältö jää usein epäselväksi ja samalla sen mukainen toiminta vaikeasti käyttöön otettavaksi ohjelmistoyrityksissä, koska toteutus on mahdollista tehdä monella eri tavalla.Tämän väitöksen tarkoituksena on antaa selkeä kuvaus DevOpsista ja sen toteutuksesta ohjelmistokehityksessä niin, että sen käsite, ja käytännöt, sekä sen tarjoamat edut ja haasteet tulevat ymmärretyiksi. Tutkimuksessa suoritettiin systemaattinen kirjallisuuskatsaus tieteellisiin julkaisuihin ja muihin lähinnä käytännön kokemuksiin pohjautuviin lähteisiin, suoritettiin kvalitatiiviset kyselytutkimukset, joiden kohteena olivat ohjelmistoammattilaiset, sekä muodostettiin näiden pohjalta saumattoman ohjelmistokehityksen ja käytön yhtenäinen tietämyskanta.Tutkimuksen keskeinen tulos on, että DevOps-lähestymistapa sisältää automaattisen ohjelmiston käyttöönottomekanismin, joka keskittyy nopeiden ja toistettavien ohjelmistomuutosten käyttöönottoon ja sitä tukevan operatiivisen infrastruktuurin hallintaan. DevOpsin omaksuminen ja käyttöönotto ovat näkyvästi esillä pilvipalvelinteknologiaa käyttävissä ohjelmistoyrityksissä, kun taas sen käyttöönotto on haastavaa sulautettujen järjestelmien alueella. DevOps ei ole mikään ’hopealuoti’, vaan sisältää erityisesti infrastruktuurien hallintaan liittyviä haasteita, jotka johtuvat edelleen käytössä olevista vanhoista tekniikoista. Keskeisin oppima DevOpsin omaksumisesta ja soveltamisesta käytäntöön on, että ohjelmistojen käyttöinfrastruktuuria ei enää tarkastella erillään ohjelmistojen kehittämisestä, vaan ne toimivat saumattomassa yhteistyössä keskenään.Academic dissertation to be presented with the assent of the Doctoral Training Committee of Technology and Natural Sciences of the University of Oulu for public defence in Kainuunsali (L2), Linnanmaa, on 27 November 2017, at 12 noonAbstract
In the last decade, the software industry has been marked by a growing trend of software companies’ ability to deploy new software features fast and frequently in short release cycle times. The companies’ software release cycles have been shortened to hours and minutes rather than months. To enable the transformation towards short release cycle times, companies have adopted several different strategies, including the DevOps approach. DevOps in the software industry emerged to represent a professional movement emphasising the collaboration between software development and operations. In practice, DevOps affects the company culture, processes, products, associated technologies and organisational structures used in software development and operations processes. The multifaceted nature of DevOps makes the concept ambiguous and difficult for software companies to adopt as there are many different paths to its adoption.
The purpose of the thesis is to provide detailed description of the adoption and implementation of DevOps in software development comprehending the DevOps concept definition, and its practices, benefits and challenges. The research was performed by systematically reviewing the literature, multi-vocal documents and making qualitative inquiries among software practitioners; and based on that the consolidated body of knowledge of DevOps was constructed.
The key finding of the research is that the DevOps approach includes an automated software deployment mechanism focusing on the rapid and repeatable release of software changes and automated management of operational infrastructure. The adoption and implementation of DevOps practices are prominent in software companies that use cloud computing technology, while its adoption is challenging in the embedded system domain. DevOps is not a silver bullet; challenges pertaining to the management of infrastructures due to legacy technologies still persist. The key lesson learned in the adoption and implementation of DevOps is that the software operational infrastructure is no longer considered separate from the development of software features; and this is achieved by having software development and operations teams jointly working together.Tiivistelmä
Viimeisen vuosikymmenen aikana ohjelmistoteollisuudessa on ollut kasvavana trendinä ohjelmistotalojen lisääntyvä kyky toimittaa ohjelmistomuutoksia nopeasti ja usein toistuvina päivityksinä. Yritysten ohjelmistotoimitus- ja päivitysjaksot ovat lyhentyneet kuukausista tunneiksi ja jopa minuuteiksi. Yritykset ovat ottaneet käyttöön useita erilaisia toimintatapoja kyetäkseen muuttamaan toimintaansa lyhyen aikavälin ohjelmistopäivityksiin kykeneväksi, joista yksi viimeisimmistä on DevOps (saumaton ohjelmiston kehittäminen ja käyttö). Ohjelmistotuotannossa DevOps syntyi ohjelmistoteollisuudessa ammattilaisten alkaessa painottaa ohjelmistojen kehittämisen ja käytön yhteistyön tärkeyttä. Käytännössä DevOpsilla on vaikutusta ohjelmisto-organisaation toimintakulttuuriin, prosesseihin, tuotteisiin, sekä teknologioihin ja organisaatiorakenteisiin, joita käytetään ohjelmistokehityksessä ja käyttöönottoprosessissa. DevOpsin käsitteen moniulotteisuudesta johtuen käsitteen sisältö jää usein epäselväksi ja samalla sen mukainen toiminta vaikeasti käyttöön otettavaksi ohjelmistoyrityksissä, koska toteutus on mahdollista tehdä monella eri tavalla.
Tämän väitöksen tarkoituksena on antaa selkeä kuvaus DevOpsista ja sen toteutuksesta ohjelmistokehityksessä niin, että sen käsite, ja käytännöt, sekä sen tarjoamat edut ja haasteet tulevat ymmärretyiksi. Tutkimuksessa suoritettiin systemaattinen kirjallisuuskatsaus tieteellisiin julkaisuihin ja muihin lähinnä käytännön kokemuksiin pohjautuviin lähteisiin, suoritettiin kvalitatiiviset kyselytutkimukset, joiden kohteena olivat ohjelmistoammattilaiset, sekä muodostettiin näiden pohjalta saumattoman ohjelmistokehityksen ja käytön yhtenäinen tietämyskanta.
Tutkimuksen keskeinen tulos on, että DevOps-lähestymistapa sisältää automaattisen ohjelmiston käyttöönottomekanismin, joka keskittyy nopeiden ja toistettavien ohjelmistomuutosten käyttöönottoon ja sitä tukevan operatiivisen infrastruktuurin hallintaan. DevOpsin omaksuminen ja käyttöönotto ovat näkyvästi esillä pilvipalvelinteknologiaa käyttävissä ohjelmistoyrityksissä, kun taas sen käyttöönotto on haastavaa sulautettujen järjestelmien alueella. DevOps ei ole mikään ’hopealuoti’, vaan sisältää erityisesti infrastruktuurien hallintaan liittyviä haasteita, jotka johtuvat edelleen käytössä olevista vanhoista tekniikoista. Keskeisin oppima DevOpsin omaksumisesta ja soveltamisesta käytäntöön on, että ohjelmistojen käyttöinfrastruktuuria ei enää tarkastella erillään ohjelmistojen kehittämisestä, vaan ne toimivat saumattomassa yhteistyössä keskenään
DevOps adoption and implementation in software development practice:concept, practices, benefits and challenges
Abstract
In the last decade, the software industry has been marked by a growing trend of software companies’ ability to deploy new software features fast and frequently in short release cycle times. The companies’ software release cycles have been shortened to hours and minutes rather than months. To enable the transformation towards short release cycle times, companies have adopted several different strategies, including the DevOps approach. DevOps in the software industry emerged to represent a professional movement emphasising the collaboration between software development and operations. In practice, DevOps affects the company culture, processes, products, associated technologies and organisational structures used in software development and operations processes. The multifaceted nature of DevOps makes the concept ambiguous and difficult for software companies to adopt as there are many different paths to its adoption.
The purpose of the thesis is to provide detailed description of the adoption and implementation of DevOps in software development comprehending the DevOps concept definition, and its practices, benefits and challenges. The research was performed by systematically reviewing the literature, multi-vocal documents and making qualitative inquiries among software practitioners; and based on that the consolidated body of knowledge of DevOps was constructed.
The key finding of the research is that the DevOps approach includes an automated software deployment mechanism focusing on the rapid and repeatable release of software changes and automated management of operational infrastructure. The adoption and implementation of DevOps practices are prominent in software companies that use cloud computing technology, while its adoption is challenging in the embedded system domain. DevOps is not a silver bullet; challenges pertaining to the management of infrastructures due to legacy technologies still persist. The key lesson learned in the adoption and implementation of DevOps is that the software operational infrastructure is no longer considered separate from the development of software features; and this is achieved by having software development and operations teams jointly working together.Tiivistelmä
Viimeisen vuosikymmenen aikana ohjelmistoteollisuudessa on ollut kasvavana trendinä ohjelmistotalojen lisääntyvä kyky toimittaa ohjelmistomuutoksia nopeasti ja usein toistuvina päivityksinä. Yritysten ohjelmistotoimitus- ja päivitysjaksot ovat lyhentyneet kuukausista tunneiksi ja jopa minuuteiksi. Yritykset ovat ottaneet käyttöön useita erilaisia toimintatapoja kyetäkseen muuttamaan toimintaansa lyhyen aikavälin ohjelmistopäivityksiin kykeneväksi, joista yksi viimeisimmistä on DevOps (saumaton ohjelmiston kehittäminen ja käyttö). Ohjelmistotuotannossa DevOps syntyi ohjelmistoteollisuudessa ammattilaisten alkaessa painottaa ohjelmistojen kehittämisen ja käytön yhteistyön tärkeyttä. Käytännössä DevOpsilla on vaikutusta ohjelmisto-organisaation toimintakulttuuriin, prosesseihin, tuotteisiin, sekä teknologioihin ja organisaatiorakenteisiin, joita käytetään ohjelmistokehityksessä ja käyttöönottoprosessissa. DevOpsin käsitteen moniulotteisuudesta johtuen käsitteen sisältö jää usein epäselväksi ja samalla sen mukainen toiminta vaikeasti käyttöön otettavaksi ohjelmistoyrityksissä, koska toteutus on mahdollista tehdä monella eri tavalla.
Tämän väitöksen tarkoituksena on antaa selkeä kuvaus DevOpsista ja sen toteutuksesta ohjelmistokehityksessä niin, että sen käsite, ja käytännöt, sekä sen tarjoamat edut ja haasteet tulevat ymmärretyiksi. Tutkimuksessa suoritettiin systemaattinen kirjallisuuskatsaus tieteellisiin julkaisuihin ja muihin lähinnä käytännön kokemuksiin pohjautuviin lähteisiin, suoritettiin kvalitatiiviset kyselytutkimukset, joiden kohteena olivat ohjelmistoammattilaiset, sekä muodostettiin näiden pohjalta saumattoman ohjelmistokehityksen ja käytön yhtenäinen tietämyskanta.
Tutkimuksen keskeinen tulos on, että DevOps-lähestymistapa sisältää automaattisen ohjelmiston käyttöönottomekanismin, joka keskittyy nopeiden ja toistettavien ohjelmistomuutosten käyttöönottoon ja sitä tukevan operatiivisen infrastruktuurin hallintaan. DevOpsin omaksuminen ja käyttöönotto ovat näkyvästi esillä pilvipalvelinteknologiaa käyttävissä ohjelmistoyrityksissä, kun taas sen käyttöönotto on haastavaa sulautettujen järjestelmien alueella. DevOps ei ole mikään ’hopealuoti’, vaan sisältää erityisesti infrastruktuurien hallintaan liittyviä haasteita, jotka johtuvat edelleen käytössä olevista vanhoista tekniikoista. Keskeisin oppima DevOpsin omaksumisesta ja soveltamisesta käytäntöön on, että ohjelmistojen käyttöinfrastruktuuria ei enää tarkastella erillään ohjelmistojen kehittämisestä, vaan ne toimivat saumattomassa yhteistyössä keskenään
DevOps for AI - Challenges in Development of AI-enabled Applications
When developing software systems that contain Machine Learning (ML) based components, the development process become significantly more complex. The central part of the ML process is training iterations to find the best possible prediction model. Modern software development processes, such as DevOps, have widely been adopted and typically emphasise frequent development iterations and continuous delivery of software changes. Despite the ability of modern approaches in solving some of the problems faced when building ML-based software systems, there are no established procedures on how to combine them with processes in ML workflow in practice today. This paper points out the challenges in development of complex systems that include ML components, and discuss possible solutions driven by the combination of DevOps and ML workflow processes. Industrial cases are presented to illustrate these challenges and the possible solutions