• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 7
  • Tagged with
  • 7
  • 7
  • 6
  • 5
  • 3
  • 3
  • 3
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 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.
1

DevOps adoption and implementation in software development practice:concept, practices, benefits and challenges

Lwakatare, L. E. (Lucy Ellen) 17 November 2017 (has links)
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.
2

Combining lean thinking and agile software development:how do software-intensive companies use them in practice?

Rodríguez, P. (Pilar) 06 December 2013 (has links)
Abstract Software engineering is advancing according to market needs. Consequently, software development methods that initially caused controversies such as Agile, and more recently Lean, are increasingly being adopted by the software industry. Particularly, Lean Software Development, which was initially regarded as one of the Agile methods, is acquiring an identity of its own as a means to scale Agile. However, Lean thinking is still open to interpretation in the domain of software development, which differs fundamentally from the manufacturing domain where Lean originally emerged. Specific issues such as the essence of Lean Software Development, the compatibility of Lean and Agile and the best combination of them are not properly understood. This dissertation addresses Lean thinking and its combination with Agile in the field of software development, by providing empirical evidence on how software-intensive organisations use them in practice. The research was performed in four phases. First, the relevant literature was analysed to identify research opportunities. Second, a survey strategy was used to investigate status and trends in the adoption of Agile and Lean. The third phase explored in detail how Agile and Lean are combined in practice, by conducting case studies on two large-scale, industry-leading companies that were transforming their processes from Agile Software Development into Lean Software Development. Finally, in the fourth phase, the results of the previous research phases were synthetized to draw conclusions and outline implications. The results of the study confirmed the interest of practitioners in using a combination of Agile and Lean. Unlike in manufacturing, the borders of Agile and Lean are not clearly defined in the software domain. The results provided evidence of numerous compatibilities between Agile and Lean in software development. Generally, the use of Agile methods at a prescriptive level is guided by Lean principles. However, Lean thinking also brings new practical elements to software development processes, such as Kanban, work-in-progress limits, a ‘pull’ and ‘less waste’-oriented culture and an extended emphasis on transparency and collaborative development. The results showed the fundamental importance of practices that enable quick feedback, fast learning and adaptation. / Tiivistelmä Ohjelmistotuotanto kehittyy markkinoiden tarpeiden mukaisesti. Aiemmin kiisteltyjä ketteriä menetelmiä, ja nykyään myös Lean-menetelmiä sovelletaan yhä useammin ohjelmistoteollisuudessa. Lean-menetelmiin perustuva Lean-ohjelmistokehitys erottuu selkeämmin välineenä laajentaa ketterien menetelmien käyttöä. Lean on yhä monitulkintainen ohjelmistotuotannossa, joka poikkeaa teollisuustuotannosta, josta Lean on peräisin. Lean-ohjelmistokehitystä, Lean- ja ketterien menetelmien yhteensopivuutta ja niiden parasta yhdistelmää ei vielä ymmärretä riittävän hyvin. Tämä väitöskirja käsittelee Lean-menetelmien yhdistämistä ketteriin menetelmiin ohjelmistotuotannossa. Tutkimus esittää kokemusperäistä tietoa, kuinka näitä menetelmiä käytetään ohjelmisto-alan organisaatioissa. Tutkimus oli nelivaiheinen. Aluksi tutkimusmahdollisuudet kartoitettiin tutkimalla aiheeseen liittyvää kirjallisuutta. Seuraavaksi tutkittiin kyselytutkimuksen avulla Lean- ja ketterien menetelmien käyttämisen nykytilaa ja kehitystä. Kolmannessa vaiheessa tapaustutkimuksilla selvitettiin Lean- ja ketterien menetelmien yhdistämistä käytännössä. Tapaustutkimuksia tehtiin kahdessa suuressa yrityksessä, jotka olivat muuttamassa prosessejaan ketteristä menetelmistä kohti Lean-ohjelmistokehitystä. Lopuksi aiemmat tutkimusvaiheet yhdistettiin johtopäätöksiä ja vaikutusten hahmottamista varten. Tutkimuksen tulokset vahvistavat Lean- ja ketterien menetelmien yhdistämisen kiinnostavan ohjelmistotuotannonharjoittajia. Lean- ja ketterien menetelmien rajat eivät ole selkeästi määriteltyjä ohjelmistotuotannossa. Tulokset tukevat käsitystä Lean- ja ketterien menetelmien yhteensopivuudesta. Lean ohjaa yleisellä tasolla ketterien menetelmien käyttöä. Lean tuo kuitenkin myös uusia elementtejä ohjelmistotuotantoon, kuten Kanban-menetelmän, keskeneräisen työn rajoittamisen, kysyntään perustuvan ’pull’-menetelmän ja turhan työn vähentämistä tavoittelevan ’less-waste’-työkulttuurin. Lean-ajattelu myös lisää painotusta läpinäkyvyyteen ja yhteistyöhön.
3

