Development

Softwareontwikkeling in drie dimensies
De toenemende rol van software in de bedrijfsvoering kan voor veel bedrijven dramatisch zijn.
‘Onze organisatie is een softwarebedrijf geworden. Helaas realiseren onze engineers zich dat nog niet!’ Zo beschreef een vicepresident van een wereldwijde chipfabrikant zijn bedrijf. En hij is niet de enige: elke onderneming die producten ontwikkelt, wordt langzamerhand een softwareorganisatie. Er zijn talloze voorbeelden te noemen:
- Een fabrikant van bos- en tuingereedschap die oorspronkelijk volledig georiënteerd was op brandstofgedreven apparatuur, verschuift nu zijn aandacht naar elektronische platformen die worden aangestuurd door software.
- Medische apparaten die voornamelijk uit hardware bestonden, bevatten steeds meer software. En sinds een EU Directive in 2010 kunnen standalone softwareproducten nu worden geclassificeerd als medische ‘apparatuur’.
- De hoeveelheid software in een Mercedes S-klasse van 1995, geprint op A4, reikte drie meter hoog. In 2020 zal deze stapel zo hoog zijn als het hoogste gebouw ter wereld: de Burj Khalifa in Dubai, 830 meter hoog.
Deze trend heeft vergaande gevolgen voor de software-industrie. De voorbeelden geven aan dat de groei van de software-industrie niet alleen een kwestie is van meer of grotere softwareproducten, gemeten in regels code, maar ook in andere dimensies.
Producten en services
De eerste dimensie karakteriseert het ‘wat’ en refereert aan de groei van software zelf in de traditionele zin van het woord ‘groei’. Softwareproducten worden steeds groter en complexer, gemeten in aantal regels code, zoals het voorbeeld van de Mercedes S-Klasse. Maar grotere producten resulteren ook in steeds meer complexe architecturen, vooral als deze nog steeds gebruik maken van legacysystemen, die praktisch niet vervangbaar zijn. Denk bijvoorbeeld aan betalingssystemen en andere systemen die niet offline kunnen gaan.
Bovendien bevinden we ons te midden van een revolutie gedreven door software, namelijk een transformatie van standalone producten en systemen naar services (zie kader). Bekende voorbeelden zijn Uber en AirBnb – de eerste is het grootste taxibedrijf dat geen enkele taxi in eigen beheer heeft; de tweede is het grootste hotelbedrijf dat zelf geen enkele hotelkamer bezit.
Het traditionele businessmodel dat erop gericht is om winst te maken met de verkoop van software, wordt langzamerhand vervangen door een businessmodel waarbij geld wordt verdiend met services, en in veel gevallen ook met de content die gebruikers zelf creëren (denk aan Facebook en StackOverflow).
Organisaties en ecosystemen
De tweede dimensie karakteriseert het ‘wie’ en ‘waar’. Softwareontwikkeling wordt van oudsher voornamelijk gedaan door softwarebedrijven, die vervolgens hun product aan de man brachten. De trend van software-outsourcing is nog steeds relatief nieuw, hoewel het de laatste 10 tot 15 jaar steeds normaler is geworden, dankzij de groei van internet. Alternatieve strategieën als crowdsourcing en opensourcing zijn nog niet wijdverbreid, maar de toekomst van software-ontwikkeling ligt steeds meer buiten een organisatie, in samenwerkingsverbanden tussen bedrijven, maar ook met opensourcecommunities. Deze verandering heeft belangrijke gevolgen voor hoe softwareontwikkeling plaatsvindt, omdat systemen steeds afhankelijker van elkaar worden. Het Internet of Things klinkt misschien nog als een futuristische fantasie, maar over 10 jaar zien de producten in ons dagelijks leven er heel anders uit.
Eén trend die deze dimensie van softwaregroei karakteriseert is die van ecosystemen; een ecosysteem in deze context bestaat uit een platform, derde partijen die extensies leveren, en eindgebruikers die het eindproduct samenstellen op basis van het platform. Bekende voorbeelden hiervan zijn de Apple App Store en Google Play, waarbij elke smartphone-eigenaar een unieke combinatie samenstelt die bestaat uit het platform (bijvoorbeeld Android) en een aantal apps. Andere voorbeelden die misschien minder voor de hand liggen zijn Eclipse en Wordpress. Beide zijn erg populaire platformen (een IDE en een contentmanagementsysteem) en beide kunnen worden uitgebreid met plug-ins, die door derden worden geleverd.
De (groei en) impact van opensourcesoftware op de software-industrie is enorm
De groei van software in ons dagelijks leven en de druk om software te kunnen leveren resulteert in specialisatie zoals in software-ecosystemen, en dit legt steeds meer nadruk op standaarden – en open standaarden die vrijblijvende samenwerking faciliteren. De (groei en) impact van opensourcesoftware op de software-industrie is enorm; zelfs Microsoft heeft een Linux-gebaseerd besturingssysteem. Veel softwareondernemingen hebben veel geïnvesteerd in opensourceprojecten, maar de samenwerking tussen vrijwillig opensource-ontwikkelaars en betaalde softwareontwikkelaars in dienst van een onderneming kan resulteren in spanningen. Sterker nog, een interessante ontwikkeling hier is dat concurrerende ondernemingen samenwerken op opensourceprojecten. Een bekend voorbeeld is de relatie tussen Apple en Samsung. Ondanks vele patentoorlogen dragen beide bij aan WebKit, een open source browser engine.
Processen en ontwikkelmethoden
De derde dimensie waarin softwareontwikkeling verandert betreft het ‘hoe’. Veel softwarebedrijven volgen een ontwikkelproces, zoals waterval, het V-model of agile methoden, zoals Scrum of XP. Veel softwarebedrijven hebben de transformatie gemaakt van zogenaamde plan-gestuurde aanpakken (waterval, V-model) naar een agile aanpak, voornamelijk Scrum. Agile methoden zijn erg populair geworden in de laatste 10-15 jaar. Een van de drijfveren van deze wereldwijde transformatie is de erkenning dat het van tevoren vaststellen van alle vereisten vrijwel onmogelijk is.
Een andere les van agile en lean softwareontwikkelaanpakken is dat het softwareontwikkelproces niet geïsoleerd kan worden binnen één specifieke afdeling van een bedrijf. Er is steeds meer erkenning voor de rol van andere functies binnen organisaties. Aan de ‘business’-zijde is er steeds meer aandacht voor de eindgebruiker om vast te stellen welke software ontwikkeld moet worden – niet alleen om klanten tevreden te stellen, maar ook om te innoveren. Aan de back-end is er een sterke nadruk om software sneller en vaker te kunnen leveren aan gebruikers. Dit komt tot uiting in praktijken, zoals Continuous Delivery, Continuous Deployment en DevOps, die erg aan populariteit winnen. Samen noemen we deze end-to-end aanpak ‘Continuous Software Engineering’. Met behulp van technieken zoals A/B-tests kunnen softwareleveranciers evalueren welke softwarefeatures worden gebruikt en welke niet. Het bekendste voorbeeld hiervan is Google, dat heeft geëxperimenteerd om vast te stellen welke kleur blauw de meeste clicks ontvangt.
Dramatisch
Elke dimensie wordt gekarakteriseerd door specifieke trends, maar de dimensies staan niet op zichzelf, zij zijn op verschillende manieren met elkaar verbonden. De consequenties van de veranderingen zullen verschillen per sector, maar zij kunnen dramatisch zijn voor veel bedrijven:
- Productontwerpen die voorheen gericht waren op brandstofgestuurde producten moeten nu aangepast worden om elektronische platformen (met software) te kunnen produceren. Door het aanbieden van producten gebaseerd op software kan een onderneming opeens opereren op een compleet andere markt met concurrenten die soortgelijke, elektronische producten leveren.
- Het personeel dat gespecialiseerd is in het maken van hardware moet nu software-expertise verkrijgen – of nieuw personeel moet worden aangetrokken. De software die hardware-ontwerpers er ‘even bij deden’, wordt steeds complexer. Speciaal getrainde softwareontwikkelaars zullen nodig zijn.
- Softwaresystemen die steeds groter worden kunnen niet meer door een enkel team van ontwikkelaars gedaan worden. De ontwikkelmethoden zelf zijn nu ook het onderwerp van het schalen, zoals het Scaled Agile Framework (SAFe), Large-Scale Scrum (LeSS) en het Disciplined Agile Delivery (DAD) framework. Nieuwe praktijken zoals de Scrum-of-Scrums om meerdere Scrum-teams te coördineren, worden geïntroduceerd, maar dit gaat niet altijd zonder slag of stoot. Voor ondernemingen die producten leveren aan gereguleerde markten, zoals medische apparatuur, is het essentieel om ‘regulators’ en ‘auditers’ (binnen regulerende instanties zoals de FDA) tevreden te stellen.
De conclusie is dat de rol van software een impact heeft op de hele bedrijfsvoering, en niet alleen op de softwareontwikkelaars. Softwarebedrijven zullen moeten denken aan de volgende aandachtspunten:
- Het ‘wat’: wat is de aard van het product, en wat voor impact heeft software op het gebruik van dit product? Wat voor nieuwe services kunnen ontwikkeld worden?
- Het ‘wie’ en ‘waar’: wie ontwikkelt al deze nieuwe software en services, en wie zijn de sleutelpartners om mee samen te werken?
- Het ‘hoe’: welke processen worden gebruikt om de software te ontwikkelen, en hoe kan een effectief samenwerkingsverband worden opgezet met partners, zoals andere commerciële partners of opensource-organisaties? Welke gevolgen heeft dit alles voor een traditioneel gestructureerde organisatie, die langzaam transformeert naar een ‘software enterprise’?
Managers zullen deze en andere vragen moeten beantwoorden wanneer zij nieuwe product-‘roadmaps’ ontwikkelen om de toekomst van hun onderneming zeker te stellen.
Registreren
- Direct toegang tot AGConnect.nl
- Dagelijks een AGConnect nieuwsbrief
- 30 dagen onbeperkte toegang tot AGConnect.nl
Ben je abonnee, maar heb je nog geen account? Neem contact met ons op!