• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 80
  • 40
  • Tagged with
  • 120
  • 83
  • 71
  • 64
  • 51
  • 41
  • 35
  • 28
  • 25
  • 25
  • 24
  • 24
  • 23
  • 20
  • 20
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
101

Effektivitet inom distribuerade team : En fallstudie på sociala och tekniska faktorer inom mjukvaruutveckling / Efficiency in distributed teams : A case study on social and technical factors within software development

Kenell, Ludwig, Berglund, Stigove January 2019 (has links)
Uppsatsen presenterar vilka faktorer som bidrar till effektivitet inom distribuerade team som arbetar med mjukvaruutveckling och hur dessa faktorer påverkar effektiviteten i arbetsprocessen. Det utgör en utmaning att arbeta effektivt inom mjukvaruutvecklingsprojekt och den distribuerade faktorn, att projektmedlemmarna är utspridda över mer än ett kontor, bidrar med ytterligare komplexitet. Genom studien vill vi bidra till att göra denna komplexitet mer hanterlig. Vi har genomfört en kvalitativ fallstudie där vi har studerat ett utvalt distribuerat projekt vid ett mjukvaruutvecklingsföretag. Det empiriska underlaget har samlats in genom semistrukturerade intervjuer och analyserats utifrån identifierade teman. Vi har huvudsakligen identifierat sociala faktorer, men även några tekniska faktorer, som bidrar till en effektiv arbetsprocess. Faktorerna innefattar kommunikation, gruppidentitet, stämning, kultur och normer samt ledarskap. De innefattar bland annat att genomföra väl anpassad kommunikation och dokumentation, hålla frekventa möten, ha få grupperingar, gemensamma IT-verktyg, att främja social kommunikation, ha transparent ledarskap och att teammedlemmarna är ansvarstagande. Utöver att lista faktorerna beskriver vi i slutsatsen även hur de bidrar till att effektiva arbetsprocesser uppnås. / This thesis presents which factors contribute to efficiency in distributed teams working with software development, and how these factors affect the efficiency of the work process. Working effectively in software development projects is a challenge and the distributed factor, that project members are distributed across more than one office, brings additional complexity. Through the study, we want to help make this complexity more manageable. We have carried out a qualitative case study where we have studied a selected distributed project at a software development company. The empirical data has been collected through semi-structured interviews and analyzed based on identified themes. We have mainly identified social factors, but also some technical factors that contribute to an efficient work process. The factors comprise communication, group identity, mood, culture and norms as well as leadership. They include, among other things, implementing well-adapted communication and documentation, holding frequent meetings, few groupings, common IT tools, promoting social communication, having transparent leadership and the team members having a high level of responsibility. In the conclusion we also describe how the listed factors help to achieve an efficient work processes.
102

Testdrivenutveckling i industrimiljö : Erfarna och oerfarnautvecklares perspektiv

Starefeldt, Peter January 2017 (has links)
Test driven development [TDD] is an iterative technique where unit   tests are written before production code. General idea is that quality,   especially code design, improves with usage of TDD. Previous studies have had   difficulties proving these benefits. Qualitative studies about TDD are rare   and a deeper understanding how developers’ view relates to usage of TDD has   been sought after. How experience affects usage and perception about TDD is   of particular interest, and the study’s basis. Semi-structured interviews were conducted with three experienced and   three inexperienced developers in a qualitative survey study. Obvious   differences could be determined by letting those groups represent the   experience range that exists. A deductive thematic analysis was performed with   the help of a theoretical framework. Results show that   workplace’s culture greatly affects how TDD is used. TDD is not commonly used   and low adherence to protocol is also made visible. Differences in basic view   about TDD is evident as well – creation of the code’s design is starting   point for experienced developers, inexperienced use TDD as a tool in creation   of unit tests and to control system correctness. / Testdriven utveckling [TDD]   är en iterativ teknik där enhetstest skrivs före produktionskod. Tanken är   att kvalité och framförallt design av kod förbättras vid användning av TDD.   Tidigare studier visar svårigheter att bevisa dessa vinster. Kvalitativa   studier är ovanliga i forskning om TDD och en djupare förståelse hur TDD   används från utvecklarens synvinkel har eftersökts. Hur erfarenhet påverkar   användning och uppfattning om TDD är särskilt intressant, och fungerar som   studiens grund. Semistrukturerade   intervjuer utfördes med tre erfarna och tre oerfarna utvecklare i en   kvalitativ tvärsnittsstudie. Genom att låta grupperna representera det   erfarenhetsspann som existerar kunde tydliga skillnader synliggöras. En   deduktiv tematisk analys genomfördes med hjälp av ett teoretiskt ramverk. Studien visar framförallt   att arbetsplatsens kultur påverkar stort hur TDD används. TDD används inte i   särskilt stor utsträckning och låg regelmässighet blev även synliggjort.   Förutom detta visades skillnader i grundläggande syn över TDD – skapande av   kodens design är utgångspunkt för erfarna utvecklare, oerfarna använder TDD   som verktyg att skapa tester och kontrollera systemets korrekthet.
103

