<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Den bloggande terriern</title>
	<atom:link href="http://jockeholm.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://jockeholm.wordpress.com</link>
	<description>Energisk, snabbfotad, godhjärtad och extremt lojal mot de vi tycker om</description>
	<lastBuildDate>Sat, 14 Nov 2009 14:50:14 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>sv</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='jockeholm.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/d7184debe91838375b82d4bc4307af4c?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Den bloggande terriern</title>
		<link>http://jockeholm.wordpress.com</link>
	</image>
			<item>
		<title>Rules of Estimation</title>
		<link>http://jockeholm.wordpress.com/2009/11/14/rules-of-estimation/</link>
		<comments>http://jockeholm.wordpress.com/2009/11/14/rules-of-estimation/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 14:49:03 +0000</pubDate>
		<dc:creator>Joakim Holm</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Systemutveckling]]></category>
		<category><![CDATA[estimation]]></category>

		<guid isPermaLink="false">http://jockeholm.wordpress.com/?p=311</guid>
		<description><![CDATA[Estimation Considered Wasteful
Estimation, to predict some attribute of the future, is a common method tool. Estimation has long been a standard, some would say overused, tool in the tool box of most development teams. However, these last years estimation has been called out for questioning.
Estimation has always been problematic. One problem is that estimates are [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jockeholm.wordpress.com&blog=470064&post=311&subd=jockeholm&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><h2>Estimation Considered Wasteful</h2>
<p>Estimation, to predict some attribute of the future, is a common method tool. Estimation has long been a standard, some would say overused, tool in the tool box of most development teams. However, these last years <a title="InfoQ on wasteful estimates" href="http://www.infoq.com/news/2008/08/estimates-wasteful" target="_blank">estimation has been called out for questioning</a>.</p>
<p>Estimation has always been problematic. One problem is that estimates are often perceived as promises, which they are not. They are only forecasts. Another issue is that estimates, just as weather forecasts, are often wrong. Putting too much weight on an estimate spells trouble. The majority of the criticism, though, does not focus on these problems, but instead on the inherent wastefulness of the practice.</p>
<p><span id="more-311"></span>I was recently part of an interesting session, arranged by Johannes Brodwall and Lasse Koskela, at the <a title="Conference home page" href="http://www.oredev.org/" target="_blank">ØreDev 2009</a> conference, where we performed <a title="Johannes write-up of the session" href="http://johannesbrodwall.com/2009/11/05/the-malmo-experiment-estimation-techniques-shootout/" target="_blank">a &#8221;shoot-out&#8221; between some common, agile estimation techniques</a>. The ensuing discussion got my brain started and at the end of the session I blurted out a suggestion for the &#8221;Rules of Estimation&#8221;, which everyone seemed to like. These were also inspired by Michael Jackson&#8217;s wonderful &#8221;<a title="C2 wiki on rules of optimization" href="http://c2.com/cgi/wiki$?RulesOfOptimization" target="_blank">Rules of Optimization</a>&#8221;. So here they are, in a slightly enhanced form. First the rules, then the explanations.</p>
<h2>Rules of Estimation</h2>
<ol>
<li> <em>Organise the work to make estimation superfluous.</em></li>
<li><em> (If avoidance is not possible) Do estimation quickly, relatively, iteratively, in collaboration, and with as little precision as allowed.</em></li>
<li><em> (For experts only) Do estimation in a blink, using gut feeling.</em></li>
</ol>
<p>Or in shorter form:</p>
<ol>
<li> <em>Avoid it</em></li>
<li><em>Do it (if you must)</em></li>
<li><em> Feel it (for experts only)</em></li>
</ol>
<h2>Explanations</h2>
<h3>1. Organise the work to make estimation superfluous</h3>
<p>There are pretty clear indications that estimation often is wasteful. By wasteful, I mean it does not add value to the customer. No customer ever ordered an estimate. Some people may regard it as &#8221;necessary waste&#8221;, work we need to do to perform the really important work, but Toyota and Lean has shown us that this is actually a fallacy. We are capable of organising our work to make estimation unnecessary.</p>
<p>To be clear, I am not talking about breaking down large tasks to smaller tasks to understand them. Also, I am not talking about discussing the need or ROI of a certain feature, nor designing a possible solution to these needs. I am simply talking about the act of estimating for the purpose of guessing how &#8221;big&#8221; something is.</p>
<p>If you think about it, the only objective of estimation is to give a basis for some kind of promise. For example, we may estimate a project to be able to offer our service at a fixed price (a promise). Hence, if you are able to organise your work in a way that promises are not needed, you may save yourself the time and the energy of estimation work.</p>
<p>Examples of techniques that help eliminate the need for estimation are <em>supply chaining</em>, i.e. close collaboration with suppliers thereby removing the need for scoping contracts with attached deadlines, <em>active maintenance</em>, i.e. the marriage of business and IT in a continuous business development activity, thereby removing the notion that one part is a customer and the other a supplier even though both work for the same company, and <em>Kanban</em>, part of which involves working without iterations, thereby eliminating the need for committing (promising) during iteration planning.</p>
<p>There are certainly occasions were some estimation is beneficial, for example to coordinate a large marketing campaign with a major product release, but these cases are outliers and may be handled in a much more agile way than is standard practice today.</p>
<p>To work without the need for estimation is the route that should be preferred and we must insistently strive to get there.</p>
<h3>2. If avoidance is not possible, do estimation quickly, relatively, iteratively, in collaboration, and with as little precision as allowed</h3>
<p>For some situations, and for most teams today, avoiding estimation is simply not feasible. Some developers are caught by sales people to make off-the-cuff project estimates for their next tender. Most developers estimate projects, even if done in-house. Even agile teams estimate, for release and iteration cycles. While you are working on the cultural change of removing unnecessary work you have to estimate.</p>
<p>If you must estimate, then I suggest you do the work with these principles in mind:</p>
<ul>
<li> <strong>Quickly</strong>, using simple tools. It is pretty obvious that we should at least keep wasteful work to a minimum.</li>
<li> <strong>Relatively</strong>. Estimate the size of each item in relation to other items. Then, derive the length in time as soon as we know the duration of a few items, <a title="Mikes book on planning and estimation on Amazon" href="http://www.amazon.ca/Agile-Estimating-Planning-Mike-Cohn/dp/0131479415" target="_blank">as suggested by Mike Cohn</a>. This is a self-correcting, ego-free system.</li>
<li> <strong>Iteratively</strong>. Estimate several times, with additional information and justification of estimates between rounds. <a title="Details on planning poker, with good references" href="http://www.planningpoker.com/detail.html" target="_blank">This page</a> lists some scientific research that support collaborative, iterative estimation.</li>
<li><strong> In collaboration</strong>. The best estimates are made by more than one person, preferably a team coming from different perspectives (cross-functional).</li>
<li> <strong>Imprecisely</strong>. Use as little precision as you are allowed. It is more important that the estimate is <em>correct</em> rather than <em>precise</em>. &#8221;In the future&#8221; is a better answer than &#8221;Oct 2&#8243; if you really have no clue when you&#8217;ll be done. Use a range and a unit that communicates the level of uncertainty you experience.</li>
</ul>
<h3>3. (For experts only:) Do estimation in a blink, using gut feeling</h3>
<p>As I am sure the reader can tell, the second route is a lot of work. It is also a difficult and treacherous path that may lead you horribly astray. Anyone who has been in a fixed-price project that is overdue knows what madness that may surface in these stressful circumstances. But there is actually one pretty powerful short-cut: Use experienced experts.</p>
<p>If you can get a number of experts in the same room, estimating in collaboration using the techniques mentioned above, the estimation may be done quite quickly. These expert can tell in a blink, using questions and gut-feeling, if this is going to be a three-week, three-month or a three-year project. How this works is really a little bit outside of what we know, but &#8221;intuition&#8221; or &#8221;pattern matching&#8221; can be quite trustworthy in these cases, see <a title="Blink book home page" href="http://www.gladwell.com/blink/index.html" target="_blank">&#8221;Blink&#8221;, by Malcolm Gladwell</a>.</p>
<p>The first caveat to this is that they would have to be true experts. They must be seasoned veterans (at least 10 years of experience in the field) that have performed similar work in the past.</p>
<p>Another issue is that they may not be willing to do it, often for good reasons. If you have questioned their estimates in the past, or passed on the consequences of a missed forecast to them, they will certainly be suspicious of your intentions.</p>
<h2>Conclusion</h2>
<p>To conclude, I believe we are better off viewing estimation as a wasteful practice. Since it is wasteful, we should strive to organise our work to make estimation unnecessary. If that is not possible at this time, perform estimation as quickly, simply, and cleverly as possible. Always remember that estimation is a forecast, not a promise. Communicate that uncertainty in the estimates. Using true experts is a powerful way to make good enough estimates in an efficient manner.<br />
﻿</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jockeholm.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jockeholm.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jockeholm.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jockeholm.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jockeholm.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jockeholm.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jockeholm.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jockeholm.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jockeholm.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jockeholm.wordpress.com/311/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jockeholm.wordpress.com&blog=470064&post=311&subd=jockeholm&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jockeholm.wordpress.com/2009/11/14/rules-of-estimation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/003b8d74fba67c107ec2cf0702a8d3ac?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Jocke</media:title>
		</media:content>
	</item>
		<item>
		<title>ØreDev 2009 Friday</title>
		<link>http://jockeholm.wordpress.com/2009/11/12/%c3%b8redev-2009-friday/</link>
		<comments>http://jockeholm.wordpress.com/2009/11/12/%c3%b8redev-2009-friday/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 09:09:47 +0000</pubDate>
		<dc:creator>Joakim Holm</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Systemutveckling]]></category>
		<category><![CDATA[ØreDev]]></category>
		<category><![CDATA[konferens]]></category>

		<guid isPermaLink="false">http://jockeholm.wordpress.com/?p=326</guid>
		<description><![CDATA[This post is a summary of my impressions from the 3rd and last conference day of ØreDev 2009.
If you&#8217;re looking for write-ups of the other two days, go here:

First day &#62;&#62;
Second day &#62;&#62;

Scott Hanselman, &#8221;Information Overload and Managing the Flow&#8221;
Scott is a real super hero when it comes to being efficient. He has been so [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jockeholm.wordpress.com&blog=470064&post=326&subd=jockeholm&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This post is a summary of my impressions from the 3rd and last conference day of ØreDev 2009.</p>
<p>If you&#8217;re looking for write-ups of the other two days, go here:</p>
<ul>
<li><a title="Bloggande terriern, impressions from day 1" href="http://jockeholm.wordpress.com/2009/11/10/%C3%B8redev-2009-wednesday/" target="_self">First day &gt;&gt;</a></li>
<li><a title="Bloggande terriern, impressions from day 2" href="http://jockeholm.wordpress.com/2009/11/11/%C3%B8redev-2009-thursday/" target="_self">Second day &gt;&gt;</a></li>
</ul>
<h2>Scott Hanselman, &#8221;Information Overload and Managing the Flow&#8221;</h2>
<p>Scott is a real super hero when it comes to being efficient. He has been so efficient that Microsoft has swooped him up and turned him into a manager. He utilised this to the full in his talk when he said &#8221;I work for Microsoft&#8221; and showed a picture of the death star.</p>
<p><span id="more-326"></span>Scotts talk was about how you can handle the information flow and be efficient, doing things right. Of course, there is no point being efficient if your not effective, doing the right thing.</p>
<p>Scott covered the work of some prototypical gurus on becoming more effective, e.g. <a title="7 Habits on Wikipedia" href="http://en.wikipedia.org/wiki/The_Seven_Habits_of_Highly_Effective_People" target="_blank">Stephen Covey&#8217;s 7 Habits</a> and <a title="GTD on Wikipedia" href="http://en.wikipedia.org/wiki/Getting_Things_Done" target="_blank">David Allen&#8217;s GTD</a> (Getting Things Done). Covey prioritises using importance on one axis and urgency on the other, creating four quadrants. Allen talks about 4Ds: Do it, Delegate it, Defer it, and Drop it (I think they were). As Scott pointed out, very few things are really urgent. &#8221;Are the children on fire? No? Then it can wait.&#8221;</p>
<p>Scott talked about the <em>psychic weight</em> we put on ourself with our ToDo lists that grow longer and longer. What was once a pleasure to do can turn into a burden. Scott: &#8221;Tonight is the night! Let&#8217;s just push through the whole season of Prison Break. Be done with it!&#8221;. I can relate to that, having had half a season of 30Rock to look through for many months.</p>
<p>Here were some effectiveness/efficiency tips from Scott:</p>
<ul>
<li>Use bosses rule in you e-mail program (use filters to mark them especially).</li>
<li>Don&#8217;t check email in morning. It may ruin your whole day.</li>
<li>Conserve your keystrokes. Most e-mails can be ignored. The more e-mails you send, the more you get.</li>
<li>Use <a title="Staffan Nöteberg's quick intro to Pomodoro" href="http://blog.staffannoteberg.com/2008/02/22/pomodoro-technique-in-5-minutes/" target="_blank">Pomodoro Technique</a>. Really focus for 25 minutes.Read aggregates of things that you like but don&#8217;t have time for.</li>
<li>Use &#8221;43 Folders&#8221; (a GTD technique), one for each month and each day of the month. Put stuff in there for the day that you need it.</li>
<li>Use tools like <a title="Evernote home page" href="http://www.evernote.com/" target="_blank">Evernote</a>, <a title="Remember the Milk home page" href="http://www.rememberthemilk.com/" target="_blank">Remember the milk</a>, and <a title="LifeHacker home page" href="http://lifehacker.com/" target="_blank">LifeHacker</a>.</li>
</ul>
<h2>Niclas Nilsson &amp; Hans Brattberg, &#8221;The Pair Programming Show&#8221;</h2>
<p>This session was completely different from anything else we saw in the conference. Hans and Niclas performed some pair programming theater scenes, complete with acting (well), props, graphics, and sound effects. We still mourn for poor Hans that was hit by that bus. Heart-breaking.</p>
<p>They started out showing the good stuff, how pair programming should look. We saw intense conversation, focus, common goals, and different roles.</p>
<p>After the proper version they showed some anti-pattern scenes:</p>
<ul>
<li> <em>Professional Driver</em>: Niclas acted wonderfully in how <em>not</em> to behave as the more experienced in a pair. I will never forget the content look on his face as his fingers were flying and he glanced over at Hans. Very funny! Instead, you must display patience, share equally, transfer knowledge, talk not show. Learning in cooperation must be the goal.</li>
<li> <em>Backseat driver</em>: When one person of the pair leans back and is disconnected from the work it is less productive than sitting alone. Again, Niclas dominated the scene with annoying remarks and an air of absent-mindedness. For risky or expensive work you really need two people, think of surgeons and pilots. Pair work eliminates big mistakes. Pair also helps handle the pressure. It gives us courage. Another factor is that it gives transparency. No more &#8221;private backlogs&#8221; (you know, the stuff that people have in their note books to do on a better day).</li>
<li> <em>New companion</em>: It is risky to be alone. More often than you think do you wander off in the wrong direction.</li>
</ul>
<p>I really appreciated this session. Not because I didn&#8217;t know most of these things but because of the trouble they had gone to illustrate something that felt true for everyone. Well done!</p>
<h2>Lasse Koskela, &#8221;Acceptance Test-Driven Development&#8221;</h2>
<p>Lasse Koskela has written what is probably, up to now, the best book on TDD and ATDD. It was a pleasure to meet him. Lasse was also one of the guys in the big agile adoption project at Nokia Networks.</p>
<p>Lasse&#8217;s message was that ATDD is not (only) about verifying. It is about understanding things together. In his view, ATDD consists of 1. Validation (are we doing the right thing?) 2. Specification (how do we know?) 3. Verification (are we done?). He separates <em>tests</em> from <em>checks </em>(an idea from the contextual testing school), to illustrate that testing is more than checking.</p>
<p>ATDD always includes facilitation and is driven by examples. It does not necessarily <em>have</em> to be automated or performed before programming, but that is recommended and normally the case. ATDD is team activity. It has lower value without the business side and minimal value doing it alone.</p>
<p>My reflection is that maybe ATDD should find a better word than &#8221;test&#8221; the same way BDD has, instead of trying to turn the word &#8221;test&#8221; into &#8221;specification&#8221;? To most people, testing will always be just checking.</p>
<p>Lasse is a calm and assertive presenter. I was a bit disappointed about the models galore in this session. The lack of examples was striking (quite ironic in a session about driving work using examples&#8230;).</p>
<h2>Cucumber, Aslak Hellesøy</h2>
<p>Aslak Hellesøy is one of the real pioneers in BDD, having been an contributor of <a title="RSpec home page" href="http://rspec.info/" target="_blank">RSpec</a> and creator of <a title="Cucumber home page" href="http://cukes.info/" target="_blank">Cucumber</a>. Both these tools are really top-of-the-line when it comes to BDD at this point in time, in my opinion.</p>
<p>Aslak explained briefly the motivation behind BDD. He meant that &#8221;TDD got the names wrong&#8221;. BDD involves the ubiquitous language. BDD involves customers. In BDD we work &#8221;outside-in&#8221;, meaning we start from the UI and drive the rest of the functionality from what is really needed.</p>
<p>My reflection: I believe BDD people perform a bit of a straw man on TDD, saying that it&#8217;s all unit testing and no customers. This is very much not true. ATDD or &#8221;customer tests&#8221; as they are called in XP have been a part of TDD all the time.</p>
<p>Anyhow, to do BDD we need to have a common understanding of what &#8221;done&#8221; means. One facet of &#8221;doneness&#8221; is that all test scenarios run. In BDD these are often called <em>acceptance criteria</em> and are formed using &#8221;Given &#8211; When &#8211; Then&#8221;. Note: &#8221;Thens&#8221; are always outputs from the system.</p>
<p>After this, Aslak went into the main topic: <em>Cucumber</em>. Cucumber is a &#8221;story runner&#8221;, meaning that you can write descriptions of features and acceptance criteria in a domain language and having that executed by the framework. <em>Gherkin</em> is the underlying language of Cucumber (the tool). It sports full I18N, which is critical for having a natural communication with customers.</p>
<p>Some Cucumber statistics from GitHub: 80 000 downloads, 180 contributors, 40 integrated tools, 1 550 followers on GitHub, 20 screen casts.</p>
<p>No tool talk is complete without a demo, in this case a RPN calculator. My colleague Måns commented at this time that mathematical examples may be convenient for the presenter, but they are irrelevant for most spectators. Hint: Choose your examples wisely.</p>
<p>Aslak showed some Cucumber goodness. Not everybody knows this but it is possible to have <em>templates</em> with tables beneath for sample values. Cucumber will run one example for each row in the table. This is inspired by FIT. A few things that were new to me were <em>backgrounds</em>, <em>tagged hooks</em> and <em>tagged execution</em>. Backgrounds are fixtures for a whole feature. Tagged hooks are used to decide which scenarios should get what part of the setup. Tagged execution is used to decide which scenario should be run, e.g. based on the current language.</p>
<p>One downside with the BDD tools compared to <a title="Fitnesse home page" href="http://fitnesse.org/" target="_blank">Fitnesse</a> is the availability. Fitnesse tests are on a wiki page, meaning a lot of people may read, edit or even execute them. This helps pull the product owner into the team. When confronted with this Aslak said they were working on a web interface to see and run tests, but that it would not be open sourced. Ouch!</p>
<h2>Kevlin Henney, &#8221;Modelling in the Age of Agility&#8221;</h2>
<p>Kevlin Henney is a developer conference fixture and he is always entertaining and thought-provoking to listen to. For this talk, Kevlin had chosen to talk about modelling and how he thinks we should approach it in these agile times.</p>
<p>Often, he says, the perception of modelling is a problem. Models are not correct. Nor are they specifications. Models are <em>abstractions</em> from a <em>point-of-view</em> for a particular <em>purpose</em>. To create an abstraction we need to omit stuff. Not everything is equally important. One classical example: Underground maps.</p>
<p>The usefulness of a model is what is most important. Powerful question: What is the problem we are trying to solve? The basic usefulness lies in the &#8221;ing&#8221; of modell-ing, i.e. sharing and discussing different views. Modelling is exploration.</p>
<p>Some common model pitfalls: Poor model, Model not needed, Wrong model.</p>
<p>My thoughts when hearing about modelling is always to remember that the code is also a model &#8211; a very detailed model of reality. And hence, as a model, code can also be the common form we use when discussing and communicating solutions between developers.</p>
<p>That concludes my reporting from the sessions at ØreDev 2009. I will be posting some spin-off reflections on specific topics in the upcoming weeks. Thanks for reading!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jockeholm.wordpress.com/326/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jockeholm.wordpress.com/326/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jockeholm.wordpress.com/326/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jockeholm.wordpress.com/326/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jockeholm.wordpress.com/326/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jockeholm.wordpress.com/326/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jockeholm.wordpress.com/326/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jockeholm.wordpress.com/326/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jockeholm.wordpress.com/326/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jockeholm.wordpress.com/326/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jockeholm.wordpress.com&blog=470064&post=326&subd=jockeholm&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jockeholm.wordpress.com/2009/11/12/%c3%b8redev-2009-friday/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/003b8d74fba67c107ec2cf0702a8d3ac?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Jocke</media:title>
		</media:content>
	</item>
		<item>
		<title>ØreDev 2009 Thursday</title>
		<link>http://jockeholm.wordpress.com/2009/11/11/%c3%b8redev-2009-thursday/</link>
		<comments>http://jockeholm.wordpress.com/2009/11/11/%c3%b8redev-2009-thursday/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 13:19:36 +0000</pubDate>
		<dc:creator>Joakim Holm</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Systemutveckling]]></category>
		<category><![CDATA[ØreDev]]></category>
		<category><![CDATA[konferens]]></category>

		<guid isPermaLink="false">http://jockeholm.wordpress.com/?p=321</guid>
		<description><![CDATA[This post is a summary of my impressions from the 2nd conference day of ØreDev 2009.
If you&#8217;re looking for write-ups of the other two days, go here:

First day &#62;&#62;
Third day &#62;&#62;

Rebecca Wirfs-Brock, &#8221;Responsibility-Driven Design&#8221;
Rebecca Wirfs-Brock is one of the early though-leaders in object-orientation. Her book on RDD came out in 1990.
Rebecca&#8217;s keynote speech was a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jockeholm.wordpress.com&blog=470064&post=321&subd=jockeholm&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This post is a summary of my impressions from the 2nd conference day of ØreDev 2009.</p>
<p>If you&#8217;re looking for write-ups of the other two days, go here:</p>
<ul>
<li><a title="Bloggande terriern, impressions from day 1" href="http://jockeholm.wordpress.com/2009/11/10/%C3%B8redev-2009-wednesday/" target="_self">First day &gt;&gt;</a></li>
<li><a title="Bloggande terriern, impressions from day 3" href="http://jockeholm.wordpress.com/2009/11/12/%C3%B8redev-2009-friday/" target="_self">Third day &gt;&gt;</a></li>
</ul>
<h2>Rebecca Wirfs-Brock, &#8221;Responsibility-Driven Design&#8221;</h2>
<p>Rebecca Wirfs-Brock is one of the early though-leaders in object-orientation. Her book on RDD came out in 1990.</p>
<p>Rebecca&#8217;s keynote speech was a run-through of different ideas about OO design, from the early days up to today. Maybe it was a little bit too basic and sententious for my taste. She described the early thinking with CRC cards (Class, Responsibility, Collaboration) and how those expermints evolved into RDD. In RDD you describe any role from its stereotype. The stereotypes are: Information holder, Structurer, Interfacer, Service provider, Coordinator, and Controller.</p>
<p><span id="more-321"></span>Rebecca tried to describe the greatness about emergent design when using TDD/BDD but did not quite succeed. I got the feeling she had only read about it (I may be wrong). For example, she failed to see where design happened in TDD (she said &#8221;it seems to happen between the lines&#8221;). Or was it because she had totally missed the refactoring step?</p>
<p>The most interesting parts of this talk came at the end, where Rebecca alluded to the work of Christopher Alexander, the renegade architect from which the design patterns movement emerged. He had tried to identify properties of things that have life, e.g. &#8221;strong centers&#8221; and &#8221;boundaries&#8221;. He called this <em>liveable design</em>. The idea, if I understood it correctly, is that no matter which design methods we use, we should always strive to create &#8221;liveable software&#8221;, i.e. software whose design display signs of life.</p>
<h2>Dan North, Neal Ford, Stuart Halloway, et al, &#8221;Making the sausage&#8221;</h2>
<p>After RDD I went to an impromptu session that replaced a late programme cancellation. I had heard that Dan North, Stu Halloway and some other guys sat up late the night before, trying to come up with the design for a new BDD tool for Clojure. On this session they would present a super-early draft of what they had. I mean, BDD <em>and</em> Clojure! Any cooler than this and it would be Day After Tomorrow. Who could resist going!?</p>
<p>After an introduction by Dan and Neal, the session mostly consisted of Stu showing their ideas in Emacs. Obviously, they had written a whole bunch of specs they would like to able to write, but for which there was only limited support so far.</p>
<p>It was interesting to hear about some of their guiding design principles. Dan was, predictably, very adamant about &#8221;getting the names right&#8221;. Stu thought it was important to use idiomatic Clojure. They wanted to support having tables (like in Fit) and use &#8221;bubble words&#8221; like &#8221;should&#8221; and &#8221;it&#8221; (they are called bubble words because they don&#8217;t actually <em>do</em> anything, they just bubble away). Stu wanted to utilise the support for metadata that already exists in Clojure.</p>
<p>Currently, it works through the Clojure reader, using reader macros to convert from the specs to clojure.test code. They were quite unsure if this would be the final design though.</p>
<p>One reflection I had afterwards was that there is a small, but inherent, conflict between the goals of BDD and FP. BDD wants specs to sound like natural language; &#8221;&lt;result&gt; should == &lt;expected&gt;&#8221;, but idiomatic FP is more verb-noun; &#8221;== &lt;result&gt; &lt;expected&gt;&#8221;.</p>
<h2>Scott Bellware, &#8221;Test-Driven Web UI Development&#8221;</h2>
<p>Scott Bellware, one of the founders of the ALT.NET movement and BDD for .NET guy had a pretty confused session on test-driving a Web UI. It was really hard to understand where he was going with and he never did make it to the finish line.</p>
<p>Scotts idea, if I understood it correctly, was to start by using Selenium IDE to record the interactions with a web GUI. Translate the generated code into Ruby. Then, move this code into RSpec. But instead of stopping there, the developer should continue, by creating abstraction in the &#8221;contextual language&#8221; (domain language) to make it easier to add further tests. However, Scott never managed to get it working because of an FF quirk when offline. Also, he had a lot of troubles using MacOS X Exposé (probably due to the dual screen screen). This gave the whole talk an unfinished feel.</p>
<p>Scott was also questioned and disturbed by loud-mouth test guru James Bach in the back, asking why developers insist on automating everything (in a rather derogatory tone-of-voice)? My reflection is that I wonder if James has ever participated on an agile team? How are they supposed to do regression testing without automation if you deliver to production once a week? Or what about those who deliver almost every day? Or 50 times a day that some teams do? There is clearly a large gulf here between the leading testers and the leading BDDers. And it&#8217;s a shame! I really like how the contextual school of testing (which James founded) fits into agile work perfectly.</p>
<p>I think I liked what Scott was trying to do. However, I have one caveat: Don&#8217;t call it TDD when the tests are generated by a recorder. That&#8217;s just plain wrong.</p>
<h2>Tyler Jennings, &#8221;Strangling a Java Web App with Rails&#8221;</h2>
<p>The title of this talk was truly electrifying. I guess that&#8217;s what a lot of us Java/Ruby guys will be doing this coming decade (a joke with maybe a bit of truth in it). However, I managed to miss the first half of the talk. Secondly, I think Jennings had too much material; the word &#8221;strangling&#8221; popped up the first time after 52 minutes (of the 50 min talk&#8230;).</p>
<p>However, I managed to understand that the basic idea is to hook in a servlet filter after the Java application and handle the call if it was not handled by Java. His application used <a title="JRuby-Rack home page" href="http://kenai.com/projects/jruby-rack/pages/Home" target="_blank">JRuby-Rack</a>, an adapter for the Java servlet engine into, for example, Rails. That way, pieces could be first implemented in Rails and then removed from Java. Of course, JRuby was used from Ruby to call into to the Java app if the need arose.</p>
<h2>Michael Samarin, &#8221;Making Web Applications for iPhone&#8221;</h2>
<p>This talk was a disappointment as it basically turned into a commercial for <a title="Dashcode start page" href="http://developer.apple.com/tools/dashcode/" target="_blank">Dashcode</a>, Apples RAD tool for web applications. Samarin did show some cool stuff though. He quickly and easily created an iPhone web app that controlled a video show on his MacBook. Tools he used were Dashcode, NetBeans, Quicktime, AppleScript, and XMPP.</p>
<p>If you want to quickly get an iPhone web app up and running you really should have a look at Dashcode. There is no need for approval from AppStore and with Safari you can make it look a lot like a real app.</p>
<h2>Adam Skogman &amp; Emil Eifrem, &#8221;NoSQL&#8221;</h2>
<p>This session was packed. I had to stand at the end of the room. Apparently, NoSQL databases are hot hot hot. And luckily, we got a really good presentation on the topic from the two well-rehearsed and knowledgeable speakers.</p>
<p>NoSQL databases were created to handle two major problems with SQL databases: Scalability when the amount of data is huge, and flexibility, when the domain is complex. They come in four different flavours: Key-value stores, Big table, Document, and Graph.</p>
<p><strong>Key-value stores</strong> are most suitable for scalability. They are essentially &#8221;bit buckets&#8221;. Some notable contenders are Oracle&#8217;s Berkeley DB and LinkedIn&#8217;s Voldemort</p>
<p><strong>Big table</strong> is a Google invention. The basic idea is that you can have any column for any row and instead of creating a lot of tables you simple have a lot of columns. And I mean a <em>lot</em>! There could be hundreds of thousands of columns. Google App Engine and Apache Cassandra are two candidates here.</p>
<p><strong>Document databases</strong> store &#8221;documents&#8221;, e.g. a JSON structure, to handle the semi-structured character of most worldly things. Couch DB and RIAK are two popular examples.</p>
<p><strong>Graph databases</strong> model the world in nodes with relationships, creating a graph. Attributes may be placed on both nodes and relations. These are mostly aimed at the flexibility problem (not scalability). Graph DBs have &#8221;whiteboard friendliness&#8221;, meaning that&#8217;s normally how people model their world. Look into Neo4J or Allegrograph, for example.</p>
<p>Since very few have the scalability problems of, say, Amazon or Google, in a poll most people predictably were interested in Document and Graph databases.</p>
<p>To end it all the speakers were very clear that they were not being confrontational against relational DBMSs. NoSQL is pronounced &#8221;Not <em>only</em> SQL&#8221;. Believe it if you will&#8230;</p>
<h2>Gojko Adzic, &#8221;Specification Workshops&#8221;</h2>
<p>Gojko Adzic is the author of two books on how to bridge the communications gap between developers and customers. He is a funny, no-nonsense guy. He told a very entertaining story about how he could not get a bank account when he moved to the US because he was not registered as a voter. In the US people <em>really</em> believe the content of their DBs, he said. After a lengthy discussion he was allowed to move on in the process, but now it was blocked because he had not payed taxes last year. He tried explaining that he had migrated to the US only two days ago and had payed tax in Serbia. However, they honestly believed that their databases contained <em>all</em> information. Gojko answered: &#8221;This is ridiculous! There is no way. The two government computers in Serbia are busy playing Mine Sweeper&#8221;.</p>
<p>Acceptance testing is based on the idea that better customer acceptance can be achieved if we discuss and define examples of how it is supposed to work before we design our solution. Only unit tests will not do, since customers simply don&#8217;t understand them. Furthermore, they often hide this because they don&#8217;t want to sound stupid. What may sound obvious to me is not obvious to you.</p>
<p>Two good tips around requirements from Gojko: 1. Ask &#8221;why&#8221; more often. This will help you understand the true need. 2. Never accept <em>solutions</em> from customers. Instead, say: &#8221;What do you need?&#8221;.</p>
<p>About the customer/product owner I think Gojko is right on the money. He said that &#8221;know-it-all customers&#8221; are as mythical as dragons. Customer is a <em>role</em>. Understanding the true needs should be a team effort, a collaboration between those who know the need and those who can fulfil it.</p>
<p>A &#8221;Specification workshop&#8221; is a meeting where you discuss needs, requirements, and examples for upcoming development. Gojko thought that name often worked better with busy people than &#8221;Example-writing workshop&#8221;, which sounds unimportant to them.</p>
<p>Here were Gojko&#8217;s advice for these types of workshops:</p>
<ol>
<li> Collaborate on specifications.</li>
<li> Challenge requirements.</li>
<li> Discuss examples.</li>
<li> Involve the whole team.</li>
<li> Schedule meetings well in advance (for busy people).</li>
</ol>
<p>My reflection after this session was that it is certainly true that customers don&#8217;t know what is needed. However, I think Gojko&#8217;s solution could be improved. His solution was this: Let the team work with the customer. But that doesn&#8217;t really solve the problem, does it? The customer doesn&#8217;t know much more from this. The problem is this: <em>Nobody</em> really knows! It is <em>software</em> we&#8217;re talking about. You could ask users but they won&#8217;t know either. They feel the pain directly, but often lack the overview. Or know what&#8217;s possible. However, there are professionals out there that know how to talk to users and distill their needs. They are called user experience (UX) specialists and are experts on user research and user-centered design (UCD). I believe they have a really important role to play if we want to be effective, not only efficient, with agile methods.</p>
<h2>Robert Sabourin, &#8221;Out of the Frying Pan and Into the Fire &#8211; Efficiency in Scrum&#8221;</h2>
<p>The day ended with a keynote by Robert Sabourin, a very loud Canadian methods expert. He talked about different ways that people get methodology wrong. I didn&#8217;t find it very amusing, I am sorry to say.</p>
<p>One nugget of coaching though: As a coach, start by asking the staff for recent stories when thing went wrong or went extremely well. For each story, drill down in full detail. This may help you find where the problems and strengths lie.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jockeholm.wordpress.com/321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jockeholm.wordpress.com/321/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jockeholm.wordpress.com/321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jockeholm.wordpress.com/321/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jockeholm.wordpress.com/321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jockeholm.wordpress.com/321/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jockeholm.wordpress.com/321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jockeholm.wordpress.com/321/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jockeholm.wordpress.com/321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jockeholm.wordpress.com/321/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jockeholm.wordpress.com&blog=470064&post=321&subd=jockeholm&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jockeholm.wordpress.com/2009/11/11/%c3%b8redev-2009-thursday/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/003b8d74fba67c107ec2cf0702a8d3ac?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Jocke</media:title>
		</media:content>
	</item>
		<item>
		<title>ØreDev 2009 Wednesday</title>
		<link>http://jockeholm.wordpress.com/2009/11/10/%c3%b8redev-2009-wednesday/</link>
		<comments>http://jockeholm.wordpress.com/2009/11/10/%c3%b8redev-2009-wednesday/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 09:47:06 +0000</pubDate>
		<dc:creator>Joakim Holm</dc:creator>
				<category><![CDATA[Systemutveckling]]></category>
		<category><![CDATA[ØreDev]]></category>
		<category><![CDATA[konferens]]></category>

		<guid isPermaLink="false">http://jockeholm.wordpress.com/?p=316</guid>
		<description><![CDATA[This post is a summary of my impressions from the first conference day of ØreDev 2009.
If you&#8217;re looking for write-ups of the other two days, go here:

Second day &#62;&#62;
Third day &#62;&#62;

Marc Lesser, &#8221;Accomplishing More by Doing Less&#8221;
Marc Lesser is a speaker with an interesting background, having spent 10 years as a zen monk but also [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jockeholm.wordpress.com&blog=470064&post=316&subd=jockeholm&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This post is a summary of my impressions from the first conference day of ØreDev 2009.</p>
<p>If you&#8217;re looking for write-ups of the other two days, go here:</p>
<ul>
<li><a title="Bloggande terriern, impressions from day 2" href="http://jockeholm.wordpress.com/2009/11/11/%C3%B8redev-2009-thursday/" target="_self">Second day &gt;&gt;</a></li>
<li><a title="Bloggande terriern, impressions from day 3" href="http://jockeholm.wordpress.com/2009/11/12/%C3%B8redev-2009-friday/" target="_self">Third day &gt;&gt;</a></li>
</ul>
<h2>Marc Lesser, &#8221;Accomplishing More by Doing Less&#8221;</h2>
<p>Marc Lesser is a speaker with an interesting background, having spent 10 years as a zen monk but also started and managed businesses. His talk started a little unusual, with 60 secs of meditation.</p>
<p>Lesser has expressed his thoughts in what he calls the <em>Less Manifesto</em>. The manifesto is basically saying that if we have less fear, assumptions, distractions, resistance, and busyness we can focus on doing more of the things that really matter to us.</p>
<p><span id="more-316"></span>I liked how Lesser expressed that he, as a boss, was <em>responsible</em> for all his employees &#8211; not the reverse, which is common in management echelons.</p>
<p>My personal reflection was that all in all the talk was maybe not as mind-blowing as one could have hoped, but a pleasant and interesting way to kick off the conference.</p>
<h2>Joris Kuipers, &#8221;What&#8217;s New in Spring 3.0&#8243;</h2>
<p>This talk was basically a run-down of features of the upcoming Spring framework 3.0. Since I am hardly a power user of Spring, my impressions are a little sketchy.</p>
<p>So, what&#8217;s new? Configuration annotations has been possible for a long time, but they have been extended with new annotations. Also, there is work on the <em>JavaConfig</em> project, where you may configure your system using code. Also, there is a new <em>Spring EL</em>, an expression language how to use values from other places, e.g. properties files.</p>
<p>Another big thing is improved support for integration tests, by making it easier to build the context for the tests. Spring already has its own test runner and tests can transactional tests.</p>
<p>Spring has added support for REST, or JAX-RS &#8221;Spring style&#8221;. For example, they have included a HTTP method conversion to enable the use of PUT and DELETE.</p>
<p>I should also mention better support for embedded databases like Derby.</p>
<h2>Douglas Crockford, &#8221;JavaScript &#8211; the Good Parts&#8221;</h2>
<p>Douglas Crockford is a famous programmer, one of the 15 selected programmers in the book &#8221;Coders at Work&#8221;. He is the founder of JSON and has written a great book himself about JavaScript.</p>
<p>This talk was basically a personal characterisation of JavaScript, both the good and the bad. JavaScript (JS) is a language of many contrasts. It has some catastrophic flaws as well as brilliant design ideas. It is programmed by everyone from non-programmers to experts. Everyone seems to think that they can use JS without learning, which is strange for a programming language. Another factor is that if you want to program in the browser environment you have no other choice. It may not be what we want but that&#8217;s just so. Often when people complaining about JS, the are really annoyed with the DOM. But it&#8217;s not all bad. JS succeeded where Java failed miserably.</p>
<p>Crockford described some of the really bad stuff in JS, e.g. global variables, semicolon insertion by the compiler, and fake arrays. From C it has inherited some awful stuff: blockless if statements and expression statements, for example. Crockford gave a wonderful explanation of why curly braces always must go on the right side in JS. If not, a series of unfortunate design decisions may conspire to totally change the meaning of some code without any visible error. Crockford has written a tool that checks for these things called <a title="JSLint home page" href="www.jslint.com" target="_blank">JSLint</a>.</p>
<p>So, what&#8217;s good about it? Most people don&#8217;t realise it implements lambdas, anonymous functions. The language supports dynamic objects that can change behaviour. Also, loose typing and object literals where mentioned on the good side.</p>
<h2>Klaus Silberbauer, &#8221;User Experience &#8211; Because Nothing Else Really Matters&#8221;</h2>
<p>Klaus Silberbauer is a &#8221;Concept Director&#8221; from Creuna, DK. In his talk, he described his model of UX and how they work with UX at Creuna.</p>
<p>One insightful comment he made was that UX is nothing that can stand on its own. It has no value until it is implemented. Another was: Users don&#8217;t think &#8211; they feel.</p>
<p>Towards the end, Silberbauer presented a <a title="UX model" href="http://bit.ly/uxmodel" target="_blank">contrasting model</a> to Jesse James Garrett&#8217;s famous UX model, which included more than design.</p>
<h2>Andres Almiray, &#8221;Java Testing in the Fast Lane&#8221;</h2>
<p>This was a talk about testing Java from <em>Groovy</em>. Groovy is a dynamic language on the JVM and is &#8221;98% Java&#8221; (a few things are missing, like inner classes).</p>
<p>Groovy is excellent for testing Java code. For example, Groovy has assertions built in. You can mock nicely with closures and construct DbUnit tests with compile-time checked XML data set. BDD tools he recommended were Easyb and Spock. Almiray also recommended FEST for testing Swing UIs.</p>
<h2>Petri Haapio, &#8221;Agile Adoption at Enterprise Level&#8221;</h2>
<p>Petri Haapio told us some tales from the agile adoption at Nokia Networks (about 14 000 employees) with clarity and truthfulness. He was part of a task force called &#8221;Flexible R&amp;D&#8221;. They constructed the so called &#8221;Nokia Test&#8221; for determining the agility of their teams. He noted that this was only to be used as a base for discussions, nothing else. Bas Vodde and then Craig Larman were brought in as external experts.</p>
<p>The adoption was based on volunteering, information sharing, and hands-on coaching. It very much seemed like a bottom-up approach. He said it took 18 months before anyone in the top-management team knew about the transition. Some severe impediments he mentioned were the needed change in management culture and the tool department, trying to enforce poor tools for the job.</p>
<p>Today, ca 60% of all product development efforts use agile methods at Nokia Networks. The biggest product group doing agile contains about 600 people and is developing embedded software. Haapio also presented a study showing that the more agile the more people were satisfied with their work life.</p>
<h2>Stuart Halloway, &#8221;Clojure&#8221;</h2>
<p><em>Clojure</em> is one of the new language kids on the block. It is a Lisp derivative with great Java integration and some interesting concurrency solutions. Stuart Halloway has written the first book on Clojure. Stuart is an energetic and very witty guy. Just one funny idea from this slide: He had prepared and marked particular slides suitable for tweeting with a little bird in the corner.</p>
<p>His motivations for using Clojure were these:</p>
<ol>
<li>Java interoperability. In sugared form it contains <em>less</em> parenthesis than Java so don&#8217;t worry about that.</li>
<li>Lisp. The language is <em>homoiconic</em>, which means that the language itself can be expressed as data structures of the language. Thereby, very powerful meta programming is available. Clojure also contains a very useful feature called &#8221;destructuring&#8221;, which means data structures can be taken apart directly by the function args.</li>
<li>Functional language with higher order functions (functions that take functions as arguments or return values). Some common Lisp operations have been renamed. For example, &#8221;car&#8221; is called &#8221;first&#8221;, &#8221;cdr&#8221; is now &#8221;rest&#8221;. Heresy for true lispers, but very logical in my view.</li>
<li>Concurrency/State. Data is immutable by default. Mutable data must be changed in <em>STM, Software Transactional Memory</em>. One interesting idea was that the data becomes the contract between parts of the system (not the operations). This may sound fragile but its not, since the data transformation operations in Clojure are so powerful and fast.</li>
</ol>
<p>In perhaps the quote of the day Stuart called Design Patterns &#8221;essentially a turd that could not be abstracted away&#8221;.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jockeholm.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jockeholm.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jockeholm.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jockeholm.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jockeholm.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jockeholm.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jockeholm.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jockeholm.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jockeholm.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jockeholm.wordpress.com/316/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jockeholm.wordpress.com&blog=470064&post=316&subd=jockeholm&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jockeholm.wordpress.com/2009/11/10/%c3%b8redev-2009-wednesday/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/003b8d74fba67c107ec2cf0702a8d3ac?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Jocke</media:title>
		</media:content>
	</item>
		<item>
		<title>”Affärsfolk har spaghettihuvuden”</title>
		<link>http://jockeholm.wordpress.com/2009/11/08/%e2%80%9daffarsfolk-har-spaghettihuvuden%e2%80%9d/</link>
		<comments>http://jockeholm.wordpress.com/2009/11/08/%e2%80%9daffarsfolk-har-spaghettihuvuden%e2%80%9d/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 14:42:21 +0000</pubDate>
		<dc:creator>Joakim Holm</dc:creator>
				<category><![CDATA[Arkitektur]]></category>
		<category><![CDATA[tjänsteorientering]]></category>

		<guid isPermaLink="false">http://jockeholm.wordpress.com/?p=304</guid>
		<description><![CDATA[Bloggande terriern har härmed glädjen att presentera sin första gästbloggare. Herbjörn och jag har träffats en del på konferenser. Han berättade i veckan att han hade gjort en intervju med Jim Webber på Thoughtworks som för närvarande inte fanns på nätet och undrade om jag ville publicera den. Det vill man ju inte undanhålla sina [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jockeholm.wordpress.com&blog=470064&post=304&subd=jockeholm&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Bloggande terriern har härmed glädjen att presentera sin första gästbloggare. Herbjörn och jag har träffats en del på konferenser. Han berättade i veckan att han hade gjort en intervju med Jim Webber på Thoughtworks som för närvarande inte fanns på nätet och undrade om jag ville publicera den. Det vill man ju inte undanhålla sina läsare! Håll till godo.</p>
<p>- Joakim</p>
<h2>”Affärsfolk har spaghettihuvuden”</h2>
<p>av <a title="Herbjörn Wilhelmsen på LinkedIn" href="http://www.linkedin.com/in/herbjorn" target="_blank">Herbjörn Wilhelmsen</a></p>
<p><em>Som arkitekt eller utvecklare försöker vi kämpa emot komplexitet i alla dess former. Det är sällan framgångsrikt och enligt Jim Webber som leder brittiska konsultbolaget ThoughtWorks globala arkitektursatsning är det inte heller ändamålsenligt. </em></p>
<p><em><span id="more-304"></span></em><strong>Att förstå  affärsprocesserna</strong> är en utomordentligt viktig förutsättning för att kunna bygga en tjänstearkitektur, Service Oriented Architecture &#8211; SOA, som verkligen stödjer verksamheten.</p>
<p>-Om du inte involverar affärssidan så vet du inte om du gjort rätt eller om du gjort fel. Med SOA får vi chansen att spegla affärsprocesserna i systemen så att de kan förändras och utvecklas på ett samordnat sätt.</p>
<p>Oberoende av teknik så baseras en bra SOA på en god förståelse av affärsprocesserna . När den förståelsen ökar kommer också förståelsen om vilka tjänster som behövs öka.</p>
<p><strong>IT-proffs vill ofta minska spaghettin</strong> i system samtidigt som de önskar att bygga system som avbildar verksamhetens behov på ett bra sätt. Dessa två önskemål står i konlikt med varandra. Jim Webber förklarar:</p>
<p>-Affärsfolk har spaghettihuvuden, och det menar jag på ett sympatiskt och medkännande sätt. IT-proffs tänker mer i abstraktioner, olika lager i lösningarna och framförallt gillar vi raka linjer i systemkartorna. Affärsfolket däremot arbetar ute i den verkliga världen. Vi sitter i en europeisk stad och jag kan inte se en enda rak gata utanför, för så fungerar det i den verkliga världen. Det är rörigt, grötigt och spaghettiaktigt.</p>
<div id="attachment_309" class="wp-caption alignright" style="width: 223px"><img class="size-medium wp-image-309 " title="Jim Webber hanterar spaghetti" src="http://jockeholm.files.wordpress.com/2009/11/jimwebberhandlingspaghetti.png?w=213&#038;h=300" alt="Jim Webber hanterar spagetti" width="213" height="300" /><p class="wp-caption-text">Jim Webber är van vid att hantera spaghetti</p></div>
<p>Nya och mer eller mindre slumpmässiga kontakter är en viktig del i det som för affärerna framåt. De kontakterna kan vara, och är ofta, annorlunda än den egna verksamheten. En beskrivning av en sådan rörig verklighet kan kännas motbjudande för många IT-proffs . Deras omedelbara reaktion är att försöka räta ut spaghettin, men detta lyckas sällan och om det lyckas tillför det inte så mycket värde. Så istället för att försöka få bort all spaghetti behöver vi en spaghettivänlig integrationsstrategi – och det är just det SOA är enligt Jim Webber.</p>
<p><strong>Organisationer har alltid varit intresserade</strong> av företagsövergripande arkitektur, s.k. Enterprise Architecture, det är det som får affärsverksamheten att fungera ihop med IT-stödet. Enligt Jim Webber är lösningen på problemet enkel:</p>
<p>-Vi borde sätta affärsfolket in i förarsätet som arkitekter. Att uppnå verklig Business Agility är endast möjligt om affärsprocesserna avbildas i tjänsterna så att när en process ändras så kan tjänsterna ändras på samma sätt.</p>
<p><strong>Det är inte nödvändigtvis enkelt</strong> att bygga en SOA på det sätt som Jim Webber förespråkar, eftersom det kräver hårt arbete och omfattande ingenjörskunskaper. Målet är att ekosystemet av tjänster som produceras enkelt och rättframt matchar det som verkligen pågår i affärsverksamheten. Alternativet är knappast önskvärt:</p>
<p>-I den värsta av alla världar går affärsverksamheten och IT-systemen i olika riktningar. Det gör det svårt att föra ihop dem för det gemensamma syftet som självklart är att skapa affärsnytta.</p>
<p><em><strong>Fakta:</strong> <a title="Jim Webbers blogg" href="http://jim.webber.name" target="_self">Dr Jim Webber</a> har en doktorsgrad i högpresterande databehandling (high performance computing) men har efter sin akademiska karriär fokuserat på informationsintensiva system, Web Services och SOA. Han höll ett föredrag om ”Guerila SOA” på konferensen Developer Summit i Stockholm 2008 och intervjuades i samband med denna konferens. Intervjun spelades in och återfinns<a title="Inspelning av intervjun med Jim Webber" href="http://www.nsilverbullet.net/2008/05/29/JimWebberBusinessPeopleAreSpaghettiheads.aspx" target="_self"> här</a>.<br />
</em></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jockeholm.wordpress.com/304/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jockeholm.wordpress.com/304/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jockeholm.wordpress.com/304/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jockeholm.wordpress.com/304/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jockeholm.wordpress.com/304/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jockeholm.wordpress.com/304/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jockeholm.wordpress.com/304/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jockeholm.wordpress.com/304/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jockeholm.wordpress.com/304/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jockeholm.wordpress.com/304/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jockeholm.wordpress.com&blog=470064&post=304&subd=jockeholm&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jockeholm.wordpress.com/2009/11/08/%e2%80%9daffarsfolk-har-spaghettihuvuden%e2%80%9d/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/003b8d74fba67c107ec2cf0702a8d3ac?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Jocke</media:title>
		</media:content>

		<media:content url="http://jockeholm.files.wordpress.com/2009/11/jimwebberhandlingspaghetti.png?w=213" medium="image">
			<media:title type="html">Jim Webber hanterar spaghetti</media:title>
		</media:content>
	</item>
		<item>
		<title>Vad är ett lyckat projekt?</title>
		<link>http://jockeholm.wordpress.com/2009/10/22/vad-ar-ett-lyckat-projekt/</link>
		<comments>http://jockeholm.wordpress.com/2009/10/22/vad-ar-ett-lyckat-projekt/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 18:24:27 +0000</pubDate>
		<dc:creator>Joakim Holm</dc:creator>
				<category><![CDATA[IT-konsult]]></category>
		<category><![CDATA[Organisation]]></category>

		<guid isPermaLink="false">http://jockeholm.wordpress.com/?p=291</guid>
		<description><![CDATA[Återigen braskande rubriker: Bara en tredjedel av IT-projekten lyckas. &#8221;&#8230;så har det sett ut i 40 år&#8221; säger prof. Torsten Cegrell i Computer Sweden 18/10 2009. Cegrell menar att det nästan alltid är i beställarkompetensen som det brister och att kravspecifikationerna är alldeles för stora. Jag håller med Cegrell om det, men han missar ju [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jockeholm.wordpress.com&blog=470064&post=291&subd=jockeholm&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Återigen <a title="CS artikel om misslyckade projekt" href="http://computersweden.idg.se/2.2683/1.260726/miljarder-och-ater-miljarder-i-sjon" target="_blank">braskande rubriker:</a> Bara en tredjedel av IT-projekten lyckas. &#8221;&#8230;så har det sett ut i 40 år&#8221; säger prof. Torsten Cegrell i Computer Sweden 18/10 2009. Cegrell menar att det nästan alltid är i beställarkompetensen som det brister och att kravspecifikationerna är alldeles för stora. Jag håller med Cegrell om det, men han missar ju helt poängen. Jag tycker faktiskt att det är på tiden att vi begraver den här myten om vad som utgör lyckade eller misslyckade projekt. Diskussionen är alldeles för <em>viktig</em> för att vara baserad på en meningslös definition.</p>
<p><span id="more-291"></span>Anledningen till min njugga inställning är definitionen av vad ett &#8221;lyckat projekt&#8221; innebär. Är du intresserad av agila metoder är du säkert inte förvånad. Innan du läser vidare, tag gärna 10 sek och fundera på vad <em>du</em> tycker att det borde innebära om någon säger att ett projekt blev lyckat. Och stopp! Försök att komma förbi den där inlärda definitionen. Vad känner du i <em>magen</em> vore rätt?</p>
<p>Klar? OK. Min gissning är att du tänkte det som de flesta tänker: Att det man ville uppnå med projektet infriades. Kanske tänkte du att det ledde till något positivt? Att världen är bättre än den var tidigare? Att folk trivdes och att det blev en långsiktigt bra lösning? Att nyttan var större än kostnaden? Alla bra och värdiga mål. Men hur ser den vanliga definitionen ut, den som alla blivande PL får lära sig?</p>
<blockquote><p>I tid. På budget. Med överenskommet innehåll.</p></blockquote>
<p>Men vad i själva&#8230;!? Men oj, vad galet det här är! Och alla verkar använda den här definitionen. Utan att ifrågasätta. Utan att tänka. Är det inte dags att sluta sprida det här tramset? Allvarligt&#8230; sluta. Snälla&#8230;?</p>
<p>För det första, <em>nyttan</em> med projekt är inte med i definitionen alls. Det betyder att vi kan ha projekt som anses lyckade som inte levererade någon som helst nytta eller värde för kunderna till projektet. Undrar om kunderna håller med om att projektet var lyckat? Eller tvärtom så kan vi ha ett projekt som alla experter anser misslyckat men som senare visar sig vara extremt lyckat på andra sätt.</p>
<p>Ett exempel, som jag hämtat från Jesper Blomberg, ek.dr på Handelshögskolan. När bygget av Globen stod klart räknades det som en total katastrof. Man hade kraftigt underskattat kostnaden av bygget och blev klara på tok för sent. Eländes elände. Globen var ett fiasko och ett åtlöje. Men se, vad händer? Den marknadsföring och dragkraft som skapades blir en magnet för hela området. Köpmännen och människor dras i drivor mot den stora bollen. Evenemangen i Globen lockar sjuka mängder turister (och pengar). Globen blir en symbol för hela Stockholm. Man hade nämligen underskattat en annan sak också: Nyttan! Globen räknades 10 år senare som ett av Sveriges mest lyckade byggprojekt. Någonsin.</p>
<p>Sanningen är faktiskt den omvända. Många av de riktigt lyckade projekten drar över både tid och budget. Det är helt naturligt. Om något går bra, varför sluta? Varför ändra ett vinnande lag?</p>
<p>Nästa problem: Start- och slutpunkter för ett projekt är helt godtyckligt valda. När börjar vi egentligen? Slutdatum är lika godtyckligt och dessutom helt taget ur luften baserat på hypoteser och gissningar om framtiden. Vad är det som säger att vi ska utvärdera projektet just där och då? Det är helt godtyckligt. Och som vi såg i globenfallet kan omvärldens syn på projektet variera över tiden. Så hur ska vi veta <em>när</em> vi ska utvärdera?</p>
<p>Ta projektet att skriva det här blogginlägget som exempel. När började det? När jag skrev det första tecknet? När jag fick idén till inlägget? Eller när jag första gången funderade på frågan? En vecka sedan eller 10 år sedan. Det går inte att säga. Är det slut när inlägget är publicerat? Eller när jag har fått pengar? Vad gör jag om jag sa att det är slut, men sedan vill någon annan publicera det? Vad händer om jag gör en ny version?</p>
<p>Ni hör, det blir löjligt. Varför ha med något så godtyckligt som ett slutdatum i definitionen?</p>
<p>Det tredje och riktigt bisarra i det här är detta: Graden av hur lyckat ett projekt anses vara ska tydligen bestämmas av de värden på tid, pris och omfattning som vi <em>uppskattade</em> (det betyder &#8221;gissade&#8221;, gott folk) i början av projektet. I början är en synnerligen illa vald referens. Det är den tidpunkt när vi vet som allra <em>minst</em> av vad som väntar. Ursäkta en ärlig fråga men vad har detta <em>överhuvudtaget</em> att göra med om projektet är lyckat eller inte? Om värdena skiljer sig från de ursprungliga (gissade) är det är väl kanske snarare ett vittnesmål för vår välkänt, begränsade förmåga att göra korrekta utfästelser om framtiden än ett bevis på projektets eventuellt uselhet?</p>
<p>Speciellt svår förefaller den här jämförelsen i fråga om kombinationen överenskommet innehåll och IT-utvecklingsprojekt. Användare och beställare av IT-system har nämligen notoriskt svårt att veta vad de vill ha. IKIWISI kallas den här effekten; &#8221;I Know It When I See It&#8221;. Det är därför vi har uppfunnit iterativa metoder. En process med hög grad av förändring kan inte styras på annat sätt än genom att ta små steg, mäta och utvärdera. Vi styr försiktigt framåt och försöker så gott vi kan rätta oss efter den feedback som vi erhåller <em>under tiden</em>. Det är så man styr empiriska processer. Punkt. Så varför i all världen skulle vi tillmäta något värde till en jämförelse mot en ursprunglig beskrivning som vi vet är fel? Eller ännu hellre, varför skulle vi ens ge oss på att i detalj beskriva (specificera) omfattningen av ett utvecklingsprojekt? Det är bara fel. Fel och missledande.</p>
<p>Till sist vill jag säga det här: Jag har inget emot projekt. De är varken goda eller onda. Projekt är verktyg. De passar för vissa situationer, inte till andra. Till långsiktig, kontinuerlig produktutveckling passar de sällsynt illa. Projekt är en social konvention som vi kan ta till då och då för att entusiasmera människor och skaffa medel för speciella jobb. Något viktigt som människor kan samlas kring. Inget annat.</p>
<p>Lycka eller olycka kring projekt är lite som sanningen; förvånansvärt subjektiv när man ser närmare på det.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jockeholm.wordpress.com/291/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jockeholm.wordpress.com/291/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jockeholm.wordpress.com/291/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jockeholm.wordpress.com/291/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jockeholm.wordpress.com/291/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jockeholm.wordpress.com/291/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jockeholm.wordpress.com/291/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jockeholm.wordpress.com/291/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jockeholm.wordpress.com/291/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jockeholm.wordpress.com/291/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jockeholm.wordpress.com&blog=470064&post=291&subd=jockeholm&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jockeholm.wordpress.com/2009/10/22/vad-ar-ett-lyckat-projekt/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/003b8d74fba67c107ec2cf0702a8d3ac?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Jocke</media:title>
		</media:content>
	</item>
		<item>
		<title>Har du råd att inte prioritera?</title>
		<link>http://jockeholm.wordpress.com/2009/10/14/har-du-rad-att-inte-prioritera/</link>
		<comments>http://jockeholm.wordpress.com/2009/10/14/har-du-rad-att-inte-prioritera/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 17:28:50 +0000</pubDate>
		<dc:creator>Joakim Holm</dc:creator>
				<category><![CDATA[Organisation]]></category>
		<category><![CDATA[Systemutveckling]]></category>
		<category><![CDATA[prioritering]]></category>
		<category><![CDATA[samarbete]]></category>

		<guid isPermaLink="false">http://jockeholm.wordpress.com/?p=236</guid>
		<description><![CDATA[I mitt förra inlägg presenterade jag en modell för prioritering med olika nivåer. Inget speciellt överraskande eller provocerande där, kanske. Anledningen till att jag tycker att prioritering inom utvecklingsarbete är värt att skriva om är två fundamentala poänger som jag tycker inte uppmärksammas tillräckligt:

Inom produktutveckling kan de minsta detaljerna vara avgörande. Hur många iPhone har [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jockeholm.wordpress.com&blog=470064&post=236&subd=jockeholm&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I mitt förra inlägg presenterade jag en modell för prioritering med olika nivåer. Inget speciellt överraskande eller provocerande där, kanske. Anledningen till att jag tycker att prioritering inom utvecklingsarbete är värt att skriva om är två fundamentala poänger som jag tycker inte uppmärksammas tillräckligt:</p>
<ol>
<li>Inom produktutveckling kan de <em>minsta detaljerna vara avgörande</em>. Hur många iPhone har inte Apple sålt efter att människor har sett och känt på den underbara rullfunktionen? Eller ett annat exempel: Hur rappa systemsvar till användare i en stressad miljö kan utgöra skillnaden mellan acceptans och motvilja. Hur &#8221;läckert&#8221; eller användbart systemet är ner till minsta pixel kan vara avgörande för dess framgång.</li>
<li><em>Prioriteringar görs, vare sig vi vill eller inte.</em> Om inte rätt personer är på plats kommer prioriteringarna att göras ändå &#8211; helt enkelt för att de måste göras. Enda skillnaden är att de då görs omedvetet, alternativt av personer som inte ser helheten, inte <em>helt</em> förstår vad som är viktigt, inte <em>exakt</em> vet hur användarna arbetar eller hur företaget tjänar pengar.</li>
</ol>
<p>I det här inlägget tänkte jag utforska prioritering på lite olika nivåer ännu mer. Hur fungerar traditionella metoder? Hur kan man nå högre nivåer och mer finkorning prioritering? Vem ska egentligen prioritera?</p>
<p><span id="more-236"></span></p>
<p>Låt oss börja med den rådande, det man kan kalla för den traditionella modellen (handen på hjärtat, det är ju mest en <em>tradition</em>, eller hur?). Hur brukar det fungera? Jag bedömer lite löst att konventionella metoder eller utkontrakterad utveckling ungefär når upp till nivå 1,5 i modellen (en bit över produktnivån). Prioritering görs ofta på produkt- eller projektnivå, men därefter är det sämre. Typiskt stödjs inte prioritering på finkornigare nivå än projekt/kravspecifikation.</p>
<p>Vad som i stället sker är en indirekt och omedveten prioritering på intressentnivå. Verksamhetsprocesserna är vaga. Beskrivningarna stämmer inte. Kopplingen till projektet är oklar. Användarna är osynliga. Användarroller okända. Kravspecifikationen är skriven och &#8221;allt är lika viktigt&#8221;. Det här är en beskrivning av en svag modell för prioritering eftersom 1. den är inte medveten 2. den görs på mycket grovkorning nivå när det egentligen är så att det finns både viktiga <em>och</em> oviktiga saker inom varje område som produkten rör.</p>
<p>Hur kan man då göra för nå högre nivåer på prioriteringsskalan? Det första vi behöver göra är att tydliggöra vilka prioriteringar som faktiskt görs så att de blir medvetna. En typ av prioritering mellan intressenter är den mellan olika <em>verksamhetsprocesser</em>. Ska vi stödja inköp med bättre lagerkontroll eller är det säljanalysen som behöver bättre underlag? För att göra detta behöver vi givetvis förstå hur våra verksamhetsprocesser ser ut och arbeta för att optimera flödet genom dem.</p>
<p>En annan typ av prioritering är den mellan olika typer av <em>användare</em> (roller). Vi skulle till exempel kunna välja att prioritera Adam, 21 år, från nätgenerationen eller är det kanske informationen till David, 28 år, finansanalytiker på SHB som måste bli bättre? För att kunna göra detta krävs en djup kunskap om sina kunder och användare. Det är tyvärr fortfarande skrämmande vanligt idag att utvecklingsteam &#8221;skyddas&#8221; från sina användare, vilket gör att kunskapen om dem är begränsad.</p>
<p>För att nå ännu högre skikt, prioritering på tema eller funktionsnivå, krävs ett regelbundet samarbete mellan kund och leverantör. Det här brukar de flesta agila/lättrörliga team klara av eftersom det är inbyggt i de agila metoder som de försöker följa. Tyvärr missar man lika ofta process- eller rollprioriteringen som jag nämnde ovan, vilket gör grunden som hela prioriteringen står på skakig.</p>
<p>Har vi kommit så långt vi kan nu? Absolut inte. Moderna, lättrörliga metoder är baserade på <em>samarbete mellan roller.</em> Det är svårt, men om vi utnyttjar samarbete har vi stora chanser att låta prioriteringen fortsätta i än mer detalj. Om vi har alla kompetenser på plats, varför inte utnyttja det? För att ta ett exempel: Hur kan programmerna avgöra om det är viktigast att lägga tid på att göra en läcker animering på startsidan eller lägga till en hjälptext vid formuläret som många missförstår? Det kan de inte, eftersom det både kräver kunskap om företagets affärsutveckling och användningen. På detaljnivå vid design av ett system kan en framgångsrik prioritering bara göras om områdeskunniga, specialister på användbarhet och tekniskspecialister alla får komma till tals. Tillsammans kan de göra välbalanserade avväganden i den aldrig sinande ström av beslut som måste fattas. Att rätt personer ges chansen att tycka till kan göra hela skillnaden.</p>
<p>För att sammanfatta: Jag är övertygad om att prioritering är viktigt ned till den minsta beståndsdelen av en produkt eller ett system. Det är därför viktigt att organisera arbetet på ett sådant sätt att prioritering på olika nivåer kan göras och dessutom ske i samarbete mellan rätt personer. Många arbetar idag på ett sätt som skapar obalans i utvecklingsarbetet. Är du som kund frånvarande eller oengagerad ökar risken markant för att det görs felaktiga prioriteringar, vilket leder till att du får fel sak levererad &#8211; eller kanske rätt sak men utformad på fel sätt. Hur som helst minskar värdet du får ut av din investering. Är du beställare av produkter eller IT-system, ställ dig gärna följande fråga när utvecklingsteamen kallar till nästa möte: Har du råd att inte samarbeta?</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jockeholm.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jockeholm.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jockeholm.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jockeholm.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jockeholm.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jockeholm.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jockeholm.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jockeholm.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jockeholm.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jockeholm.wordpress.com/236/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jockeholm.wordpress.com&blog=470064&post=236&subd=jockeholm&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jockeholm.wordpress.com/2009/10/14/har-du-rad-att-inte-prioritera/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/003b8d74fba67c107ec2cf0702a8d3ac?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Jocke</media:title>
		</media:content>
	</item>
		<item>
		<title>En modell för prioritering</title>
		<link>http://jockeholm.wordpress.com/2009/10/08/en-modell-for-prioritering/</link>
		<comments>http://jockeholm.wordpress.com/2009/10/08/en-modell-for-prioritering/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 20:52:30 +0000</pubDate>
		<dc:creator>Joakim Holm</dc:creator>
				<category><![CDATA[Organisation]]></category>
		<category><![CDATA[Systemutveckling]]></category>
		<category><![CDATA[prioritering]]></category>

		<guid isPermaLink="false">http://jockeholm.wordpress.com/?p=233</guid>
		<description><![CDATA[Visst vore världen underbar om vi kunde göra allt vi ville?! Om vi hade all tid i världen, ständigt fyllda av positiv energi, vadandes i drivor av betalningsvilliga kunder som gladeligen väntade på sin tur&#8230;
Riktigt så verkar det inte fungera.
Tyvärr kräver våra &#8221;moderna&#8221; liv prioriteringar; familj framför arbete, löpning är viktigare än en öl med [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jockeholm.wordpress.com&blog=470064&post=233&subd=jockeholm&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Visst vore världen underbar om vi kunde göra allt vi ville?! Om vi hade all tid i världen, ständigt fyllda av positiv energi, vadandes i drivor av betalningsvilliga kunder som gladeligen väntade på sin tur&#8230;</p>
<p>Riktigt så verkar det inte fungera.</p>
<p>Tyvärr kräver våra &#8221;moderna&#8221; liv prioriteringar; familj framför arbete, löpning är viktigare än en öl med en bekant, skriva blogg i stället för att sova. Ständigt krävs nya prioriteringar och beslut i en aldrig sinande ström. Eftersom vi inte kan göra allt vi vill göra måste vi välja. På samma sätt är det när vi utvecklar produkter eller system. Detta inlägg handlar om det svåra arbetet att prioritera inom utvecklingsarbete.</p>
<p><span id="more-233"></span></p>
<p>Prioritering handlar i grund och botten om det svåra beslutet att välja att lägga sin tid och energi på det som jag just nu anser viktigare än annat. Samtidigt väljer jag bort detta andra. (Det här sista brukar kallas för att &#8221;prioritera ned&#8221;, vilket ungefär är lika ologiskt som barnens &#8221;jättelite&#8221;.) Frågan är bara, vad finns att välja på? Och vem bör välja?</p>
<p>Det första vi måste inse är att prioriteringar och val finns på olika nivå. Figuren nedan ska föreställa en slags prioriteringsmodell. I modellen har jag valt att lägga den grövsta nivån av prioritering underst (stora block ligger alltid underst). Denna nivå kallas ofta för produktportfölj, det vill säga att vi prioriterar mellan olika <em>produkter</em>. Så här kan det låta: &#8221;Öka på Modell CX, lägg ned aktiv utveckling av Card Reader&#8221;. Denna typ av prioritering förefaller rätt vanlig idag bland produktutvecklingsföretag.</p>
<p style="text-align:center;"><img class="size-medium wp-image-243 aligncenter" title="Prioriteringsnivåer" src="http://jockeholm.files.wordpress.com/2009/09/prionivaer-002.jpg?w=300&#038;h=224" alt="Prioriteringsnivåer: Produkt, Intressent, Tema, Funktion, Scenario, Implementation" width="300" height="224" /></p>
<p>Om vi kliver upp en nivå i modellen hamnar vi mitt i vidareutvecklingen av en produkt eller kanske ett egenutvecklat, internt IT-system på ett företag. På denna nivå måste prioritera mellan <em>intressenter</em> av systemet. Den här typen av prioritering är vanlig idag, men görs enligt min mening ofta på ett ganska indirekt sätt, kanske genom att godkänna ett projekt eller genom hur en kravspecifikation utformas.</p>
<p>Nästa nivå av prioritering är något som vi kan kalla <em>teman</em>, användaraktiviteter eller funktionella block, det vill säga större funktionsområden för produkten. Ett exempel på det här kan vara att rapportmöjligheterna inför årsrapporten är viktigare än administrationstjänsterna. Om du arbetar med flexibel (eller &#8221;inkrementell&#8221;) kravhantering, en del av moderna utvecklingsmetoder, arbetar du fram detaljerna i behoven parallellt med utvecklingen. Här finns alla möjligheter att prioritera. Typiskt kan man göra detta någon gång i månaden eller kvartalet i samband med en övergripande planering av en ny version. Intressant är att om vi öppnar denna möjlighet varierar ofta prioriteringen kraftigt &#8211; ett tydligt tecken på att den behövs.</p>
<p>Vi kan gå längre än så. På högre nivå måste vi besluta mer precist vilka <em>funktioner</em> eller &#8221;stories&#8221; vi vill utveckla. Använder man Scrum eller någon annan lättrörlig utvecklingsmetod görs detta typiskt vid förberedelserna inför eller vid en iterationsplanering. Det handlar helt enkelt om att man som produktutvecklingsledare någorlunda vet vad något är värt och hur mycket det kostar så att man kan välja det som ger mest värde för företaget. &#8221;Ska vi utveckla den snygga produktpresentationsrutan eller ska vi gå in på platsönskemål?&#8221; kan vara en typisk prioriteringsfråga på denna nivå.</p>
<p>Nästa möjlighet till prioritering hittar vi i <em>scenarier</em> &#8211; eller testfall som en testare skulle säga. På hur många sätt kan funktionen köras igenom? Vilka felsituationer kan uppstå? Vilka scenarion är viktiga att stödja just nu och vilka kan vi vänta med? Notera att det här kan vi bara göra om vi för varje funktion beskriver ett antal exempel som vi vill se fungera. Alla dessa kommer inte att kännas lika viktiga. Är det till exempel viktigt att visa ett meddelande om att en sökning fick noll träffar eller räcker det kanske att man ser en tom träfflista till vidare och i stället lägga tiden på validering av kreditkortsnummer?</p>
<p>Och det är faktiskt inte slut här! Inom varje testfall, hur <em>implementationen</em> utförs, finns ett stort antal prioriteringar att göra. När nu funktionen ska utformas finns givetvis saker i användargränssnittet som inte är lika viktiga som andra. Exempel: &#8221;Ska länken verkligen få en ny bild och ny text när fliken är utfälld?&#8221;. Och givetvis har utvecklare och testare sina egna tekniska beslut och prioriteringar att göra.</p>
<p>Så vad vill jag säga med allt det här? Jo, att prioriteringar inte bara finns på övergripande nivå (portfölj eller projekt) utan kan faktiskt göras ändå ned till den minsta implementationsdetalj. Och det visar sig vara en essentiell egenskap.</p>
<p>Nu har vi en gemensam modell att utgå ifrån. I mitt nästa inlägg tänkte jag försöka beskriva varför det är viktigt med alla dessa nivåer och vem som egentligen bör prioritera. Tills vidare, fundera på om ni inom er organisation gör medvetna prioriteringar på dessa nivåer. Hur högt når ni?</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jockeholm.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jockeholm.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jockeholm.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jockeholm.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jockeholm.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jockeholm.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jockeholm.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jockeholm.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jockeholm.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jockeholm.wordpress.com/233/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jockeholm.wordpress.com&blog=470064&post=233&subd=jockeholm&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jockeholm.wordpress.com/2009/10/08/en-modell-for-prioritering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/003b8d74fba67c107ec2cf0702a8d3ac?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Jocke</media:title>
		</media:content>

		<media:content url="http://jockeholm.files.wordpress.com/2009/09/prionivaer-002.jpg?w=300" medium="image">
			<media:title type="html">Prioriteringsnivåer</media:title>
		</media:content>
	</item>
		<item>
		<title>Uppföljning: Thoughtworks i Sverige</title>
		<link>http://jockeholm.wordpress.com/2009/10/01/uppfoljning-thoughtworks-i-sverige/</link>
		<comments>http://jockeholm.wordpress.com/2009/10/01/uppfoljning-thoughtworks-i-sverige/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 18:18:25 +0000</pubDate>
		<dc:creator>Joakim Holm</dc:creator>
				<category><![CDATA[IT-konsult]]></category>
		<category><![CDATA[Småföretag]]></category>
		<category><![CDATA[konsultmarknaden]]></category>

		<guid isPermaLink="false">http://jockeholm.wordpress.com/?p=264</guid>
		<description><![CDATA[För några veckor sedan meddelades på lite omvägar att Thoughtworks (TW) kontor i Sverige är stängt. Tidigare svenske chefen har lämnat eller fått lämna sin post och försäljningsarbetet har därmed avstannat. TW har för närvarande bara en anställd i Sverige idag; Ola Bini, som formellt inte är anställd i Sverige och spenderar mycket tid utomlands. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jockeholm.wordpress.com&blog=470064&post=264&subd=jockeholm&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>För några veckor sedan meddelades på lite omvägar att Thoughtworks (TW) kontor i Sverige är stängt. Tidigare svenske chefen har lämnat eller fått lämna sin post och försäljningsarbetet har därmed avstannat. TW har för närvarande bara en anställd i Sverige idag; Ola Bini, som formellt inte är anställd i Sverige och spenderar mycket tid utomlands. Enligt uppgifter från TW lägger de inte <em>ned</em> verksamheten i Sverige, bara lägger den på lågvarv ett tag. En ny chef för svenska kontoret ska rekryteras så småningom.</p>
<p>För oss utvecklare som är lite &#8221;fans&#8221; av TW är det här givetvis nedslående nyheter. Det är tråkigt att inte ett erkänt duktigt bolag som TW ska kunna lyckas i Sverige. Det kan vara intressant att fundera på varför. Varför har TW så svårt att etablera sig här?  Är det deras eget fel eller beror det på hur marknaden fungerar i Sverige/Stockholm? Här är mina teorier, med betoning på teorier:</p>
<ol>
<li><em>Ramavtalen</em>. Alla myndigheter och många organisationer handlar bara efter ramavtal. De har ingen möjlighet att ge ett helt projekt till TW vare sig de vill eller inte.</li>
<li><em>Säljstrategi</em>. TW:s attityd har varit att de vill helst ha egna projekt, möjligen ta expertkonsultroller, men inte underkonsultjobb. De vill heller inte använda underkonsulter. På en marknad som den för konsulttjänster i Stockholm, som mer kan likna en slags &#8221;katten på råttan, råttan på repet&#8221;-konstruktion, blir detta problematiskt.</li>
<li><em>Bristande självinsikt och tålamod</em>. TW har eventuellt överskattat sitt namn en hel del. TW är kända bland somliga utvecklare, speciellt de som har en dragning mot agil utveckling, men helt okänt för andra. Högre upp i organisationer, som IT-chefer, &#8221;CIO&#8221;:er eller inköpare är de oftast helt okända. Att arbeta in ett nytt namn är ett tungt och tidsödande arbete.</li>
<li><em>Finanskriseffekter</em>. Givetvis har TW påverkats, speciellt i Australien och England har en del konsulter hamnat &#8221;på bänken&#8221;. Det löfte om stöd från de etablerade kontor har uteblivit när fokus har legat på mer närliggande problem.</li>
<li><em>Bristande säljerfarenhet och kontaktnät</em>. Försäljning handlar till stor del om vilka du känner och har bra relationer med. Känner du inte rätt personer är det väldigt svårt att sälja stora saker eller projekt.</li>
</ol>
<p>Jag tror alltså inte att det här misslyckandet enbart beror TW, ej eller på marknadens i Stockholm utan troligen en del av båda. TW:s strategi och inställning har passat extremt illa till den rigida, skyttegravsliknande IT-marknaden i Stockholm. Låt oss hoppas att de kommer tillbaka.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jockeholm.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jockeholm.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jockeholm.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jockeholm.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jockeholm.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jockeholm.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jockeholm.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jockeholm.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jockeholm.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jockeholm.wordpress.com/264/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jockeholm.wordpress.com&blog=470064&post=264&subd=jockeholm&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jockeholm.wordpress.com/2009/10/01/uppfoljning-thoughtworks-i-sverige/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/003b8d74fba67c107ec2cf0702a8d3ac?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Jocke</media:title>
		</media:content>
	</item>
		<item>
		<title>Lidingölopp 2009: Terriern vs Salming</title>
		<link>http://jockeholm.wordpress.com/2009/09/27/lidingolopp-2009-terriern-vs-salming/</link>
		<comments>http://jockeholm.wordpress.com/2009/09/27/lidingolopp-2009-terriern-vs-salming/#comments</comments>
		<pubDate>Sun, 27 Sep 2009 08:47:24 +0000</pubDate>
		<dc:creator>Joakim Holm</dc:creator>
				<category><![CDATA[Privat]]></category>
		<category><![CDATA[Löpning]]></category>

		<guid isPermaLink="false">http://jockeholm.wordpress.com/?p=273</guid>
		<description><![CDATA[Klockan är strax före kl 10.40, då starten ska gå. Det är lördag, sent i september 2009. Det är soligt och ca 17 grader varmt. Jag står på startlinjen tillsammans med S. Plötsligt säger hon &#8221;Där står Börje Salming!&#8221;. Jag säger &#8221;Näe&#8230;&#8221;, men när jag vrider på huvudet ser jag att, mycket riktigt, tre meter [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jockeholm.wordpress.com&blog=470064&post=273&subd=jockeholm&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Klockan är strax före kl 10.40, då starten ska gå. Det är lördag, sent i september 2009. Det är soligt och ca 17 grader varmt. Jag står på startlinjen tillsammans med S. Plötsligt säger hon &#8221;Där står Börje Salming!&#8221;. Jag säger &#8221;Näe&#8230;&#8221;, men när jag vrider på huvudet ser jag att, mycket riktigt, tre meter till vänster står Börje. Han ser tuff och vältränad ut. Helt oberörd. &#8221;Jag ska fan ta honom&#8221;, tänker jag.</p>
<p>Uppladdningen inför loppet har varit helt ok för min del. Kanske lite väl hård träning förra söndagen och möjligen att gröten i magen från i morse fortfarande känns tung i magen, men i stort sett är jag förberedd. Ingen sjukdom på länge. Folk har undrat varför jag inte springer 30 km och svaret är väl att jag inte har tränat för det. Jag har tränat med S och vi har medvetet tränat på kortare distanser (6 &#8211; 17 km) för att bli bättre på milen. Vi har inte kört stenhårt, men sommaren var rena träningslägret och efter sommaren har vi tränat tre ggr i veckan. Tempoträning har vi kört varje torsdag sedan sommaren. Två gånger har vi varit i Lill-Jansskogen bakom KTH och kört backträning.</p>
<p>Mitt mål idag är 1.20 men min förhoppning är 1.15. Men jag är osäker eftersom jag aldrig har sprungit distansen förut. Milen är ju i stort sett en sprintdistans och halvmara är långt för mig. Men 15 km? Jag räknade så här: Jag springer milen på ca 45 min (en bra dag). Lägg på 50% för 5 km extra ger 67,5 min. Lägg på 5% för det är en längre distans så jag kan inte hålla samma fart (tumregeln är ju att lägga på 10% för varje dubbling av distansen), vilket ger ungefär 71 min. Sen måste man lägga på tid för att Lidingöloppet är så sjukt kuperat. På 15 km är det 3-4 km som är riktigt hårda så en minut extra för var och en av dessa ger 75 min, dvs 1.15 tim.</p>
<p>Vi står i startgrupp 2 av 4. Starten går (någon minut för sent?) och jag sticker iväg ganska fort men inte överdrivet. Jag har något hundratal löpare framför mig i gruppen. Det är lite trångt vid vägen efter några hundra meter, men det släpper snart. Jag har ingen löparklocka och tänker springa mest på känsla. Efter ca 1 km frågar jag en kille vad tiden var. &#8221;4.15 hade jag&#8221; blir hans svar. &#8221;Hörde jag rätt?&#8221;. Jag sänker farten något och hoppas att jag inte ska få betala för detta.</p>
<p>De första 5 km är relativt flacka med undantag av km 2. Jag har därför haft som taktik att försöka kapa lite tid här, vilket jag behöver väl senare. Problemet är att magen känns tung och jag mår lätt illa. Känns inte riktigt som min dag. Försöker sträcka ut stegen i stället. Efter Kyrkviken, när vi närmar oss 5 km, gör jag en ny kontroll med en medlöpare. &#8221;Du snittar 4.50&#8243; säger han. Det är jag nöjd med, men jag är helt klart påverkad av tempot.</p>
<p>Några km senare kommer vi in på 30 km-spåret igen vid norra Lidingö. Det är här det riktigt jobbiga börjar. Efter fem långa lidingölopp och ett antal träningar i terrängen är det givetvis ingen överraskning. Det är små korta backar upp och ned mest hela tiden. Det här kan suga musten av den bästa löpare. Här har jag bestämt mig för att hålla igen, men det är jobbigt ändå och relativt orytmisk löpning, vilket förstärks av alla andra löpare i spåret.</p>
<p>När jag kommer upp till villaområdet strax före Grönsta gärde är jag så trött att jag stannar till vid villaägarnas egen vätskekontroll. Jag hinner inte stoppa mig innan hjärnan har stannat kroppen. Jag går ca 15 m innan jag tänker: &#8221;Vad håller jag på med?&#8221; och drar iväg igen.</p>
<p>Vid Grönsta är jag sliten. Jag minns då att jag har en &#8221;nödraket&#8221; (kolhydratgel) i bakfickan. Jag trycker i mig halva ungefär och tar vatten vid vätskekontrollen. Hemligheten vid Grönsta är för mig att aldrig snegla åt vänster, där man tydligt ser målet. När jag startar den tunga backen efter kontrollen är jag mycket trött. Inte alls den känslan jag ville ha i detta läge! Jag tänkte mig att ta det lugnt men spänstigt uppför de två jobbiga backarna och sedan släppa loss alla krafter. Men jag är för trött.</p>
<p>Någon kilometer senare är det ungefär samma läge. Jag är dock pigg nog att se en Charlotte Kalla som, röd i ansiktet efter loppet, gående är på väg åt andra hållet. &#8221;Heja Charlotte!&#8221; ropar jag till. &#8221;Heja Heja&#8221; svarar hon, mest med ryggmärgen. Varför jag hejar på någon som inte tävlar är mer oklart.</p>
<p>Efter ytterligare någon km till är jag nära &#8221;väggen&#8221;. Jag har sprungit så många år att jag känner igen det vid det här laget. Hjärnan protesterar, pulsen slår vilt och man riktigt känner mjölksyran rusa runt i armarna. Händerna börjar kännas bedövade. Inget annat att göra än att hålla igen. Försöker att minska lite &#8221;lagom&#8221;. Och det verkar funka! Efter några minuter kvicknar jag till litet grann och kan öka något igen.</p>
<p>När man börjar närma sig målet tar viljan över, det tror jag gäller för de flesta löpare. Vi kan stå ut någon km med illamående och alldeles för högt tempo eftersom vi vet att det snart är slut. På sista rakan före gärdet skriker jag &#8221;Kom IGEN nu sista biten!!!&#8221;. Det känns bra. Några löpare som har stannat sätter igång igen. Jag spurtar så gott jag kan, men jag vet att det inte ser ut att vara mycket till spurt från åskådarnas vinkel. Klockan ovanför målet står på 11.58.30 när jag kommer in på gärdet. Jag gör mitt bästa för att klara mig under men kommer in ungefär kl 11.59.05.</p>
<p>Så här efter loppet är jag ganska nöjd. Lidingöloppet verkar ha &#8221;slarvat bort&#8221; min tid för jag finns inte med i resultatlistan, men med tanke på klockan ovanför målet borde jag ha fått en tid på runt 1.19 tim, alltså någon minut under mitt mål. Kanske till och med lite bättre. Ss tid justerades ned något (troligen för att starterns och målklockan inte var synkroniserade). Jag är mest glad för hennes skulle eftersom hon klarade sitt på 1.30 helt perfekt.</p>
<p><strong>Uppdatering</strong>: Jag fick igår ett brev från kansliet med följande innehåll:</p>
<blockquote><p>Du fick tiden 1:19:05. Hemsidan kommer att uppdateras imorgon.</p></blockquote>
<p>Hur gick det då för Börje? Jo, det gick mycket bra. Han sprang ett helt jämnt lopp på 1.24 ungefär. Men jag tog honom! Jag tog Salming.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jockeholm.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jockeholm.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jockeholm.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jockeholm.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jockeholm.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jockeholm.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jockeholm.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jockeholm.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jockeholm.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jockeholm.wordpress.com/273/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jockeholm.wordpress.com&blog=470064&post=273&subd=jockeholm&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jockeholm.wordpress.com/2009/09/27/lidingolopp-2009-terriern-vs-salming/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/003b8d74fba67c107ec2cf0702a8d3ac?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Jocke</media:title>
		</media:content>
	</item>
	</channel>
</rss>