Thought leaders
Hoe verandert AI het software-ontwikkelingslandschap?

Weinig technologieën zijn zo innovatief als kunstmatige intelligentie (AI). Het transformeert de banksector, entertainment, e-commerce, gezondheidszorg, fitness en vele andere industrieën, met talloze nieuwe fascinerende ontwikkelingen in deze gebieden die in het verschiet liggen.
AI blinkt ook uit in verschillende aspecten van softwareontwikkeling. Bovendien kan dit specifieke gebied wellicht de grootste begunstigde van deze technologie zijn vanwege zijn zelflerende capaciteit in combinatie met een ongeëvenaard vermogen om snel grote hoeveelheden gegevens te analyseren en betekenisvolle informatie te extraheren. Het verhoogt al de productiviteit, snelheid en kwaliteit van het werk van programmeurs.
Er is geen twijfel over 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 focussen op creatieve, complexe taken
Hoewel AI op dit moment nog niet in staat is om een volledige ontwikkelingscyclus op zichzelf af te ronden, is het al onmisbaar geworden voor het uitvoeren van repetitieve, saaie workflows die veel tijd en moeite kosten als ze handmatig worden uitgevoerd. 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.
Niet alleen bespaart deze bijdrage software-ingenieurs uren aan typen en verbetert de nauwkeurigheid van de coderingsroutine, maar het maakt ook ruimte vrij om zich te concentreren op ontwerpverfijning, verbetering van de gebruikerservaring, probleemoplossing en de creatieve kant van hun projecten.
De steeds hechtere “samenwerking” tussen mensen en kunstmatige intelligentie zal een paradigmeshift teweegbrengen waarin hun rollen elkaar zullen aanvullen zonder rechtstreeks te overlappen. De volgende grote mijlpaal is dat ontwikkelaars meer een superviserende functie zullen hebben. AI zal op zijn beurt het grootste deel van het saaie werk doen, zodat de bijdrage van mensen beperkt is tot het afwerken van het proces.
Begeleiding voor nieuwe ontwikkelaars is een ander domein waarin machines in de toekomst aanwezig zullen zijn. 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 op eigen kracht 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 kwaliteitscontrole een tijdrovend en resource-intensief proces is met veel valkuilen. Aangezien softwareleveranciers slechts een beperkt aantal manuren kunnen toewijzen om imperfecties in hun producten te zoeken, kunnen sommige slechte code-regels 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 doorzoeken om syntaxisfouten, logische inconsistenties, compilatiefouten en andere fouten te detecteren met een snelheid die verder gaat dan het vermogen van menselijke analisten, en met superhoge nauwkeurigheid.
Een interessant voorbeeld van AI die de kwaliteitscontrole-routine een boost geeft, is het gebruik van op afbeeldingen gebaseerd machine learning om een programma’s grafische gebruikersinterface te testen via side-by-side-vergelijkingen. Een andere techniek genaamd differentiële fuzzing introduceert dezelfde code in verschillende software-omgevingen om runtime-afwijkingen te observeren, waardoor subtiele semantische en logische fouten kunnen worden geïdentificeerd. 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 Automated Error Management zal blijven groeien
Wanneer onopgeloste fouten in software zich in de loop van de tijd ophopen, ontstaat er een zogenaamde technische schuld. Dat is een gebruikelijke situatie in steeds haastiger 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 waardoor het gemakkelijk kan worden gecompromitteerd. Voor organisaties die software-as-a-service aanbieden, zijn dit bijzonder ongunstige scenario’s omdat ze hun reputatie en zelfs een korte periode van onbereikbaarheid raken, wat financiële verliezen met zich meebrengt.
Kunstmatige intelligentie en machine learning-algoritmen kunnen deze leegte opvullen. Ze detecteren automatisch fouten, categoriseren ze volgens een vooraf ingestelde ernstigschaal en lossen ze op met weinig tot geen menselijke betrokkenheid. Deze functionaliteit is waardevol omdat de kosten van het aanpakken van fouten aanzienlijk toenemen verder in de software-levenscyclus.
De efficiëntie van een aanpak als deze komt voort uit het vermogen van deze cutting-edge technologieën om zeer grote databases in enkele minuten te doorzoeken en ruwe code of andere afwijkingen van de norm te onthullen, terwijl ze stappen suggereren die software-ingenieurs helpen deze 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, waardoor toepassingen hun bereik aanzienlijk kunnen uitbreiden.
Aangezien machine learning-algoritmen kunnen worden getraind 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 een dynamische ervaring te creëren op basis van verschillende gebruiksscenario’s. Bijvoorbeeld kan een dergelijke software 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 bijhouden van een record van wat eindgebruikers van een toepassing verwachten. Tenzij het goed wordt gedaan, kan deze activiteit deadlines naar achteren schuiven, kosten opblazen of zelfs projecten volledig ontwrichten. AI-gestuurde 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 onduidelijkheden identificeren, waardoor de beoordelingstijd wordt geminimaliseerd. IBM Watson en Visure Requirements ALM zijn voorbeelden van de beste tools in deze niche.
Planning en kostenraming wordt minder ontmoedigend
Als u bekend bent met de nuances van deze voorlopige fasen van een softwareproject, dan weet u wat een last ze leggen op ontwikkelteams. Het is alsof een vergelijking met een heleboel variabelen die IT-mensen vaak niet goed weten op te lossen. 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 begrijpen van de hele context van een project, inclusief de vereisten van klanten, de hindernissen die ontstaan bij het ontwikkelen van een bepaald type software en de tijd die het kost om deze 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 innerlijke werkingen kunnen cruciaal zijn voor het besluit 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 onnodig 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 een hoeksteen voor het nemen van geïnformeerde zakelijke beslissingen.
AI helpt bij het verbeteren van de codebeveiliging
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 gegevenslekken en ransomware-aanvallen gebeurt vanwege coderingsfouten die exploiteerbare gaten in software creëren. De enige manier om deze rampen te voorkomen is om dergelijke fouten proactief te vinden en te verhelpen. Deze cruciale strategie staat bekend als SecDevOps.
AI is de beste bondgenoot van een programmeur in dit opzicht. 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 tot een makkelijk doelwit maken. De bescherming strekt zich uit tot alle fasen van de software-levenscyclus. Na implementatie kunnen deze intelligente tools insider-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” heet, dat ertoe strekt om imperfecties zo vroeg mogelijk in het ontwikkelingsproces te detecteren en te repareren. Deze praktijk vermindert de kosten en helpt softwareleveranciers om uit de val te blijven die voortkomt uit de bovengenoemde technische schuld.
Terzijde, cybercriminelen zijn deze technologie al aan het misbruiken. Recentelijke rapporten over het misbruik van ChatGPT voor het creëren van malware, illustreren de verontrustende trend. Met dat gezegd, verdere AI-implementatie om beveiliging in de CI/CD-pipeline in te bouwen, kan de pendule in het voordeel van de white hats doen slingeren.
Verder gaan
Kunstmatige intelligentie is al geïntegreerd in de softwareontwikkeling, en deze banden zullen blijven groeien. Terwijl sommige analisten beweren dat deze technologie op het punt staat om programmeurs overbodig te maken, lijken dergelijke voorspellingen ver weg. In de komende jaren zal de evolutie van deze industrie waarschijnlijk de route van diepere automatisering van repetitieve taken en processen volgen waarin de marge van menselijke fouten hoog is. Mensen zullen software blijven schrijven, en AI zal hen een vriendelijke helpende hand bieden.