Appar eller ej inom Fleet Management-området : Organisatoriska och tekniska utmaningar vid apputveckling / Apps or no apps within the Fleet Management area : Organisational and technical challenges within app development

Ristov, Boris, Rahnel, Taavi January 2012 (has links)
En trend i den teknologiska utvecklingen på senare tid har varit att skapa en ökad rörlighet hos användaren. En bidragande faktor till detta är den snabba förbättringstakten hos de smartphones som i större utsträckning har funktionalitet som tidigare endast datorer hade. Detta har i sin tur förändrat de förväntningar slutanvändarna har på tjänsters tillgänglighet, vilket har lett till att produktiva mobila applikationer, appar, har funnit sin plats i vardagen. Denna studie är genomförd på Scanias Fleet Management-avdelning som erbjuder en webbaserad tjänst där åkerier kan administrera, övervaka och följa upp sina fordonsflottor. Syftet med studien var att undersöka om en förlängning av Scanias existerande webbtjänst till den mobila sfären är rätt steg att ta och vilka organisatoriska och tekniska utmaningar en ingång inom apputveckling ger upphov till. För att bemöta denna problematik har en omfattande kvalitativ undersökning genomförts där tre huvudgrupper av respondenter har intervjuats: jämförbara företag som har ställts inför liknande utmaningar, apputvecklingsföretag som har förståelse för appområdet samt Fleet Management-tjänstens existerande användare. Dessutom har en undersökning av potentiella tekniska utmaningar vid apputveckling gjorts genom framtagning av en prototyp i form av en app. Den genomförda undersökningen har, i kombination med studiens teoretiska referensram, lett till rekommendationer om hur man bör bemöta steget till de mobila enheterna. Denna studie visar på att det är lämpligt att anamma denna teknologiska trend då de positiva effekterna av en app väger upp kostnaderna. Apputveckling kräver ett tillvägagångssätt som skiljer sig från klassisk mjukvaruutveckling då slutanvändarens roll är mycket viktig under hela utvecklingsprocessen samt att en teknisk specialistkompetens behövs. En starkt iterativ utvecklingsprocess förutsätts och en proaktiv utvecklingsfilosofi krävs då tekniska förändringar inom smartphone-världen sker med stormsteg. / A recent trend in the technological evolution has been to increase the mobility of the end-user. A contributing factor is the fast rate of improvement in the smartphone area. This, in turn, has changed the expectations end-users have on the availability of services, which has allowed mobile applications, apps, to find their place in everyday life. This study has been conducted at Scania’s Fleet Management department that offers a web-based service where haulage contractors can administer, monitor and follow up on their vehicle fleets. The purpose of this study was to investigate if Scania’s existing web service should be extended into the mobile area, and if so, what organizational and technical challenges app development imposes. To address this problem, a qualitative investigation was carried out with three main groups of respondents: comparable companies that have faced similar challenges, app development companies and the current users of the Fleet Management service. Additionally, a prototype application was developed to investigate the potential technical challenges that may occur. Combined with a theoretical framework the conducted research has led to recommendations on how to best take the step into the field of mobile devices. This study shows that it is advisable to adopt the mobile technological trend since the positive effects of an app outweigh the potential costs. The technical changes within the field of smartphones occur at a rapid rate, which requires special technical skills. The development also requires iterative development methods where the end-user is included throughout the whole process.
104

The Solo First Pair Second Programming Model

