Adapting Code Review for Educational Environments: Insights from a Visual Studio Code Extension
Description
Full text not available
Abstract
Kodegjennomgang er viktig for å forbedre kodekvalitet, dele kunnskap og fremme felles eierskap av koden i et team. Imidlertid, ettersom både praksisen og eksisterende kodegjennomgangsverktøy er tilpasset profesjonell bruk, har implementeringen av kodegjennomgang i utdanningskontekster hatt utfordringer med å tilfredsstille studenters behov. Det har spesielt vært mangel på tiltak for å imøtekomme studenters begrensede erfaring med å gjennomgå kode. Denne studien utforsker hvordan man kan løse denne utfordringen gjennom utviklingen av et kodegjennomgangsverktøy, Reviewify, ved hjelp av en design- og utviklingsstrategi. Vi foreslår tiltak for å gjøre det enklere å gjennomføre kodegjennomganger og støtte studentene i prosessen. I Reviewify er dette implementert ved å samle all funksjonalitet i en editor, tilby evalueringskriterier for kodegjennomganger, og muliggjøre kommentering på ulike nivåer for å knytte tilbakemeldinger direkte til det relevante problemet.
For å vurdere verdien av Reviewify, gjennomførte vi semi-strukturerte intervjuer med studenter, hvor de også fikk testet verktøyet. Resultatene viste at studentene var positive til verktøyets funksjoner og mente at disse gjorde prosessen betydelig enklere sammenlignet med funksjonaliteten i andre kodegjennomgangsverktøy. De satte spesielt pris på at Reviewify tillot dem å utføre kodegjennomganger direkte i editoren. Noen studenter understreket også behovet for veiledning under prosessen, noe evalueringskriteriene hjalp dem med. Disse funnene indikerer at Reviewify kan bidra til å kompensere for studenters manglende erfaring og dermed forbedre læringsutbyttet av kodegjennomgang. Likevel kreves det videre arbeid for å utvikle Reviewify fra en prototype til en fullstendig, distribuert løsning som kan tas i bruk innen utdanning. Det er også behov for å undersøke andre tiltak som kan forbedre kodegjennomgangsprosessen for studenter ytterligere, spesielt rettet mot å øke deres kodeforståelse og motivasjon. Code review has proven to be imperative in ensuring high-quality software, promoting knowledge sharing, and fostering shared code ownership within a team. However, as both the practice and the existing code review tools are tailored for professional use, implementation of code review in educational settings has encountered challenges in meeting the specific needs of students. There has particularly been an absence of measures to accommodate students' typical lack of experience in reviewing code. This thesis explores how to address this challenge through the development of a code review tool, Reviewify, using a design and creation strategy. Specifically, we suggest incorporating means to lower the threshold of producing reviews and support students during the process. In Reviewify, this is realised through centralising all code review functionality in a code editor, providing review guidelines, and enabling commenting on various levels to closely associate feedback with the relevant issues.
To evaluate the effectiveness of Reviewify, semi-structured interviews of students were conducted, during which they also had the opportunity to test the tool. The results showed that students were positive to the features of the tool, believing they could significantly ease the process compared to those of other code review tools. They especially appreciated that Reviewify enabled them to perform code reviews directly in the editor. Some students also emphasised a need for guidance during the review process, which the review guidelines addressed effectively. These findings indicate that Reviewify could help compensate for students' inexperience, ultimately enhancing the learning outcomes fostered by code review. Nonetheless, future work is necessary to develop Reviewify from a prototype to a complete, deployed solution in order to enable integration of the tool in education. There is also a need for investigating additional measures that could ease the code review process for students, particularly in terms of supporting their comprehension of code and increasing their motivation.