Stofzuigers, scheerapparaten, televisietoestellen, noem maar op: er is geen Philipsproduct uit de consumentenelektronica (CE) dat niet barstensvol software zit. Ir. Hans Aerts, software manager van Philips CE, legt uit dat de ontwikkeling van die programmatuur procesmatig moet gebeuren om aan vereisten als ‘nul gebreken’ te kunnen voldoen.
Bij consumentenelektronica zal niet iedereen direct aan software engineering denken, maar een wat duurder model televisie bevat tegenwoordig zo’n 2 MB aan programmatuur en de hoeveelheid software in dergelijke producten verdubbelt elke twee jaar. Van de ruim honderd softwaregroepen bij Philips vallen er achttien onder consumentenelektronica (CE, consumer electronics) en de overgrote meerderheid hiervan werkt op cmm (capability maturity model) niveau-2 of hoger. Al tien jaar geleden is men bij Philips begonnen met een software process improvement program (Spi). Ir. Hans Aerts is software manager van Philips CE en tevens voorzitter van de Philips Spi-stuurgroep. |
Hoe groot, dat staaft softwaremanager Hans Aerts van Philips consumentenelektronica (CE, consumer electronics) met enkele cijfers: een multinational met 189.000 werknemers, een omzet van 32,3 miljard euro in 2001, vestigingen in 150 landen, 160 fabrieken in 35 landen, 75 duizend patenten, onderzoekslaboratoria in zeven landen, drie miljard euro aan r&d uitgaven in 2001, begonnen in 1891 als lampenfabriek, nu onderverdeeld in zes productdivisies en 80 bedrijven (businesses). En met meer dan 100 verschillende softwaregroepen met vijfduizend medewerkers, verdeeld over alle zes productdivisies.
De zuigkracht van stofzuigers
Want software speelt een rol in elke productdivisie, van halfgeleiders, componenten en medische systemen tot verlichting, huishoudelijke apparatuur en consumentenelektronica. Niet in gloeilampen, maar wel bij de verlichting van wegen of van grote complexen als Disneyland, vertelt Hans Aerts. Sommige stofzuigers passen de automatisch, middels software, de zuigkracht aan aan het soort vloerbedekking. De led-aanduiding op scheerapparaten die het batterijvermogen aangeeft wordt met software gestuurd. Uit zijn eigen consumenten elektronicadivisie, waar hij sinds 1987 werkt – een televisietoestel in de wat hogere prijsklasse bevat tegenwoordig zo’n 2 MB aan software.
Philips CE heeft niet minder dan zes softwaregroepen die puur op televisietoestellen zijn gericht en die software maken voor gewone analoge tv’s, digitale tvs, platte tv’s en televisies voor hotels.
De laatste worden geleverd aan hotelketens en hebben een volumebegrenzer. Opmerkelijk genoeg is de in alle Amerikaanse toestellen verplichte v-chip (violence) om bepaalde programma’s te blokkeren helemaal geen chip, vertelt Hans Aerts geamuseerd, maar een stuk software.
Software is zo belangrijk voor consumentenelektronica dat er bij CE meer dan 1100 mensen aan de ontwikkeling werken, in achttien van de totaal honderd softwaregroepen binnen heel Philips. Dat gebeurt voor dertig procent in Nederland, voor een kwart in de rest van Europa, twintig procent in Azië (Singapore, Taiwan, China) en voor het resterende kwart in India.
Om een zo complexe opzet niet uit de hand te laten lopen is Philips tien jaar geleden al begonnen met een programma voor het verbeteren van het ontwikkelproces van software (Spi, software process improvement).
Hans Aerts was daarbij van begin af aan betrokken; op dit moment is hij voorzitter van de Spi-stuurgroep van Philips. En Spi werpt vruchten af: meer dan vijftig procent van de software ontwikkelaars bij Philips werkt met zijn groep op niveau-2 van cmm (capability maturity model) of hoger. Binnen de consumentenelektronica ligt dat percentage zelfs boven de tachtig procent. De Philips ontwikkelgroep in Bangalore, India, heeft zelfs het mythische cmm-5 bereikt.
Software spaart componenten uit
Het programma ter verbetering van het proces van softwareontwikkeling is inmiddels binnen Philips hecht verankerd. Elke softwaregroep heeft een Spi-coördinator (eventueel in een part time rol), die samen met de onderzoeksafdeling, het centrum voor fabricagetechnologie en het interne softwarehuis zijn vertegenwoordigd in de Spi-stuurgroep. Die rapporteert aan de raad voor core developments onder voorzitterschap van de technologiedirecteur van Philips. Voortgang wordt gemeten in termen van de cmm-niveaus die bereikt worden.
Het begon echter tien jaar geleden met een inventarisatie van de software activiteiten binnen Philips en de wil om die beter te kunnen beheren. "We hebben hier echt hard nagedacht over software," zegt Hans Aerts met een armzwaai die de hele kamer bestrijkt. "Waarom pas je eigenlijk software toe in consumentenelektronica?"
Koala Het doel van de door Philips ontwikkelde ‘component organiser and linking assistent’ is om een grote diversiteit aan (software) producten te kunnen configureren met vooraf gedefinieerde onderdelen. Koala bestaat uit een componentmodel, een taal om componenten en interfaces te beschrijven, en een tool om de taal te compileren in een verzameling componentverbindingen (bindings). Een component is een stuk software van een realistische grootte dat van waarde is voor de onderneming, maar geen configuratie-specifieke informatie bevat. Component georiënteerde ontwikkeling wordt omschreven als ‘multi system composition’ en is het omgekeerde van ‘single system decomposition’. Inplaats van een systeem recursief te ontleden tot de delen hanteerbaar zijn, bouw je eerst de delen om daarna een variëteit van systemen te kunnen ontwikkelen. Componenten kunnen in het Koala model worden verbonden door hun interfaces, ofwel direct ofwel via configuratie specifieke verbindingssoftware (glue code). Visueel wordt zo’n configuratie net als een Pcb (printed circuit board) voorgesteld. De componenten en hun interfaces worden gerepresenteerd door blokken met in- en uitgangs ‘pinnen’; verbindingen worden aangegeven door lijnen tussen de ‘pinnen’ te trekken. De overeenkomst van een Koala softwareconfiguratie met een kaart met IC’s is niet toevallig… Koala gebruikt veel concepten uit het component object model (Com) van Microsoft en is daarmee ook verenigbaar. Toepassing van Com bleek echter niet mogelijk vanwege de beperkte middelen in de productfamilies bij consumentenelektronica. Koala kan bovendien zowel van statische als dynamische bindingstechnieken gebruik maken. Over Koala zijn een aantal artikelen gepubliceerd, die in PDF formaat verkrijgbaar zijn op http://members.brabant.chello.nl/~rvanommeringen/pubs/ |
Van roeiboot tot olietanker
De toename wordt zowel door vraag uit de markt als door de technologische mogelijkheden gedreven, aldus Aerts. De hoeveelheid software gedraagt zich naar analogie met de wet van Moore voor microprecessors: elke 18 tot 24 maanden een verdubbeling. "Maar daarom is er continu verbetering nodig; in het proces, de architectuur, technologie, organisatie en de vaardigheden van je mensen. Op al deze vijf gebieden moet er continu verbetering komen. Stel je voor dat je roeibootjes maakt die elke 18 maanden twee keer zo groot worden. Uiteindelijk ben je dan tien jaar later met een olietanker bezig en daar heb je een heel ander type bedrijf voor nodig."
Dit betekent ook dat Philips CE soms software van derden inkoopt, te beginnen met kernels van besturingssystemen, maar vaak kan dat niet omdat de hardware te specifiek is. Een Philips tv bestaat bijvoorbeeld uit heel ander componenten dan een toestel van Sony. Zo’n 90 procent van de hardware in consumentenelektronica is nu nog taakspecifiek, maar op het moment dat de softwareontwikkeling te duur gaat worden zal de architectuur moeten worden aangepast.
"Stel bijvoorbeeld dat we een tv gaan maken met internettoegang; ga je dan ook een eigen browser ontwikkelen? Op het moment dat je investeringen niet meer terug kunt verdienen, zul je op standaarden moeten overgaan. Maar er is op dat punt geen algemeen beleid binnen CE; het hangt elke keer weer af van de specifieke zakelijke omstandigheden. Wat drijft de business? Waarom is iets onvermijdelijk?"
Voortdurend op het randje
Omdat onderdelen altijd zo goedkoop mogelijk moeten zijn, zitten de ontwerpers altijd op het randje van het haalbare, aldus Aerts. Ook de software-engineer is gebonden aan deze beperking in middelen. Hij noemt als voorbeeld hoeveel rom en ram beschikbaar is en de snelheid van de cpu. Dit soort beperkingen is een tweede reden -naast de groei- om de softwareprocessen te blijven verbeteren. Een derde reden is dat productdiversiteit steeds meer in software wordt geïmplementeerd. Dat leidt er alleen al toe dat meer dan honderd releases per jaar worden uitgebracht voor tv-software.
Om de diversiteit beter te kunnen beheren heeft Philips een eigen tool ontwikkeld, de component organiser and linking assistent (zie bijgaand kader). Dit Koala is geïnspireerd door com (component object model) van Microsoft. Com bleek te groot en (dus) te duur voor consumentenelektronica. Met Koala is het mogelijk om een hele productfamilie samen te brengen in een enkele softwarearchitectuur, terwijl toch in elk individueel product slechts de minimaal benodigde middelen aanwezig hoeven te zijn.
Bij consumentenelektronica treft men over het algemeen de gebruikelijke ontwikkelmethoden en -gereedschappen aan. Koala is op dit moment eigenlijk de enige grote ontwikkeltool van eigen huize. Waar nodig past men commerciële pakketten enigszins aan voor eigen gebruik, meestal ook weer vanwege de beperkte resources.
Vier evolutionaire stadia
Philips CE houdt er geen algemeen beleid op na om een bepaalde ontwerpmethode te gebruiken. Net zo min heeft men voorkeur voor object-georiënteerd dan wel gestructureerd ontwerpen. C is nog steeds de meest gebruikte programmeertaal maar C++ is in opkomst, vooral bij grotere projecten.
"Dat punt moet je vooral niet overschatten," zegt Hans Aerts. "Het belang van methoden en gereedschappen is veel minder dan dat van mensen, processen en architectuur. Tooling is niet essentieel voor het op de markt krijgen van een product. Dat ligt anders voor bij het testen van taakspecifieke architecturen en producten; om dat te automatiseren heb je gereedschappen nodig. Maar als je het hebt over de analyse van vereisten en design, daar heb ik nog nooit enig effect gezien op de productiviteit. Vandaar dat we er geen algemene regels voor hebben."
De groei van omvang en gebruik van software valt in de visie van Philips uiteen in vier (evolutionaire) stadia: software introductie, uitbreiding van de features, beheersen van complexiteit en tenslotte complexe systemen.
- In het eerste stadium wordt software alleen gebruikt om de kosten te drukken; de ontwikkeling wordt gedaan door de hardwareontwerpers. Te denken valt aan huishoudelijke apparaten en eenvoudige monitors.
- Feature uitbreiding en implementatie van diversiteit bepalen het tweede stadium en dat vindt men bij goedkope tv’s en televisies in het middensegment, videorecorders, autoradio’s en hi-fi systemen. In dit stadium gaat het wel eens mis doordat (te veel) softwaredefecten zorgen voor vertraagde introductie op de markt. Het correct inschatten van doorlooptijden is daarom van cruciaal belang .
- In het derde stadium worden steeds complexere softwarefeatures toegevoegd op het gebied van gebruikersinterfaces, bedieningsfuncties, onderhoudsfuncties en communicatie. Deze software is bedoeld voor een hele productfamilie en de investeringen benaderen die in de hardware. Duurdere tv’s en bijvoorbeeld set-top kastjes voor satellietontvangst vallen in deze categorie.
- In het vierde stadium is de software zo complex dat de investeringen niet meer door een enkel bedrijf zijn op te brengen. Omdat bovendien communicatie in dergelijke toepassingen een sleutelrol gaat spelen moeten er open softwarestandaarden en -platforms worden gebruikt. Dan praten we over navigatiesystemen in auto’s die op GPS zijn gebaseerd en over internettelevisie.
100 Duizend schepen van 80 meter
Deze veranderingen hebben behalve op de producten invloed op alle vijf eerder genoemde gebieden: organisatie, proces, architectuur, technologie en vaardigheden. Juist daarom is een Spi-programma zo belangrijk. Hans Aerts: "Als je geleidelijk van de ene fase in de volgende rolt zonder dat te beseffen, gaat het gegarandeerd fout. En bij onze producten kun je gebreken in de software niet achteraf even herstellen, wij zijn gehouden aan ‘nul gebreken’. Wij bevinden ons voortdurend in een situatie dat we een schip van 80 meter moeten bouwen terwijl we nog nooit een schip hebben afgeleverd dat groter was dan 40 meter. Nog maar acht jaar geleden maakten we alleen bootjes van vijf meter en nu laten we dus tegelijkertijd 100 duizend van die 80 meter schepen te water, onder de strikte voorwaarde dat er niet één van mag zinken."
"Op dit moment doen we het helemaal niet zo slecht. We zijn de laatste twee jaar bijvoorbeeld nooit meer te laat geweest met de oplevering van tv-software, en dat was vroeger wel eens anders. Procesverbetering is, zeker als je begint, verreweg het belangrijkst. Als je manier van werken chaotisch is, zijn alle andere verbeteringen zinloos. Eerst moet je controle hebben en cmm is daarvoor essentieel."
J. Mogilensky, J. Rooijmans, H. Aerts: Evolutionary Stages of Software Growth, Proceedings of the 5th European Software Engineering Process Group Conference, June 2000, Amsterdam.
H. Aerts, R. Dujardin: 10 Years SPI in Philips, 5e SPIder-jaarcongres, June 12th 2002, Soestduinen
Er is een Nederlands Netwerk voor Software Process Improvement en een Kenniscentrum voor Creatie, Innovatie, Verbetering en Toetsing van Software Toepassing.
Zie: http://www.st-spider.nl en http://www.serc.nl
Hans van Thiel freelance medewerker