Wickström, Carina, Holmquist, Robin January 2021 (has links)
Software is fundamental to life in modern society. We have come to depend on it for critical aspects such as managing bank transactions and medical records. However, code defects in software is a common issue, and software not working properly has the potential to cause major damage to both humans and the environment. Many attempts have been made in order to improve software development in order to reduce code defects, among other aspects. One such attempt is the invention of the practice pair programming, where two programmers share and work together on a single workstation. The more traditional way of developing software is solo programming, where each developer is assigned an individual workstation. However, the issue with code defects still remains. Hence, there is a need for better methods for reducing software defects. The purpose of this thesis is to create a software development model for reducing software defects. The model suggested in this thesis is a combined practice where coding with solo programming is followed by re-coding with pair programming called Solo First Pair Second Programming (SFPSP). The goal is to help software development teams to develop more reliable software. Our research was qualitative with support from quantitative data. The research included a literature study and an action study. The literature study was done in order to create a first version of SFPSP entirely based on literature, whereas the action study was done in order to evaluate as well as refine SFPSP based on practical experience. The results of this thesis is the practice SFPSP as well as an evaluation of said practice. Our evaluation shows that SFPSP leads to fewer code defects compared to solo programming. However, the cost with regard to development time and effort is significantly higher for SFPSP compared to solo programming. SFPSP is based on both theoretical and practical knowledge, and has therefore a solid foundation to build upon. Our literature study verified that no practice like SFPSP existed before this thesis. / Programvara är grundläggande för livet i det moderna samhället. Vi är beroende av det för kritiska aspekter som att hantera banköverföringar och medicinska journaler. Kodfel i programvara är dock ett vanligt problem, och programvara som inte fungerar som den ska kan orsaka stora skador på både människor och miljön. Många försök har gjorts för att förbättra programvaruutveckling med målet att minska bland annat kodfel. Ett sådant försök är uppfinningen av praxisen parprogrammering, där två programmerare delar och arbetar tillsammans på en enda arbetsstation. Det mer traditionella sättet att utveckla programvara är soloprogrammering, där varje utvecklare tilldelas en individuell arbetsstation. Dock kvarstår problemet med kodfel. Därför finns det ett behov av bättre metoder för att minska kodfel. Syftet med denna avhandling är att skapa en programvaruutvecklingsmodell för att minska kodfel. Modellen som föreslås i denna avhandling är en kombinerad praxis där kodning med soloprogrammering följs av omkodning med parprogrammering, kallad Solo First Pair Second Programming (SFPSP). Målet är att hjälpa programvaruutvecklingsteam att utveckla mer pålitlig programvara. Vår forskning var kvalitativ med stöd av kvantitativ data. Forskningen omfattade en litteraturstudie och en aktionsstudie. Litteraturstudien gjordes för att skapa en första version av SFPSP helt baserad på litteraturen, medan aktionsstudien gjordes för att utvärdera och förfina SFPSP baserat på praktisk erfarenhet. Resultaten av denna avhandling är praxisen SFPSP samt en utvärdering av denna praxis. Vår utvärdering visar att SFPSP leder till färre kodfel jämfört med soloprogrammering. Dock visar den att kostnaden med avseende på utvecklingstid och ansträngning är betydligt högre för SFPSP jämfört med soloprogrammering. SFPSP bygger på både teoretisk och praktisk kunskap och har därför en stabil grund att bygga på. Vår litteraturstudie verifierade att det inte fanns någon praxis som SFPSP före denna avhandling.
105

Komparativ studie mellan React-Native och Flutter med avseende på utvecklarens produktivitet

