<?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; requirements</title>
	<atom:link href="http://www.felixogg.com/softwareallergie/category/requirements/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>Met geen druk op geen knop</title>
		<link>http://www.felixogg.com/softwareallergie/2009/12/met-geen-druk-op-geen-knop/</link>
		<comments>http://www.felixogg.com/softwareallergie/2009/12/met-geen-druk-op-geen-knop/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 23:00:54 +0000</pubDate>
		<dc:creator>Felix Ogg</dc:creator>
				<category><![CDATA[User Centered Design]]></category>
		<category><![CDATA[requirements]]></category>
		<category><![CDATA[verkeerde conventies]]></category>

		<guid isPermaLink="false">http://www.felixogg.com/softwareallergie/?p=235</guid>
		<description><![CDATA[
Opdrachtgevers raken altijd enthousiast en opgewonden van het idee dat alles straks met een druk op de knop geregeld is. Hun visie is gebaseerd op dat voornemen. Maar soms is dat niet optimaal. In zo&#8217;n geval loopt het raderwerkje in hun hoofd al snel volledig vast.
Met een druk op de knop
ITers automatiseren jouw functie weg waar [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-239" title="doewatikwil" src="http://www.felixogg.com/softwareallergie/wp-content/uploads/2009/12/doewatikwil.png" alt="doewatikwil" width="265" height="145" /></p>
<p>Opdrachtgevers raken altijd enthousiast en opgewonden van het idee dat alles straks <em>met een druk op de knop</em> geregeld is. Hun visie is gebaseerd op dat voornemen. Maar soms is dat niet optimaal. In zo&#8217;n geval loopt het raderwerkje in hun hoofd al snel volledig vast.</p>
<h2><span id="more-235"></span>Met een druk op de knop</h2>
<p>ITers automatiseren jouw functie weg waar je bij staat. Als opdrachtgever moet het lijken alsof er geen eind komt aan de mogelijkheden van automatiseren van hele ketens van bedrijfsprocessen. Je begint met het digitaal verwerken van de inkoopfactuur, maar als je de ITers hun gang laat gaan blijkt dat je je inkoopfacturen al digitaal kunt <em>ontvangen</em>. <em>Nee, wacht!</em> Je kunt het inkoopproces zèlf automatiseren op basis van de (te automatiseren) voorraadinformatie. En ga zo maar door&#8230;</p>
<p>Wat vroeger tijd, opleiding en een hoop papier kostte gaat nu sneller, goedkoper en is eigenlijk &#8230;best stoer! Al die grafiekjes op je scherm! Machtig spul, software. Alles geregeld met <em>een druk op de knop</em>.</p>
<h2>De doe-wat-ik-wil-knop</h2>
<p>Tijdens mijn informaticastudie volgde ik het college <em>User Interfaces</em>.</p>
<blockquote><p>&#8220;De ideale user-interface heeft eigenlijk maar 1 knop, de doe-wat-ik-wil-knop.&#8221;</p></blockquote>
<p>Professor Paul de Bra nam toen een gewichtige adempauze, keek met twinkelende oogjes het publiek in en liet ons zijn wijsheid op ons eigen tempo waarderen. Toen de meeste studenten begonnen te knikken in overeenstemming, ging hij verder</p>
<blockquote><p>&#8220;Maar als het systeem dan zo precies weet wat ik wil, waarom moet ik dan nog op die knop drukken? Die knop is dan overbodig.&#8221;</p>
<div id="attachment_246" class="wp-caption alignright" style="width: 373px"><a rel="attachment wp-att-246" href="http://www.felixogg.com/softwareallergie/2009/12/met-geen-druk-op-geen-knop/doeindelijkwatikwil/"><img class="size-full wp-image-246 " title="doeindelijkwatikwil" src="http://www.felixogg.com/softwareallergie/wp-content/uploads/2009/12/doeindelijkwatikwil.png" alt="Er is ook een kinderversie van" width="363" height="198" /></a><p class="wp-caption-text">Mijn ontwerp van de kinderversie.</p></div></blockquote>
<h2>Mijn scherm of jouw scherm?</h2>
<p>Mijn klanten hebben meestal een toekomstvisie voor hun systemen rondom een soort gravitatiecentrum: hun eigen computerscherm.</p>
<p>En hoe kun je een ITprobleem binnen dat referentiekader anders oplossen dan door de toevoeging van een knop die je probleem oplost? Natuurlijk is &#8220;knop&#8221; wat te smal: het omvat ook dat extra rapport, de extra checkbox die je afvinkt, of dat nieuwe formulier (boven de knop) dat je online bezoekers laat invullen. Maar in wezen is dit hetzelfde: <strong>je lost het probleem op binnen een scherm</strong><strong>, er zal iemand op klikken, in typen, of het zien op het scherm</strong>. <em> </em>Vervelend (invul-)werk schuift dan naar andermans scherm, leuke dingen zoals goedkeuring zijn welkom op ons eigen scherm. Software bouwen met de strategie van je one-night-stands. De hamvraag is: Wordt het op mijn scherm of op jouw scherm?</p>
<h2>Headless killer-apps</h2>
<p>Applicaties zonder scherm noemt men <em>headless</em>. Deze metafoor vindt zijn oorsprong in de opstelling van je desktopcomputer vroeger: de monitor (zo&#8217;n toeter) was altijd het rustende hoofd bovenop de schouders van je brommende computerdoos (desktop). Maar deze onthoofding is veel minder gruwelijk&#8230;</p>
<p>Het grootste deel van de ècht belangrijke, grootschalige applicaties zijn <em>headless</em>. Banktransactiesystemen, het WWW en eindeloze digitale infrastructuur <strong>zijn slimmer en nauwkeuriger juist doordat ze niet wachten tot iemand op het juiste moment op een knop duwt</strong>. Ze functioneren goed, zonder knop: je start ze op en ze blijven draaien tot de stroom uitgaat.<br />
Vrij letterlijk zijn veel van deze <em>headless</em> applicaties zó belangrijk, dat ze <em>killer apps</em> genoemd mogen worden, als die stroom inderdaad uitvalt.</p>
<h2>Extra scherm extra ballast</h2>
<p>Minder risicovolle applicaties, zoals dat hippe, automatische teleconferentiesysteem, of dat evenzo gave projectplanningssyteem kunnen enorm baat hebben van zulke onthoofding. Door zo&#8217;n applicatie niet weer een nieuw, eigen gezicht (&#8216;head&#8217;) te geven, maar het in de duisternis te laten werken, hoeven gebruikers niet &#8216;nog een nieuwe user interface&#8217; te gebruiken, die niet werkt in hun InternetExplorer of waarvan ze de URL niet kunnen vinden.</p>
<p>Recentelijk ontwierp ik bijvoorbeeld een scherm waarop iemand een PDF kon downloaden, zoals de klant vroeg. De gebruiker zou de link naar dat scherm via e-mail ontvangen.<br />
Uiteindelijk heb ik klant en gebruiker dat hele scherm bespaard: we hechten de PDF nu gewoon aan die mail!</p>
<p>Ik vergeet soms zelf voldoende afstand te nemen om op te kunnen merken dat je schermfuncties kunt weglaten. Maar vaker wìl de klant er gewoon niet aan: de radertjes in zijn/haar hoofd lopen vast als je het scherm uit het plan haalt.</p>
<h2>Mashups in duisternis</h2>
<p>Web2.0 was bracht ons <em>Mashups</em>: een nieuw schermpje door de koppeling van onafhankelijke, bestaande webapplicaties. Iedereen was er dolenthousiast over. Maar het koppelen is interessanter dan de mashups! Steeds meer bestaande applicaties faciliteren headless uitbreidingen. Zo kun je weer werk verzetten zònder dat iemand zich ermee bemoeit, in een soort digitale duisternis. Dàt is pas echt automatiseren: Zònder user interface werken systemen &#8230; vanzelf.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.felixogg.com/softwareallergie/2009/12/met-geen-druk-op-geen-knop/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fout: Datamodelgedreven interactie</title>
		<link>http://www.felixogg.com/softwareallergie/2009/05/fout-datamodelgedreven-interactie/</link>
		<comments>http://www.felixogg.com/softwareallergie/2009/05/fout-datamodelgedreven-interactie/#comments</comments>
		<pubDate>Sat, 30 May 2009 11:00:11 +0000</pubDate>
		<dc:creator>Felix Ogg</dc:creator>
				<category><![CDATA[Rare knoppen]]></category>
		<category><![CDATA[bedrijfsproces]]></category>
		<category><![CDATA[requirements]]></category>
		<category><![CDATA[verkeerde conventies]]></category>
		<category><![CDATA[acties context interactie]]></category>

		<guid isPermaLink="false">http://www.felixogg.com/softwareallergie/?p=216</guid>
		<description><![CDATA[In softwaremaatwerkland lijdt Jan-op-de-werkvloer onder conventionele wijsheid van zijn manager, die een IT systeem laat bouwen voor Jans afdeling. Het meest storende gevolg vind ik de datamodelgedreven interactie waarmee Jan opgezadeld wordt.

Laat ik eerst uitleggen wat datamodellen zijn.
Datamodellen
Tegenwoordig slaan vrijwel alle zakelijke applicaties hun gegevens op in SQL databases. Het principe daarvan is niets meer [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_220" class="wp-caption alignright" style="width: 220px"><img class="size-full wp-image-220" title="923406_shirtpockettie" src="http://www.felixogg.com/softwareallergie/wp-content/uploads/2009/05/923406_shirtpockettie.jpg" alt="923406_shirtpockettie" width="210" height="145" /><p class="wp-caption-text">Jan, gebruiker</p></div>
<p>In softwaremaatwerkland lijdt Jan-op-de-werkvloer onder conventionele wijsheid van zijn manager, die een IT systeem laat bouwen voor Jans afdeling. Het meest storende gevolg vind ik de datamodelgedreven interactie waarmee Jan opgezadeld wordt.</p>
<p><span id="more-216"></span></p>
<p>Laat ik eerst uitleggen wat datamodellen zijn.</p>
<h3>Datamodellen</h3>
<p>Tegenwoordig slaan vrijwel alle zakelijke applicaties hun gegevens op in SQL databases. Het principe daarvan is niets meer dan een verzameling tabellen, bestaande uit kolommen met ruwe data (je geboortedatum, je naam, de productcode) en speciale kolommen met regelnummers uit andere,soortgelijke tabellen.</p>
<p>IT managers met een opleiding in de jaren 70/80 (of autodidact) hebben geleerd om databases te &#8216;<strong>modelleren</strong>&#8216;. Dat is het zo handig mogelijk opdelen van bedrijfsgegevens in tabellen. Modelleren is een truucje: als je het doorhebt is het eigenlijk heel simpel.</p>
<p>De opdrachtspecificatie van maatwerk bestaat, omdat dat dat nu immers het domein is van voornoemde demografische groep, dan ook meestal vooral uit database-velden: de kolommen van de tabellen. Daar wordt lang en zwaarwichtig over gediscussieerd. Daar voelt men zich veilig en gezaghebbend bij. En dat vindt iedereen tenslotte prettig!</p>
<h3>Datamodelgedreven interactie</h3>
<p>De inhoud van de SQL tabellen zit diep verborgen onder de motorkap van de applicatie. Echter, door de grote nadruk die managers/klanten leggen op het opslagformaat (de kolommen en tabellen) zetten zij software-ontwikkelaars impliciet onder druk om, op het scherm, te <em>tonen</em> dat de applicatie inderdaad voldoet aan een datamodel.  Zo wordt elk scherm een afspiegeling van de tabelvorm van zijn onderliggende gegevens.  <strong>Daarom zien bijna alle schermen eruit als een Excel-blad: een schermvullende tabel.</strong></p>
<p>De knoppen waarop je klikt en de invoervelden zijn later toegevoegd, volgens conventies. Het gevolg is dat de applicatie de acties wel uitvoert zoals gespecificeerd, maar op een hele saaie, inefficiënte en bovenal verwarrende manier. Immers, het <em>conceptueel model</em> van de interactie is gebaseerd op machine-efficiënte gegevensopslag, niet op efficiënt applicatiegebruik of een prettige ervaring. Of om het anders te zeggen: <strong>Het is een chassis zonder interieur, zonder pedalen en vooral zonder een stuurwiel. </strong>Geen wonder dat het oncomfortabel voelt.</p>
<h3>Herken datamodelgedreven interactie</h3>
<p>Hoe herken je nu datamodelgedreven interactie? Welnu, ten eerste natuurlijk aan de overdaad aan tabellen, vooral met veel kolommen die je nu niet nodig hebt: je moet dus turen naar welke kolom de gegevens bevat die jij zoekt voor je taak. Als het niet op het scherm past maken we de letters gewoon wat kleiner&#8230;</p>
<p>Maar er is nog een teken aan de wand: Bij het uitvoeren van je taak doorkruis je meerdere schermen, waarbij je op elk scherm een ander stukje informatie aan het systeem moet voeren.</p>
<blockquote><p>Voorbeeld:</p>
<p>Je systeem registreert de teams van de voetbalvereniging. Het datamodel bewaart leden en teams gescheiden, elk in hun eigen tabel. Elk seizoen wijzigt de teamindeling en de klasse van elk team. Dat levert je veel werk op, want je moet</p>
<ol>
<li>het bestaande team opzoeken (scherm 1) en dat &#8220;archiveren&#8221;</li>
<li>een nieuw team aanmaken van de juiste speelklasse(scherm 2) en dat &#8220;starten&#8221;</li>
<li>een teamlid opzoeken (scherm 3) op naam</li>
<li>het teamlid toevoegen aan het nieuwe team (scherm 4)</li>
<li>voor alle andere 10 spelers stap 3 en 4 herhalen (schermen 5..24)</li>
<li>voor alle andere 6 teams stap 1/tm 5 herhalen (schermen 25..<strong>144</strong>)</li>
</ol>
<p>Geen wonder dat je daar tegenop ziet!</p>
<p>NB. Ik laat het aan u over zelf een slimmere, gecombineerde manier te bedenken zodat de taak in 1 of 2 schermen klaar is. Hint: teams veranderen relatief weinig.</p></blockquote>
<h3>Datamodellen zijn een &#8217;solution&#8217;</h3>
<p>De datamodellen in de specificatie zijn zelf een &#8217;solution&#8217;: een IT oplossing op zoek naar een probleem. <strong>Het probleem van gegevensopslag speelt namelijk nog helemaal niet </strong>tijdens de eerste vergaderingen over een mogelijk nieuw IT systeem. De wereld is veranderd sinds de jaren &#8216;80: het<strong> datamodel is meestal onbelangrijk.</strong></p>
<p>In plaats van te vergaderen over datamodellen zou de IT manager moeten praten over</p>
<ol>
<li>welke <em>acties</em> de mensen op de werkvloer met de applicatie moeten uitvoeren en</li>
<li>hoe de daarbij benodigde informatie gecondenseerd en in de juiste context aan hen <em>gepresenteerd</em> wordt.</li>
</ol>
<p>En als je iemand betrapt op het voornemen vooral tabellen te gebruiken, <em>&#8220;lekker makkelijk, zoals iedereen gewend is, van Excel&#8221;, </em>bedenk dan dat dat eigenlijk zonde is van duur maatwerk: dat kan vrijwel gratis met <a href="http://www.vicus.nl/software/birt.html">gespecialiseerde tools</a> en zelfs &#8211; hoe kan het ook anders &#8211; <a href="http://blogs.zdnet.com/BTL/?p=4230">met Excel zelf</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.felixogg.com/softwareallergie/2009/05/fout-datamodelgedreven-interactie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>
		<item>
		<title>Maatwerksoftware is een drug</title>
		<link>http://www.felixogg.com/softwareallergie/2009/02/maatwerksoftware-is-een-drug/</link>
		<comments>http://www.felixogg.com/softwareallergie/2009/02/maatwerksoftware-is-een-drug/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 19:14:38 +0000</pubDate>
		<dc:creator>Felix Ogg</dc:creator>
				<category><![CDATA[User Centered Design]]></category>
		<category><![CDATA[bedrijfsproces]]></category>
		<category><![CDATA[requirements]]></category>
		<category><![CDATA[expert]]></category>
		<category><![CDATA[prioriteren]]></category>

		<guid isPermaLink="false">http://softwareallergie.felixogg.com/?p=31</guid>
		<description><![CDATA[Je baas gunt je een smak geld om software te laten bouwen door vaklui. Maatwerk is een verslavend fijne ervaring. Zowel opdrachtgever als bouwer worden high. Maar verslavingen hebben een keerzijde: Meestal lijden de eindgebruikers pijn.

Grootste gemene deler
De meeste software waarmee we dagelijks werken is ontwikkeld voor een enorme groep mensen. Producten als Word, Windows [...]]]></description>
			<content:encoded><![CDATA[<p>Je baas gunt je een smak geld om software te laten bouwen door <a href="http://www.finalist.com/">vaklui</a>. Maatwerk is een verslavend fijne ervaring. Zowel opdrachtgever als bouwer worden high. Maar verslavingen hebben een keerzijde: Meestal lijden de eindgebruikers pijn.</p>
<p><span id="more-9"></span></p>
<h3>Grootste gemene deler</h3>
<p>De meeste software waarmee we dagelijks werken is ontwikkeld voor een enorme groep mensen. Producten als Word, Windows (of Mac OS) en zelfs de software in je mobieltje vallen in die categorie. Al die mensen willen een beetje van hetzelfde, maar heel veel verschillends. Zo&#8217;n product kun je alleen bij de massa aan de man brengen als je mensen tevredenstelt: de kern van hun behoefte bevredigen. Oftewel: dit zijn producten die gaan voor de grootste gemene deler van de functies. Massaproducten voldoen nooit aan <em>al</em> je wensen.</p>
<h3>Complete verzameling</h3>
<p>Maar in de wereld van maatwerksoftware ligt dat anders. Omdat de opdrachtgever het beste weet wat zij wil <em>kunnen</em> met het product is zij de enige die kiest welke functies we inbouwen. De specialist die de productwensen in detail bespreekt met de opdrachtgever levert een lijst functies - het <em>programma van eisen</em> &#8211;  op, die de grootste gemene deler zijn van &#8230;. een handjevol personen. Oei..</p>
<p>Dit programma van eisen kost veel tijd en moeite van alle kanten, maar hoe meer opdrachtgevers (collega&#8217;s, zakenpartners) ernaar kijken, hoe meer punten eraan toegevoegd worden. Het is geen grootste gemene deler. Dankzij het poldermodel is het de <em>complete verzameling</em> van uitgesproken wensen.</p>
<h3>De schaar erin</h3>
<p>De hele lijst past niet in het budget noch de planning. Met deadlines om de hoek en een oprakend budget wordt iedereen wat ongeduldig. Dan komt onvermijdelijk het kiezen of delen, dus met MoSCoW (of anderszins) gaat de schaar in de lijst. Maar wie maakt die keuze? Meestal is dat de gepijnigde opdrachtgever die het project betaalt. </p>
<p>Ik observeer deze kleine marteling dagelijks, met gepast medelijden. Stel je voor dat je al je medewerkers enthousiast hebt gemaakt. Iedereen kwam met goede ideeën en elk idee bleek nog aantrekkelijker nadat de eisenspecialist ze op papier zette. En nu moet je dus kiezen tussen</p>
<ul>
<li>Jans kostenbesparende functie, of </li>
<li>Pieters informerende functie, of </li>
<li>Chantals klantwervende functie, of</li>
<li>je eigen al-zeg-ik-het-zelf-best-wel-goede-idee voor een functie</li>
</ul>
<p>Je bent gewend te kiezen uit meerdere opties voor  één kwestie, maar dit zijn allemaal opties met elk hun eigen kwestie! Er valt niks te vergelijken! </p>
<h3>Afkicken</h3>
<p>Er bestaan keuzehulpjes die je aandacht richten op <em>Return on Investment</em>, PR-waarde of stakeholder-buy-in. Maar het blijft een ontzettend <em>afkicken</em>. <img class="alignright" title="verslaafd" src="http://www.ibspro.net/wp-content/uploads/2008/05/drug_addict.jpg" alt="" width="500" height="333" />In de roze fantasiewereld van het eisenpakket is alles mogelijk. Dan hoef je niemand teleur te stellen. Betrokkenen verworden tot verslaafden in het prioriteringsproces. Ze zeggen </p>
<ul>
<li>Meer geld! Meer tijd! Ik moet die functie hebben. (geldverslindend)</li>
<li>Zonder deze functie heeft het het project geen zin meer. (suïcidaal)</li>
<li>Zit je me nu te belazeren? (paranoïde, wantrouwig)</li>
</ul>
<h3>Daag een eis uit</h3>
<p>Ik heb geen definitief antwoord. Ik merk dat mijn opdrachtgevers het verhelderend vinden wanneer ik ze uitdaag: &#8220;<em>Ach, dit kunnen we wel schrappen hè?</em>&#8221; of &#8220;<em>Je g</em><em>elooft zelf toch ook niet dat deze functie ooit zijn investering terugverdient?</em>&#8221; Kortom, vrij boute stellingen. Als er conflict ontstaat is de functie kennelijk de moeite waard om voor te vechten. Anders gaat het in de prullenbak.</p>
<h3>Wie strijdt voor gebruiksvriendelijkheid</h3>
<p>Maar in deze ondervragingstaktiek schrapt de klant vlotjes alle gebruiksvriendelijkheidspunten op de lijst. In dit blog lees je al dat gebruiksvriendelijkheid te beargumenteren valt, maar meestal is het juist de opdrachtgever die daarvan overtuigd moet worden. Zo kiest dus bijna elke opdrachtgever voor een extra functie, ten ongunste van de gebruikersinterface. Dat stelt enkelen op korte termijn tevreden &#8211; je keus voor Pieters suggestie voelt hij als een compliment &#8211; maar velen uiteindelijk teleur: iedereen klaagt steen en been over de moeizame ingebruikname van het systeem. </p>
<p>De UCD expert (ik) zou dus juist de functie moeten verdedigen in een soortgelijk steekspel met de opdrachtgever. Maar daarvoor moet de opdrachtgever inzien dat ze misschien toch niet alles weet van haar eigen toko. Natuurlijk kan je haar met prototypes laten &#8216;voelen&#8217; wat gebruiksvriendelijkheid oplevert, maar dan moet je eerst wel toestemming hebben om die te ontwikkelen. Soms zie ik daarvoor alleen burgerlijke ongehoorzaamheid als uitweg. En dat is precies wat ik zou adviseren: <strong>T</strong><strong>olereer een gezonde mate van dwarsheid van je softwarebouwers. </strong>Ze zijn niet alleen je <em>dealer</em>. Ze kunnen ook je <em>afkickbegeleider</em> zijn&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.felixogg.com/softwareallergie/2009/02/maatwerksoftware-is-een-drug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

