• No results found

Denna studie fokuserade på vilka uppfattningar erfarna och oerfarna utvecklare i

industrimiljö har angående hur TDD används. Genom att kvalitativt undersöka detta med hjälp av intervjuer har ett antal upptäckter gjorts.

Mest betydelsefullt är hur arbetsplatsens kultur är avgörande till hur TDD används. För oerfarna utvecklare kan det innebära att mer erfarna utvecklare formellt eller informellt styr hur TDD lärs in och används. Studien tyder på att bristande diskussion, reflektion och utvärdering av vad tekniken innebär är bidragande faktorer. För mer erfarna utvecklare kan detta ta uttryck i särskild obenägenhet att förändra invanda arbetsmönster. Den blandning av olika åsikter och synsätt som möjligen infinner sig kan skapa obalans i arbetsgruppen, med svårigheter att använda TDD som följd.

Studien visar även att TDD inte används i stor omfattning. Regelmässighet är generellt bristande och arbetsplatsens klimat verkar sätta upp regler för hur TDD används. Erfarna utvecklare ser detta som ett problem och önskar tydligare disciplin. Oerfarna har motsatt uppfattning. Skillnader i grundläggande syn är tydligt där erfarna utvecklare använder TDD för att driva kodens design framåt. Genom refaktorisering och kunskaper i objektorientering blir detta möjligt. För oerfarna utvecklare är utgångspunkten vid användning av TDD

skapande av tester och kontroll över kodens korrekthet.

För industrivärlden är det viktigt att inse problematiken när endast ett fåtal anställda använder TDD. Det i sig kan skapa slitningar på arbetsplatsen och god kommunikation uppmuntras därför. Rekommendation är därmed att industrivärlden inser vikten av att få anställda att värdesätta ny kunskap, samt skapar utrymme för diskussion och reflektion. I synnerhet vid hög komplexitet i uppgift kan det vara betydelsefullt att samtal förs hur TDD ska användas.

6.1 Begränsningar

Möjlighet att generalisera utifrån studien medför vissa svårigheter. Kvale (1997) beskriver att ett vanligt argument mot intervjumetod är att generalisering försvåras när antalet intervjupersoner är få. Studien har ett mindre antal informanter och ett större antal skulle ge tydligare data och bättre generaliserbarhet. Studien visar tydliga gränsdragningar mellan oerfarna och erfarna utvecklare på flera områden. Det kan vara en slump att utfallet blev tydligt och en viss snedvridning av svar är därför möjligt. Om detta inträffat kan en anledning vara att vissa informanter valdes ut utifrån snöbollsmetod. Atkinson och Flint (2001) påtalar att snöbollsmetod lider av sämre generaliserbarhet eftersom informanter väljs ut baserat på andra personers personliga uppfattning. Det kan innebära att informanter kontaktades med en starkare tilltro till TDD än vanligtvis, särskilt bland erfarna utvecklare.

35

Reliabilitet inom kvalitativ forskning beskrivs av Kvale (1997) som hur neutral forskningen är.

Detta innebär framförallt att forskarens roll reflekterats över. Min egen positiva inställning till TDD kan möjligen varit för tydlig och i synnerhet genomsyrat intervjuerna på ett för partiskt sätt. Resultaten har tolkats kritiskt och eftersträvats att vara objektiva mot

intervjuresultaten. Risk finns däremot att exempelvis undermedvetna tonfall och följdfrågor styrt intervjuresultaten i en viss riktning. Medvetenheten fanns för detta under själva intervjutillfället. Efterföljande till frågemanus samt en inställning att snarare lyssna än tala var utgångspunkt under själva intervjuerna för att motverka eventuell partiskhet.

Intervjuerna genomfördes utan att informanterna fick frågorna i förväg. Anledning, som tidigare beskrivet i kapitel 3.2, var rädsla att i synnerhet oerfarna konstruerar ”korrekta” svar för att visa kunnighet. Det är möjligt att vissa svar inte är helt genomtänkta och för stor uppmärksamhet riktats mot dem. Det gäller för alla intervjuer.

Enligt Denscombe (2000) innebär även reliabilitet huruvida studiens resultat blir samma vid en upprepning av studien. På grund av problematik med generaliserbarhet är det troligt att resultaten kan variera stort beroende på urvalsgrupp.

Gällande validitet till huruvida analys och slutsatser gör rättvisa till studiens syfte finns samma svårigheter med en eventuell partisk inställning. En inställning att problematisera, samt tydliggöra skillnader, kan potentiellt ha inneburit en överanalys och övertolkning av svar. Däremot har studien inte som mål att bevisa att TDD är rätt arbetsmetod i alla lägen, eller att erfarna använder TDD ”bättre”. Däremot är infallsvinkeln tydlig i vad som försvårar och påverkar användningen av TDD. Det innebär en fokusering på skillnader och