Automated state model extraction, testing and change detection through graphical user interface

Aho, P. (Pekka) 01 November 2019 (has links)
Abstract Testing is an important part of quality assurance, and the use of agile processes, continuous integration and DevOps is increasing the pressure for automating all aspects of testing. Testing through graphical user interfaces (GUIs) is commonly automated by scripts that are captured or manually created with a script editor, automating the execution of test cases. A major challenge with script-based GUI test automation is the manual effort required for maintaining the scripts when the GUI changes. Model-based testing (MBT) is an approach for automating also the design of test cases. Traditionally, models for MBT are designed manually with a modelling tool, and an MBT tool is used for generating abstract test cases from the model. Then, an adapter is implemented to translate the abstract test cases into concrete test cases that can be executed on system under test (SUT). When the GUI changes, the model has to be updated and the test cases can be generated from the updated model, reducing the maintenance effort. However, designing models and implementing adapters requires effort and specialized expertise. The main research questions of this thesis are 1) how to automatically extract state-based models of software systems with GUI, and 2) how to use the extracted models to automate testing. Our focus is on using dynamic analysis through the GUI during automated exploration of the system, and we concentrate on desktop applications. Our results show that extracting state models through GUI is possible and the models can be used to generate regression test cases, but a more promising approach is to use model comparison on extracted models of consequent system versions to automatically detect changes between the versions. / Tiivistelmä Testaaminen on tärkeä osa laadun varmistusta. Ketterät kehitysprosessit ja jatkuva integrointi lisäävät tarvetta automatisoida kaikki testauksen osa-alueet. Testaus graafisten käyttöliittymien kautta automatisoidaan yleensä skripteinä, jotka luodaan joko tallentamalla manuaalista testausta tai kirjoittamalla käyttäen skriptieditoria. Tällöin scriptit automatisoivat testitapausten suorittamista. Muutokset graafisessa käyttöliittymässä vaativat scriptien päivittämistä ja scriptien ylläpitoon kuluva työmäärä on iso ongelma. Mallipohjaisessa testauksessa automatisoidaan testien suorittamisen lisäksi myös testitapausten suunnittelu. Perinteisesti mallipohjaisessa testauksessa mallit suunnitellaan manuaalisesti käyttämällä mallinnustyökalua, ja mallista luodaan abstrakteja testitapauksia automaattisesti mallipohjaisen testauksen työkalun avulla. Sen jälkeen implementoidaan adapteri, joka muuttaa abstraktit testitapaukset konkreettisiksi, jotta ne voidaan suorittaa testattavassa järjestelmässä. Kun testattava graafinen käyttöliittymä muuttuu, vain mallia täytyy päivittää ja testitapaukset voidaan luoda automaattisesti uudelleen, vähentäen ylläpitoon käytettävää työmäärää. Mallien suunnittelu ja adapterien implementointi vaatii kuitenkin huomattavan työmäärän ja erikoisosaamista. Tämä väitöskirja tutkii 1) voidaanko tilamalleja luoda automaattisesti järjestelmistä, joissa on graafinen käyttöliittymä, ja 2) voidaanko automaattisesti luotuja tilamalleja käyttää testauksen automatisointiin. Tutkimus keskittyy työpöytäsovelluksiin ja dynaamisen analyysin käyttämiseen graafisen käyttöliittymän kautta järjestelmän automatisoidun läpikäynnin aikana. Tutkimustulokset osoittavat, että tilamallien automaattinen luominen graafisen käyttöliittymän kautta on mahdollista, ja malleja voidaan käyttää testitapausten generointiin regressiotestauksessa. Lupaavampi lähestymistapa on kuitenkin vertailla malleja, jotka on luotu järjestelmän peräkkäisistä versioista, ja havaita versioiden väliset muutokset automaattisesti.
4

