Ik verbaas me keer op keer over de grootte van de software-ontwikkelteams. Mijn eigen ervaringen berusten op kleinere bedrijven met beperkte bronnen waar een paar extra programmeurs zeer welkom waren geweest, maar de IBM’s en Microsofts van deze wereld hebben duizenden programmeurs in dienst. En dan vraag ik me af wat die allemaal doen? Mijn cynische ik zegt dat 10 procent het werk doet en dat 45 procent bezig is met het oplossen van bugs die door de overige 45 procent is gemaakt!
Het antwoord is uiteraard niet zo eenvoudig; alleen al omdat de categorie ‘software’ veel te breed is. Iemand moet de systeemdrivers ontwikkelen die het mogelijk maken de hardware te gebruiken; dit zijn ‘echte techneuten’ die alle details van de hardware begrijpen. De code die zij ontwikkelen moet robuust en efficiënt zijn. Veel van deze code wordt geschreven in laag-niveautalen als Assembler of C. Elke driver is relatief klein, waardoor grote teams onhandig zijn. Het probleem is dat je er mensen voor nodig hebt met een opleiding in zowel hardware als in software.
De volgende laag ‘systeemsoftware’ is afhankelijk van deze hardwaregerichte drivers: het besturingssysteem en de belangrijkste hulpgereedschappen. Een heel andere discipline, die ook vraagt om diepte-kennis. Tegenwoordig zijn er nog maar weinig bedrijven die zich bezighouden met de ontwikkeling van besturingssystemen, databasemanagementsystemen, communicatie-subsystemen enzovoort. De opkomst van open source software heeft hier wel wat verandering in gebracht, maar dit is een zeer specialistisch gebied. En daar ligt de kans voor de afgestudeerden. Het probleem is niet het tekort aan talent, maar het beheer van een hele massa individualisten. De legers die bij Microsoft aan Windows werken, doen het niet best volgens de oss-gemeenschap, die met Linux een beter product in handen heeft. Windows-ontwikkelaars hebben aangegeven onder zware commerciële druk te staan, en het moet enorm frustrerend zijn aan zo’n middelmatig product te moeten werken. Toch moet het een organisatieprobleem zijn, want vele duizenden programmeurs dragen bij aan Linux en komen daarbij minder problemen tegen. Het wordt interessant naar de toekomst van een bedrijf als Google te kijken, dat gebouwd is op het principe dat de meeste medewerkers over een universitaire opleiding beschikken. Het gebrek aan hiërarchie kan echter nooit worden gehandhaafd.
Applicatieprogrammeurs hebben andere vaardigheden nodig. Ze hoeven geen graad te hebben in iets technisch, maar moeten wel wat weten van de eisen van de gebruikers. Ontwikkelaars van commerciële pakketten moeten thuis zijn in de wereld van accountancy, aandelenbeheer, enzovoort. Over het algemeen leveren ze goed werk, maar de geïntegreerde erp-pakketten hebben te lijden onder schaalproblemen; er zijn veel programmeurs nodig en daardoor ontstaan projectmanagementproblemen. Aan de andere kant zijn kantoortoepassingen in het begin met grote stappen vooruit gegaan met kleine ontwikkelteams, maar dat is in de loop der jaren steeds verder achteruitgegaan.
Er bestaat geen twijfel over dat de gereedschappen voor de ontwikkeling van software de laatste tijd enorm zijn verbeterd. Nu Java, .NET en de hele component-revolutie volwassen aan het worden zijn, zal het zelfs nog beter worden. Helaas lijkt het erop dat we het eigenlijk alleen maar gemakkelijker hebben gemaakt om slechte toepassingen te creëren! Het komt niet door het gebrek aan gereedschappen dat programma’s als Word of de meerderheid van de websites zo gebruikersonvriendelijk zijn, het komt door het gebrek aan gereedschappen op een hoger niveau voor het bewaken van de functionaliteit van een toepassing. Dat is het belangrijkste probleem, samen met opleiding of juist het gebrek daaraan. De enige mensen die ik ken die eigenlijk blij zijn met Microsoft Office (en het niet alleen maar accepteren omdat er geen betere keus is) zijn mensen die eindgebruikertrainingen geven. In 2004 zou de toepassingssoftware intuïtief genoeg moeten zijn om het zonder trainer te kunnen leren!
Ik heb een verzoek aan Microsoft: Kunnen jullie niet een paar dozijn programmeurs zetten aan het oplossen van de enorme hoeveelheid irritante bugs in de bestaande producten. Alsjeblieft?< BR>
Martin Healey, pionier ontwikkeling van op Intel gebaseerde computers en c/s-architectuur. Directeur van een aantal it-bedrijven en professor aan de Universiteit van Wales.