Thought leaders
Hoe verandert AI het ecosysteem van softwareontwikkeling?

Weinig technologieën kunnen concurreren met kunstmatige intelligentie (AI) als het gaat om het potentieel om innovatie aan te drijven. Het transformeert de banksector, entertainment, e-commerce, gezondheidszorg, fitness en vele andere industrieën, met talloze nieuwe fascinerende vooruitgang in deze gebieden die in zicht zijn.
AI blinkt ook uit in verschillende aspecten van softwareontwikkeling. Bovendien kan dit specifieke gebied mogelijk de grootste begunstigde van de technologie zijn vanwege zijn zelflerende vaardigheid in combinatie met een ongeëvenaarde capaciteit om snel zinvolle informatie te analyseren en te extraheren uit enorme hoeveelheden gegevens. Het verhoogt al de productiviteit, snelheid en kwaliteit van de werkzaamheden van programmeurs.
Er is geen twijfel dat de verdere penetratie van AI in de programmeerwereld de manier waarop software tot stand komt en wat het betekent om een ontwikkelaar te zijn, zal blijven herdefiniëren. Laten we de baanbrekende veranderingen in software-engineering bespreken die worden aangedreven door het tandem van mensen en machines.
Ontwikkelaars kunnen zich meer richten op creatieve, complexe taken
Hoewel AI op dit moment nauwelijks een volledige ontwikkelingscyclus op zichzelf kan afronden, is het al onmisbaar geworden voor het uitvoeren van repetitieve, tijdrovende workflows die veel tijd en moeite kosten als ze handmatig worden gedaan. AI-gebaseerde code-assistenten zoals Tabnine en OpenAI Codex winnen aan populariteit in dit gebied. Hun bijdrage aan het programmeerproces komt voornamelijk neer op automatische code-completie op basis van duizenden open-source-projecten die beschikbaar zijn op GitHub en soortgelijke bronnen.
Dit niet alleen bespaart software-ingenieurs uren van typen en verbetert de nauwkeurigheid van de coderingsroutine, maar het maakt ook ruimte vrij om zich te concentreren op ontwerpverfijning, verbeteringen van de gebruikerservaring, probleemoplossing en de creatieve facetten van hun projecten.
De steeds hechtere “samenwerking” tussen mensen en kunstmatige intelligentie zal een paradigmaswitch teweegbrengen waarin hun rollen elkaar zullen aanvullen zonder rechtstreeks te overlappen. De volgende grote mijlpaal is dat ontwikkelaars voornamelijk een superviserende functie zullen hebben. AI zal daarentegen het grootste deel van het saaie werk doen, zodat de bijdrage van mensen beperkt is tot het toevoegen van de finishing touches aan het proces.
Mentoring voor nieuwe ontwikkelaars is een ander domein waar machines in de toekomst een aanwezigheid zullen behouden en verhogen. AI-gebaseerde tools uit deze categorie, zoals Mendix Assist, maken de beste coderingspraktijken toegankelijk voor IT-enthousiastelingen die niet over de expertise beschikken om projecten zelf te voltooien. Dit zal de weg vrijmaken voor de democratisering van deze industrie.
AI maakt het gemakkelijker om softwarefouten vroeg te detecteren
Het is algemeen bekend dat kwaliteitsborgingstesten een langdurig en resource-intensief proces zijn met een aantal valkuilen. Aangezien softwareleveranciers een beperkt aantal mensuren kunnen toewijzen om onvolkomenheden in hun producten te zoeken, kunnen sommige slordige regels code onder de radar blijven en pas worden ontdekt nadat de oplossing is geïmplementeerd in de omgeving van een klant.
Kunstmatige intelligentie is al deze terreinen aan het revolutioneren. In feite is softwaretesten een van de meest veelbelovende toepassingen van deze technologie in het hele spectrum. Het kan enorme codebases doorkruisen om syntaxisfouten, logische inconsistenties, compilatiefouten en andere bugs te detecteren op een snelheid die verder gaat dan de mogelijkheid van menselijke analisten, en met superhoge nauwkeurigheid.
Een interessant voorbeeld van AI die de kwaliteitsborgingsroutine een boost geeft, is het gebruik van op afbeeldingen gebaseerd machine learning om een programma’s grafische gebruikersinterface te testen via zij-aan-zij-vergelijkingen. Een andere techniek genaamd differentiële fuzzing introduceert dezelfde code in verschillende softwareomgevingen om runtime-afwijkingen te observeren, wat helpt bij het identificeren van subtiele semantische en logische fouten. Naast het uitvoeren van tests op basis van vooraf gedefinieerde scenario’s, kunnen AI-gestuurde tools leren van eerdere projecten en nieuwe testcases creëren. Dit vermindert de ontwikkeltijd aanzienlijk en zorgt ervoor dat de eindgebruiker een product van fatsoenlijke kwaliteit krijgt.
Real-time geautomatiseerd foutbeheer zal blijven groeien
Wanneer onopgeloste fouten in software zich over tijd opstapelen, creëert dit wat wordt genoemd technische schuld. Dat is een gebruikelijke situatie in steeds haastige ontwikkelingscosystemen die productlevering prioriteren boven kwaliteit. Door deze problemen vandaag te negeren, lopen leveranciers het risico te maken met softwareuitval en storingen morgen. Een ander ernstig obstakel is dat het product beveiligingslekken kan hebben die het gemakkelijk vatbaar maken voor compromissen. Voor organisaties die software-as-a-service aanbieden, zijn dit bijzonder nadelige scenario’s omdat ze hun reputatie beïnvloeden en zelfs een korte periode van ontoegankelijkheid financiële verliezen met zich meebrengt.
Kunstmatige intelligentie en machine learning-algoritmen kunnen de leegte opvullen. Ze detecteren automatisch fouten, categoriseren ze volgens een vooraf ingestelde ernstschaal en lossen ze op met weinig tot geen menselijke betrokkenheid. Deze functionaliteit is waardevol omdat de kosten van het aanpakken van bugs aanzienlijk toenemen verder in de softwarelevenscyclus.
De efficiëntie van een dergelijke aanpak komt voort uit de mogelijkheid van deze baanbrekende technologieën om zeer grote databases in enkele minuten te doorzoeken en ruwe code of andere afwijkingen van de norm te onthullen, en stappen voor te stellen die helpen software-ingenieurs om ze te corrigeren. Hoge nauwkeurigheid is een pluspunt van deze tactiek. Bovendien kan AI conclusies trekken uit eerder geanalyseerde gegevens om zijn foutdetectie- en beheerskracht te verfijnen. Gezien alle voordelen zal deze trend blijven groeien in ontwikkelingskringen.
AI verrijkt projecten met continue gebruikersfeedback
Om een product te leveren dat volledig voldoet aan de vereisten van de beoogde doelgroep, moeten IT-professionals feedback centraal stellen. Deze klantgerichte aanpak biedt actiegerichte inzichten in welke aanpassingen de gebruikerservaring kunnen verbeteren, wat helpt bij het uitbreiden van de reikwijdte van toepassingen.
Aangezien machine learning-algoritmen kunnen worden geleerd om verschillende aspecten van hoe gebruikers interactie hebben met een stuk software in real-time te monitoren, onderhouden ze een consistente feedbacklus en besparen ze ontwikkelaars de moeite om deze kleine stukjes van de puzzel te verzamelen en te organiseren. De constante stroom van gebruikersgedragsgegevens helpt bij het creëren van een dynamische ervaring op basis van verschillende gebruiksscenario’s. Zo kan dergelijke software bijvoorbeeld flexibel de UI-manifestatie aanpassen, inclusief de grootte en positie van zijn elementen.
Eisenbeheer is een aangrenzend proces dat gericht is op het verzamelen, valideren en opnemen van een record van wat eindgebruikers van een toepassing verwachten. Tenzij het goed wordt gedaan, kan deze activiteit deadlines naar achteren schuiven, kosten opdrijven of zelfs projecten volledig verstoren. AI-gebaseerde oplossingen kunnen het naar een hoger niveau tillen. Getraind op richtlijnen voor beste praktijken in dit gebied van projectbeheer, benutten ze natuurlijke taalverwerking om eisen te analyseren, inconsistenties te identificeren en verbeteringen voor te stellen.
Deze instrumenten kunnen gemakkelijk ontsnappingsclausules, onvolledige of samengestelde eisen en verschillende ambiguïteiten identificeren, waardoor de beoordelingsduur wordt geminimaliseerd. IBM Watson en Visure Requirements ALM zijn voorbeelden van de meest bekende tools in deze niche.
Plannen en kostenraming wordt minder ontmoedigend
Als je bekend bent met de nuances van deze voorlopige fasen van een softwareproject, dan weet je wat een last ze leggen op ontwikkelteams. Het is alsof een vergelijking met een heleboel variabelen die IT-mensen vaak niet goed oplossen. Gelukkig bleek kunstmatige intelligentie buitengewoon bedreven te zijn in het schatten van de tijdslijn en het vereiste budget.
Precieze voorspelling is een kwestie van het gehele context van een project begrijpen, inclusief de vereisten van klanten, de hindernissen die ontstaan bij het ontwikkelen van een specifiek type software en de tijd die het kost om ze aan te pakken. Machines kunnen worden getraind om deze metadata te begrijpen op basis van eerdere projecten en informatie van geverifieerde derde partijen.
De details over al deze interne werkingen kunnen cruciaal zijn om te beslissen of een project al dan niet moet worden aanvaard. Soms is het verstandiger om “Nee” te zeggen dan een baan aan te nemen die gedoemd is om onaanvaardbaar lang te duren. Het niet kunnen halen van deadlines is een katalysator voor klantfrustratie, dus het is in uw belang om accurate schattingen te geven. Met predictieve analytics in zijn gereedschapskist kan AI het zilveren kogel zijn in dit opzicht en zal het blijven fungeren als een hoeksteen voor het nemen van geïnformeerde zakelijke beslissingen.
AI helpt bij het verbeteren van de codesecuriteit
Vanaf de vroege ontwikkelingsfase tot productrelease en implementatie in de infrastructuur van een klant, moet beveiliging voor ontwikkelaars voorop staan. Een aanzienlijk deel van de datalekken en ransomware-aanvallen gebeurt vanwege coderingsfouten die uitbuitbare gaten in software creëren. De enige manier om deze rampen te voorkomen, is door dergelijke fouten proactief te vinden en te verhelpen. Deze enorm belangrijke strategie wordt SecDevOps genoemd.
AI is de beste bondgenoot van een programmeur op dit gebied. Machine learning-algoritmen kunnen informatie uit openbare bronnen zoals de CVE-database van MITRE gebruiken om elke regel code te controleren op bekende kwetsbaarheden die een toepassing in een lage hangende vrucht veranderen. De bescherming strekt zich uit tot alle fasen van de softwarelevenscyclus. Na implementatie kunnen deze intelligente tools binnendringende bedreigingen en zero-day-aanvallen detecteren op basis van verdachte netwerkactiviteit.
Het gebruik van AI past in de context van het steeds populairdere principe dat “shift left” wordt genoemd, dat ertoe strekt om imperfecties en gebreken zo vroeg mogelijk in het ontwikkelproces te detecteren en te repareren. Deze praktijk vermindert kosten en helpt softwareleveranciers om uit de valkuil te stappen die voortkomt uit de hierboven genoemde technische schuld.
Terzijde, cybercriminelen gebruiken deze technologie al. Recentelijk zijn er rapporten over het gebruik van ChatGPT door cybercriminelen om malware te maken, wat een verontrustende trend illustreert. Met dat gezegd, verdere implementatie van AI om beveiliging in de CI/CD-pijplijn in te bakken, kan de balans in het voordeel van de witte hoeden doen doorslaan.
Verder gaan
Kunstmatige intelligentie is al geïntegreerd in de structuur van softwareontwikkeling, en deze banden zullen blijven groeien. Terwijl sommige analisten beweren dat deze technologie er alleen maar aan bijdraagt dat programmeurs overbodig worden, lijken dergelijke voorspellingen ver weg. In de komende jaren zal de evolutie van deze industrie waarschijnlijk de route volgen van diepere automatisering van repetitieve taken en processen waarbij de marge van menselijke fouten hoog is. Mensen zullen software blijven schrijven, en AI zal hen een vriendelijke helpende hand bieden.












