<?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>Ivar Jacobson International &#187; Requirements Management | Ivar Jacobson International</title>
	<atom:link href="http://blog.ivarjacobson.com/category/requirements-management/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ivarjacobson.com</link>
	<description>The Smart Blog</description>
	<lastBuildDate>Mon, 16 Jan 2012 14:12:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Dutch post: Meer heldere requirements: Kies de juiste verpakking</title>
		<link>http://blog.ivarjacobson.com/dutch-post-meer-heldere-requirements-kies-de-juiste-verpakking/</link>
		<comments>http://blog.ivarjacobson.com/dutch-post-meer-heldere-requirements-kies-de-juiste-verpakking/#comments</comments>
		<pubDate>Wed, 17 Nov 2010 16:54:16 +0000</pubDate>
		<dc:creator>Eric Lopes Cardozo</dc:creator>
				<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Management]]></category>

		<guid isPermaLink="false">http://blog.ivarjacobson.com/?p=493</guid>
		<description><![CDATA[Mijn collega Kurt Bittner heeft afgelopen juni  tijdens IBM Innovate 2010 (Florida) zijn visie gegeven op de nieuwe rol en verantwoordelijkheden van de nieuwe generatie informatieanalisten. Wanneer je geen kans hebt gezien om zijn presentatie bij te wonen, bekijk die dan via Slideshare: Transforming the role of the Business Analyst. Hieronder volgende enkele observaties of [...]]]></description>
			<content:encoded><![CDATA[<p>Mijn collega <a title="Kurt Bittner" href="http://blog.ivarjacobson.com/author/kbitner/" target="_blank">Kurt Bittner</a> heeft afgelopen juni  tijdens IBM Innovate 2010 (Florida) zijn visie gegeven op de nieuwe rol en verantwoordelijkheden van de nieuwe generatie informatieanalisten. Wanneer je geen kans hebt gezien om zijn presentatie bij te wonen, bekijk die dan via Slideshare: <a title="Transforming-the-role-of-the-business-analyst" href="http://www.slideshare.net/Ivarjacobson/transforming-the-role-of-the-business-analyst" target="_blank">Transforming the role of the Business Analyst</a>. Hieronder volgende enkele observaties of veel voorkomende problemen die hebben geleid tot zijn visie:</p>
<ul>
<li>Gebruikers verwachten andere  functionaliteit dan waar ze oorspronkelijk om hebben gevraagd.</li>
<li>Gebruikers eisen functionaliteit die ze nooit zullen gebruiken</li>
<li>Gebruikers geven tegenstrijdige of conflicterende requirements<span id="more-493"></span></li>
</ul>
<p>Om meer succesvol te zijn, zijn een aantal veranderingen noodzakelijk. Eén daarvan is dat informatie-analisten meer gefocust moeten zijn op gewenste resultaten in plaats van systeemeigenschappen (features). Een andere is dat informatie-analisten zich meer moeten verdiepen in de onderliggende oorzaken in plaats van zich tevreden te stellen met een lijst wensen. Gefocust zijn op resultaat en het boven water krijgen van de onderliggende oorzaken kan een heel karwei zijn en het is gemakkelijk om de twee door elkaar te halen of vast te lopen. Een slimmere manier waarbij meer rekening wordt gehouden met taalgebruik, vraagstelling en (on)bewust gebruikte van kaders of context frames biedt dan uitkomst.</p>
<p>De term context frame is jargon, maar heel gemakkelijk uit te leggen met een voorbeeld. Ik ben er namelijk zeker van dat jij mensen kent die altijd en soms tot vervelens toe antwoorden met “ja, maar”. En hoewel er zelden een negatieve intentie achter, voelt het maar al te vaak wel degelijk zo. Communicatie-experts zeggen dat je beter met “ja, en” kunt antwoorden om zodoende de negatieve lading er af te halen. Maar als je het mij vraagt, is het beter om (on)bewust steeds het juiste kader of frame te kiezen om zo het gewenst resultaat of de gewenste respons te krijgen. Vergelijk bijvoorbeeld de onderstaande zinnen:</p>
<ul>
<li>Met het project gaat het prima, maar we moeten deze risico’s wegnemen</li>
<li>Met het project gaat het prima en we moeten deze risico’s wegnemen</li>
<li>Met het project gaat het prima alhoewel we deze risico’s moeten wegnemen</li>
</ul>
<p>Wanneer je deze zinnen leest, merk dan op wat naar boven komt. En merk dan dat iedere zin iets anders aanvoelt of een andere focus aanbrengt?</p>
<p>Wanneer maar wordt gebruikt, dan hebben de meeste mensen de neiging om vooral aandacht te geven aan het tweede of laatste deel van zin, ofwel dat risico’s moeten worden weggenomen. En wanneer en wordt gebruikt, dan ervaren de meeste mensen beide zinsdelen als even belangrijk. En wanneer alhoewel wordt gebruikt, dan neigen de meeste mensen ernaar vooral stil staan bij het eerste deel van de zin, ofwel de status van het project. Het feit dat risico’s moeten worden weggenomen wordt dan als minder tot irrelevant ervaren.</p>
<p>Wat we hieruit kunnen leren is dat het wijzigen van één woord een bepaald aspect meer of minder kan belichten en daarmee de wijze waarop we dingen ervaren kan veranderen. “Kaders (frames) sturen de aandacht en beïnvloeden hoe gebeurtenissen worden geïnterpreteerd” (R. Dillts, 1999).</p>
<p>Binnen taal kom je veel verschillende soorten kaders of frames tegen. Welke activiteit zou je bijvoorbeeld liever op jouw softwareproject willen aantreffen: herstelwerkzaamheden (rework) of refactoring? Hoewel ze in essentie hetzelfde zijn, gok ik op de laatste (met dank aan Craig Lucia voor het voorbeeld).</p>
<p>Wanneer je wilt ingaan op resultaten in plaats van wensen, dan wil je juist niet diep ingaan op probleemgebieden. En andersom geldt dat wanneer je wilt ingaan op problemen of achterliggende oorzaken, dan wil je het juist niet hebben over visievorming. Het gebruik van het juist kader is een manier om daarvoor te zorgen. Wanneer je gewenste resultaten wilt identificeren, dan dien je ervoor te zorgen dat de focus ligt op het behalen van één of meer doelen, gewenste toestanden of het vinden van een bepaalde oplossing. Gebruik hiervoor vragen zoals:</p>
<ul>
<li>Wat heb je nodig?</li>
<li>Hoe is het om….te hebben?</li>
<li>Hoe kunnen we merken of meten dat we …….hebben waargemaakt?</li>
<li>Welke middelen hebben we beschikbaar om ......mogelijk te maken?</li>
</ul>
<p>Merk op dat de eerste vraag uit de lijst gevaarlijk kan zijn wanneer die in isolatie wordt gesteld omdat je dan namelijk de kans loopt te blijven zitten met die ongewenste lijst met wensen. Gebruik het dus alleen als startpunt en vraag dan door, bijvoorbeeld met de overige vragen uit de bovenstaande lijst. Let er tevens op dat alle geïdentificeerde resultaten positief worden geformuleerd en zijn gericht op de toekomst. We zullen straks ingaan waarom dit verstandig is.</p>
<p>Wanneer je oorzaken wilt identificeren, zorg er dan voor dat je focust op ongewenste symptomen en hun effecten. Gebruik hiervoor vragen zoals:</p>
<ul>
<li>Wat is het probleem?</li>
<li>Wat mankeert er aan de huidige situatie?</li>
<li>Waarom is het een probleem?</li>
<li>Hoe weet je dat het een probleem is?</li>
<li>Wie heeft het probleem veroorzaakt?</li>
<li>Wat heeft het probleem veroorzaakt?</li>
</ul>
<p>Realiseer dat te veel blijven hangen in problemen en oorzaken op zichzelf geen waarde heeft omdat het uiteindelijk gaat om het oplossen van problemen in plaats van ze te hebben. Zorg er daarom voor dat problemen, symptomen en oorzaken altijd wordt geanalyseerd in het licht van gewenste resultaten.</p>
<p>Zoals aangeven is het herkennen en kiezen van het juiste kader en het positief en toekomstgericht formuleren van gewenste resultaten belangrijk. Het komt namelijk vaak voor dat gewenste resultaten op een negatieve manier worden beschreven en dit leidt in de meeste gevallen tot onverstandige beslissingen. Neem bijvoorbeeld de eis of wens “Ik wil minder fouten ten gevolge van onduidelijke requirements”. In veel gevallen hebben organisaties geprobeerd om dergelijke problemen op te lossen door middel van meer formele processen en meer gedetailleerde beschrijvingen. In de praktijk blijkt echter dat dit in de meeste gevallen alleen maar leidt tot meer problemen. De oorzaak is de focus op het voorkomen van fouten of zoals in dit geval beter proberen te doen wat al is geprobeerd. Een alternatieve vaak meer succesvolle oplossing is te kiezen voor een ander samenwerkingsmodel met achterliggende disciplines en snelle terugkoppeling. Dit komt vaak pas in beeld wanneer je meer alternatieven gaat zien en een manier om dat te doen is door negatief geformuleerde resultaten eerst positief om te kaderen (reframe). Dit kun je doen door vragen te stellen als: “Wanneer je minder fouten hebt tengevolge van onduidelijke requirements, wat ervaar je dan?”.</p>
<p>Uiteindelijk gaat het er om (on)bewust het juiste kader te kiezen en slim gebruik te maken van taal. Je hoeft me niet op mijn woord te geloven, maar ik stel voor dat je proef op de som neemt. En wanneer je dat doet, dan zou je wel eens verrast kunnen zijn met het resultaat.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivarjacobson.com/dutch-post-meer-heldere-requirements-kies-de-juiste-verpakking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stimulating a discussion: Getting to needs</title>
		<link>http://blog.ivarjacobson.com/stimulating-a-discussion-getting-to-needs/</link>
		<comments>http://blog.ivarjacobson.com/stimulating-a-discussion-getting-to-needs/#comments</comments>
		<pubDate>Fri, 08 Oct 2010 13:47:43 +0000</pubDate>
		<dc:creator>Kurt Bittner</dc:creator>
				<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Requirements Management]]></category>
		<category><![CDATA[Iterative]]></category>
		<category><![CDATA[Requirements]]></category>

		<guid isPermaLink="false">http://blog.ivarjacobson.com/?p=457</guid>
		<description><![CDATA[One of the frequent questions we are asked is "how can I get the time to explore needs when the business says that it is already done - "it's in the business case", even when it is obviously not complete?  This is actually a pretty common occurrence - nobody wants to take time to understand needs [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-468" title="1176923_50609724" src="http://blog.ivarjacobson.com/wp-content/uploads/2010/10/1176923_50609724-300x225.jpg" alt="Stimulating a discussion: Getting to needs" width="300" height="225" />One of the frequent questions we are asked is "how can I get the time to explore needs when the business says that it is already done - "it's in the business case", even when it is obviously not complete?  This is actually a pretty common occurrence - nobody wants to take time to understand needs because they think it has already been done. <span id="more-457"></span></p>
<p>The best way is to integrate needs analysis into the way that you discover requirements.  As new requirements (and I include user stories as  kind of requirement), make sure you understand what the need is behind it.  Use the questions I mentioned in the <a href="http://www.ivarjacobson.com/event.aspx?id=916">webinar</a> (Getting to Needs: Seeing beyond wants and wishes to find the real source of business results)  to expand your knowledge of why they "need" the system to work that way, and offer alternative solutions as you see them.  The offering of alternatives will stimulate a discussion that will either confirm your understanding of the need or help you refine your understanding.  If the alternative is actually a better way of solving the problem you will demonstrate your understanding of the need as well as help to build a reputation for adding value that will in turn improve your ability to collaborate with your business partners.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivarjacobson.com/stimulating-a-discussion-getting-to-needs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dutch post: Meer heldere requirements: vermomde processen</title>
		<link>http://blog.ivarjacobson.com/dutch-post-meer-heldere-requirements-vermomde-processen/</link>
		<comments>http://blog.ivarjacobson.com/dutch-post-meer-heldere-requirements-vermomde-processen/#comments</comments>
		<pubDate>Tue, 21 Sep 2010 16:54:03 +0000</pubDate>
		<dc:creator>Eric Lopes Cardozo</dc:creator>
				<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Management]]></category>
		<category><![CDATA[Dutch Posts]]></category>

		<guid isPermaLink="false">http://blog.ivarjacobson.com/?p=423</guid>
		<description><![CDATA[De laatste paar dagen hebben verschillende mensen mij dezelfde vraag gesteld: “Hoe kunnen we meer heldere requirements krijgen”. Hoewel ik het eens ben dat het niet netjes is om een vraag met een vraag te beantwoorden, is het in mijn visie beter om in dit geval soepel om te gaan met die etiquette. En wel  [...]]]></description>
			<content:encoded><![CDATA[<p>De laatste paar dagen hebben verschillende mensen mij dezelfde vraag gesteld: “Hoe kunnen we meer heldere requirements krijgen”. Hoewel ik het eens ben dat het niet netjes is om een vraag met een vraag te beantwoorden, is het in mijn visie beter om in dit geval soepel om te gaan met die etiquette. En wel  omdat deze vraag eigenlijk niet zo eenvoudig te beantwoorden is. Bijvoorbeeld, waarom is dit nodig en welk probleem lost het op? Of, wat bedoel je precies met helder? En heb je heldere requirements en wil je er meer? En in dat geval, meer dan wat? Of heb je requirements die niet helder zijn en die je beter wilt kunnen communiceren. En zo ja, hoeveel beter?</p>
<p>Je zou kunnen zeggen dat dit gewoon spelen met woorden is. En dat klopt! Maar is het formuleren en communiceren van requirements niet feitelijk hetzelfde? Voor <a title="How do we make requirements definition more accurate" href="http://www.ivarjacobson.com/services/service_packages/accurate_requirements/" target="_blank">meer heldere requirements</a> zijn een tal van zaken benodigd. Er is echter een belangrijk element dat vaak over het hoofd wordt gezien, namelijk inzicht in de structuur van taal en de wijze waarop taal wordt geïnterpreteerd.<span id="more-423"></span></p>
<p>Daniel, een goede vriend van mij, vertelde me eens wat hij had meegemaakt met een projectteam dat goed in de problemen zat met zogenaamde niet-functionele systeemeisen. Het team wist dat er niet-functionele eisen waren die cruciaal waren voor het slagen van het project. Echter, de klant werkte in hun ogen niet echt mee en was ook niet in staat om deze eisen goed te verwoorden. Uiteindelijk werd een doorbraak geforceerd met behulp van het conflictmodel: (lees hardop: “Dus je wilt een systeem dat niet te gebruiken is en waardoor alle gebruikers met de dag steeds meer gefrustreerd raken”. Het schokeffect creëerde inderdaad een opening, maar ik ben er zeker van dat jij het met mij eens bent dan de meeste klanten het niet op prijs stellen om te worden gebruuskeerd, toegeschreeuwd of afgebekt. En gelukkig zijn er een meer vriendelijkere en elegantere manieren.</p>
<p>Neem bijvoorbeeld niet-functionele requirements zoals: betrouwbaarheid, gebruiksvriendelijkheid, efficiency, onderhoudbaarheid, portabiliteit en stel jezelf de volgende vraag: Wat hebben deze kwaliteitsattributen gemeenschappelijk vanuit het oogpunt van taal? Het antwoord is dat het allemaal zelfstandig naamwoorden zijn terwijl het eigenlijk werkwoorden zijn. Of met andere woorden, het zijn vermomde actieve processen die worden behandeld alsof het (fysieke) dingen zijn. Dit fenomeen kom je overigens overal tegen in allerhande situaties. Wanneer iemand je bijvoorbeeld vertelt dat hij of zij een depressie heeft, dan voelt die persoon zich eigenlijk gewoon naar. En hetzelfde is aan de hand met plezier of lol. Je <em>hebt</em> geen <em>plezier</em>, je <em>voelt je goed</em>.</p>
<p>Op dit punt vraag je je wellicht af waarom het gebruik van zelfstandig naamwoorden in plaats van werkwoorden nu eigenlijk een probleem is. Het blijkt dat het veel lastiger is om een probleem op te lossen wanneer het achterliggende proces verstopt of verborgen is. En in ons specifieke geval betekent het dat het veel lastiger is om requirements helderder of meer precies te specificeren en te communiceren. Zo is de kans op het gebruik van jargon veel groter als je processen behandelt alsof het dingen zijn: “Aha beschikbaarheid, en wat is dan de <em>mean time between failure</em>”. En voordat je het weet is de klant je al helemaal kwijt. Meer fundamenteel beschouwd is het zo dat het brein dingen als statisch of onveranderbaar ervaart terwijl processen impliciet als veranderlijk en dynamisch worden ervaren. En dit betekent dat wanneer je vanuit proces redeneert het veel makkelijker is om tot de essentie te komen en de helderheid van requirements te verhogen. En het betekent ook dat je beter in staat bent om over requirements te onderhandelen of de impact te reduceren zodat waarde kan worden geleverd tegen realistische kosten en doorlooptijd.</p>
<p>Laten we een concreet voorbeeld nemen. Een klant zou het volgende requirement of systeemeis kunnen opgeven</p>
<ul>
<li>Het systeem moet een beschikbaarheid hebben van 100%.</li>
</ul>
<p>Sommige analisten zullen direct de haalbaarheid of realiteitszin van 100% beschikbaarheid ter discussie stellen met een grote kans om de klant kwijt te raken. Wanneer je genoeg weet van het probleemdomein en de klant het jargon begrijpt, dan is vragen stellen over de onderliggende processen een elegantere aanpak, bijvoorbeeld:</p>
<ul>
<li>Wat is de gemiddelde tijdspanne in een jaar dat het systeem niet beschikbaar mag zijn?</li>
</ul>
<ul>
<li>Wat is de gemiddelde tijdspanne in een jaar dat het systeem niet beschikbaar kan zijn ten behoeve van onderhoud?</li>
</ul>
<ul>
<li>Wat is de maximum toegestane tijdspanne benodigd om het systeem opnieuw te starten nadat het niet beschikbaar is geweest?</li>
</ul>
<p>En wanneer je eigenlijk geen idee hebt wat de klant nu eigenlijk echt wil of wanneer je vermoed of weet dat de klant concepten als beschikbaarheid niet helemaal begrijpt, dan is het eleganter om meer contextvrije vragen te stellen zoals:</p>
<ul>
<li>Hoe is het om een systeem te hebben dat 100% beschikbaar is?</li>
</ul>
<ul>
<li>Wat zou er gebeuren wanneer het systeem maar 90% van de tijd beschikbaar is?</li>
</ul>
<p>Ik kan niet garanderen dat klant meteen alle antwoorden heeft, maar in bijna alle gevallen zal de discussie  nu eenvoudiger en vriendelijker verlopen omdat we het proces achter het requirement hebben <em>gedenominaliseerd</em>.</p>
<p>Een goede manier om <em>nominalisaties</em> of vermomde processen te detecteren is door te testen of je het onderwerp (zelfstandig naamwoord) van de zin in een doos kunt stoppen, ook al is het een enorm grote doos. Of dat je het uit het raam kunt gooien of in een kruiwagen kunt stoppen. Wanneer dat niet mogelijk is, ga dan op zoek naar de onderliggende processen. Kun je gebruiksvriendelijkheid in een doos stoppen? Of beschikbaarheid? Of software?</p>
<p>Een standaard zoals ISO/IEC 25000 geeft categorieën en belangrijker metrics, ten behoeve van evaluatie en verificatie van niet-functionele requirements of kwaliteitsattributen. Deze metrics geven een uitstekend startpunt voor het doorgronden en verkennen van de onderliggende processen.</p>
<p>Er zijn nog veel meer taalpatronen die, wanneer ze worden overtreden, de effectiviteit van communicatie negatief kunnen beïnvloeden. In alle gevallen gaat het om het verdraaien, weglaten of (over)generaliseren van de werkelijkheid. En in mijn visie is dit een belangrijke bron van obstakels die je vaak moet overwinnen wanneer je behoefte hebt aan meer heldere requirements of andere problemen op dit vlak hebt op te lossen.</p>
<p>De lijst met taalpatronen is te omvangrijk om hier te bespreken en wellicht iets voor een volgende keer. Mocht je meer willen over taalpatronen, dan is het NLP meta-model een uitstekende bron. Maar plaats gerust een reactie wanneer je meer wilt weten of vragen hebt.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivarjacobson.com/dutch-post-meer-heldere-requirements-vermomde-processen/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Attitudes Toward Delivering Business Value</title>
		<link>http://blog.ivarjacobson.com/attitudes-toward-delivering-business-value/</link>
		<comments>http://blog.ivarjacobson.com/attitudes-toward-delivering-business-value/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 12:00:51 +0000</pubDate>
		<dc:creator>Kurt Bittner</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Requirements Management]]></category>
		<category><![CDATA[Iterative]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://blog.ivarjacobson.com/?p=416</guid>
		<description><![CDATA[Traditional software development projects are executed in a value-neutral setting in which: Every requirement is treated as equally important The delivery of technical components is seen as of equal importance to the delivery of usable systems "Earned value" systems track project cost and schedule, not stakeholder or business value A "separation of concerns" is practiced, [...]]]></description>
			<content:encoded><![CDATA[<p>Traditional software development projects are executed in a value-neutral setting in which:</p>
<ul>
<li>Every requirement is treated as equally important</li>
<li>The delivery of technical components is seen as of equal importance to the delivery of usable systems</li>
<li>"Earned value" systems track project cost and schedule, not stakeholder or business value</li>
<li>A "separation of concerns" is practiced, in which the responsibility of the development team is confined to turning software requirements into verified code rather than delivering business value</li>
<li>The actual desired outcomes of the project are ignored in favor of implementing the largest number of requirements possible</li>
</ul>
<p>No wonder so many projects fail to deliver the desired business results! Unfortunately this includes many iterative software development projects where the developers iteratively implement the requirements rather than delivering business value. Any management system that rewards things that are easily measured (like implementing requirements) without a clear and direct tie to business value delivered is headed down the wrong path.<span id="more-416"></span></p>
<p>Delivering value is not the same as delivering code: it is easy to deliver a lot of code without delivering much business value. The code delivered and tested must do something useful for the business. This is not the same as delivering what the business asks for - much of what is asked for is never used and delivers no business value. We clearly need a means for finding and implementing the requirements with the highest business value first, and separating wishes from real needs.</p>
<p>The key to understanding the business value derived is to map requirements back to the desired outcomes for the project: a requirement not related to a desired outcome is clearly not important to the business. The connection to iteration planning is that early iterations should implement requirements related to more important desired outcomes, with one clarification: technical risk cannot be ignored. This apparent conflict can be resolved by recognizing that desired business outcomes require that technical risks are resolved early because a technically infeasible solution is incapable of delivering any desired outcomes.</p>
<p>As a result, planning iterations entails choosing the right set of risks and requirements for each iteration to ensure that the iteration’s results make measurable progress toward the delivery of the desired business outcomes. As progress is demonstrated, as everyone can see that key technical issues are being resolved, and as the achievement of desired outcomes becomes increasingly apparent, confidence in success increases.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivarjacobson.com/attitudes-toward-delivering-business-value/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>More accurate requirements: when process is lost</title>
		<link>http://blog.ivarjacobson.com/more-accurate-requirements-when-process-is-lost/</link>
		<comments>http://blog.ivarjacobson.com/more-accurate-requirements-when-process-is-lost/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 23:17:30 +0000</pubDate>
		<dc:creator>Eric Lopes Cardozo</dc:creator>
				<category><![CDATA[Requirements Management]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[project planning]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://blog.ivarjacobson.com/?p=402</guid>
		<description><![CDATA[Over the last few days a number of people have asked me the same question: “How can we get more accurate requirements?” While I agree it is not nice to answer a question with a question, in this case you might bend etiquette a bit because in reality this question can be hard to answer. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-418" title="nounverb" src="http://blog.ivarjacobson.com/wp-content/uploads/2010/08/nounverb.jpg" alt="More accurate requirements: when process is lost" width="154" height="113" />Over the last few days a number of people have asked me the same question: “How can we get more accurate requirements?” While I agree it is not nice to answer a question with a question, in this case you might bend etiquette a bit because in reality this question can be hard to answer. For example, why is it necessary and which problem does it solve? Or, what exactly do you mean with accurate?  And do you have accurate requirements and you want more of those? And in that case, more than what? Or do you have inaccurate requirements which you want to become more accurate? And if so, how much more?</p>
<p>You might say: “Hey, that’s just playing with words”. Well, that’s right and so is writing and communicating requirements. In order to<a title="How do we make requirements definition more accurate?" href="http://www.ivarjacobson.com/services/service_packages/accurate_requirements/" target="_blank"> get accurate requirements</a> you need a number of things. However, an often overlooked element to writing accurate requirements is understanding the structure of language and how language is perceived.<span id="more-402"></span></p>
<p>My friend Daniel told me a war story once about a software project team that had huge problems with so-called non-functional requirements. They knew they were out there and crucial, but the customer was not really helpful and capable of expressing them. In the end they forced a breakthrough by playing hard ball; (read out loud) “So you want a system that is very hard to use and frustrates each and every user all day long”. The shock did indeed create an opening, but I’m sure that, you like me, feel that most people do not like to be shocked, yelled at and bullied. Luckily for us, there is a nicer and more elegant way.</p>
<p>Let’s have a look at non-functional requirements like reliability, usability, efficiency, maintainability, portability and ask yourself the following question: What do these quality attributes have in common from the viewpoint of language?  The answer is that they are all nouns where in reality these are verbs. Or in other words we are actually dealing with active processes in disguise because we are treating them like (physical) things. This phenomenon happens all the time and in all kinds of situations. When somebody tells you he or she is having a depression, he or she is actually feeling bad. The same thing with having fun. You don’t <em>have fun</em>, you <em>feel good</em>.</p>
<p>By now you might wonder why using nouns rather than verbs is bad. Well, it turns out that when process is lost or hidden it is much harder to solve a problem; or, like in our case, accurately specify and communicate requirements.  When you keep treating processes like things, often jargon is required to discuss it. For example: “Oh, what’s the <em>mean time between failure</em> then” and before you know it you have completely lost the customer. And more fundamentally, the brain perceives things as rather unchangeable or static while processes are implicitly perceived as changeable and dynamic. This means that it's much easier to get to the essence of the meaning, increase the accuracy of requirements and to negotiate or down scope so that business value can be delivered at reasonable cost and schedule.</p>
<p>Let’s for example look at availability. A customer might issue the following rather bold requirement:</p>
<ul>
<li>The system must have an availability of 100%.</li>
</ul>
<p>Some of us will question the unrealistic need for 100% availability with the chance of losing rapport or close contact with the customer. When you know enough about the problem space and the customer understands the jargon, a better  approach is asking questions about the underlying processes. For example:</p>
<ul>
<li>What is the average period of time within a year the system is allowed to not be available?</li>
<li>What is the average period of time within a year the system is allowed being unavailable for maintenance?</li>
<li>What is the maximum time allowed for restarting the system after failure?</li>
</ul>
<p>And when you haven’t got a clue or you have the idea the customer really does not fully understand concepts like availability, it is more elegant to ask more context free questions like:</p>
<ul>
<li>What is it like when the system is available 100% of the time?</li>
<li>What will happen when the system is only available 90% of the time?</li>
</ul>
<p>Maybe the customer does not have all the answers, but the discussion will be much easier and friendlier now because we have denominalized the process behind the initial requirement.</p>
<p>A good way to detect nominalizations or disguised or hidden processes is to test if you can put the sentence’s objective (noun) of a given requirement in a box, albeit a large one, or throw it out of the window.  When you cannot, go after the processes behind it.  Can you put usability in a box? Or availability?</p>
<p>For non-functional requirements or quality attributes standards like ISO/IEC 25000 provide categories and more important metrics for evaluation and verification purposes. These metrics do provide a good starting point for understanding and exploring the underlying processes.</p>
<p>There are more language patterns that, when violated, obscure or negatively affect effective communication. In a way they are all translation problems that cause information to become distorted, deleted or (over)generalized. To me this is a one source of obstacles you have to overcome when you are in need of more accurate requirements. When you want to know more about these language patterns, a good source is the NLP Meta-Model, but feel free to drop me a line when you want to know more or have questions.</p>
<div style="width: 1px; height: 1px; overflow: hidden;">&lt;!--[if gte mso 9]&gt; Normal 0 21 false false false NL X-NONE X-NONE MicrosoftInternetExplorer4 &lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt; &lt;![endif]--&gt;<!--  /* Font Definitions */  @font-face 	{font-family:Wingdings; 	panose-1:5 0 0 0 0 0 0 0 0 0; 	mso-font-charset:2; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 415 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-520092929 1073786111 9 0 415 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin;} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	margin-top:0cm; 	margin-right:0cm; 	margin-bottom:0cm; 	margin-left:36.0pt; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin;} span.EmailStyle15 	{mso-style-type:personal; 	mso-style-noshow:yes; 	mso-style-unhide:no; 	mso-ansi-font-size:11.0pt; 	mso-bidi-font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi; 	color:#1F497D; 	mso-themecolor:dark2;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt;} @page WordSection1 	{size:612.0pt 792.0pt; 	margin:70.85pt 70.85pt 70.85pt 70.85pt; 	mso-header-margin:35.4pt; 	mso-footer-margin:35.4pt; 	mso-paper-source:0;} div.WordSection1 	{page:WordSection1;}  /* List Definitions */  @list l0 	{mso-list-id:1166752679; 	mso-list-type:hybrid; 	mso-list-template-ids:-2069624788 68354049 68354051 68354053 68354049 68354051 68354053 68354049 68354051 68354053;} @list l0:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:none; 	mso-level-number-position:left; 	text-indent:-18.0pt; 	font-family:Symbol;} ol 	{margin-bottom:0cm;} ul 	{margin-bottom:0cm;} --><!--[if gte mso 10]&gt; &lt;!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:&quot;Table Normal&quot;; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:&quot;&quot;; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:&quot;Times New Roman&quot;,&quot;serif&quot;;} --> &lt;!--[endif]--&gt;</div>
<p class="MsoNormal">
<p class="MsoListParagraph" style="text-indent: -18pt"><span style="color: #1f497d" lang="EN-US"> </span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivarjacobson.com/more-accurate-requirements-when-process-is-lost/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What is an Iteration?</title>
		<link>http://blog.ivarjacobson.com/what-is-an-iteration/</link>
		<comments>http://blog.ivarjacobson.com/what-is-an-iteration/#comments</comments>
		<pubDate>Fri, 28 May 2010 12:26:06 +0000</pubDate>
		<dc:creator>Kurt Bittner</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Iterative Development]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Requirements Management]]></category>
		<category><![CDATA[evaluation criteria]]></category>
		<category><![CDATA[Iterative]]></category>
		<category><![CDATA[Measurement]]></category>
		<category><![CDATA[objectives]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://blog.ivarjacobson.com/?p=290</guid>
		<description><![CDATA[Iteration: A self-contained mini-project, with a well-defined outcome: a stable, integrated, and tested “release”. Let’s look at the three aspects of this definition in more detail. A software development project produces a new release of a software product by transforming a set of users’ requirements into a new or changed software product. With an iterative and incremental approach, this [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: Calibri, Verdana, Helvetica, Arial;"><span style="font-size: 12pt;"><strong><img class="alignleft size-thumbnail wp-image-297" title="1166061_modern_stairs" src="http://blog.ivarjacobson.com/wp-content/uploads/2010/05/1166061_modern_stairs-150x100.jpg" alt="What is an Iteration?" width="150" height="100" /><em></em></strong></span></span></p>
<p><strong>Iteration: </strong>A self-contained mini-project, with a well-defined outcome: a stable, integrated, and tested “release”. Let’s look at the three aspects of this definition in more detail.</p>
<p>A software development project produces a new release of a software product by transforming a set of users’ requirements into a new or changed software product. With an iterative and incremental approach, this process is completed little by little, step by step, by splitting the overall project into several mini-projects, each of which is called an iteration.</p>
<p>From the perspective of the development team, each iteration can be considered to be a self-contained project. This approach is very powerful because it enables the development team members to focus on meeting their immediate objectives and ensures that the results generated are frequently and objectively measured. The management team needs to ensure that the iteration objectives form a credible part of the larger overall project.</p>
<p>The management team needs to reinforce this way of working by ensuring that each iteration has the following:</p>
<p><strong><span id="more-290"></span>Clear objectives</strong></p>
<p>Each iteration must have clearly defined objectives that are understood and agreed upon by all the parties involved in the project. This unifies the efforts of everyone involved in the project.</p>
<p><strong>Measurable evaluation criteria</strong></p>
<p>For the objectives to function as the unifying theme for the team, it is essential that they are complemented with measurable evaluation criteria that enable the performance of the iteration to be objectively assessed.</p>
<p><strong>A committed team</strong></p>
<p>The team must be singularly committed to working together to achieve the iteration’s objectives.The team succeeds or fails as a whole, and all team members must do everything under their control to meet the objectives set for the iteration; all effort should contribute to achieving the iteration objectives.</p>
<p><strong>A schedule </strong></p>
<p>As well as agreeing on the objectives for the iteration, the management must agree to its schedule and under- stand how it impacts the plans for the project as a whole. Scheduling an iteration can be as simple as setting the iteration’s start and end dates and understanding how the iteration fits into the overall project plan.</p>
<p><strong>An objective assessment </strong></p>
<p>To close out the iteration, it is essential that the results produced are objectively assessed against the iteration’s objectives and evaluation criteria. Assessment should be conducted on a continual basis during the iteration and summarized at the end of the iteration. Without objective assessment it is impossible for the success or failure of the iteration to be judged and for the project to be controlled.</p>
<p>Doing these things ensures a well-defined and measurable result for the iteration that can be tied directly to the overall success of the project. In the next post, I’ll look at The Iteration has a Distinct Set of Activities.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivarjacobson.com/what-is-an-iteration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to stop thinking about business as “the customer” and IT as “the vendor”</title>
		<link>http://blog.ivarjacobson.com/how-do-we-get-the-business-and-it-to-play-on-the-same-team/</link>
		<comments>http://blog.ivarjacobson.com/how-do-we-get-the-business-and-it-to-play-on-the-same-team/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 20:59:14 +0000</pubDate>
		<dc:creator>Ivar Jacobson</dc:creator>
				<category><![CDATA[Iterative Development]]></category>
		<category><![CDATA[Ivarblog]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Requirements Management]]></category>
		<category><![CDATA[Training]]></category>

		<guid isPermaLink="false">http://blog.ivarjacobson.com/?p=240</guid>
		<description><![CDATA[In my last three blogs, I discussed how we can close the gap between the business and IT. I summed up the way forward with the advice to stop thinking about the business as the customer and IT as the provider. Instead, let them work together in teams (similar to members of a soccer team), [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-241" title="147870_team" src="http://blog.ivarjacobson.com/wp-content/uploads/2010/03/147870_team-150x100.jpg" alt="How to stop thinking about business as “the customer” and IT as “the vendor”" width="150" height="100" />In my last three blogs, I discussed how we can close the gap between the business and IT. I summed up the way forward with the advice to stop thinking about the business as the customer and IT as the provider. Instead, let them work together in teams (similar to members of a soccer team), responsible directly to management.</p>
<p>It will not be an easy journey, but here are some steps along the way:</p>
<p><span id="more-240"></span>Management needs to:</p>
<ol>
<li>Make IT an integral part of all business units by:
<ul>
<li>Funding IT related projects directly from the business’ budget, and charging business units for their direct utilization of IT.  Today, IT is often an “overhead” expense, and business units rarely see the direct cost of what they ask for.</li>
<li>“Playing on one team”. The team building starts when the business has identified a project and selected a project lead (coming from the business or from the IT or from wherever) and given her/him a budget. The project lead then selects the team needed to become successful using his/her budget. Some of these will come from the business side and others from IT such as analysts, developers, testers, etc. IT is from this perspective seen as a resource center. (IT has other roles such as leading the way into the future.)</li>
<li>IT spending needs to be perfectly aligned with the needs of the business, and the business needs to pay for what it asks for.</li>
</ul>
</li>
<li>Choose a technically competent CIO who understands and is respected by the president and the business unit managers, a CIO who can train his/her colleagues in the value of modern technology, a CIO who can lead with enthusiasm and passion. Give him a significant seat at the executive management table.</li>
<li>Let IT and business units collaborate during the chartering of projects to define the problems to solve, or the goals that are to be reached, and to work together to find creative technical solutions to these problems, stimulating innovation.  Today, too often, the business requests or demands a solution based on a limited understanding of what might be done, and often based on an incomplete or flawed understanding of the problems to be solved and the goals to be met.  Working together, with a focus on really understanding what is needed and what can be done to meet those needs, better solutions can be devised and pursued.</li>
<li>Recruit and promote IT leaders who have business sense, that is, who understand the business and have a proven track record for delivering innovative solutions.  And in the business units, recruit and promote people who can create value by solving problems using innovative applications of technology.</li>
<li>Promote IT discussion that value communication in business terms and not in technology terms by continually focusing on how technical solutions will create business value.</li>
<li>Stimulate cooperation and collaboration between IT and business units by ensuring that representative of both speak with one voice and avoid one-way 'monologues'.</li>
</ol>
<p>The projects and the teams</p>
<ol>
<li>Prioritize the projects based on the business value that they will deliver <strong>over their planned lifetime</strong>, and considering the full lifecycle costs and benefits, not simply the initial costs and benefits.  Most project funding requests fail to consider the long-term costs and benefits of applications, resulting in unfunded long-term support costs.</li>
<li>Both business and IT must participate in the development project as if the business depended on it - which it should if the project is worth doing.</li>
<li>Measure the performance of the project against the goals established in the business case, and hold the team, with representatives from both business and IT, accountable for these results. Even before the project delivers, measure results in business terms such as the number of business scenarios that have been implemented and tested - don’t measure progress in terms of completion of documents. When you publish internal progress measures, always present them in business terms.</li>
</ol>
<p>Product (software)</p>
<p>Derive software architecture from the business model – for instance starting from the business use cases, the business entity objects, the workers and translate these to a road map representing the system's major components and their collaborations and fill the map with executable code, project after project.</p>
<p>Method (process)</p>
<ol>
<li>Apply practices that may get the business side and the IT to collaborate and which, if correctly performed, result in measurable success. Then the two sides will win together.</li>
<li>Develop iteratively: deliver frequently and encourage requirement modifications after each delivery.</li>
<li>Formulate requirements and tests as use cases: specify, develop, test and validate–a little at a time, starting from the essentials, over and over again until your customers accept</li>
<li>Plan product releases together: understand the purpose and intention of each release, ensure the product addresses the real business needs, synchronize business and development plans, involve the right people</li>
<li>At the right time, understand everybody's commitments.</li>
<li>Use a dash-board: look at what’s important: better, faster, cheaper, happier, and present it intuitively using the language of the business.</li>
<li>Organize cross-functional teams, one for each business feature: bring all the skills (marketing, product design, software development, financial, business process experts) necessary together to make the change.</li>
<li>Formulate business processes as business use cases: lean business design, just model the bits of the business that are being changed, identify increments of business change so change can be made early and often. An agile approach to business modeling.</li>
</ol>
<p>These are steps on the path to reducing the gap between business and IT, making the IT and the business true partners and removing the customer-provider relationship that is not working. The goal is of course to generate revenue, reduce cost, and improve the customer experience. It's smart for business, and that will be smart for IT.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivarjacobson.com/how-do-we-get-the-business-and-it-to-play-on-the-same-team/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The Kernel Journals 1: The Hegelian Dialectic of Software Engineering</title>
		<link>http://blog.ivarjacobson.com/the-kernel-journals-1-the-hegelian-dialectic-of-software-engineering/</link>
		<comments>http://blog.ivarjacobson.com/the-kernel-journals-1-the-hegelian-dialectic-of-software-engineering/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 03:19:29 +0000</pubDate>
		<dc:creator>Roly Stimson</dc:creator>
				<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Requirements Management]]></category>
		<category><![CDATA[practice framework]]></category>
		<category><![CDATA[prescriptive process]]></category>
		<category><![CDATA[process kernel]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://blog.ivarjacobson.com/?p=114</guid>
		<description><![CDATA[We in the software development industry face a seemingly intractable problem. We have learnt the lesson that prescriptive process is a bad thing. Process bureaucrats sitting in ivory method towers, telling highly-skilled professionals how to do their job and setting the process police on them if they don’t follow their instructions to the letter, can [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-129" title="958915_sphere" src="http://blog.ivarjacobson.com/wp-content/uploads/2010/01/958915_sphere2-150x100.jpg" alt="The Kernel Journals 1: The Hegelian Dialectic of Software Engineering" width="150" height="100" />We in the software development industry face a seemingly intractable problem. We have learnt the lesson that prescriptive process is a bad thing. Process bureaucrats sitting in ivory method towers, telling highly-skilled professionals how to do their job and setting the process police on them if they don’t follow their instructions to the letter, can (unsurprisingly) be really quite damaging. It disempowers the development team  and engrains apathetic attitudes along the lines of “When we inevitably under-deliver, it will not be our fault, but the fault of these ludicrous process hoops that we are forced to jump through, instead of being able to focus on writing great software”.  The agile revolution was software engineering’s way of learning this lesson, and the agile manifesto pledge to value “people over process” and “software over documentation” has got to be right. But (… there was always a “but” coming …), we are already finding that the opposite extreme of little or no explicit process isn’t going to cut it either, because it leaves too many problems unsolved, such as:<span id="more-114"></span></p>
<ol>
<li>Avoiding      Confusion – there is a big and noisy world of competing processes and      methods out there. How do software development teams find the right      practices for their specific needs?</li>
<li>Team efficiency      – do we really want our development teams to constantly have to reinvent      new solutions to old process problems when they should be focusing on      writing great software?</li>
<li>Supporting      Diversity – some software engineers need / want more explicit practice      guidance than others. How do we provide just enough guidance without being      overly prescriptive?</li>
<li>Consistency – if      every team works differently, how do we get resource mobility /      flexibility?</li>
<li>Governance – how      does the sponsoring organization manage the risks associated with its      investments in software and ensure visibility of progress towards a      successful outcome?</li>
</ol>
<p>We face the following Hegelian Dialectic (I graduated in philosophy – you have to humor me!):</p>
<ol>
<li><strong><em>Thesis</em></strong>: Prescriptive      process kills the golden goose (development team creativity and      motivation)</li>
<li><strong><em>Antithesis</em></strong>: Removing the      prescriptions can distract, confuse and frustrate the team and its      stakeholders</li>
<li><strong><em>Synthesis</em></strong>: We need some      kind of smart practice framework that enables us to provide clear      direction on <strong><em>what</em></strong> needs to be done and <em>just enough</em> default standard guidance on <strong><em>how</em></strong> to do it, but enables teams      to easily refine or replace practices that are not exactly right for them.</li>
</ol>
<p>This smart practice framework is known as a process kernel. In this short series of blogs I will describe in a little more detail at what a kernel is and report on my experiences of using process kernels in practice to enable my customers to find answers to some of these seemingly intractable process problems.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivarjacobson.com/the-kernel-journals-1-the-hegelian-dialectic-of-software-engineering/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