Applying usability cost-benefit analysis — explorations in commercial and open source software development contexts

Rajanen, M. (Mikko) 21 November 2011 (has links)
Abstract This thesis explores whether usability cost-benefit analysis is helpful when applied to commercial and open source software (OSS) development contexts. First, the thesis examines the differences and commonalities among the existing usability cost-benefit analysis models. The results indicate that there are considerable variations in the usability cost-benefit analysis literature in how the different categories of usability costs and benefits are identified and documented. Second, the thesis examines how well the existing usability cost-benefit considerations fit into practice in closed source software development. The results indicate that there are considerable risks of failure when using usability cost-benefit considerations in the commercial development context, when the inherent costs of usability activities become apparent, concrete, and measurable. Conversely, the potential benefits of better usability remain vague, uncertain, and unconvincing to the management. In order to build better usability cost-benefit models and minimize the potential that the models have unforeseen inherent risks, as outlined in this thesis, researchers should focus strongly on bringing forward the possible benefits of usability instead of focusing on the costs of designing and implementing user interfaces that would be realized in any case, regardless of the usability activities. Third, the thesis identifies the parallels and differences between open source software development and closed source software development in order to identify how usability costs and benefits fit into OSS development. The usability costs and benefits specific to OSS development are reflected in the experiences of bringing usability into the OSS development context. The results indicate that it is possible to fit usability cost-benefit considerations into the OSS development context, even though there are no apparent financial or resource factors to be considered. Furthermore, to fit usability cost-benefit considerations into the OSS development context, the philosophy, principles, hierarchical structure, community structure, and characteristics of OSS development must be considered. Usability cost-benefit considerations that fit into the OSS development context might help convince core developers that usability activities are important and should be integrated into the project roadmap. / Tiivistelmä Väitöskirjassa tutkitaan käytettävyyden kustannus-hyöty -analyysin soveltamista kaupalliseen ja avoimen lähdekoodin ohjelmistojen (OSS) ohjelmistokehitykseen. Tutkimuksessa tarkastellaan ensin käytettävyyden kustannus-hyöty -analyysimallien eroja ja yhteisiä piirteitä. Tulokset osoittavat käytettävyyden kustannus-hyöty -analyysimalleissa olevan huomattavia eroja siinä, miten eri käytettävyyden kustannuksia ja hyötyjä on tunnistettu. Toiseksi tutkimuksessa tarkastellaan miten hyvin nykyiset käytettävyyden kustannus-hyöty -analyysimallit sopivat käytännössä kaupallisten ohjelmistojen kehittämisessä. Tulokset osoittavat, että on olemassa huomattavia epäonnistumisen riskejä käytettäessä käytettävyyden kustannus-hyötynäkökohtia käytettävyystoimien oikeuttamiseen. Käytettävyyden kustannukset voivat tulla yrityksen johdon näkökulmasta konkreettisiksi ja mitattaviksi, kun taas mahdolliset paremman käytettävyyden hyödyt voivat jäädä epämääräisiksi, epävarmoiksi ja epäuskottaviksi. Parempien käytettävyyden kustannus-hyöty –mallien kehittämiseksi ja odottamattomien riskien minimoimiseksi mallien suunnittelussa tulisi keskittyä erityisesti paremman käytettävyyden tuomiin mahdollisiin etuihin, koska osa kustannuksista toteutuisi joka tapauksessa käytettävyystoimista riippumatta. Kolmanneksi tutkimuksessa tarkastellaan eroja ja yhtäläisyyksiä avoimen lähdekoodin ohjelmistojen kehittämisessä ja kaupallisessa suljetun lähdekoodin ohjelmistojen kehittämisessä, sekä miten käytettävyyden kustannukset ja hyödyt soveltuvat OSS kehityksessä käytettävyystoimien oikeuttamiseen. Käytettävyyden kustannuksia ja hyötyjä OSS -kehityksessä heijastetaan suhteessa kokemuksiin käytettävyystoimista OSS -projekteissa. Tulokset osoittavat, että on mahdollista soveltaa käytettävyyden kustannus-hyöty -näkökulmia OSS kehityksessä, vaikka OSS kehityksessä ei olekaan ilmeisiä huomioitavia taloudellisia tai resurssitekijöitä. Käytettävyyden kustannus-hyöty -näkökulmien soveltaminen OSS kehityksessä edellyttää OSS kehityksen filosofian, periaatteiden, hierarkkisen rakenteen, yhteisön rakenteen sekä OSS kehityksen ominaispiirteiden ottamista huomioon. OSS -kehitykseen paremmin soveltuvien käytettävyyden kustannus-hyöty –näkökulmien avulla voidaan vakuuttaa OSS -projektin pääkehittäjiä ja yhteisöä käytettävyystoimien tärkeydestä ja nämä toimet voidaan saada osaksi projektin ohjelmistokehitystä.
5

