<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Software allergie &#187; Conceptuele Integriteit</title>
	<atom:link href="http://www.felixogg.com/softwareallergie/tag/conceptuele-integriteit/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.felixogg.com/softwareallergie</link>
	<description>Het wordt ons allemaal teveel!</description>
	<lastBuildDate>Thu, 04 Feb 2010 12:44:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Waken over de conceptuele integriteit</title>
		<link>http://www.felixogg.com/softwareallergie/2009/03/waken-over-de-conceptuele-integriteit/</link>
		<comments>http://www.felixogg.com/softwareallergie/2009/03/waken-over-de-conceptuele-integriteit/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 00:42:18 +0000</pubDate>
		<dc:creator>Felix Ogg</dc:creator>
				<category><![CDATA[User Centered Design]]></category>
		<category><![CDATA[bedrijfsproces]]></category>
		<category><![CDATA[diversen]]></category>
		<category><![CDATA[requirements]]></category>
		<category><![CDATA[Conceptuele Integriteit]]></category>
		<category><![CDATA[model]]></category>
		<category><![CDATA[product owner]]></category>

		<guid isPermaLink="false">http://www.felixogg.com/softwareallergie/?p=171</guid>
		<description><![CDATA[Over de software-productmanager zijn (een paar) boeken volgeschreven. In Scrum is het de product owner. Hij kiest de te bouwen softwarefuncties. Maar hoe doet hij dat nou het best? Ik geef mijn kijk op die taak met behulp van het centrale begrip Conceptuele Integriteit.

De software-productmanager kent de potentieële waarde van elke feature en balanceert constant [...]]]></description>
			<content:encoded><![CDATA[<p>Over de software-productmanager zijn (een paar) boeken volgeschreven. In Scrum is het de product owner. Hij kiest de te bouwen softwarefuncties. Maar hoe doet hij dat nou het best? Ik geef mijn kijk op die taak met behulp van het centrale begrip Conceptuele Integriteit.<br />
<span id="more-171"></span><br />
De software-productmanager kent de potentieële waarde van elke feature en balanceert constant het investeringsrisico en het (te verwachten) rendement, in euro&#8217;s dus. Gedurende het ontwikkeltraject begint hij al de weg vrij te maken voor ingebruikname van het systeem. Hij maakt dus technisch-financieële keuzes, zoals</p>
<ul>
<li> de huur van een server,</li>
<li> de bepalingen in het onderhoudscontract, of</li>
<li> de afspraken over aanlevering van operationele gegevens</li>
</ul>
<p>Maar vooral ook afspraken met en over mensen en de operationele organisatie liggen op het bordje van de productmanager, zoals</p>
<ul>
<li> het voorbereiden van een gebruikerscursus,</li>
<li> een marketingcampagne voorbereiden of</li>
<li> het aanstellen van een applicatiebeheerder</li>
</ul>
<p>Je zou bijna vergeten dat de productmanager verantwoordelijk is voor de zakelijke <em>inhoud</em> van de software in ontwikkeling! De bouwers zullen ervoor zorgen dat het product opstart, rekent en misschien zelfs &#8220;gebruiksvriendelijk&#8221; is. Maar hij moet ervoor waken dat het product de investering waard wordt. <img class="alignright size-full wp-image-173" title="money" src="http://www.felixogg.com/softwareallergie/wp-content/uploads/2009/03/money.jpg" alt="money" width="240" height="180" /></p>
<h3>Conceptuele Integriteit</h3>
<p>Ik zie een leidraad die de product owner kan volgen tijdens de ontwikkelingsfase. Hij moet streven naar <strong>Conceptuele Integriteit</strong>. Eigenlijk beantwoordt hij doorlopend de vraag: <strong>Kan elke functie in de applicatie zijn eigen broek ophouden? </strong></p>
<p>Concept. Integer. Twee moeilijke woorden. Het woordenboek helpt ons gelukkig op weg:</p>
<blockquote><dl>
<dt> Concept:</dt>
<dd> Algemeen idee, Intentie, Bedoeling </dd>
<dt>Integer:</dt>
<dd> 1. Eerlijk en oprecht zijn, morele principes</dd>
<dd>2. Compleet en inwendig samenhangend. Solide constructie.</dd>
</dl>
</blockquote>
<p>Streven naar conceptuele integriteit betekent letten op de <em>Compleetheid</em>, <em>Samenhang</em> en <em>Consistentie</em> ten opzichte van de zakelijke <em>Intenties</em>. Laten we daar eens induiken.</p>
<h3>Compleetheid</h3>
<p>Een softwareproduct moet in meerdere opzichten compleet zijn, af zijn.</p>
<h4>Puzzelstukjes</h4>
<p>Bovenal vervult de software een paar stappen van een bedrijfsproces. Elke stap moet het product netjes uitvoeren en elke stap moet ook netjes aansluiten op zijn naburige stappen in de workflow. Mens en machine wisselen hun beurt af om samen een taak uit te voeren. Op de overdrachtspunten tussen beide moet de software netjes in de organisatie passen.</p>
<div id="attachment_174" class="wp-caption alignright" style="width: 310px"><img class="size-full wp-image-174" title="puzzelstukje_ontbreekt" src="http://www.felixogg.com/softwareallergie/wp-content/uploads/2009/03/puzzelstukje_ontbreekt.jpg" alt="ontbreekt er een puzzelstukje?" width="300" height="225" /><p class="wp-caption-text">ontbreekt er een puzzelstukje?</p></div>
<p>Maar ook de gegevens binnenin de software moeten volledig zijn. Gegevensbestanden moeten foutloos ingeladen kunnen worden, per bestand, database of met een externe koppeling.</p>
<h4>Mag ik er even bij?</h4>
<p>Complexere organisaties vereisen tenslotte ook nog een hiërarchisch systeem van applicatierollen en daaraan gekoppelde rechten. De rechten van elke rol moet de volledige taak van een persoon met die rol ondersteunen. Dat betekent dat elke gebouwde functie die nodig is om de rol op je te nemen ook tot je beschikking staat. (Genoeg rechten.) Door het proces na te spelen blijkt al snel waar nog rechten ontbreken, of welke rollen  teveel rechten hebben. (&#8220;Verrek! De conciërge mag de directiesalarissen wijzigen! Oeps.&#8221;)</p>
<h3>Samenhang &amp; Consistentie</h3>
<p>Dat een applicatie alle functies op de lijst van eisen bevat, wil nog niet zeggen dat ze ook te gebruiken zijn. De samenhang van functies en de gelijkvormigheid van systeeminteracties maakt de applicatie voorspelbaar en breed inzetbaar.</p>
<div id="attachment_175" class="wp-caption alignleft" style="width: 160px"><img class="size-thumbnail wp-image-175" title="anders_dan_rest" src="http://www.felixogg.com/softwareallergie/wp-content/uploads/2009/03/anders_dan_rest-150x150.jpg" alt="Anders dan de rest" width="150" height="150" /><p class="wp-caption-text">Anders dan de rest</p></div>
<h4>Eén stijl</h4>
<p>Ten eerste moet de lay-out <a title="Artikel over conceptuele integriteit van user interface" href="http://www.usabilityweb.nl/artikel.php?id=60">consistent</a> zijn. De kleuren, lettertypen en de vlakverdeling zijn een houvast voor de gebruikers. Ze maken de applicatie herkenbaar en bieden houvast bij navigatie (&#8220;waar ben ik?&#8221;). Doordat alle webapplicaties in dezelfde browser, hetzelfde window op je scherm staan is dit tegenwoordig onmisbaar.<br />
En als de gebruikersinterface steunt op een metafoor, moet die metafoor ook consequent doorgevoerd zijn.</p>
<h4>Eén ding, één naam</h4>
<p>Ook de terminologie snakt naar consistentie. Als je bijvoorbeeld klikt op een link die belooft te leiden naar een &#8220;Registratieoverzicht&#8221;, mag de pagina waarop je uitkomt niet &#8220;Inschrijvingenrapportage&#8221; heten, ook al is dat synoniem. Dezelfde naam voor hetzelfde artefact door de hele applicatie dus.<br />
Soms is dit verrassend lastig, omdat bij automatisering van bedrijfsprocessen taken voor het eerst een unieke naam moeten krijgen. Een nieuwe naam bedenken dus en die meteen consequent inzetten, zowel in de applicatie (makkelijk) als in de organisatie (moeilijk).</p>
<h4>Eén taak, één manier<img class="alignright size-thumbnail wp-image-176" title="wat_gaat_er_komen" src="http://www.felixogg.com/softwareallergie/wp-content/uploads/2009/03/wat_gaat_er_komen-150x150.jpg" alt="wat_gaat_er_komen" width="150" height="150" /></h4>
<p>Tenslotte moeten systeeminteracties gelijkvormig zijn. Als je een weekrapportage op dezelfde manier opvraagt als de jaarrapportage, hoef je die handeling maar één keer te leren om het allebei te kunnen.<br />
En als je beide rapportages exporteert, voelt het natuurlijk raar als er één in Excel97 en de ander in Excel2007 formaat uitkomt. (Eigen ervaring!)</p>
<h3>De keerzijde</h3>
<p>Nu een situatie uit het harde leven. Met Conceptuele Integriteit heb je als productmanager telkens alle features waaraan men begonnen is, vol vertrouwen naar vervolmaking gestuurd. Het projectbudget is bijna op, oplevering (van de Scrum sprint) in zicht. Gesteund door je toetsing aan Conceptuele Integriteit concludeer je geschrokken dat één applicatieonderdeel nog niet klaar is. Maar er is ook niet genoeg budget meer om het af te bouwen. Het is geen extra investering of vertraging waard. Wat dan?<br />
<img class="alignleft size-full wp-image-177" title="scalpel" src="http://www.felixogg.com/softwareallergie/wp-content/uploads/2009/03/scalpel.jpg" alt="scalpel" width="240" height="159" />Welnu, <strong>dan snijd je het rottende orgaan uit de patiënt.</strong> Een half werkend feature is geen feature. Het is ballast.</p>
<h4>Auw! Dat doet zeer dokter!</h4>
<p>In Scrumprojecten, <em>adviseer</em> ik de klant (product owner) over Conceptuele Integriteit, in plaats van er zelf over te <em>beslissen</em>. Dat is een &#8216;world of pain&#8217;.  Ik vermoord niet alleen het hobbyproject van een collega, maar ik doe ook de klant pijn als ik vraag afstand te doen van een half voltooid feature. Dit voelt de klant als een misdaad, als kapitaalvernietiging. Houd de tissues in de aanslag!</p>
<h4>Waardeloze, kostbare ballast</h4>
<div id="attachment_178" class="wp-caption alignright" style="width: 160px"><img class="size-thumbnail wp-image-178" title="50_euro_in_de_hens" src="http://www.felixogg.com/softwareallergie/wp-content/uploads/2009/03/50_euro_in_de_hens-150x150.jpg" alt="Jammer maar helaas" width="150" height="150" /><p class="wp-caption-text">Jammer maar helaas</p></div>
<p>Maar een onaf feature is ballast:</p>
<ul>
<li>het belooft een ontwetende gebruiker waarde en stelt hem dan keihard teleur</li>
<li>het levert negatieve, nettowaarde</li>
<li>het verwart ontwikkelaars tijdens onderhoud. &#8220;<em>Wat is dit nu weer? Dit werkt niet eens!</em>&#8220;</li>
<li>het neemt waardevolle ruimte in, op het scherm en in ieders gedachten</li>
</ul>
<p>De tijdsinvestering die gemoeid is met het orgaan heeft geld gekost. Maar kapitaal is het niet, want <strong>die investering heeft geen waarde opgevelerd</strong>. Wat aan het eind van de rit niet werkt, dat zet je buiten de deur. Een programmeur wist alle sporen ervan, de onafgeronde resultaten gaan in quarantaine (versiebeheersysteem) en daarna praten we er niet meer over. Een gezondere applicatie is het resultaat.</p>
<p>Het beoordelen van conceptuele integriteit vereist domeinexpertise en een zakelijke blik. Het is soms confronterend, maar zeker de moeite waard. En als de applicatie dan live gaat, is de kans het grootst dat alle betrokkenen werkelijk iets te vieren hebben wat later geld oplevert!</p>
<p><em>Met dank aan Marco Plaisier, sparringpartner in de voorbereiding en aangever van de term Conceptuele integriteit.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.felixogg.com/softwareallergie/2009/03/waken-over-de-conceptuele-integriteit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

