DevOps i Norden
Abstract
DevOps er en videreutvikling av agile metoder, der utviklere og driftere skal jobbe tettere for å tette gapet som har eksistert mellom disse faggruppene med tradisjonelle programvareutviklingsmetoder. Om man prøver å finne en tydelig definisjon av DevOps i litteratur, så kan man finne uklare og tvetydige definisjoner som kan være forskjellige avhengig av hvilken kilde man bruker.I denne masteravhandlingen vil det bli presentert en studie som har blitt gjennomført med fokus på hvordan de som bruker DevOps vil definere begrepet, og hvilke konsekvenser en implementering av DevOps vil medføre i en organisasjon. Konteksten til denne studien har vært en utviklingsavdeling som tilhører en internasjonal programvarebedrift som begynte å implementere DevOps for rundt fem år siden. Avdelingen er lokalisert i Trondheim, og for å få tillatelse av bedriften til å bruke dem som en case måtte vi skrive under på en NDA. Metoden som er brukt er case-studie med bare en case. Flere semi-strukturerte intervjuer ble utført med totalt åtte informanter, og blant informantene kan man finne rollene prosjektleder, utvikler, konsulent og systemarkitekt. Alle intervjuene ble tatt opp. For å analysere dataene ble de transskribert til tekst, for så å bli delt opp individuelt i koder som igjen ble brutt ned i mindre koder. Programmet NVIVO ble brukt for å gjøre denne prosessen lettere.Resultatet av case-studien vår viser at ansatte i en bedrift som bruker DevOps ofte støter på problemer når de skal prøve å definere begrepet. Om man skal definere DevOps, så kan det være nyttig å snakke om DevOps-kultur og teknisk DevOps. Når bedrifter implementerer DevOps, så endrer kulturen seg til å passe beskrivelsen med økt samarbeid, ansvar og involvering fra alle parter i utviklingssyklusen. Man opplever flere fordeler som blant annet bedre flyt i leveringen av produkter, automatisering som fører til sparing av tid og mulighet til å rette feil på kort tid. Det var også noen utfordringer/ulemper assosiert med DevOps, som blant annet vanskeligheter med å bryte gamle rollemønster, prioritering av tid, mangel på relevant kompetanse og utfordringer med å fornye legacy-systemer. Det virker som at de som bruker DevOps liker det, og misnøye eller motstand oppstår når den nye måten å gjøre det på gjør gammel kompetanse overflødig. For å implementere DevOps på en god måte burde man være klar over at en god DevOps-kultur som tilrettelegger for økt samarbeid vil være viktig for at implementeringen blir en suksess. Det vil også være viktig at implementering er flytende, og at man implementerer det som faktisk vil være til nytte for bedriften. I tillegg må man ha både de ansatte og ledelsen med på implementeringen. I konklusjonen konkluderer vi at definisjonen av DevOps har blitt klarere, og at konsekvensene av DevOps har blitt klarere med noen retningslinjer for implementering. DevOps is a continued development of agile methods, where employees in development and operations will work closer than with traditional software development methods. If you try to find a clear definition of DevOps in literature, you may find unclear and ambiguous definitions which may differ depending on the source you use.In this master thesis, a study will be presented which has been conducted with a focus on the users’ definition of the term DevOps, and what consequences an implementation of DevOps will entail in an organization. The context of this study was a department of an international software company that began implementing DevOps five years ago. The department is located in Trondheim, and in order to get permission from the company to use them in this study, we had to sign an NDA.The method used in the study is a case study with one case. Several semi-structured interviews were conducted with a total of eight informants, and among the informants one can find the roles of project manager, consultant, developer, and system architect. All the interviews were recorded. To analyze the data, they were transcribed to text, and then divided individually into codes which in turn were broken down into smaller codes. A program called NVIVO was used to make this process easier.The results of our case study shows that employees of a company which uses DevOps often encounter difficulties when trying to define the term. If you are defining DevOps, it can be helpful to separate it into DevOps culture and technical DevOps. When companies implement DevOps, the culture changes to fit the description with increased collaboration, responsibility and involvement from all parties in the development cycle. There are several advantages with DevOps, such as better flow in the delivery of products, automation which leads to saving time and the ability to correct errors in a short time span. There were also some challenges and/or disadvantages associated with DevOps, such as difficulties in breaking old role patterns, prioritization of work time, lack of relevant expertise and challenges in renewing legacy systems. It seems like those who use DevOps tends to like it, and any discontent or resistance occurs mostly when the new way of doing things, or the new product makes old skills and knowledge redundant. In order to implement DevOps in a successful manner, one should be aware that a good DevOps culture which facilitates increased collaboration will be important for the implementation to be a success. It will also be important that the implementation happen in a fluid way, and what’s implemented is beneficial to the company. In addition, both the employees and management must be included in the implementation.In conclusion, we conclude that the DevOps definition has become clearer, and that the consequences of DevOps has also become clearer with some implementation guidelines.