Exploring Kanban in software engineering

Ahmad, M. O. (Muhammad Ovais) 15 November 2016 (has links)
Abstract To gain competitive advantage and thrive in the market, companies have introduced Kanban in software development. Kanban has been used in the manufacturing industry for over six decades. In the software engineering domain, Kanban was introduced in 2004 to increase flexibility in coping with dynamic requirements, bring visibility to workflow and related tasks, improve communication, and promote the pull system. However, the existing scientific literature lacks empirical evidence of the use of Kanban in software companies. This doctoral thesis aims to improve the understanding of the use of Kanban in software engineering. The research was performed in two phases: 1) analysis of scientific literature on Kanban in software engineering and industrial engineering and 2) investigation of Kanban implementation trends in software companies. The data was collected through systematic literature reviews, survey and semi-structured interviews. The results were synthesized to draw conclusions and outline implications for research and practice. The results indicate growing interest in the use of Kanban in software companies. The findings suggest that Kanban is applicable to software development, software maintenance, and portfolio management in software companies. Kanban brings visibility to task and offering status, limits work in progress at any given time gives people greater control over their work and limit task switching. Although Kanban offers several benefits, as reported in this dissertation, the findings show that software companies find it challenging to implement Kanban incrementally. / Tiivistelmä Ohjelmistoteollisuudessa Kanbanin käyttö on yleistynyt vuodesta 2004 alkaen. Sillä pyritään tuomaan joustavuutta muuttuvien vaatimusten hallintaan, tuomaan näkyvyyttä työnkulkuun ja toisiinsa liittyviin tehtäviin, parantamaan kommunikaatiota sekä edistämään imuohjauksen hyödyntämistä. Kanbania on käytetty valmistavassa teollisuudessa jo yli kuuden vuosikymmenen ajan. Olemassa olevassa tieteellisessä kirjallisuudessa on kuitenkin esitetty hyvin vähän empiirisiä tutkimustuloksia Kanbanin käytöstä ohjelmistoyrityksissä. Väitöskirjan tavoitteena on parantaa ymmärrystä Kanbanin käytöstä ohjelmistotuotannossa. Tutkimus toteutettiin kahdessa vaiheessa: 1) Kirjallisuusanalyysi Kanbanin käytöstä ohjelmistotuotannossa ja tuotantotekniikassa ja 2) Empiirinen tutkimus Kanbanin käyttöönoton trendeistä ohjelmistoyrityksissä. Tutkimusaineisto kerättiin systemaattisten kirjallisuuskatsausten, kyselytutkimuksen ja puolistrukturoitujen teemahaastattelujen kautta. Tutkimustulosten synteesin pohjalta tehtiin johtopäätöksiä Kanbanin käytöstä ohjelmistotuotannossa sekä niiden merkityksestä alan tutkimukselle ja Kanbanin käytölle yrityksissä. Tutkimuksen tulokset osoittavat kasvavaa kiinnostusta Kanbanin käyttöä kohtaan ohjelmistoyrityksissä. Tulosten perusteella Kanban soveltuu käytettäväksi ohjelmistokehityksessä, ohjelmistojen ylläpidossa sekä tuoteportfolion hallinnassa. Kanban tuo näkyvyyttä ohjelmistokehitykseen, niin meneillään olevien tehtävien kuin portfoliotarjoaman osalta. Se myös auttaa rajoittamaan työtehtävien ruuhkautumista ja antaa kehittäjille paremman tavan hallita työtään rajoittamalla työtehtävien vaihtoa. Vaikka Kanbanin käytöllä on mahdollista saavuttaa väitöskirjatutkimuksessa esitettyjä hyötyjä, tulokset osoittavat, että ohjelmistoyrityksillä on haasteita Kanbanin inkrementaalisessa käyttöönotossa.
6