framhävande av dessa. Kvale (1997) beskriver validitet med sökandet efter sanning och att slutsatser är grundade i att påståenden blivit kritiskt granskade , blivit ifrågasatta och blivit jämförda mot teori. Arbetet har i flera omgångar granskats på detta sätt och det teoretiska ramverket låg som grund vid exempelvis utformning av frågor. Genom att hålla intervjuerna relativt strikt mot frågemanus var även tanken att informanterna skulle tvingas hålla sig inom en viss begränsad del utifrån teorin.

Metodvalet i sig uppfattades som lämpligt i förhållande till studiens syfte. Den djupare kunskap som kan inhämtas vid kvalitativ ansats hjälper till att skapa större förståelse för TDD. Kvantitativa studier utgår ofta från någon typ av experiment som mäts. I förhållande till TDD innebär detta för deltagare ett skapat incitament att ta till sig TDD och utföra uppgiften så bra som möjligt. Kvalitativ ansats kringgår den konstruktionen och andra typer av

upptäckter blir möjliga. Tillsammans kan en mer heltäckande bild skapas.

6.2 Framtida forskning

Fler kvalitativa studier i industrimiljö med större antal informanter är nödvändigt för att bekräfta resultaten från denna studie. Generellt är kvalitativa studier om TDD viktigt då studien visar stora skillnader på uppfattningar hos utvecklare. Hur detta framförallt påverkar arbetsplatsens kultur är viktigt att få djupare kunskap om. Uppslag på infallsvinklar för fortsatta studier:

36  Hur skiljer användning av TDD inom en arbetsplats?

 Hur blir effektivitet när delar av arbetsstyrkan använder TDD och andra inte?  Vad inträffar om mer rigorös utbildning av TDD sker i arbetsgruppen?

 En longitudinell kvalitativ studie för att se hur uppfattningar vid användning av TDD påverkas över tid. Kombineras med krav att TDD används mer tvingande och strikt.  Hur påverkas oerfarna utvecklares kunskapsnivå vid strikt användande av TDD?  Hur påverkar uppgiftens komplexitet användningen av TDD i akademisk miljö?  Hur uppmuntras förändringsbenägenhet hos mer erfarna utvecklare och hur

önskvärt är det?

Referenser

Aniche, M., & Gerosa, M. A. (2015). Does test-driven development improve class design: A qualitative study on developers’ perceptions. Journal of the Brazilian Computer Society, vol

21, no. 1, 1 – 11.

Atkinson, R., & Flint, J. (2001). Accessing hidden and hard-to-reach populations: snowball research strategies. Social Research Update, vol 33, no. 1, 1 – 4.

Backman, J. (2008). Rapporter och uppsatser. Lund: Studentlitteratur.

Bajaj, K., Patel, H., & Patel, J. (2015). Evolutionary software development using test driven approach. International Conference and Workshop on Computing and Communication,

IEMCON 2015. Vancouver, Kanada.

Beck, K. (2003). Test-driven development: by example. Courier: Addison-Weasley. Beller, M., Gousios, G., Panichella, A., & Zaidman, A. (2015). When, how, and why developers (do not) test in their IDEs. 10th Joint Meeting of the European Software

Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE 2015 (pp. 179 – 190) Bergamo, Italien.

Bissi, W., Serra Seca Neto, A. G., & Emer, M. C. F. P. (2016). Using thematic analysis in psychology. Information and Software Technology, vol 74, 45 – 54.

Braun, V., & Clarke, V. (2006). Using thematic analysis in psychology. Qualitative Research in

Psychology, Vol 3, no. 2, 77 – 101.

Buffardi, K., & Edwards, S. H. (2012). Exploring influences on student adherence to test-driven development. 17th ACM Conference on Innovation and Technology in Computer

Science Education (pp. 105 – 110). Haifa, Israel.

Causevic, A., Sundmark, D., & Punnekkat, S. (2011). Factors limiting industrial adoption of test driven development: A systematic review. 4th IEEE International Conference on

37 Crispin, L. (2006). Driving Software Quality: How test-driven development impacts software quality. IEEE Software, vol 23, no. 6, 70 – 71.

Denscombe, M. (2000). Forskningshandboken – för småskaliga forskningsprojekt inom

samhällsvetenskaperna. Lund: Studentlitteratur.

Dogsa, T., & Batic, D. (2011). The effectiveness of test-driven development: An industrial case study. Software Quality Journal, vol 19, no. 4, 643 – 661.