Sauma, Robin, Ziai, Milad January 2020 (has links)
Utvecklingen av mobila hybrid applikationer har ökat drastiskt under det senaste årtiondet. Med tanke på mångfalden i hur stora företag börjar investera i ramverk med support för utveckling av mobila hybrid applikationer (multiplattforms ramverk), ökar nödvändigheten av aktuella studier inom detta ämnesområde. Facebook och Google är två välkända företag som har utvecklat React-Native respektive Flutter. Dessa multiplattforms ramverk utvecklas kontinuerligt och skillnader uppstår inom teknologierna hos ramverken vilket gör nya studier mer lämpliga. Syftet med denna studie är att undersöka vilket ramverk som bidrar med bäst produktivitet för utvecklaren med tanke på bristen av studier inom ämnet. Specifikt har en fallstudie utförts där studiens frågeställningar har besvarats.   Respektive frågeställningarna blev uppdelade i tre delfrågeställningar där varje fråga fick angivna kriterier att följa i fallstudien och båda ramverken blev tilldelade poäng om tillhörande kriterium för varje fråga var uppfylld. I slutet av studien räknades ett medelvärde ut som tilldelades till båda ramverken. Resultaten visade att det finns små skillnader i form av dess bidrag med bäst produktivitet för utvecklaren. / The development of hybrid mobile applications has increased rapidly in the last decade. Considering the diversity in how big companies starts to invest in frameworks that supports hybrid application development (cross-platform framework), the necessity of contemporary studies in this subject increase. Facebook and Google are two well-known companies that have developed React-Native and Flutter, respectively. These cross-platform frameworks are continuously developing, and differences occur in their technologies which makes new studies even more appropriate. The purpose of this study is to investigate which of these two frameworks contribute the most for the developer’s productivity considering the lack of studies in this specific subject. Specifically, a case study has been conducted where the research questions were answered.     The two research questions were divided into three sub questions, respectively where each question was given criteria to follow in the case study and each framework were assigned points if the associated criterion for each question were met. In the end of the study a mean value was assigned to each framework. The results showed that there are small differences in terms of its contribution for the developer’s productivity.
106

Problem – Orsak – Konsekvens (POK)-Modellen för mjukvaruutvecklingsprojekt

Mallo, Angelina January 2017 (has links)
Det blir allt vanligare att arbeta i projekt och därmed finns alltfler mjukvaruutvecklingsmetoder eller ramverk att applicera till projektet. Det är dock fortfarande inte ovanligt att man arbetar metodlöst, vilket kan leda till att oberäknade problem uppstår. En arbetsmetod eller ett metodramverk formar projektet så att man på bästa skall kunna undvika problem samt vara medveten om problem som skulle kunna uppstå. Syftet med den här studien är att ta fram en modell som identifierar problem och dess orsaker och konsekvenser som uppstår i ett mjukvaruutvecklingsprojekt med hjälp av ramverk. Ramverken som används i den här studien är Essence – Kernel and Languages for Software Engineering Methods och Self-Governance Developer Framework. Målet är att den här modellen skall användas av personer inom mjukvaruutveckling för projekt eller forskning. Studien är av kvalitativ natur med induktiv ansats. Det utfördes ett mjukvaruprojekt där teamet arbetade metodlöst och identifierade problem från en uppföljning som gjordes aktivt under projektets arbetsgång. Resultatet av studien är en modell som innebär att man skall kunna hitta orsaker samt konsekvenser till uppstådda problem inom projektet. Modellen som har tagits fram heter Problem-Orsak-Konsekvens-modellen och förkortas POK-modellen. / It is becoming more common to work in projects and therefor there are more and more software development methods to apply for the project. However, it is still not unusual to be working ad hoc, which can lead to uncalculated problems. A method or a framework shapes the project so that problems can be avoided in best possible way. It also helps developers to be aware of the problem that could arise. Despite this, there is no compilation of “anticipated problems” when working ad hoc. The purpose of this study is to produce a model to identify problems, root cause of problems and consequences of the problems that can occur when working in a software development project with the help from frameworks. The frameworks used in this study are Essence – Kernel and Languages for Software Engineering Methods and Self- Governance Developer Framework. The goal is that the model is used in software development environments for projects or research. The study is of qualitative nature with inductive approach. A software project was performed where the team worked without a method and identified problems from a follow-up that was active during the workflow of the project. The result of the study is a model, which should be able to find the source to occurred problems as well as consequence within the project.
107

PaKS : Ramverk för prioritering av krav i systemutvecklingsprojekt / PaKS : A framework for prioritization of system requirements in system development projects

