Software development voor dummies

Software is overal om je heen. Elk computerprogramma en elke mobiele app is software. Je ontkomt er niet aan en gebruikt het waarschijnlijk elke dag. Zo lang je het alleen gebruikt, spreken de programma’s vaak voor zich. Maar zodra je het over de ontwikkeling ervan gaat hebben, wordt het spoor je al snel bijster. Hoe makkelijk een programma of app er aan de voorkant ook uit ziet, er is waarschijnlijk veel tijd en moeite gestoken in de ontwikkeling. Het is een specialistisch werkje, waar niet iedereen zomaar bij kan. Zodoende heeft zich een vakgebied gevormd rondom de software ontwikkeling. En, zoals in elk vakgebied, is er sprake van een vakjargon.

Meer weten?

Ga het gesprek aan met Koen!

    Ga je in zee met een software ontwikkelaar, of wil je zelf ontwikkelen? Dan kan dit vakjargon nog wel eens een drempel vormen. Je wil begrijpen waar je het over hebt bij bespreking van software. Om software development wat toegankelijker te maken en de drempel lager te leggen, stellen wij een lijst voor je op met begrippen waar je in het begin al tegenaan zou kunnen lopen. Zo heb je al wat houvast voor als je je gaat betrekken in dit specialistische vakgebied.

    De software-fundering

    Laten we beginnen bij het begin: wat is software development? Het is belangrijk om goed te weten waar je mee aan de slag gaat en binnen welk kader al dat jargon nu voorkomt. Software development is een breed begrip en omvat het hele ontwikkelproces: van begin tot eind.

    Framework

    Software bestaat uit verschillende componenten, maar alles komt uiteindelijk neer op het invoeren van code. Maar er is zó veel code, en de combinaties zijn eindeloos. Om het werk overzichtelijker te maken, wordt daarom vaak gewerkt in een bepaald framework. Een framework is een bepaalde selectie van codestandaarden en bibliotheken dat gebruikt wordt in het ontwikkelproces. Developers weten, aan de hand van de codestandaarden, hoe geavanceerd de code is waar ze mee werken en gebruiken de bibliotheken om code uit te halen zodat ze deze niet zelf hoeven te schrijven. Zo bouwt een developer sneller, en kan beter in groepsverband gewerkt worden, doordat iedereen het framework aanhoudt.

    Open-source framework

    Een open-source framework is een compleet framework dat, met een licentie, bestudeerd, aangepast en verspreid mag worden. Zo biedt het voor veel developers een fundering voor hun nieuwe software, ze kunnen namelijk al veel neerzetten met alleen aanpassingen in de code. Hierdoor werkt een ontwikkelaar efficienter en wordt het ontwikkelproces een stuk minder tijdrovend dan wanneer een programma helemaal vanuit niets wordt gebouwd.

    Voorbeelden van open source frameworks die SevenLab gebruikt zijn: Docker, Angular, Vue.js, Laravel en NativeScript.

    API

    API staat voor application programming interface en is, kortgezegd: de koppeling tussen het ene en het andere stukje software. Deze koppeling is nodig omdat de code van verschillende software vaak net wat anders in elkaar zit. Wil jij bijvoorbeeld nieuwe software gaan gebruiken, maar wel verder alle data van de oude software behouden? Dan zorgt een goede API ervoor dat al je oude data passend terugkomt in jouw nieuwe software.

    Voorbeelden van systemen waar SevenLab API koppelingen mee maakt zijn: SAP en Microsoft Dynamics.

    UX/UI design

    Als het framework bepaald is en alle data, via API, gekoppeld kan worden, denk je ook aan hoe het gepresenteerd wordt. Hier komt User Experience en User Interface design bij kijken. User Experience (UX) design gaat erom hoe een app voelt. De focus ligt op bruikbaarheid en overzicht van een programma. User Interface design richt zich meer op hoe een app eruit ziet. De focus ligt hier op gebruiksvriendelijkheid en presentatie. Heb je bijvoorbeeld een app, dan bepaalt UX design hoe deze gestructureerd is en UI design dat het ‘return’ knopje linksboven in het scherm staat.

    Wat kan de software dan?

    Als je het hebt over de fundering in het bouwen van software, is het ook van belang zicht te hebben op wat het uiteindelijk kan. Ook hier komt volop jargon voor. Sommige begrippen heb je misschien al vaker langs zien komen omdat ze regelmatig worden genoemd in nieuwsberichtgeving over technische ontwikkeling. Hier leggen wij ze uit en …

    AI

    Artificial Intelligence (ook wel kunstmatige intelligentie) is, kort door de bocht, menselijke intelligentie bij computers. Hiermee wordt bedoeld dat computers taken kunnen uitvoeren, waar bij mensen intelligentie voor nodig is. Denk hierbij bijvoorbeeld aan een persoonlijke assistent op je telefoon, die je alleen maar een commando hoeft te geven als ‘call Jan Jansen’, en hij doet het voor je. Kunstmatige intelligentie denkt echter niet voor zichzelf, maar op basis van algoritmes. Écht menselijk denken kan dus (nog) niet, want als iets afwijkt van het algoritme, komt een computer minder snel (of helemaal niet) met een creatieve oplossing dan een mens.

    Machine learning

    De algoritmes die zorgen voor kunstmatige intelligentie, worden vooralsnog ingevoerd door ontwikkelaars. Maar door middel van machine learning kan een computer ook algoritmes aan zichzelf leren. Machine learning houdt namelijk in dat computers leren van de toepassing van bestaande algoritmes, en hiermee nieuwe algoritmes vormen om efficienter te werken, of meer te kunnen uitvoeren. Heb jij een programma met machine learning componenten, en jouw bedrijf wordt ineens dubbel zo groot, dan kan de software zich bijvoorbeeld uit zichzelf zó aanpassen, dat het dubbel verkeer aankan, zonder dat er een ontwikkelaar aan te pas hoeft te komen.

    (Big) Data Analytics /  Predictive Analytics

    Gaat er veel data rond in jouw software? En wil je conclusies kunnen trekken uit deze data? Dan is het zaak dat (een deel van) jouw software zich richt op data analytics. Data analytics onderzoekt al jouw data en geeft je conclusies aan de hand waarvan jij betere zakelijke besluiten kan vormen. Dit wordt ook gedaan aan de hand van algoritmes, en ook hier kan machine learning worden toegepast. Sterker nog, machine learning zorgt ervoor dat je de toekomst kan voorspellen met Predictive Analytics! Machine learning algoritmes gaan namelijk op zoek naar samenhang en afhankelijkheden in jouw data, en gebruiken dit als basis voor verwachtingen over data in de toekomst. Kortom, slimme software voor beter inzicht in de mogelijkheden voor jouw bedrijf.

    Is that all?

    Nou, nee. Natuurlijk is software development nog veel breder dan alleen de begrippen die hier genoemd en uitgelegd zijn, maar alle kennis is mooi meegenomen. Deze kennis zet je in ieder geval alvast op een goed spoor naar overzicht in de wijde wereld van de software ontwikkeling. Ben je benieuwd naar de mogelijkheden van goede software voor jouw bedrijf? Of wil je simpelweg nog meer nadere verklaring over deze of andere begrippen? Neem contact met ons op voor professioneel advies of neem een kijkje naar de software die wij aanbieden.