Supporting rapid product development with agile development methodologies

Kaikkonen, H. (Harri) 28 May 2018 (has links)
Abstract Management of product development activities has become increasingly important, as cycle times of product development have shortened. Smaller product development projects are often conducted rapidly at companies based on customer or sales requests to answer the need for faster cycle times. However, this is often done without fully realizing the impact of the new projects on the larger project portfolio or organizational effectiveness. The main objective of this dissertation is to increase knowledge on the use of agile development methods in small, rapid product development projects, and on the implementation of a rapid product development model. The dissertation is formulated as a qualitative, inductive study based on the research results of four original publications and a summary combining the results. The results of the dissertation show that it is beneficial to separate a rapid product development process for certain types of customer- or sales-initiated projects. A new rapid development model with principles and guidelines is introduced to help organizations facilitate this separation. The implementation of the model can be supported with agile development practices, of which self-managing teams are studied in more detail. There is significant overlap between case companies’ perceived success factors for rapid development and self-management. The results imply that a functional rapid development model can be utilized as a strategic asset at companies. The results also provide empirical evidence that agile development practices can be utilized in product development. In addition to providing empirical evidence in scientific discussion about combining product development and agile software development practices, the results can be used to create better definitions of product development processes in general. / Tiivistelmä Tuotekehityksen johtamisesta ja hallinnasta on tullut entistä haastavampaa ja tärkeämpää, kun tuotekehitysprojektien läpimenoajat ovat lyhentyneet. Yritykset tekevät kasvamassa määrin lyhyitä tuotekehitysprojekteja asiakaspyyntöjen tai myynnin aloitteesta vastatakseen markkinoiden vaatimuksiin nopeasta kehityksestä. Tällaisten nopeiden tuotekehitysprojektien käynnistäminen ja toteutus tehdään usein ymmärtämättä yksittäisen projektin vaikutusta koko projektiportfolioon tai organisaation tehokkuuteen. Tämän väitöskirjan päätavoitteena on tutkia ohjelmistokehityksestä tunnettujen ketterien kehitysmenetelmien käyttöä nopeissa tuotekehitysprojekteissa ja uudenlaisen nopean tuotekehityksen mallin käyttöönotossa. Tutkimus on tehty laadullisena ja induktiivisena tutkimuksena perustuen neljään itsenäiseen tutkimusartikkeliin ja näiden tulokset kokoavaan kokoelmaosaan. Tutkimus osoittaa, että yrityksille on hyödyllistä erottaa erillinen prosessi tietyntyyppisille nopeille tuotekehitysprojekteille. Tutkimuksen tuloksena esitellään malli, joka tukee tätä erottamista periaatteiden ja ohjeiden avulla. Tätä mallia pystytään tukemaan ketterillä kehitysmenetelmillä, joihin liittyen on erityisesti tutkittu itseohjautuvia kehitystiimejä. Case-yritysten havainnoimilla nopean tuotekehityksen menestystekijöillä ja itseohjautuvien tiimien ominaisuuksilla on havaittavissa suurta päällekkäisyyttä. Tulokset osoittavat, että hyvin käytetty ja määritetty nopean tuotekehityksen malli voi olla strateginen kilpailuetu yrityksille. Tulokset lisäävät myös empiiristä tietoa ketterien menetelmien käytöstä tuotekehityksessä ja hyödyntävät siten ajankohtaista tieteellistä keskustelua. Tuloksia voidaan myös hyödyntää muiden tuotekehitysprosessien käyttötarkoituksen tarkempaan määrittämiseen.
7

The role of process conformance and developers' skills in the context of test-driven development