Högberg, Michel, Persson, Paulina January 2017 (has links)
Prioritering av systemkrav är en viktig fråga vid utnyttjandet av resurserna på systemutvecklingsavdelningar. Problem uppstår när antalet krav som ska prioriteras är fler än de systemutvecklingsresurser som finns tillgängliga. Således måste de systemkrav som företag vill få utfört av sin systemutvecklingsavdelning prioriteras på ett strukturerat sätt. För att göra det strukturerat behövs stöd i form av regelverk, ramverk och metoder för prioriteringsarbetet. Problemet är att det finns inga ramverk som ger detta stöd idag. Examensarbetsrapporten utforskar vilka beståndsdelar ett ramverk ska bestå av för att stödja prioritering av systemkrav. Syftet är att skapa ett ramverk för att införa ett strukturerat beslutsstöd med prioriteringsmetoder. En väl utformad forskningsstrategi tillämpas innehållande tre olika forskningsfaser: utforskande, utformande och utvärderande. Forskningsfaserna vägleder arbetet i rätt riktning och ser till att motverka validitetshot som riskerar uppstå. Forskningsmetoden är av kvalitativ och induktiv karaktär. Fakta inhämtas genom litteraturstudier, intervjuer och förstudie, som analyserades ur vilket en första version av ramverkets beståndsdelar utformas. Utvärderingsintervjuer görs med respondenter som har mångårig erfarenhet av prioritering inom systemutveckling. Intervjuerna visar på att företag, oavsett bransch, har liknande förutsättningar och strukturer för att applicera ramverket. Det framtagna ramverkets första version valideras som relevant, lämpligt samt funktionellt för prioritering av systemkrav med mindre justering. Efter en analys av utvärderingen skapades en slutgiltig version av ramverket för prioritering av krav i systemutvecklingsprojekt benämnt PaKS. Resultatet från utvärderingen visar att PaKS är lämpligt, fullständigt och användbart i sin generella utformning där respondenterna bidragit med förslag för ytterligare utformning. / Prioritizing system requirements is an important issue for utilizing resources in system development departments. Issues arise when the number of requirements to prioritize are more than there are resources available in the system development department. Thus, the system requirements that a company want carried out by the system development department must prioritized in a structured way. To make prioritization structured, support is required in the form of regulations, framework and methods for prioritizations. Today there are no frameworks that provide this support. This study explores which components a framework should consist of to support the prioritization of system requirements. The aim is to create a framework for implementing structured decision support with prioritization methods. A well designed research strategy containing three different research phases is used: exploration, design and evaluation. The research phases guide the work in the right direction and aim to counteract validity threats that may occur. The research method is of a qualitative and inductive nature. Facts are obtained through literature studies, interviews and preliminary studies, which were analyzed from which a first version of the framework's components is designed. Evaluation interviews are conducted with respondents who have many years of experience of prioritization in system development. The evaluation show that companies, regardless of industry, have similar conditions and structures to apply the framework. The first version of the framework is validated as relevant, appropriate and functional for prioritizing system requirements with minor adjustments. Following an analysis of the evaluation, a final version of the framework for prioritization of requirements in system development projects, called PaKS, was created. The outcome of the evaluation shows that PaKS is useful in its overall design, in which respondents contributed proposals for further design.
108

Round-Trip Translation : A New Path for Automatic Program Repair using Large Language Models / Tur och retur-översättning : En ny väg för automatisk programreparation med stora språkmodeller

Vallecillos Ruiz, Fernando January 2023 (has links)
Research shows that grammatical mistakes in a sentence can be corrected by machine translating it to another language and back. We investigate whether this correction capability of Large Language Models (LLMs) extends to Automatic Program Repair (APR), a software engineering task. Current generative models for APR are pre-trained on source code and fine-tuned for repair. This paper proposes bypassing fine-tuning and using Round-Trip Translation (RTT): translation of code from one programming language to another programming or natural language, and back. We hypothesize that RTT with LLMs performs a regression toward the mean, which removes bugs as they are a form of noise w.r.t. the more frequent, natural, bug-free code in the training data. To test this hypothesis, we employ eight recent LLMs pre-trained on code, including the latest GPT versions, and four common program repair benchmarks in Java. We find that RTT with English as an intermediate language repaired 101 of 164 bugs with GPT-4 on the HumanEval-Java dataset. Moreover, 46 of these are unique bugs that are not repaired by other LLMs fine-tuned for APR. Our findings highlight the viability of round-trip translation with LLMs as a technique for automated program repair and its potential for research in software engineering. / Forskning visar att grammatiska fel i en mening kan korrigeras genom att maskinöversätta den till ett annat språk och tillbaka. Vi undersöker om denna korrigeringsegenskap hos stora språkmodeller (LLMs) även gäller för Automatisk Programreparation (APR), en uppgift inom mjukvaruteknik. Nuvarande generativa modeller för APR är förtränade på källkod och finjusterade för reparation. Denna artikel föreslår att man undviker finjustering och använder Tur och retur-översättning (RTT): översättning av kod från ett programmeringsspråk till ett annat programmerings- eller naturspråk, och tillbaka. Vi antar att RTT med LLMs utför en regression mot medelvärdet, vilket tar bort buggar eftersom de är en form av brus med avseende på den mer frekventa, naturliga, buggfria koden i träningsdatan. För att testa denna hypotes använder vi åtta nyligen förtränade LLMs på kod, inklusive de senaste GPT-versionerna, och fyra vanliga programreparationsstandarder i Java. Vi upptäcker att RTT med engelska som ett mellanspråk reparerade 101 av 164 buggar med GPT-4 på HumanEval-Java-datasetet. Dessutom är 46 av dessa unika buggar som inte repareras av andra LLMs finjusterade för APR. Våra resultat belyser genomförbarheten av tur och retur-översättning med LLMs som en teknik för automatiserad programreparation och dess potential för forskning inom mjukvaruteknik.
109

