Architectuur in de digitale wereld/2010-11/begrippen/Kwaliteit
Inhoud
Alledaagse definitie
Afhankelijk van de context kan kwaliteit een bepaalde betekenis hebben.
- Eigenschap
- In de filosofie is kwaliteit een eigenschap of een attribuut van een object. In het geval van een attribuut kan kwaliteit worden toegewezen aan iets door een subject. In het geval van een eigenschap is kwaliteit een inherent iets dat het object bezit. Diverse filosofen, zoals Aristoteles en Locke, hebben uitspraken gedaan over kwaliteit. Er is echter geen eenduidige theorie, hoewel er wel mensen zijn die hebben gepoogd een dergelijke theorie op te stellen, zoals Robert M. Pirsig[1]. Deze worden niet universeel gesteund.
- Vergelijkend
- In de zakenwereld wordt kwaliteit pragmatisch gezien als de superioriteit (of non-inferioriteit) van iets, meestal een product of proces, ten opzichte van andere objecten. Er bestaan verschillende modellen voor het meten van kwaliteit.
Als willekeurige mensen op straat naar de betekenis van kwaliteit gevraagd wordt, antwoorden zij vaak met "Dat is de goed-heid van een ding", of een andere vage omschrijving. Hoewel niet expliciet genoemd wordt hier meestal wel een vergelijking met ander object of een bepaald verwachtingsniveau van kwaliteit (Ik verwacht een bepaald niveau, als het product daaraan voldoet (of beter) is het van hoge kwaliteit).
Er bestaat dus weinig duidelijkheid over wat kwaliteit precies is. Toch lijkt iedereen te snappen wat het ongeveer is.
In de digitale architectuur
Binnen de (digitale) architectuur wordt kwaliteit pragmatisch gezien, zoals meestal in de zakenwereld. Er bestaan dus ook verschillende modellen voor kwaliteit. Wij richten ons in dit stuk op de kwaliteit van het product, niet het proces. We behandelen verschillende methoden.
Rijsenbrij en Vitruvius
Samenvatting
Het drieluik van Vitruvius wordt vaak aangehaald als de basisrichtlijn bij het zoeken naar kwaliteit. Marcus Vitruvius Pollio was de architect van Julius Caesar en Keizer Augustus en is de eerste die architectonische theoriën heeft opgeschreven. Zijn theorie gaat uit van drie basisprincipes:
- Utilitas staat voor de gebruikersaspecten doelmatigheid, nuttigheid en deugdelijkheid;
- Firmitas staat voor fysieke zaken als duurzaamheid, vastheid en sterkte;
- Venustas staat voor bekoorlijkheid en uiterlijk schoon, dus de beleving.
In 2004 heeft Daan Rijsenbrij deze drie basisbegrippen binnen de fysieke architectuur vertaald naar de digitale architectuur[2]. Zijn visie heeft binnen de ICT een redelijk groot draagvlak als manier om naar kwaliteit van digitale architectuur te kijken.
Utilitas
De functionaliteiten en hun onderlinge samenhang, ofwel de gebruiksmogelijkheden van het digitale artefact. Utilitas draait voornamelijk om doelstellingen. Is het artefact in staat de taken uit te voeren waarvoor het gecreëerd is? Hoe efficiënt is het artefact in de uitvoering daarvan? Kan het zich tegelijkertijd van alle taken kwijten? Utilitas behoeft dus een goede inschatting van de gewenste mogelijkheden van een artefact en wat ervoor nodig is die uit te voeren. Denk ook aan processorkracht, geheugen, informatiestromen, gebruikersrechten, etc. Bijvoorbeeld:
- Zitten alle benodigde functies in het artefact?
- Heeft het artefact voldoende capaciteit voor de verwachte data?
- Is de rekentijd van belangrijke transacties niet te lang?
Firmitas
De gebruikte componenten, technologieën en de integratietechnieken die van een digitaal artefact een solide constructie maken. De firmitas van een systeem uit zich in een betrouwbaar systeem dat zelden 'offline' is en zelden grote updates of patches nodig heeft om problemen te verhelpen, die tijdens de ontwerpfase al voorkomen hadden kunnen worden. Bijvoorbeeld:
- Zitten er bugs in de gebruikte software en hoe ernstig zijn die?
- Hoe vaak moet het artefact weer up-to-date gebracht worden (m.b.v. patches o.i.d.)?
- Is de veiligheid van het digitale artefact in orde? Let op integrity en confidentiality, maar ook availability.
Venustas
Het uiterlijk gedrag en de beleving door gebruikers maken samen de sfeer en het gebruiksplezier. Hieronder vallen de Graphic User Interface, de usability en hoe het artefact met de gebruiker omgaat. Bijvoorbeeld foutmeldingen: geeft het programma goed aan wat de fout is, zodat de systeembeheerder makkelijker zijn taak uit kan voeren? Bijvoorbeeld:
- Oogt het programma plezierig?
- Is de interface intuïtief en vriendelijk in het gebruik?
- Sluit het artefact aan bij de belevingswereld van de gebruikers?
Welke problemen worden opgelost?
De kracht van het concept van Rijsenbrij/Vitruvius is de opdeling van het totaalbeeld in drie concrete waarden. Het is voor alledrie de concepten makkelijk een vragenlijst op te stellen m.b.t. het digitale artefact. Een architect kan zich afvragen: "Is mijn ontwerp goed?". Die vraag kan hij vernauwen naar "Is de utilitas goed?", wat hij weer kan vernauwen naar vragen die steeds concreter worden. "Doet het artefact wat het moet doen?", "Werkt applicatie X?", "Is de bug op locatie Y opgelost?".
Het probleem dat deze aanpak dus oplost is dat van overzichtverlies. Een architect kan op elk moment in de tijd zijn artefact toetsen aan de waarden van Rijsenbrij/Vitruvius. Dit schept helderheid en daardoor ook een beter design.
Wat zijn de grenzen van het concept?
Het drieluik is slechts toepasbaar op/doet slechts een uitspraak over het artefact in haar huidige staat. Het drieluik zegt niets over het ontwerpproces.
Daarnaast is er de kans dat een architect het drieluik als los van elkaar gaat zien. Door een indeling te maken, creëert Rijsenbrij/Vitrusius ook een scheiding. Het is zaak deze scheiding niet te hard te zien. Utilitas, Fermitas en Venustas hangen nauw samen en een architect dient met alle drie tegelijk rekening te houden.
Bijdrage aan architectuur
Het drieluik van Rijsenbrij/Vitruvius draagt in zoverre bij aan 'goede' architectuur, in dat zij defineert wat 'goed' is, of daar in ieder geval richtlijnen voor geeft. Het geeft een kader en een richting waarin een architect kan werken, wat helderheid en focus verschaft in zijn werk. Daar vloeit weer uit voort dat het werk 'beter' zal zijn, wat te controleren is binnen het drieluik.
Praktijkvoorbeelden
Google Play[3] is een mooi voorbeeld van een digitaal artefact dat veel aandacht heeft besteed aan venustas. De bediening is soepel, makkelijk en intuïtief. Daarnaast ziet de GUI er sexy uit en is de naam "Play" goed gekozen. Het nodigt uit tot gebruik.
Blackboard[4] is een voorbeeld van een digitaal artefact dat qua utilitas en firmitas wel okee is, maar waar weinig aandacht lijkt te zijn geweest voor venustas. Het is onoverzichtelijk en informatie is soms moeilijk te vinden. Sommige functies zijn onduidelijk en sommige functioneren ook niet helemaal correct (wat afdoet aan de utilitas). Wat dat betreft doet de nieuwe Studentenportal[5] het beter.
Andere visies op kwaliteit
In het kader van de Architectuur vakken in deze opleiding wordt kwaliteit besproken met behulp van de drie begrippen waarmee Vitruvius kwaliteit beschrijft. Het leek ons interessant om te laten zien dat er nog andere visie's op kwaliteit zijn die mogelijk relevant zijn. Zowel de diepgang van het kwaliteitsbegrip als ook inzicht in de verhouding van onze drie begrippen (Venustas, Firmitas en Utilitas) tot andere manieren om software kwaliteit te bespreken zijn hierbij gebaat.
Er zijn manieren om kwaliteit te beschouwen die kwaliteit beschouwen als een
intuïtief?, d.w.z. onmiddellijk inzichtelijk, zonder reflectie toegankelijk | ||
David Jansen → Architectuur in de digitale wereld | Remove this comment when resolved! |
begrip[6] waarvan je kennis opdoet door er mee in aanraking te komen. De manier waarop Christopher Alexander, een architect, over kwaliteit van gebouwen spreekt [7] lijkt daar ook sterk op. De meeste manieren echter proberen het kwaliteitsbegrip hanteerbaar te maken door het te definieren in termen van andere concepten. De drie concepten van Vitruvius zijn daar voorbeelden van.
Twee andere interessante voorbeelden zijn de manieren waarop er meer in het algemeen over product kwaliteit gedacht wordt en de manier waarop er in software engineering over gedacht wordt.
Product Kwaliteit
David A Garvin heeft 8 dimensies van kwaliteit onderscheiden[6] [8].
- Performance
- primary operating characteristics, e.g. picture clarity
- Features
- supplement characteristics, e.g. free drinks on a plane
- Reliability
- probability of a product’s failing within a specified period of time
- Conformance
- internal and external design and operating characters match standars, e.g. repairs under warranty
- Durability
- a measure of product life, e.g. a light bulb
- Servicability
- speed, courtecy and compentence of repair, e.g. 48-hours delivery of repair parts
- Aesthetics
- look, feeling, sound, taste, etc.
- Perceived Quality
- consumer’s subjective measure, e.g. ranking brands
Software Kwaliteit
Al in 1977 bepaalde McCall, Richards en Walters[9] in opdracht van de Amerikaanse luchtmacht een manier om kwaliteit van software hanteerbaar te maken met behulp van een lijst van 16 factoren die bekeken moesten worden.
- Correctness
- Reliability
- Efficiency
- Integrity
- Usability
- Documentation
- Understandability
- Maintainability
- Flexibility
- Testability
- Cost
- Reusability
- Interoperability
- Complexity
- Modularity
- Time
Beide beschrijven 'kwaliteit van iets' zowel in termen van eigenschappen van dat iets (Performance, Features, Correctness, Efficiency, etc.) of in termen van de verhouding die een of ander subject tot het voorwerp heeft (Aesthetics, Perceived Quality, Understandability, Usability, etc.). Dat zien we ook terug bij Vitruvius. Een nadeel hiervan is dat de definitie van kwaliteit afhangt van de gebruikte definities van deze onderwerpen. Deze definities hangen weer af van het gekozen 'iets' en het vakgebied. Nog gevaarlijker is dat er cirkel-definities kunnen ontstaan. Hoe definieer je "Percieved Quality" als de definitie van kwaliteit afhangt van deze definitie?
Alexander
Christopher Alexander, architect, is geen onbekende naam in de wereld van software. Hij heeft in de jaren 70 "A Pattern Language"[10] geschreven wat als voorbeeld heeft gediend voor het gebruik van Patterns bij het structureren van code. Alexander is een voorbeeld van iemand die kwaliteit niet opsplitst om het hanteerbaar te maken. Wel verschuift hij het probleem door te zeggen dat architectuur van hoge kwaliteit zal leiden tot hoge kwaliteit van de levens van de mensen die er leven[11][12].
Interessant aan de positie van Alexander is dat kwaliteit een morele dimensie geeft aan architectuur. Het is een morele plicht om bij te dragen aan de kwaliteit van het leven van degenen die te maken krijgen met je architectuur. Dat is niet gebruikelijk in de wereld van software.
Zou de wereld van software erdoor beter worden als we dat wel als morele plicht beschouwden? | ||
David Jansen → Architectuur in de digitale wereld | Remove this comment when resolved! |
Bijdrage aan de Digitale Architectuur
Het nut van kwaliteit
Welk probleem wordt nu eigenlijk verholpen door het concept 'Kwaliteit' te hanteren? Het interessante is dat kwaliteit an sich geen problemen oplost, maar wel bestaande problemen makkelijker maakt. Het opstellen van het concept van kwaliteit biedt een kader waarbinnen een architect naar een artefact kan kijken en dit kan beoordelen. Omdat een architect het artefact kan beoordelen schept dit vervolgens ruimte voor verbetering, omdat een architect knelpunten aan kan wijzen.
Grenzen van kwaliteit
Kwaliteit zoals we die hierboven geschetst hebben heeft slechts betrekking op architectuur. Vaak bieden zij zelfs slechts een visie op architectuur. Vitruvius kijkt anders naar artefacten dan McCall en Garvin dat doen. Het is belangrijk deze definities binnen hun context te zien en daar rekening mee te houden. De kwaliteitsconcepten hierboven zijn ontworpen voor een specifieke taak en ze dienen niet lichtvoetig ingezet te worden voor een andere taak dan het beoordelen van (digitale) architectuur.
Literatuur en bronnen
- ↑ Zen and the Art of Motorcycle Maintenance, An Inquiry into Values; Robert M. Pirsig; 1974; 0-06-058946-9
- ↑ http://www.enterprisearchitectuur.net/onderwerpen/enterprise-architectuur-geschiedenis-en-ontwikkeling-van-architectuur/
- ↑ http://www.google.com/reader/play/
- ↑ http://blackboard.ru.nl/webapps/portal/frameset.jsp
- ↑ https://student.ru.nl/portal/dt
- ↑ 6,0 6,1 David A. Garvin, What does "Product Quality" really mean, Sloan Management Review, Fall 1984.
- ↑ Christopher Alexander, The Timeless Way of Building, Oxford University Press 1979
- ↑ David A. Garvin, Competing on the eight dimensions of Quality, Harvard Business Review, nov-dec 1987
- ↑ McCall, J. , P. Richards, and G. Walters, "Factors in Software Quality", three volumes, NTIS AD-A049-014,015,055, November 1977
- ↑ Christopher Alexander, Sara Ishikawa, Murray Silverstein, A Pattern Language, Oxford University Press 1977
- ↑ Christopher Alexander, "The Origins of Pattern Theory: The Future of the Theory, and the Generation of a Living World", IEEE Software, september/oktober 1999
- ↑ William S. Saunders, Bookreview:A Pattern Language", in: Hard/Soft, Cool/Warm number 16 Winter/Spring 2002