Microsoft wil AI toepassen op ‘gehele levenscyclus van app-ontwikkeling’

Microsoft presenteerde vorig jaar IntelliCode, dat kunstmatige intelligentie (AI) gebruikt om intelligente suggesties te doen om de kwaliteit van code en productiviteit verbeterd. Tegenwoordig is Visual Studio IntelliCode algemeen beschikbaar in Visual Studio 2019 en Visual Studio Code. Maar volgens Amanda Silver, directeur van de developer-afdeling, moet IntelliCode naar de gehele levenscyclus van app-ontwikkeling komen. 

Silver stelt tegenover VentureBeat dat Microsoft met IntelliCode ontwikkelaars op ieder punt wil assisteren met AI. “Als je kijkt naar de gehele levenscyclus van applicatie-ontwikkeling, van code review tot het testen tot constante integratie, zijn er in ieder stadium kansen voor machine learning om te helpen.”

“IntelliCode is, erg breed gezegd, de notie dat we kunstmatige intelligentie -e n dan vooral machine learning-technieken – willen pakken en daarmee ontwikkelaars en ontwikkelaarsteams productiever willen maken.” Volgens Silver zit de techniek nu nog in de beginfase, maar kan het uiteindelijk op de gehele levenscyclus van applicatie-ontwikkeling worden toegepast.

Drie factoren

Het team van Silver kijkt naar drie factoren als bepaald moet worden wat de hoogste prioriteit heeft bij het toepassen van AI op de levenscyclus van ontwikkeling. Allereerst wordt er gekeken naar wat er waardevol is voor klanten en voor de ontwikkelaars. Wat zijn de grootste pijnpunten die ze tegenkomen en waar kan Microsoft echt bij helpen?

Daarnaast wordt er gekeken of Microsoft voor deze facetten goede datasets heeft. Machine learning-modellen worden getraind op grote datasets, en zonder die sets is er weinig wat je kunt doen. Tot slot is er een feedback-loop nodig. Er moet een metric zijn die verbeterd moet worden, en er moet een manier zijn om te meten of het daadwerkelijk verbeterd.

“Als laatste, voor we één van deze dingen naar productie of bèta brengen, moeten we denken aan de gebruikerservaring”, aldus Silver. “Nadat we een analyse doen van wat waardevol is voor de klant, kijken we naar de data en of we een metric hebben. Daarna moeten we daadwerkelijk een model maken. Dat model heeft een bepaalde hoeveelheid accuraatheid en voorspellingen.”

“Sommige modellen zijn beter dan niets, maar niet goed genoeg of echt veel beter voor de gebruikerservaring. Als het model iet accuraat genoeg is, brengen we het niet uit. We blijven proberen het model te verbeteren voor we het beschikbaar maken.”

Toekomst IntelliCode

Er wordt dus nog hard gewerkt aan het verder uitbreiden van de mogelijkheden van IntelliCode. Zo is er al gespeeld met vroege prototypes die helpen om fouten te vinden. Tijdens het onlangs gehouden Build 2019 toonde Microsoft verder een preview van een algoritme dat wijzigingen lokaal kan volgen en plekken suggereren waar diezelfde wijziging geplaatst moet worden.

Ook heeft Microsoft gewerkt aan de taal die het gebruikt om suggesties te tonen aan ontwikkelaars. Die taal werd nog belangrijker toen het bedrijf experimenteerde met het gebruik van AI om fouten te vinden. “We ontdekte in onze interne tests dat de manier waarop we de identificatie van een fout communiceren naar een gebruiker, echt de manier waarop ze reageren op die fout kan veranderen”, aldus Silver.

“Een deel van de reden hierachter is dat ontwikkelaars echt getraind zijn om te reageren op discrete reacties van de machine. Ze verwachten dat dingen waar of niet waar zijn. We hebben een fout gevonden, of dat hebben we niet. Maar wat oncomfortabel is – en ik denk dat we een manier moeten vinden om hierdoor te navigeren – zijn probabilistische resultaten in onze analyses.”

Volgens Silver houden ontwikkelaars bijvoorbeeld niet van berichten als “70 procent van je code base voldoet aan deze stijl” en “Er is een kans van 85 procent dat hier een fout zit”. Daarom werkt het team aan een manier om ontwikkelaars te helpen om geïnformeerde en redelijke beslissingen te maken aan de hand van de informatie, zonder ze boos te maken.