Java Unit Testing with AI: An AI-Driven Prototype for Unit Test Generation / Enhetstestning i Java med hjälp av AI: En AI-baserad prototyp för generering av enhetstester

Kahur, Katrin, Su, Jennifer January 2023 (has links)
In recent years, artificial intelligence (AI) has become increasingly popular. An area where AI technology is used and has received much attention during the past year is chatbots. They can simulate an understanding of human language and form text responses to questions asked. Apart from generating text responses, they can also generate programming code, making them useful for tasks such as testing. Although testing is considered a crucial part of software development, many find it tedious and time-consuming. There are currently limited AI-powered tools for generating unit tests in general and even fewer for the programming language Java. The thesis tackles the problem of the lack of tools for generating unit tests in Java that explore the capabilities of AI, and a research question is introduced thereafter. The purpose of this thesis is to address the issue by creating a prototype for generating unit tests in Java based on the AI model, GPT-3.5-Turbo. The goal is to provide a basis for other professionals to create tools for generating unit tests, which was done by experimenting with different prompts and values of a randomness parameter and then suggesting the prototype JUTAI. A quantitative research method with an experimental and comparative approach was used to evaluate the results. A comparison model with three criteria was brought forward to evaluate the results. The findings reveal that JUTAI outperformed the general-purpose AI tool, ChatGPT, across all three criteria and indicate that the goal of this thesis is achieved and the research question answered. / Intresset för artificiell intelligens (AI) har ökat de senaste åren. Ett område där AI- teknologi används och som har fått mycket uppmärksamhet under det senaste året är chattbottar. De kan simulera en förståelse för mänskligt språk och svara på frågor i textformat. Utöver det kan de även generera programkod. Tack vare förmågan att generera kod kan de användas för testning. Även om testning anses vara en viktig del av mjukvaruutveckling, tycker många att det är tråkigt och tidskrävande. För närvarande finns det ett begränsat antal verktyg som kan generera enhetstester, och det finns ännu färre verktyg som kan göra detta i Java. Detta examensarbete tog sig an problemet med bristen på AI-verktyg för enhetstestning i Java genom att besvara på forskningsfrågan som ställdes. Syftet med examensarbetet är att föreslå en lösning på problemet genom att utveckla en prototyp som använder sig av AI- modellen GPT-3.5-Turbo för att generera enhetstester i Java. Målet är att ge en grund för andra yrkesverksamma att skapa verktyg för att generera enhetstester, vilket gjordes genom att experimentera med olika instruktionstrukturer och värden för en slumpmässighetsparameter, och sedan föreslå protypen JUTAI. En kvantitativ forskningsmetod tillsammans med en experimentell och jämförande ansats användes för att utvärdera resultaten. En jämförelsemodell med tre kriterier togs fram för att utvärdera resultaten. Resultaten visar att JUTAI presterade bättre än AI-verktyget ChatGPT i de tre kriterierna och indikerar att målet med detta examensarbete uppnåddes och forskningsfrågan besvarades.
110

Technical decision-making in startups and its impact on growth and technical debt / Tekniskt beslutsfattande i startups och dess påverkan på tillväxt och teknisk skuld

