'Configuration Management Principles and Practices' bestaat uit vijf delen, maar globaal gezien is een gedeelte op de theorie en een gedeelte op de praktijk gericht. Deel I geeft een definitie van configuration management (CM). Deel II bevat een theoretische uitdieping van configuration management. Waar andere CM-boeken zich beperken tot elektronische objecten gaat het in dit boek zowel over elektronische objecten als over fysieke objecten, en hoe de verschillen en overeenkomsten daartussen leiden tot verschillen in CM-benadering. In deel III wordt ingegaan op de verschillende rollen die direct of indirect te maken hebben met configuration management. Deel IV is het uitgebreidste gedeelte van het boek. Hierin wordt de praktijk van het vakgebied behandeld. Dit was voor mij tevens het interessantste gedeelte van het boek. En ten slotte gaat deel V over implementatie en improvement van configuration management. Hierin komen onder andere CMMi en 'Agile development' aan de orde. In de appendices is nog wat bonusmateriaal te vinden, met onder andere Agile SCM. In tegenstelling tot andere boeken over configuration management, gaat dit boek niet alléén over software configuration management. In plaats daarvan is het vooral gericht op algemeen configuration management. We hebben niet alleen te maken met elektronische objecten zoals software broncode en daaruit gegenereerde object files, executables en libraries, of over elektronische documentatie, maar ook over fysieke objecten zoals papieren, boeken, hardware en tools. Het wordt duidelijk dat het onderscheid belangrijk is voor configuration management en hoe het er invloed op heeft. Een ander sterk punt van het boek is de beschrijving van metadata, de data die iets vertelt over de objecten. Dit is een van de belangrijkste concepten van configuration management, die helaas vaak onderbelicht blijft, ook door vakspecialisten. Data in een object dat onder configuration management valt, en data over die objecten zijn verschillende dingen en voor een goed begrip van configuration management is dat onderscheid belangrijk. Het is jammer dat de schrijfster in het tweede gedeelte van het boek nauwelijks terug komt op de betekenis en het gebruik van metadata. Anne Mette Hass gebruikt in haar boek een vrij algemeen geaccepteerde en gangbare definitie van configuration management, waarop zij een kleine - minder gangbare, maar wel erg belangrijke - variatie toepast: - Identification - Control - Storage - Change control - Status accounting - Auditing De variatie is dat configuration control is gesplitst in storage en change control. Dat is een erg goede keuze om beter begrip te krijgen van CM. Met het begrip storage is namelijk gemakkelijk de link te leggen naar de manier waarop objecten en hun metadata worden beheerd, terwijl change control zich meer richt op de functie die metadata heeft voor de organisatie, namelijk beheersbaarheid en traceerbaarheid. Merk het subtiele verschil tussen beheer en beheersing op! Het onderdeel auditing wordt daarentegen door de schrijfster niet opgevat als deel van configuration management, maar van algemene quality assurance. Dat is een begrijpelijke maar mijn inziens ongelukkige keuze omdat daardoor voorbij wordt gegaan aan de noodzaak om data consistentie te waarborgen door die op gezette tijden te controleren. In de rest van het boek komt auditing dus nauwelijks terug. Hoofdstukken 2 tot en met 5 geven een beknopte beschrijving van maturity modellen (CMM, CMMi, Spice, Bootstrap), internationale standaarden (DoD, IEEE, ISO), organisaties die zich met CM bezighouden, de scope van CM, kosten-batenanalyses en dergelijke. Natuurlijk hoort deze informatie in een boek als dit te staan, maar wie vooral hierin is geïnteresseerd kan beter een ander boek zoeken. Daar is voldoende literatuur over, ofschoon ik betwijfel of er boeken over de kosten-batenanalyse van configuration management te vinden zijn. Het theoretische gedeelte omvat ongeveer de helft van het boek. Dit is mijn inziens het sterkste gedeelte van 'Configuration Management Principles and Practices'. De andere helft is meer gericht op de praktijk van CM. Zoals eerder aangegeven was ik vooral daarin geïnteresseerd, maar dat bepaalt natuurlijk iedere lezer voor zich. In dit praktische deel zien we een grote nadruk op configuration management voor elektronische objecten waardoor het algemene karakter van CM wat verloren gaat; fysieke objecten worden vrijwel volledig genegeerd. We zien wel een groot aantal praktische aspecten langs komen, zoals identificatie, traceability, composition en delivery, authorization, storage, change control, versioning en maintenance. Jammer is dat de beschrijvingen zo kort en bondig blijven dat de diepgang beperkt is. De beschrijvingen dienen eerder als een (erg goede) introductie tot de praktijk van configuration management dan als fundament voor het vakgebied. In hoofdstukken 18 en 19 passeren een paar developmentmodellen de revue, zoals Agile development, integrated product development, en sequentieel en iterative development. Verder komen producttypes zoals composite systems, safety-critical systems en webapplicaties voorbij. Dit overzicht is bij lange na niet volledig, maar dat zou ook een ondoenlijke opgave zijn geweest gezien de veelheid aan verschillende situaties die in de wereld bestaat. Toch ontbreekt het ook hier aan uitwerking op de praktische details. Hoofdstukken 20 en 21 beschrijven enkele speciale condities zoals multisite development, parallel development, cross-organizational aspecten, re-use van componenten, product-line development en CM voor kwaliteitssystemen. In elk van deze onderdelen wordt dezelfde structuur van paragrafen gebruikt, namelijk identificatie, storage, change control en status accounting. Dit geeft wel een overzichtelijke structuur, maar hierdoor ontstaat ook een herhaling van zetten die ten koste gaat van de diepgang. Het hoofdstuk over CM-improvements is volledig gericht op CMMi, terwijl in het eerste gedeelte van het boek veel meer modellen en standaarden beschreven zijn. Nu is CMMi wel een vrij breed toegepaste standaard, maar een uitwerking van de ISO/IEEE standaarden zou welkom geweest zijn. Over het geheel genomen mag dit boek als zeer waardevol worden beschouwd voor configuration management, en het mag niet in de boekenkast van de professional ontbreken. Het eerste, theoretische gedeelte zit goed in elkaar en is helder geschreven, ofschoon er misschien wat verouderde formalismen worden gebruikt die stammen uit de jaren '80/'90. Ik doel hierbij onder meer op workspace management, dat door veel CM-tools tegenwoordig wordt ondersteund. Het tweede, meer praktische gedeelte behandelt wel een groot aantal praktijkaspecten, maar de echte diepgang blijft achter. Ook is jammer dat in dit gedeelte het algemene karakter van configuration management uit het eerste gedeelte van het boek niet is voortgezet. Al met al hebben we hier te maken met een van de beste boeken over algemeen configuration management die op dit moment op de markt beschikbaar zijn. Zeer aanbevolen!
Over Frank Schophuizen
Frank Schophuizen is consultant bij TOPIC Embedded Systems in Best en is gespecialiseerd in configuration management. Hij ondersteunt vooral high-tech bedrijven bij het inrichten van hun processen en systemen voor software- en product-ontwikkeling, waarbij zowel technisch als menselijke communicatie en samenwerking een belangrijke rol spelen. Frank schrijft recensies op persoonlijke titel.