Fucci, D. (Davide) 26 April 2016 (has links)
Abstract Modern software development must adapt to demanding schedules while keeping the software at a high level of quality. Agile software development has been adopted in recent years to meet such a need. Test-driven development (TDD) is one practice that has arisen within the agile software development movement that leverages unit tests to develop software in incremental cycles. TDD supporters claim that the practice increases the productivity of the practitioners who employ it, as well as the internal and external quality of the software they develop. In order to validate or refute such claims, the software engineering research community has studied TDD for the last decade; the results of the empirical studies on the effects of TDD have been mostly inconclusive. This dissertation has studied two factors that may impact the manifestation of the claimed effects of TDD on software’s external quality and developers’ productivity: the developers’ conformance to the process (i.e., their ability to follow TDD) and their skills. The research was performed in four phases. In the first phase, the literature was reviewed to identify a set of factors that have been considered to affect TDD. In the second phase, two experiments were executed within academia. A total of 77 students at the University of Oulu, took part in the studies. These experiments investigated the quality of the software, as well as the subject’s productivity with respect to their programming and testing skills. A follow-up study, using data collected during the second experiment, explored the relation between the quality, productivity and the subjects’ process conformance. In the third phase, four industrial experiments, involving 30 professional, were performed. Process conformance and skills were investigated in relation to the TDD’s effects on external quality and productivity. The fourth phase synthesized the evidence gathered in the two previous phases. The results show that TDD is not associated with improvements in external quality, or developers’ productivity. Further, improvements in both external quality and productivity are associated with skills, rather than with the process, at least in the case of professional developers. Hence, process conformance has a negligible impact. The productivity of novice developers, on the other hand, can benefit from the test-first approach promoted by TDD. / Tiivistelmä Modernin ohjelmistokehityksen täytyy mukautua haastaviin aikatauluihin säilyttäen ohjelmistojen korkea laatu. Ketterä ohjelmistokehitys on viime vuosina omaksuttu tähän tarpeeseen ja suuntauksessa on saanut alkunsa testivetoisen kehityksen käytäntö, joka hyödyntää yksikkötestausta ohjelmiston inkrementaalisessa, syklisessä kehityksessä. Testivetoisen kehityksen puolestapuhujat väittävät tämän käytännön lisäävän ohjelmistokehittäjien tuottavuutta sekä ohjelmiston sisäistä ja ulkoista laatua. Ohjelmistotuotannon tutkimusyhteisö on tutkinut testivetoista kehitystä viimeisen vuosikymmenen aikana vahvistaakseen tai kumotakseen nämä väitteet. Empiiriset tutkimukset testivetoisen kehityksen vaikutuksista ohjelmistotuotantoon ovat suurelta osin tuloksettomia. Tämä väitöstyö tutkii kahta tekijää, jotka voivat vaikuttaa testivetoisen kehityksen väitettyjen vaikutusten ilmentymiseen ohjelmiston ulkoisena laatuna ja ohjelmistokehittäjien tuottavuutena: ohjelmistokehittäjien taitoja ja prosessin mukaista toimintaa. Tutkimus toteutettiin neljässä vaiheessa. Ensimmäisessä vaiheessa tehtiin kirjallisuuskatsaus, jolla selvitettiin tekijöitä, joiden on katsottu vaikuttavan testivetoiseen kehitykseen. Toisessa vaiheessa tehtiin Oulun yliopistolla kaksi koetta, joihin osallistui kaikkiaan 77 opiskelijaa. Kokeissa tutkittiin ohjelmiston laadun ja osallistujien tuottavuuden suhdetta heidän ohjelmointi- ja testaustaitoihinsa. Toisen kokeen aikana kerättyä aineistoa hyödynnettiin jatkotutkimuksessa, jossa tarkasteltiin laadun, tuottavuuden ja prosessin mukaisen toiminnan suhdetta. Kolmannessa vaiheessa tehtiin neljä koetta, joihin osallistui 30 ohjelmistoalan ammattilaista. Prosessin mukaista toimintaa ja taitoja tutkittiin suhteessa testivetoisen kehityksen vaikutuksiin ohjelmiston ulkoiseen laatuun ja tuottavuuteen. Neljännessä vaiheessa syntetisoitiin kahden edellisen vaiheen löydökset. Tulokset osoittavat, ettei testivetoinen kehitys liity ulkoisen laadun parantumiseen eikä ohjelmistokehittäjien tuottavuuteen. Parannukset laadussa ja tuottavuudessa liittyvät ennemmin taitoihin kuin prosessiin, ainakin ohjelmistokehityksen ammattilaisten kohdalla. Näin ollen prosessin mukaisella toiminnalla on vähäpätöinen vaikutus. Toisaalta testivetoisen kehityksen suosiman test-first-menettelytavan hyödyntäminen voi edistää aloittelevien ohjelmistokehittäjien tuottavuutta.

Page generated in 0.3995 seconds