Hultberg, Carl January 2021 (has links)
The rapid pace of digitalization has resulted in increased management of software development, and today a majority of startups are reliant on software. How to manage software development projects is a well-researched area and agile methods are widely adopted by companies in all industries and sizes. However, prior to working with agile methods or any other software development methodology, the founders and management of a startup have to make several technical decisions that could potentially affect the whole software development process and the company's success. Furthermore, studies show that only three programming languages are known by more than 50% of developers, suggesting that the potential effects of technical decisions stretch outside the software development process.  By performing a multiple-case study on startups with a mixed-methodology approach, the researcher has analyzed the literature, interviewed several founders and Chief Technology Officers, and quantitatively analyzed hundreds of thousand lines of code, to find how to organize to make better technical decisions in order to enhance growth and generate less technical debt. The results show that the effects of technical decisions stretch outside the software development process, having an apparent effect on a startup's ability to attract and retain talent. Furthermore, the results show that access to talent is an important but not deciding factor in technical decision-making. Additionally, it is found that in the initial stage of a startup, ease of development and speed are important factors in technical decisions as the main objective is to find product-market fit. When product-market fit has been found and the startup matures, the focus shifts and quality and durability are becoming prominent factors. It is found that scooping features only to implement the absolute core functionality is an effective approach to develop quickly and generate less technical debt while maintaining customer satisfaction. Lastly, it is found that programming language affects the number of issues generated per line of code and the time spent on building features. However, as found in the literature, there is no evidence of this being related to the type of programming language.  The findings have both practical and academic implications. In academics, this thesis lays the foundation for further studies and provides new insights into the field of startups in general, and technical decision-making in particular. For practitioners, this thesis provides a basis for discussion and execution of technical decisions in the early stages of a startup. / Den snabba digitaliseringen har resulterat i en ökad ledning av mjukvaruutveckling och idag är majoriteten av startups beroende av någon form av mjukvara. Hur man leder mjukvaruutvecklingsprojekt är ett välutforskat område och agila metoder är välanvända i företag i alla industrier och storlekar. Innan man arbetar med agila metoder eller någon annan mjukvarutvecklingsmetod så måste grundarna och ledningen ta flera tekniska beslut som potentiellt kan påverka hela mjukvaruutvecklingsprocessen och företagets framgång. Samtidigt finns det studier som visar att endast tre programmeringsspråk hanteras av mer än 50% av utvecklarna, vilket indikerar att de potentiella effekterna av tekniska beslut sträcker sig långt utanför mjukvaruutvecklingsprocessen.  Genom att utföra en flerfallsstudie på startups med både kvalitativa och kvantitativa moment, har forskaren analyserat literaturen, intervjuat flertalet grundare och tekniska chefer, och kvantitativt analyserat hundratusentals rader kod, för att undersöka hur startups kan organisera sig för att ta bättre tekniska beslut som förbättrar tillväxten samt genererar mindre teknisk skuld. Resultaten visar att effekten av tekniska beslut sträcker sig långt utanför mjukvaruutvecklingsprocessen genom att ha en direkt påverkan på startups möjlighet att attrahera och behålla talang. Tillgången till talang visar sig även vara en viktig faktor i teknisk beslutsfattande, däremot är den inte en avgörande faktor. Dessutom visar resultaten att i det initiala stadiet av en startup så är enkelhet och hastighet viktiga faktorer i tekniskt beslutsfattande eftersom fokus ligger på att hitta produkt-marknads-anpassning. När produkt-marknads-anpassning är funnen och startupen mognar, så skiftar dessa faktorerna över till kvalité och hållbarhet. Resultaten visar även att en effektiv metod för att utveckla snabbt och skapa mindre teknisk skuld är att skala ner förfrågningar till dess absolut grundfunktionalitet, samtidigt visade det sig att kundnöjdheten inte minskade. Slutligen visar resultaten att val av programmeringsspråk har en effekt på antalet issues genererade per rad kod och även tiden spenderad för att bygga features. Däremot, precis som i tidigare forskning, finns det inga bevis på att det är relaterat till typen av programmeringsspråk.  Resultaten har både praktiska och akademiska implikationer. I den akademiska världen så lägger detta arbetet en grund för framtida forskning och ger nya insikter i startupfältet generellt, och tekniskt beslutsfattande i startups i synnerhet. För utövare, lägger detta arbetet en bra bas för diskussion och verkställande av tekniska beslut i startups.

Page generated in 0.0752 seconds