Domino, M.A., Collins, R.W., & Hevner, A.R. (2007). Controlled experimentation on adaptations of pair programming. Information Technology and Management, vol 8, no. 4, 297 – 312.

Edwards, S. H. (2003). Improving student performance by evaluating how well students test their own programs. ACM Journal on Educational Resources in Computing, vol 3, no. 3, 1 – 24.

Erdogmus, H., Morisio, M., & Torchiano, M. (2005). On the effectiveness of the test-first approach to programming. IEEE Transactions on Software Engineering, vol 31, no. 3, 226 – 237.

Freeman, S., & Pryce, N. (2010). Growing object-oriented software, guided by tests. Donnelley: Addison-Weasley – Pearson Education.

Fucci, D., Scanniello, G., Romano, S., Sheppard, M., Sigweni, B., Uyaguari, F., Turhan, B., Juristo, N., & Oivo, M. (2016). An external replication on the effects of test-driven development using a multi-site blind analysis approach. 10th ACM/IEEE International

Symposium on Empirical Software Engineering and Measurement, ESEM 2016. Ciudad Real,

Spanien.

Fucci, D., Turhan, B., & Oivo, M. (2015). On the effects of programming and testing skills on external quality and productivity in a test-driven development context. 19th International

Conference on Evaluation and Assessment in Software Engineering, EASE 2015. Ninjing, Kina.

Hove, S.E., & Anda, B. (2005). Experiences from conducting semi-structured interviews in empirical software engineering research. 11th IEEE International Software Metrics

Symposium (pp. 203 – 212). Como, Italien.

Janzen, D. S., & Saiedian, H. (2008). Does test-driven development really improve software design quality?. IEEE Software, vol 25, no. 2, 77 – 84.

Jeffries, R., & Melnik, G. (2007). Guest editor's introduction – TDD: The art of fearless programming. IEEE Software, vol 24, no. 3, 24 – 30.

Kvale, S. (1997). Den kvalitativa forskningsintervjun. Lund: Studentlitteratur.

38 Latorre, R. (2013). A successful application of a test-driven development strategy in the industrial environment. Empirical Software Engineering, vol 19, no. 3, 753 – 773.

Latorre, R. (2014). Effects of developer experience on learning and applying unit test-driven development. IEEE Transactions on Software Engineering, vol 40, no. 4, 381 – 395.

Machi, L., McEvoy, B. (2016). The Litterature Review. Thousand Oaks, California: Corwin. Martin, R. C. (2009). Clean code. Donnelley: Prentice Hall – Pearson Education.

Martin, R. C. (2007). Professionalism and test-driven development. IEEE Software, vol 24, no. 3, 32 – 36.

Nagappan, N., Maximilien, M. E., Bhat, T., & Williams, L. (2008). Realizing quality

improvement through test driven: results and experiences of four industrial teams. Empirical

Software Engineering, vol 13, no. 3, 289 – 302.

Pancur, M., & Ciglaric, M. (2011). Impact of test-driven development on productivity, code and tests: a controlled experiment. Information and Software Technology, vol 53, no. 6, 557 – 573.

Rafique, Y., & Misic, V. B. (2013). The effects of test-driven development on external quality: A meta analysis. IEEE Transactions on Software Engineering, vol 39, no. 6, 835 – 856.

Romano, S., Fucci, D., Scanniello, G., Turhan, B., & Juristo, N. (2016). Results from an ethnographically-informed study in the context of test driven development. 20th

International Conference on Evaluation and Assessment in Software Engineering, EASE 2016.

Limerick, Irland.

Salman, I., Misirli, A. T., & Juristo, N. (2015). Are students representatives of professionals in software engineering experiments?. 37th IEEE/ACM International Conference on Software

Engineering, ICSE 2015 (pp. 666 – 676). Florence, Italien.

Schraw, G., Crippen, K.J., & Hartley, K. (2006). Promoting self-regulation in science education - metacognition as part of a broader perspective on learning. Research in Science Education,

vol 36, no 1-2, 111 – 139.

Shull, F., Melnik, G., Turhan, B., Layman, L., Diep, M., & Erdogmus, H. (2010). What do we know about test-driven development. IEEE Software, vol 27, no. 6, 16 – 19.

Tosun, A., Dieste, O., Fucci, D., Vegas, S., Turhan, B., Erdogmus, H., Santos, A., Oivo, M., Toro, K., Jarvinen, J., & Juristo, N. (2016). An industry experiment on the effects of test-driven development on external quality and productivity. Empirical Software Engineering, (publicerad online, vol saknas), 1 – 43.

Vetenskapsrådet. (2002). Forskningsetiska principer inom humanistisk-samhällsvetenskaplig

forskning. Elanders Gotab: Stockholm.

Related documents