<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>The Vertical Slice</title>
    <link>http://www.bestbrains.dk/Blog/</link>
    <description>On the road to better software</description>
    <language>en-us</language>
    <copyright>BestBrains</copyright>
    <lastBuildDate>Mon, 19 Apr 2010 14:33:53 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.7174.0</generator>
    <managingEditor>info@bestbrains.dk</managingEditor>
    <webMaster>info@bestbrains.dk</webMaster>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=8c5cbd56-f686-4ac5-ba42-41dbbc29c1b8</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,8c5cbd56-f686-4ac5-ba42-41dbbc29c1b8.aspx</pingback:target>
      <dc:creator>Bent Jensen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,8c5cbd56-f686-4ac5-ba42-41dbbc29c1b8.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=8c5cbd56-f686-4ac5-ba42-41dbbc29c1b8</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://www.bestbrains.dk/Blog/content/binary/IMG_0273.jpg" border="0" height="318" width="546" />
        <br />
        <br />
        <br />
Read about the days adventures <a href="http://bit.ly/cctm5J">here</a><br /><br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=8c5cbd56-f686-4ac5-ba42-41dbbc29c1b8" /></body>
      <title>Searching for the Roots of Lean at the foot of Mount Fuji and how we met the Yellow Robot Army</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,8c5cbd56-f686-4ac5-ba42-41dbbc29c1b8.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2010/04/19/SearchingForTheRootsOfLeanAtTheFootOfMountFujiAndHowWeMetTheYellowRobotArmy.aspx</link>
      <pubDate>Mon, 19 Apr 2010 14:33:53 GMT</pubDate>
      <description>&lt;img src="http://www.bestbrains.dk/Blog/content/binary/IMG_0273.jpg" border="0" height="318" width="546"&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Read about the days adventures &lt;a href="http://bit.ly/cctm5J"&gt;here&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=8c5cbd56-f686-4ac5-ba42-41dbbc29c1b8" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,8c5cbd56-f686-4ac5-ba42-41dbbc29c1b8.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=52fa03f4-0941-4f90-80a1-6f6b40924b76</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,52fa03f4-0941-4f90-80a1-6f6b40924b76.aspx</pingback:target>
      <dc:creator>Bent Jensen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,52fa03f4-0941-4f90-80a1-6f6b40924b76.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=52fa03f4-0941-4f90-80a1-6f6b40924b76</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Roots of Lean 2010 is taking place next
week. This week we are in Tokyo to prepare the trip, get over the jetlag and inhale
a little japanese culture. Yesterday we went to a Sumo Stable to see the wrestlers
train in the morning. My respect for Sumo Wrestling is now in a completely different
place than it was before. To see the combination of strength, speed, tactics and flexibility
in these big guys was impressive.<br /><br /><img src="http://www.bestbrains.dk/Images/sumo.jpg" width="535" height="334" /><br /><br /><br /><br /><b>The serious stuff:</b><br /><br />
Every year we spend plenty of time to create a tour where we will se many different
companies and get new angles to what lean really is about. The two last years, it
was part of the program to meet with managers from Toyota, besides seeing the plant, 
in order to  ask questions and dive deeper into what we had seen. Last year we
were  lucky to meet Mr. Ishii - General Project Manager for Toyotas Software
Division.  We had two very intense hours with him, where he openly shared how
Toyota develops software, and what challenges they have. Recently Henrik Kniberg,
from Crisp wrote <a href="http://blog.crisp.se/henrikkniberg/2010/03/16/1268757660000.html">this</a> interesting
account of that meeting. 
<br /><br />
This year we are not going to talk to managers from Toyota. They are too busy with
other stuff - Instead we are going to meet a truckload of other fascinating companies
and people. Starting Monday wíth a visit to the Leading manufacturer of Industrial
Robots - Fanuc at the foot of Mount Fujii.<br /><br />
Stay tuned on this channel next week to read more.<br /><br /><br /><br /><p></p><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=52fa03f4-0941-4f90-80a1-6f6b40924b76" /></body>
      <title>Roots of Lean 2010 - Sumo wrestlers and impressions from last year.</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,52fa03f4-0941-4f90-80a1-6f6b40924b76.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2010/04/15/RootsOfLean2010SumoWrestlersAndImpressionsFromLastYear.aspx</link>
      <pubDate>Thu, 15 Apr 2010 15:14:23 GMT</pubDate>
      <description>Roots of Lean 2010 is taking place next week. This week we are in Tokyo to prepare the trip, get over the jetlag and inhale a little japanese culture. Yesterday we went to a Sumo Stable to see the wrestlers train in the morning. My respect for Sumo Wrestling is now in a completely different place than it was before. To see the combination of strength, speed, tactics and flexibility in these big guys was impressive.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://www.bestbrains.dk/Images/sumo.jpg" width="535" height="334"&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;The serious stuff:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Every year we spend plenty of time to create a tour where we will se many different
companies and get new angles to what lean really is about. The two last years, it
was part of the program to meet with managers from Toyota, besides seeing the plant,&amp;nbsp;
in order to&amp;nbsp; ask questions and dive deeper into what we had seen. Last year we
were&amp;nbsp; lucky to meet Mr. Ishii - General Project Manager for Toyotas Software
Division.&amp;nbsp; We had two very intense hours with him, where he openly shared how
Toyota develops software, and what challenges they have. Recently Henrik Kniberg,
from Crisp wrote &lt;a href="http://blog.crisp.se/henrikkniberg/2010/03/16/1268757660000.html"&gt;this&lt;/a&gt; interesting
account of that meeting. 
&lt;br&gt;
&lt;br&gt;
This year we are not going to talk to managers from Toyota. They are too busy with
other stuff - Instead we are going to meet a truckload of other fascinating companies
and people. Starting Monday wíth a visit to the Leading manufacturer of Industrial
Robots - Fanuc at the foot of Mount Fujii.&lt;br&gt;
&lt;br&gt;
Stay tuned on this channel next week to read more.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=52fa03f4-0941-4f90-80a1-6f6b40924b76" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,52fa03f4-0941-4f90-80a1-6f6b40924b76.aspx</comments>
      <category>Japan</category>
      <category>Lean</category>
      <category>Learning</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=6d1c37a1-1d28-4cdf-a958-39452cf6cb2d</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,6d1c37a1-1d28-4cdf-a958-39452cf6cb2d.aspx</pingback:target>
      <dc:creator>Lars Thorup</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,6d1c37a1-1d28-4cdf-a958-39452cf6cb2d.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=6d1c37a1-1d28-4cdf-a958-39452cf6cb2d</wfw:commentRss>
      <slash:comments>10</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <style type="text/css">
          <!--
		@page { margin: 2cm }
		P { margin-bottom: 0.21cm }
	-->
        </style>
        <p style="margin-bottom: 0.5cm;">
In database applications it is often important to ensure that your SQL uses indexes
to avoid performance problems. Consider an SQL select statement like this
</p>
        <p style="margin-bottom: 0.5cm;">
          <font color="#0000ff" face="Courier New">SELECT </font>
          <font face="Courier New">text </font>
          <font color="#0000ff" face="Courier New">FROM </font>
          <font face="Courier New">response </font>
          <font color="#0000ff" face="Courier New">WHERE </font>
          <font face="Courier New">questionId
= 27 </font>
          <font color="#0000ff" face="Courier New">AND </font>
          <font face="Courier New">participantId
= 38</font>
        </p>
        <p>
If there is no index on response(questionId, participantId), the database needs to
do a full table scan, and if the response table have a lot of rows, this will degrade
performance. Such a performance problem might only be observed during testing on large
amounts of data, which is not typically something a developer will do before every
commit.
</p>
        <p>
It would be useful to be able to detect this kind of problem much earlier, preferably
during unit testing. Here I will describe one way to do this using Microsoft SQL Server
and .NET:
</p>
        <p>
SQL Server makes a lot of information accessible through performance counters, and
one of those performance counters is incremented every time SQL Server does a full
table scan. Utilizing that information, we can write a unit test that verifies that
indexes are properly in place by asserting that the number of full table scans performed
by a piece of code is equal to zero:
</p>
        <pre style="margin-bottom: 0cm;" lang="">
          <font color="#0000ff" face="Courier New">
            <font size="2">
              <span lang="">using</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang="">(</span>
            </font>
          </font>
          <font color="#0000ff" face="Courier New">
            <font size="2">
              <span lang="">new</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang="">
                <font color="#2b91af">
                </font>
              </span>
            </font>
          </font>
          <font color="#2b91af" face="Courier New">
            <font size="2">
              <span lang="">AssertSqlFullScanCount</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang="">(0))</span>
              <br />
{</font>
          </font>
          <font color="#0000ff" face="Courier New">
            <font size="2">
              <span lang="">
                <br />
var</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang="">
                <font color="#0000ff">
                </font>responses
= </span>
            </font>
          </font>
          <font color="#2b91af" face="Courier New">
            <font size="2">
              <span lang="">Response</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang="">.GetResponses(q,
p);</span>
            </font>
            <br />
          </font>
          <font color="#2b91af" face="Courier New">
            <font size="2">
              <span lang=""> Assert</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang="">.That(responses,
...);</span>
              <br />
}</font>
          </font>
        </pre>
        <p>
This code uses the following helper class:
</p>
        <pre style="margin-bottom: 0cm;" lang="">
          <font color="#0000ff" face="Courier New">
            <font size="2">
              <span lang="">public</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang="">
                <font color="#0000ff">
                </font>
              </span>
            </font>
          </font>
          <font color="#0000ff" face="Courier New">
            <font size="2">
              <span lang="">class</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang="">
                <font color="#2b91af">
                </font>
              </span>
            </font>
          </font>
          <font color="#2b91af" face="Courier New">
            <font size="2">
              <span lang="">AssertSqlFullScanCount</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang=""> : </span>
            </font>
          </font>
          <font color="#0000ff" face="Courier New">
            <font size="2">
              <span lang="">IDisposable<br /></span>{<br /><font color="#000000"></font><span lang="">private</span></font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang="">
                <font color="#0000ff">
                </font>
              </span>
            </font>
          </font>
          <font color="#0000ff" face="Courier New">
            <font size="2">
              <span lang="">int</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang=""> expected;</span>
            </font>
            <br />
          </font>
          <font color="#0000ff" face="Courier New">
            <font size="2">
              <span lang="">private</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang="">
                <font color="#0000ff">
                </font>
              </span>
            </font>
          </font>
          <font color="#0000ff" face="Courier New">
            <font size="2">
              <span lang="">long</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang=""> actual;</span>
            </font>
            <br />
          </font>
          <font color="#0000ff" face="Courier New">
            <font size="2">
              <span lang=""> private</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang="">
                <font color="#2b91af">
                </font>
              </span>
            </font>
          </font>
          <font color="#2b91af" face="Courier New">
            <font size="2">
              <span lang="">PerformanceCounter</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang=""> fullScans;</span>
            </font>
            <br />
          </font>
          <font color="#0000ff" face="Courier New">
            <font size="2">
              <span lang="">public</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang=""> AssertSqlFullScanCount(</span>
            </font>
          </font>
          <font color="#0000ff" face="Courier New">
            <font size="2">
              <span lang="">int</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang=""> expected)<br />
{<br /></span>
            </font>
          </font>
          <font color="#0000ff" face="Courier New">
            <font size="2">
              <span lang="">this</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang="">.expected
= expected;</span>
            </font>
            <br />
          </font>
          <font color="#0000ff" face="Courier New">
            <font size="2">
              <span lang=""> this</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang="">.fullScans
= </span>
            </font>
          </font>
          <font color="#0000ff" face="Courier New">
            <font size="2">
              <span lang="">new</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang="">
                <font color="#2b91af">
                </font>
              </span>
            </font>
          </font>
          <font color="#2b91af" face="Courier New">
            <font size="2">
              <span lang="">PerformanceCounter</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang="">(<br /></span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang="">
              </span>
            </font>
          </font>
          <font color="#a31515" face="Courier New">
            <font size="2">
              <span lang="">
                <font color="#000000">
                </font>"MSSQL$SQLEXPRESS:Access
Methods"</span>
            </font>
          </font>
          <font color="#0000ff" face="Courier New">
            <font size="2">
              <span lang="">
              </span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang="">,<br /></span>
            </font>
          </font>
          <font color="#a31515" face="Courier New">
            <font size="2">
              <span lang=""> "Full
Scans/sec"</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang="">);</span>
            </font>
            <br />
          </font>
          <font color="#0000ff" face="Courier New">
            <font size="2">
              <span lang="">this</span>
            </font>
          </font>
          <font color="#0000ff" face="Courier New">
            <font size="2">
              <span lang="">.<font color="#000000">actual</font> =
fullScans.RawValue;<br />
}<br /><br />
public</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang="">
                <font color="#0000ff">
                </font>
              </span>
            </font>
          </font>
          <font color="#0000ff" face="Courier New">
            <font size="2">
              <span lang="">void</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang=""> Dispose()</span>
              <br />
{<br />
actual = fullScans.RawValue - actual;</font>
            <br />
          </font>
          <font color="#2b91af" face="Courier New">
            <font size="2">
              <span lang="">Assert</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang="">.That(actual,<font color="#2b91af"></font></span>
            </font>
          </font>
          <font color="#2b91af" face="Courier New">
            <font size="2">
              <span lang="">Is</span>
            </font>
          </font>
          <font color="#000000" face="Courier New">
            <font size="2">
              <span lang="">.EqualTo(expected));</span>
              <br />
}<br />
}</font>
          </font>
        </pre>
        <p>
Do you consider this kind of performance unit testing useful? How would you implement
this kind of tests with Oracle
</p>
        <p>
        </p>
        <img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=6d1c37a1-1d28-4cdf-a958-39452cf6cb2d" />
      </body>
      <title>How to assert that your SQL does not do full table scans</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,6d1c37a1-1d28-4cdf-a958-39452cf6cb2d.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2010/03/25/HowToAssertThatYourSQLDoesNotDoFullTableScans.aspx</link>
      <pubDate>Thu, 25 Mar 2010 14:18:00 GMT</pubDate>
      <description>&lt;style type="text/css"&gt;
	&lt;!--
		@page { margin: 2cm }
		P { margin-bottom: 0.21cm }
	--&gt;
	&lt;/style&gt;
&lt;p style="margin-bottom: 0.5cm;"&gt;
In database applications it is often important to ensure that your SQL uses indexes
to avoid performance problems. Consider an SQL select statement like this
&lt;/p&gt;
&lt;p style="margin-bottom: 0.5cm;"&gt;
&lt;font color="#0000ff" face="Courier New"&gt;SELECT &lt;/font&gt;&lt;font face="Courier New"&gt;text &lt;/font&gt;&lt;font color="#0000ff" face="Courier New"&gt;FROM &lt;/font&gt;&lt;font face="Courier New"&gt;response &lt;/font&gt;&lt;font color="#0000ff" face="Courier New"&gt;WHERE &lt;/font&gt;&lt;font face="Courier New"&gt;questionId
= 27 &lt;/font&gt;&lt;font color="#0000ff" face="Courier New"&gt;AND &lt;/font&gt;&lt;font face="Courier New"&gt;participantId
= 38&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
If there is no index on response(questionId, participantId), the database needs to
do a full table scan, and if the response table have a lot of rows, this will degrade
performance. Such a performance problem might only be observed during testing on large
amounts of data, which is not typically something a developer will do before every
commit.
&lt;/p&gt;
&lt;p&gt;
It would be useful to be able to detect this kind of problem much earlier, preferably
during unit testing. Here I will describe one way to do this using Microsoft SQL Server
and .NET:
&lt;/p&gt;
&lt;p&gt;
SQL Server makes a lot of information accessible through performance counters, and
one of those performance counters is incremented every time SQL Server does a full
table scan. Utilizing that information, we can write a unit test that verifies that
indexes are properly in place by asserting that the number of full table scans performed
by a piece of code is equal to zero:
&lt;/p&gt;
&lt;pre style="margin-bottom: 0cm;" lang=""&gt;&lt;font color="#0000ff" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;using&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;(&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;new&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;&lt;font color="#2b91af"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;AssertSqlFullScanCount&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;(0))&lt;/span&gt;
&lt;br&gt;
{&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;
&lt;br&gt;
var&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;responses
= &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;Response&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;.GetResponses(q,
p);&lt;/span&gt;&lt;/font&gt;
&lt;br&gt;
&lt;/font&gt;&lt;font color="#2b91af" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt; Assert&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;.That(responses,
...);&lt;/span&gt;
&lt;br&gt;
}&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;
This code uses the following helper class:
&lt;/p&gt;
&lt;pre style="margin-bottom: 0cm;" lang=""&gt;&lt;font color="#0000ff" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;public&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;class&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;&lt;font color="#2b91af"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;AssertSqlFullScanCount&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt; : &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;IDisposable&lt;br&gt;
&lt;/span&gt;{&lt;br&gt;
&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span lang=""&gt;private&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;int&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt; expected;&lt;/span&gt;&lt;/font&gt;
&lt;br&gt;
&lt;/font&gt;&lt;font color="#0000ff" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;private&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;long&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt; actual;&lt;/span&gt;&lt;/font&gt;
&lt;br&gt;
&lt;/font&gt;&lt;font color="#0000ff" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt; private&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;&lt;font color="#2b91af"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;PerformanceCounter&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt; fullScans;&lt;/span&gt;&lt;/font&gt;
&lt;br&gt;
&lt;/font&gt;&lt;font color="#0000ff" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;public&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt; AssertSqlFullScanCount(&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;int&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt; expected)&lt;br&gt;
{&lt;br&gt;
&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;this&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;.expected
= expected;&lt;/span&gt;&lt;/font&gt;
&lt;br&gt;
&lt;/font&gt;&lt;font color="#0000ff" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt; this&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;.fullScans
= &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;new&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;&lt;font color="#2b91af"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;PerformanceCounter&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;(&lt;br&gt;
&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;&lt;font color="#000000"&gt; &lt;/font&gt;"MSSQL$SQLEXPRESS:Access
Methods"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;,&lt;br&gt;
&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt; "Full
Scans/sec"&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;);&lt;/span&gt;&lt;/font&gt;
&lt;br&gt;
&lt;/font&gt;&lt;font color="#0000ff" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;this&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;.&lt;font color="#000000"&gt;actual&lt;/font&gt; =
fullScans.RawValue;&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
public&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;void&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt; Dispose()&lt;/span&gt;
&lt;br&gt;
{&lt;br&gt;
actual = fullScans.RawValue - actual;&lt;/font&gt;
&lt;br&gt;
&lt;/font&gt;&lt;font color="#2b91af" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;Assert&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;.That(actual,&lt;font color="#2b91af"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;Is&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font size="2"&gt;&lt;span lang=""&gt;.EqualTo(expected));&lt;/span&gt;
&lt;br&gt;
}&lt;br&gt;
}&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;
Do you consider this kind of performance unit testing useful? How would you implement
this kind of tests with Oracle
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=6d1c37a1-1d28-4cdf-a958-39452cf6cb2d" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,6d1c37a1-1d28-4cdf-a958-39452cf6cb2d.aspx</comments>
      <category>Automated Testing</category>
      <category>Profiling</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=3a1dfe33-3e4d-484e-9cbb-b6dedbfc1fe1</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,3a1dfe33-3e4d-484e-9cbb-b6dedbfc1fe1.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,3a1dfe33-3e4d-484e-9cbb-b6dedbfc1fe1.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=3a1dfe33-3e4d-484e-9cbb-b6dedbfc1fe1</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">If results are not the point - then what
is?<br /><br /><img src="http://www.bestbrains.dk/Blog/content/binary/mary_at_itu_small.jpg" border="0" /><br /><br />
March 10. we've arranged a talk by Lean Software pioneer Mary Poppendieck at IT-Universitetet
in Copenhagen. Check your calendar and sign up - <b>It's free!</b> Check <a href="http://www.bestbrains.dk/dansk.aspx/Workshops/Leading_Lean_Software_Development_at_ITU">details
here</a> (in danish)<br /><br />
As you may now Mary and Tom Poppendieck has recently published their third book 'Leading
Lean Software Development: Results are not the point'. Check it out at <a href="http://www.amazon.co.uk/Leading-Lean-Software-Development-Addison-Wesley/dp/0321620704/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1265896666&amp;sr=8-1">Amazon</a>.<br /><br /><img src="http://ecx.images-amazon.com/images/I/41d0WXfsICL._SL500_AA240_.jpg" /><br /><br />
Mary and Tom is also doing a 2-day workshop i Copenhagen March 11 and 12. Check <a href="http://www.bestbrains.dk/dansk.aspx/Workshops/Leading_Lean_Software_Development">details
here</a>.<br /><br />
We hope to meet you there.<br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=3a1dfe33-3e4d-484e-9cbb-b6dedbfc1fe1" /></body>
      <title>Latest: Lean Software Development at IT-Universitetet</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,3a1dfe33-3e4d-484e-9cbb-b6dedbfc1fe1.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2010/02/11/LatestLeanSoftwareDevelopmentAtITUniversitetet.aspx</link>
      <pubDate>Thu, 11 Feb 2010 14:00:29 GMT</pubDate>
      <description>If results are not the point - then what is?&lt;br&gt;
&lt;br&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/mary_at_itu_small.jpg" border="0"&gt;
&lt;br&gt;
&lt;br&gt;
March 10. we've arranged a talk by Lean Software pioneer Mary Poppendieck at IT-Universitetet
in Copenhagen. Check your calendar and sign up - &lt;b&gt;It's free!&lt;/b&gt; Check &lt;a href="http://www.bestbrains.dk/dansk.aspx/Workshops/Leading_Lean_Software_Development_at_ITU"&gt;details
here&lt;/a&gt; (in danish)&lt;br&gt;
&lt;br&gt;
As you may now Mary and Tom Poppendieck has recently published their third book 'Leading
Lean Software Development: Results are not the point'. Check it out at &lt;a href="http://www.amazon.co.uk/Leading-Lean-Software-Development-Addison-Wesley/dp/0321620704/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1265896666&amp;amp;sr=8-1"&gt;Amazon&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/41d0WXfsICL._SL500_AA240_.jpg"&gt;
&lt;br&gt;
&lt;br&gt;
Mary and Tom is also doing a 2-day workshop i Copenhagen March 11 and 12. Check &lt;a href="http://www.bestbrains.dk/dansk.aspx/Workshops/Leading_Lean_Software_Development"&gt;details
here&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
We hope to meet you there.&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=3a1dfe33-3e4d-484e-9cbb-b6dedbfc1fe1" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,3a1dfe33-3e4d-484e-9cbb-b6dedbfc1fe1.aspx</comments>
      <category>Agile</category>
      <category>Lean</category>
      <category>Learning</category>
      <category>management</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=1a75c11b-6b08-4dba-a6b8-ed2cc86038db</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,1a75c11b-6b08-4dba-a6b8-ed2cc86038db.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,1a75c11b-6b08-4dba-a6b8-ed2cc86038db.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=1a75c11b-6b08-4dba-a6b8-ed2cc86038db</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://www.bestbrains.dk/Blog/content/binary/logo.jpg" border="0" />
        <br />
        <br />
A couple of weeks ago we decided it was time to join the 21st century and replace
our old logo with a brand new one. To accomplish this task my colleague Kristian Dupont
created a design competition on the "crowdsourcing" service <a href="http://www.99designs.com">www.99designs.com</a>.
In just a couple of days we got more than 30 quality drafts to choose from -- all
at a very reasonable price. After some Google Spreadsheet-based voting, we finally
decided on the one you see above.<br /><br />
What do you think about our new logo?<br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=1a75c11b-6b08-4dba-a6b8-ed2cc86038db" /></body>
      <title>New logo - A great crowdsourcing experience</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,1a75c11b-6b08-4dba-a6b8-ed2cc86038db.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/11/02/NewLogoAGreatCrowdsourcingExperience.aspx</link>
      <pubDate>Mon, 02 Nov 2009 12:28:10 GMT</pubDate>
      <description>&lt;img src="http://www.bestbrains.dk/Blog/content/binary/logo.jpg" border="0"&gt;
&lt;br&gt;
&lt;br&gt;
A couple of weeks ago we decided it was time to join the 21st century and replace
our old logo with a brand new one. To accomplish this task my colleague Kristian Dupont
created a design competition on the "crowdsourcing" service &lt;a href="http://www.99designs.com"&gt;www.99designs.com&lt;/a&gt;.
In just a couple of days we got more than 30 quality drafts to choose from -- all
at a very reasonable price. After some Google Spreadsheet-based voting, we finally
decided on the one you see above.&lt;br&gt;
&lt;br&gt;
What do you think about our new logo?&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=1a75c11b-6b08-4dba-a6b8-ed2cc86038db" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,1a75c11b-6b08-4dba-a6b8-ed2cc86038db.aspx</comments>
      <category>alternative company</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=458c366a-a9a2-4497-8cb5-0fc136866152</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,458c366a-a9a2-4497-8cb5-0fc136866152.aspx</pingback:target>
      <dc:creator>Bent Jensen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,458c366a-a9a2-4497-8cb5-0fc136866152.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=458c366a-a9a2-4497-8cb5-0fc136866152</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <br />
        <img src="content/binary/Bent%20Jensen%20pomodoro1.jpg" border="0" />
        <br />
        <br />
At BestBrains we are strong believers in the <a href="http://www.bestbrains.dk/Blog/2009/02/21/CanATomatoChangeYourLifeThePomodoroTechnique.aspx">Pomodoro-technique</a>,
as a pleasant way to improve our productivity.  This week we gave yet another
presentation of the technique. For those who read Danish, there is a <a href="http://www.jrchristensen.dk/tomatens-praktiske-visdom/">review
here</a><br /><br />
Besides the Pomodoro-shaped alarm-clock we have now discovered another thing, that
makes our Pomodoros even better. The Pomodoro T-shirt, as the one I'm wearing in the
picture. It simply adds another dimension to your Pomodoro sessions. If you want one
for yourself you can find it<a href="http://www.amazon.com/gp/product/B0015UU3EW/ref=ox_ya_oh_product"> here
at Amazon</a><br /><br /><br /><br /><br /><br /><br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=458c366a-a9a2-4497-8cb5-0fc136866152" /></body>
      <title>The Pomodoro T-shirt</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,458c366a-a9a2-4497-8cb5-0fc136866152.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/10/31/ThePomodoroTshirt.aspx</link>
      <pubDate>Sat, 31 Oct 2009 09:34:44 GMT</pubDate>
      <description>&lt;br&gt;
&lt;img src="content/binary/Bent%20Jensen%20pomodoro1.jpg" border="0"&gt;
&lt;br&gt;
&lt;br&gt;
At BestBrains we are strong believers in the &lt;a href="http://www.bestbrains.dk/Blog/2009/02/21/CanATomatoChangeYourLifeThePomodoroTechnique.aspx"&gt;Pomodoro-technique&lt;/a&gt;,
as a pleasant way to improve our productivity.&amp;nbsp; This week we gave yet another
presentation of the technique. For those who read Danish, there is a &lt;a href="http://www.jrchristensen.dk/tomatens-praktiske-visdom/"&gt;review
here&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
Besides the Pomodoro-shaped alarm-clock we have now discovered another thing, that
makes our Pomodoros even better. The Pomodoro T-shirt, as the one I'm wearing in the
picture. It simply adds another dimension to your Pomodoro sessions. If you want one
for yourself you can find it&lt;a href="http://www.amazon.com/gp/product/B0015UU3EW/ref=ox_ya_oh_product"&gt; here
at Amazon&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=458c366a-a9a2-4497-8cb5-0fc136866152" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,458c366a-a9a2-4497-8cb5-0fc136866152.aspx</comments>
      <category>Process Innovation</category>
      <category>productivity</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=d5b6a03c-1f71-4145-9124-73fc56748d9c</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,d5b6a03c-1f71-4145-9124-73fc56748d9c.aspx</pingback:target>
      <dc:creator>Bent Jensen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,d5b6a03c-1f71-4145-9124-73fc56748d9c.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=d5b6a03c-1f71-4145-9124-73fc56748d9c</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://www.bestbrains.dk/images/cash-cow.jpg" />
        <br />
        <br />
        <br />
        <br />
Is a quote from Jeff Jarvis' book: "What Would Google Do". If you suddenly find yourself
out of business because your competitors has changed the game, and are light-years
ahead of you, it might be because you were too busy milking the cash cow in the gold
mine.<br /><br />
Many Companies, IT and software companies included, was in the last happy pre-crisis
decade  of crazy growth, very busy milking the Cash Cow in the Gold Mine. The
poor beast is not giving so much milk now. And if one is looking up it is clear the
world does not look the same as it did before. 
<br /><br />
many software companies find out, that they completely missed being aware of the costs
of running a software business. When the order-book was full,  the dedicated
work of doing things better, lowering cost and improving quality was not on the agenda.
Hire more staff (if you can them) and cut corners whereever possible,  was the
practice of the day.<br /><br />
In the software industry as well as construction industry, the number of poor-quality,
too late and too expensive projects grew rapidly. The only difference between construction
and Software is, that in construction you always end up using what has been built,
and thus getting some value out of the investment. Sadly that is not true for all
software projects.<br /><br />
In the meantime a cost effective outsourcing industry has grown up, to do much of
the work domestic companies used to do. A even larget threat to the worn out Cash
Cows is that lots of, what used to be, expensive software solutions are available
for free or very cheap on the internet. Google (here they are again) has created a
strong competitor to Microsoft's Cash Cow: Microsoft Office Soute. While Microsoft
was busy milking it, Google solved the real problem about real-time collaboration,
sharing and version control. This will forever change the landscape of office applications,
and Microsoft is way behind (as is Open Office and all the others still on the old
paradigm). 
<br /><br />
I  was recently looking for software for doing on-line surveys. My search led
me, among others, to these two companies: <a title="2ask" href="http://www.2ask.net/" id="gtg3">2ask</a> and <a title="Survey Monkey" href="http://www.surveymonkey.com/Default.aspx" id="tl_g">Survey
Monkey</a>. My theory is that 2ask has been busy milking their cash cow (hopefully
so), while Survey Monkey changed the business. For a tenth of the price Survey Monkey
offers a fancy, slick application that allows you to build your own surveys very easily.
Take a look for yourself, who do you want to buy from?<br /><br />
So what are you doing? Spending the time trying to get the old cow to give more milk,
doing more of the same, of are you taking the opportunity to discover what business
you really are in (another quote from WWGD), and finding ways to do that in a low-cost
way? 
<br /><br />
And in our own kind business there has also been cash cows: Scrum certification classes
(we do not do those) with long waiting lists and customers being willing to believe
that standing up i a  circle 10 minutes every day would solve all problems. Maybe
it is time to rethink that business too?<p></p><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=d5b6a03c-1f71-4145-9124-73fc56748d9c" /></body>
      <title>Beware of the Cash Cow in the Gold Mine</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,d5b6a03c-1f71-4145-9124-73fc56748d9c.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/10/17/BewareOfTheCashCowInTheGoldMine.aspx</link>
      <pubDate>Sat, 17 Oct 2009 07:39:11 GMT</pubDate>
      <description>&lt;img src="http://www.bestbrains.dk/images/cash-cow.jpg"&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Is a quote from Jeff Jarvis' book: "What Would Google Do". If you suddenly find yourself
out of business because your competitors has changed the game, and are light-years
ahead of you, it might be because you were too busy milking the cash cow in the gold
mine.&lt;br&gt;
&lt;br&gt;
Many Companies, IT and software companies included, was in the last happy pre-crisis
decade&amp;nbsp; of crazy growth, very busy milking the Cash Cow in the Gold Mine. The
poor beast is not giving so much milk now. And if one is looking up it is clear the
world does not look the same as it did before. 
&lt;br&gt;
&lt;br&gt;
many software companies find out, that they completely missed being aware of the costs
of running a software business. When the order-book was full,&amp;nbsp; the dedicated
work of doing things better, lowering cost and improving quality was not on the agenda.
Hire more staff (if you can them) and cut corners whereever possible,&amp;nbsp; was the
practice of the day.&lt;br&gt;
&lt;br&gt;
In the software industry as well as construction industry, the number of poor-quality,
too late and too expensive projects grew rapidly. The only difference between construction
and Software is, that in construction you always end up using what has been built,
and thus getting some value out of the investment. Sadly that is not true for all
software projects.&lt;br&gt;
&lt;br&gt;
In the meantime a cost effective outsourcing industry has grown up, to do much of
the work domestic companies used to do. A even larget threat to the worn out Cash
Cows is that lots of, what used to be, expensive software solutions are available
for free or very cheap on the internet. Google (here they are again) has created a
strong competitor to Microsoft's Cash Cow: Microsoft Office Soute. While Microsoft
was busy milking it, Google solved the real problem about real-time collaboration,
sharing and version control. This will forever change the landscape of office applications,
and Microsoft is way behind (as is Open Office and all the others still on the old
paradigm). 
&lt;br&gt;
&lt;br&gt;
I&amp;nbsp; was recently looking for software for doing on-line surveys. My search led
me, among others, to these two companies: &lt;a title="2ask" href="http://www.2ask.net/" id="gtg3"&gt;2ask&lt;/a&gt; and &lt;a title="Survey Monkey" href="http://www.surveymonkey.com/Default.aspx" id="tl_g"&gt;Survey
Monkey&lt;/a&gt;. My theory is that 2ask has been busy milking their cash cow (hopefully
so), while Survey Monkey changed the business. For a tenth of the price Survey Monkey
offers a fancy, slick application that allows you to build your own surveys very easily.
Take a look for yourself, who do you want to buy from?&lt;br&gt;
&lt;br&gt;
So what are you doing? Spending the time trying to get the old cow to give more milk,
doing more of the same, of are you taking the opportunity to discover what business
you really are in (another quote from WWGD), and finding ways to do that in a low-cost
way? 
&lt;br&gt;
&lt;br&gt;
And in our own kind business there has also been cash cows: Scrum certification classes
(we do not do those) with long waiting lists and customers being willing to believe
that standing up i a&amp;nbsp; circle 10 minutes every day would solve all problems. Maybe
it is time to rethink that business too?&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=d5b6a03c-1f71-4145-9124-73fc56748d9c" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,d5b6a03c-1f71-4145-9124-73fc56748d9c.aspx</comments>
      <category>productivity</category>
      <category>Quality</category>
      <category>business</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=89fd2f7c-b8d8-433c-b547-345cfadefc7a</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,89fd2f7c-b8d8-433c-b547-345cfadefc7a.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,89fd2f7c-b8d8-433c-b547-345cfadefc7a.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=89fd2f7c-b8d8-433c-b547-345cfadefc7a</wfw:commentRss>
      <slash:comments>8</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <br />
        <img src="http://www.bestbrains.dk/Blog/content/binary/frog1.jpg" style="float: left; margin-right: 5px; margin-bottom: 5px;" border="0" /> Having
worked with database applications for many years, I have come across a number of different
object-relational mapping strategies and tools. However, most of them has had built-in
design issues that caused me to dislike them after a short while. One of the latest
was <a href="http://www.castleproject.org/activerecord/index.html">Castle ActiveRecord</a>.<br /><br />
Fortunately - in the software industry - if you dislike something, you can code your
own solution. After a talk with my colleague Lars Thorup and some inspiration by <a href="http://www.liensberger.it/">Christian
Liensberger</a> I decided it was time to create something that was simpler, more flexible,
more testable and promoting better design. Frog.NET was born, and is now an open source
project hosted on Google Code.<br /><br />
We have been using Frog.NET on an internal project for a couple of months now, and
it has been great to get rid of some of the problems we experienced with Castle ActiveRecord.<br /><br />
Check it out here: <a href="http://frogdotnet.googlecode.com">http://frogdotnet.googlecode.com/</a><br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=89fd2f7c-b8d8-433c-b547-345cfadefc7a" /></body>
      <title>Taking the open source road - Announcing Frog.NET</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,89fd2f7c-b8d8-433c-b547-345cfadefc7a.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/10/02/TakingTheOpenSourceRoadAnnouncingFrogNET.aspx</link>
      <pubDate>Fri, 02 Oct 2009 08:12:29 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;br&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/frog1.jpg" style="float: left; margin-right: 5px; margin-bottom: 5px;" border="0"&gt; Having
worked with database applications for many years, I have come across a number of different
object-relational mapping strategies and tools. However, most of them has had built-in
design issues that caused me to dislike them after a short while. One of the latest
was &lt;a href="http://www.castleproject.org/activerecord/index.html"&gt;Castle ActiveRecord&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
Fortunately - in the software industry - if you dislike something, you can code your
own solution. After a talk with my colleague Lars Thorup and some inspiration by &lt;a href="http://www.liensberger.it/"&gt;Christian
Liensberger&lt;/a&gt; I decided it was time to create something that was simpler, more flexible,
more testable and promoting better design. Frog.NET was born, and is now an open source
project hosted on Google Code.&lt;br&gt;
&lt;br&gt;
We have been using Frog.NET on an internal project for a couple of months now, and
it has been great to get rid of some of the problems we experienced with Castle ActiveRecord.&lt;br&gt;
&lt;br&gt;
Check it out here: &lt;a href="http://frogdotnet.googlecode.com"&gt;http://frogdotnet.googlecode.com/&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=89fd2f7c-b8d8-433c-b547-345cfadefc7a" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,89fd2f7c-b8d8-433c-b547-345cfadefc7a.aspx</comments>
      <category>Learning</category>
      <category>Open Source</category>
      <category>Tools</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=a4cbed9a-ccb0-4139-b46c-3e7809e74252</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,a4cbed9a-ccb0-4139-b46c-3e7809e74252.aspx</pingback:target>
      <dc:creator>Bent Jensen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,a4cbed9a-ccb0-4139-b46c-3e7809e74252.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=a4cbed9a-ccb0-4139-b46c-3e7809e74252</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">We were used to one-on-ones between manager
and managed in our past history. And we tried to reproduce this format in BestBrains,
until it appeared to us, that the format wasn't really appropriate in a net-working 
structure like ours, where titles doesn't really denote any superiority to others,
and most - if not all - work is either invoice able or done voluntarily.<br /><br />
At the same time we had to deal with the challenge of being away from office a lot,
so some of us would have very little daily interaction.<br /><br />
To overcome these problems, and still be able to maintain a fresh relationship where
problems are raised early, and  give support to each others personal- and professional
development,  we invented the notion of a <b>peer-meeting</b>. It serves as a
means to get to know each other better, to coach us towards our goals and to offer
feedback to peers.<br /><br />
We do it this way: Each month each of us are supposed to meet with one colleague for
a couple of hours. We often do it with lunch in between.  Some of the meetings
are held walking, I remember a particular one, where we spent an hour walking and
talking in <a href="http://en.wikipedia.org/wiki/Freetown_Christiania">Free Town Christiania</a>,
which is just besides our offices, but where I rarely set my foot. In other meetings
we have been exploring the Cafe's of Copenhagen e.g  <a href="http://www.ddc.dk/ddc/DDCcafe">Danish
Design Center</a> or in <a href="http://www.glyptoteket.dk/ef241c83-4ba7-4878-9842-7b818083928f.W5Doc?frames=yes">Glyptoteket</a>.
And one time this summer we were sitting in the cozy café <a href="http://www.baadudlejningen.dk/mad.html">Bådudlejningen </a>at
Christianshavns Canal watching tourist boats and kayaks pass by while talking about
goals and ideas. 
<br /><br />
To assist the process we have created a template to structure the meeting and the
preparation. In its newest version it looks like this:<br /><br /><u>Before the meeting:</u>             
             
<br /><br />
Consider in relation to your meeting partner: What is he (sorry, but we currently
are all men - looking for women to apply for a job) doing really good? Think or one
or more goals and/or challenges you could offer to your conversation-partner.<br /><br />
Consider in relation to yourself: What do you find difficult and would like to do
better? What do you thing you are really good at, and how could you share it with
others?<br /><u><br />
In the meeting:</u><br /><br />
Take turns where each of you spend 45 minutes going over the items from the list,
where one is mostly listening  and the other talking. Change roles.<br /><br />
We have been doing a couple of rounds so far and are all pleased with it. I personally
think it has been a great aid in creating a strong relationship between us, that otherwise
can be difficult when  where there is no formal hierarchy and economic dependencies. 
<p></p><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=a4cbed9a-ccb0-4139-b46c-3e7809e74252" /></body>
      <title>A different kind of meeting: Staying close to your colleagues in a networking company</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,a4cbed9a-ccb0-4139-b46c-3e7809e74252.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/09/27/ADifferentKindOfMeetingStayingCloseToYourColleaguesInANetworkingCompany.aspx</link>
      <pubDate>Sun, 27 Sep 2009 21:22:23 GMT</pubDate>
      <description>We
were used to one-on-ones between manager and managed in our past history.
And we tried to reproduce this format in BestBrains, until it appeared
to us, that the format wasn't really appropriate in a net-working&amp;nbsp;
structure like ours, where titles doesn't really denote any superiority
to others, and most - if not all - work is either invoice able or done voluntarily.&lt;br&gt;
&lt;br&gt;
At the same time we had to deal with the challenge of being away from office a lot,
so some of us would have very little daily interaction.&lt;br&gt;
&lt;br&gt;
To overcome these problems, and still be able to maintain a fresh relationship where
problems are raised early, and&amp;nbsp; give support to each others personal- and professional
development,&amp;nbsp; we invented the notion of a &lt;b&gt;peer-meeting&lt;/b&gt;. It serves as a
means to get to know each other better, to coach us towards our goals and to offer
feedback to peers.&lt;br&gt;
&lt;br&gt;
We do it this way: Each month each of us are supposed to meet with one colleague for
a couple of hours. We often do it with lunch in between.&amp;nbsp; Some of the meetings
are held walking, I remember a particular one, where we spent an hour walking and
talking in &lt;a href="http://en.wikipedia.org/wiki/Freetown_Christiania"&gt;Free Town Christiania&lt;/a&gt;,
which is just besides our offices, but where I rarely set my foot. In other meetings
we have been exploring the Cafe's of Copenhagen e.g&amp;nbsp; &lt;a href="http://www.ddc.dk/ddc/DDCcafe"&gt;Danish
Design Center&lt;/a&gt; or in &lt;a href="http://www.glyptoteket.dk/ef241c83-4ba7-4878-9842-7b818083928f.W5Doc?frames=yes"&gt;Glyptoteket&lt;/a&gt;.
And one time this summer we were sitting in the cozy café &lt;a href="http://www.baadudlejningen.dk/mad.html"&gt;Bådudlejningen &lt;/a&gt;at
Christianshavns Canal watching tourist boats and kayaks pass by while talking about
goals and ideas. 
&lt;br&gt;
&lt;br&gt;
To assist the process we have created a template to structure the meeting and the
preparation. In its newest version it looks like this:&lt;br&gt;
&lt;br&gt;
&lt;u&gt;Before the meeting:&lt;/u&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;br&gt;
&lt;br&gt;
Consider in relation to your meeting partner: What is he (sorry, but we currently
are all men - looking for women to apply for a job) doing really good? Think or one
or more goals and/or challenges you could offer to your conversation-partner.&lt;br&gt;
&lt;br&gt;
Consider in relation to yourself: What do you find difficult and would like to do
better? What do you thing you are really good at, and how could you share it with
others?&lt;br&gt;
&lt;u&gt;
&lt;br&gt;
In the meeting:&lt;/u&gt;
&lt;br&gt;
&lt;br&gt;
Take turns where each of you spend 45 minutes going over the items from the list,
where one is mostly listening&amp;nbsp; and the other talking. Change roles.&lt;br&gt;
&lt;br&gt;
We have been doing a couple of rounds so far and are all pleased with it. I personally
think it has been a great aid in creating a strong relationship between us, that otherwise
can be difficult when&amp;nbsp; where there is no formal hierarchy and economic dependencies. 
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=a4cbed9a-ccb0-4139-b46c-3e7809e74252" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,a4cbed9a-ccb0-4139-b46c-3e7809e74252.aspx</comments>
      <category>alternative company</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=63647c83-eaad-461f-946c-809d17b9e960</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,63647c83-eaad-461f-946c-809d17b9e960.aspx</pingback:target>
      <dc:creator>Mads Troels Hansen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,63647c83-eaad-461f-946c-809d17b9e960.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=63647c83-eaad-461f-946c-809d17b9e960</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I went to a few sessions at the Agile 2009 conference related to group dynamics, hyper
productive teams and corporate culture. 
</p>
        <p>
          <a href="http://www.agile2009.com/node/2450">Help me to see... corporate culture</a> with
Tobias Mayer and Lyssa Adkins.<em> "Using a simple yet effective collaboration game
from the Improv tradition this session will challenge our assumptions and open up
new neural pathways."</em> It was a very interesting workshop with a limited number
of people. Tobias showed us different techniques to describe a new reality for an
agile person, an agile team and an agile organization in a collaborative and simple
way without being locked in our traditional beliefs. 
</p>
        <p>
          <img src="http://www.bestbrains.dk/Blog/content/binary/Thoughts1_090709_0946_Agile2009th1.png" border="0" />
        </p>
        <p>
          <span style="color: rgb(79, 129, 189); font-size: 9pt;">
            <strong>Help me to see... </strong>
          </span>
        </p>
        <p>
          <a href="http://www.agile2009.com/node/2024">Scaling Up by Scaling Down: A (re)Focus
on Individual Skills</a> with Ashley Johnson and Amr Elssamadisy. The key message
on this session was to focus more on developing personal agility, before trying to
scaling up. The primary aspect of agile is skills and personalities (Individuals and
interactions over processes and tools…). 
</p>
        <p>
          <img src="http://www.bestbrains.dk/Blog/content/binary/Thoughts2_090709_0946_Agile2009th2.jpg" border="0" />
        </p>
        <p>
          <span style="color: rgb(79, 129, 189); font-size: 9pt;">
            <strong>Scaling Up by Scaling
Down </strong>
          </span>
        </p>
        <p>
Some of the quotes from sessions and discussions: 
</p>
        <ul>
          <li>
"The pain of change has to be less than the pain of failing" 
</li>
          <li>
"Trust and credibility is the glue, if you don't create it you will fail" 
</li>
          <li>
"Before getting it to work in the large, we need to get it to work in the small" 
</li>
        </ul>
        <p>
I think from an agile point of view, we need to understand our craft much better and
focus on business value, innovation and continuous learning. 
</p>
        <p>
We talk more about <strong>"How we create the solution"</strong> than <span style="font-size: 14pt;"><strong>"Why
do we create the solution?"</strong></span></p>
        <p>
We talk more about <strong>"How great we are doing"</strong> than <span style="font-size: 14pt;"><strong>"How
we can continuously improve and be better?" </strong></span></p>
        <p>
We talk more about <strong>"How can we be more productive"</strong> than <span style="font-size: 14pt;"><strong>"How
can we create less useless features?"</strong></span></p>
        <p>
I think we should focus more on 
</p>
        <ul>
          <li>
Building a better understanding on what we are doing – create a unity of purpose 
</li>
          <li>
Working with continuously improving and learning in the organization 
</li>
          <li>
Teaching and using problem solving techniques 
</li>
          <li>
How we structure our work with cadence, flow and pull </li>
          <li>
How we establishing more transparency and accountability 
</li>
        </ul>
        <p>
What do you think? 
</p>
        <img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=63647c83-eaad-461f-946c-809d17b9e960" />
      </body>
      <title>Agile 2009 – thoughts</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,63647c83-eaad-461f-946c-809d17b9e960.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/09/07/Agile2009Thoughts.aspx</link>
      <pubDate>Mon, 07 Sep 2009 12:09:41 GMT</pubDate>
      <description>&lt;p&gt;
I went to a few sessions at the Agile 2009 conference related to group dynamics, hyper
productive teams and corporate culture. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.agile2009.com/node/2450"&gt;Help me to see... corporate culture&lt;/a&gt; with
Tobias Mayer and Lyssa Adkins.&lt;em&gt; "Using a simple yet effective collaboration game
from the Improv tradition this session will challenge our assumptions and open up
new neural pathways."&lt;/em&gt; It was a very interesting workshop with a limited number
of people. Tobias showed us different techniques to describe a new reality for an
agile person, an agile team and an agile organization in a collaborative and simple
way without being locked in our traditional beliefs. 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/Thoughts1_090709_0946_Agile2009th1.png" border="0"&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;span style="color: rgb(79, 129, 189); font-size: 9pt;"&gt;&lt;strong&gt;Help me to see...&amp;nbsp;&lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.agile2009.com/node/2024"&gt;Scaling Up by Scaling Down: A (re)Focus
on Individual Skills&lt;/a&gt; with Ashley Johnson and Amr Elssamadisy. The key message
on this session was to focus more on developing personal agility, before trying to
scaling up. The primary aspect of agile is skills and personalities (Individuals and
interactions over processes and tools…). 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/Thoughts2_090709_0946_Agile2009th2.jpg" border="0"&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;span style="color: rgb(79, 129, 189); font-size: 9pt;"&gt;&lt;strong&gt;Scaling Up by Scaling
Down &lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
Some of the quotes from sessions and discussions: 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
"The pain of change has to be less than the pain of failing" 
&lt;/li&gt;
&lt;li&gt;
"Trust and credibility is the glue, if you don't create it you will fail" 
&lt;/li&gt;
&lt;li&gt;
"Before getting it to work in the large, we need to get it to work in the small" 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
I think from an agile point of view, we need to understand our craft much better and
focus on business value, innovation and continuous learning. 
&lt;/p&gt;
&lt;p&gt;
We talk more about &lt;strong&gt;"How we create the solution"&lt;/strong&gt; than &lt;span style="font-size: 14pt;"&gt;&lt;strong&gt;"Why
do we create the solution?"&lt;/strong&gt;&lt;/span&gt; 
&lt;/p&gt;
&lt;p&gt;
We talk more about &lt;strong&gt;"How great we are doing"&lt;/strong&gt; than &lt;span style="font-size: 14pt;"&gt;&lt;strong&gt;"How
we can continuously improve and be better?" &lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
We talk more about &lt;strong&gt;"How can we be more productive"&lt;/strong&gt; than &lt;span style="font-size: 14pt;"&gt;&lt;strong&gt;"How
can we create less useless features?"&lt;/strong&gt;&lt;/span&gt; 
&lt;/p&gt;
&lt;p&gt;
I think we should focus more on 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Building a better understanding on what we are doing – create a unity of purpose 
&lt;/li&gt;
&lt;li&gt;
Working with continuously improving and learning in the organization 
&lt;/li&gt;
&lt;li&gt;
Teaching and using problem solving techniques 
&lt;/li&gt;
&lt;li&gt;
How we structure our work with cadence, flow and pull&amp;nbsp;&lt;/li&gt;
&lt;li&gt;
How we establishing more transparency and accountability 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
What do you think? 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=63647c83-eaad-461f-946c-809d17b9e960" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,63647c83-eaad-461f-946c-809d17b9e960.aspx</comments>
      <category>Agile 2009</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=28caaf55-01ca-4102-83b5-bfa03ad88044</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,28caaf55-01ca-4102-83b5-bfa03ad88044.aspx</pingback:target>
      <dc:creator>Mads Troels Hansen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,28caaf55-01ca-4102-83b5-bfa03ad88044.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=28caaf55-01ca-4102-83b5-bfa03ad88044</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
When slicing the Agile 2009 conference and looking at trends, there was a lot of talk
about Kanban, Mainstream Agile and using Games for improving and learning Agile/Lean
techniques. But also group dynamics, how we are working together, how we collaborate
and how to create a shared vision were included in many sessions and discussions. 
</p>
        <p>
          <span style="font-size: 14pt;">
            <strong>Games </strong>
          </span>
        </p>
        <p>
There were many games at the conference, and it was very interesting to see how people
got involved in another way when playing a game using Agile and Lean techniques, instead
of trying to understand someone explaining some principles and practices. Using games
in teaching will make it much more effective and fun. I will start to include more
games in the future, when facilitating workshops. 
</p>
        <p>
          <span style="font-size: 14pt;">
            <strong>Kanban </strong>
          </span>
        </p>
        <p>
There was also a lot of "Buzz" about Kanban, and I can see a lot of interest in <a href="../dansk.aspx/Workshops/Mere_effektiv_projektstyring_med_Kanban_og_Lean">my
Kanban talk on September 15<sup>th</sup></a>. A Kanban system can be used to implement
different Lean techniques in your Agile processes. It can be a more visible way to
look at flow in the daily work, limit the work in progress, establishing a cadence
etc. 
</p>
        <p>
I got a lot of interesting input to use on <a href="../dansk.aspx/Workshops/Mere_effektiv_projektstyring_med_Kanban_og_Lean">my
Kanban talk on September 15<sup>th</sup></a> and also to include a Kanban game instead
of different exercises on the <a href="../dansk.aspx/Workshops/Avanceret_projektstyring_med_Kanban_og_Lean">Kanban
workshop on October 28<sup>th</sup></a>. 
</p>
        <p>
          <strong>
            <span style="font-size: 14pt;">Experience reports</span>
          </strong>
        </p>
        <p>
Experience reports were also a main topic, and it is very important to capture and
share the learning from real life problems, failures and success. 
</p>
        <p>
You can get the experience report I wrote for the conference from <a href="http://tinyurl.com/CmmiAgile">http://tinyurl.com/CmmiAgile</a> and
the slides from the Agile 2009 session on <a href="http://tinyurl.com/nk2g5p">http://tinyurl.com/nk2g5p</a>.
It is about Agile with distributed team, scaling Agile teams, creating a kaizen culture
across many teams and continues to deliver more business value. 
</p>
        <p>
          <span style="font-size: 14pt;">
            <strong>Collaboration tools </strong>
          </span>
        </p>
        <p>
Looking back at the conference, I also see a trend for more collaborative Agile tools.
Many people talked about tools to support better collaboration and communication.
I have a number of business cards from different venders, who created a new Agile
tool with more collaboration and asked me to have a look at the free version. It will
be interesting to see how those tools will evolve in the future. 
</p>
        <p>
I also talked with some people from EMC | Conchango and played with their integration
between TFS and a smart board. See picture below. Using the smart board, you collaborate
with stories from TFS, do estimation with planning poker cards and have the values
saved directly back into TFS. A fun and costly solution. 
</p>
        <p>
          <img src="http://www.bestbrains.dk/Blog/content/binary/Trends_090709_1148_Agile2009tr1.png" border="0" />
        </p>
        <p>
          <span style="color: rgb(79, 129, 189); font-size: 9pt;">
            <strong>EMC| Conchango software
integration a Smartboard into TFS </strong>
          </span>
        </p>
        <p>
A cheaper solution is the Wii virtual whiteboard from Johnny Chung Lee. <a href="http://johnnylee.net/projects/wii/">http://johnnylee.net/projects/wii/</a>.
It can be a easy way to make a virtual task board, see also this <a href="http://www.youtube.com/watch?v=M-ZUM284ry8&amp;feature=player_embedded">YouTube
video</a>. 
</p>
        <img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=28caaf55-01ca-4102-83b5-bfa03ad88044" />
      </body>
      <title>Agile 2009 – trends</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,28caaf55-01ca-4102-83b5-bfa03ad88044.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/09/07/Agile2009Trends.aspx</link>
      <pubDate>Mon, 07 Sep 2009 12:03:11 GMT</pubDate>
      <description>&lt;p&gt;
When slicing the Agile 2009 conference and looking at trends, there was a lot of talk
about Kanban, Mainstream Agile and using Games for improving and learning Agile/Lean
techniques. But also group dynamics, how we are working together, how we collaborate
and how to create a shared vision were included in many sessions and discussions. 
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 14pt;"&gt;&lt;strong&gt;Games &lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
There were many games at the conference, and it was very interesting to see how people
got involved in another way when playing a game using Agile and Lean techniques, instead
of trying to understand someone explaining some principles and practices. Using games
in teaching will make it much more effective and fun. I will start to include more
games in the future, when facilitating workshops. 
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 14pt;"&gt;&lt;strong&gt;Kanban &lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
There was also a lot of "Buzz" about Kanban, and I can see a lot of interest in &lt;a href="../dansk.aspx/Workshops/Mere_effektiv_projektstyring_med_Kanban_og_Lean"&gt;my
Kanban talk on September 15&lt;sup&gt;th&lt;/sup&gt;&lt;/a&gt;. A Kanban system can be used to implement
different Lean techniques in your Agile processes. It can be a more visible way to
look at flow in the daily work, limit the work in progress, establishing a cadence
etc. 
&lt;/p&gt;
&lt;p&gt;
I got a lot of interesting input to use on &lt;a href="../dansk.aspx/Workshops/Mere_effektiv_projektstyring_med_Kanban_og_Lean"&gt;my
Kanban talk on September 15&lt;sup&gt;th&lt;/sup&gt;&lt;/a&gt; and also to include a Kanban game instead
of different exercises on the &lt;a href="../dansk.aspx/Workshops/Avanceret_projektstyring_med_Kanban_og_Lean"&gt;Kanban
workshop on October 28&lt;sup&gt;th&lt;/sup&gt;&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;Experience reports&lt;/span&gt; &lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Experience reports were also a main topic, and it is very important to capture and
share the learning from real life problems, failures and success. 
&lt;/p&gt;
&lt;p&gt;
You can get the experience report I wrote for the conference from &lt;a href="http://tinyurl.com/CmmiAgile"&gt;http://tinyurl.com/CmmiAgile&lt;/a&gt; and
the slides from the Agile 2009 session on &lt;a href="http://tinyurl.com/nk2g5p"&gt;http://tinyurl.com/nk2g5p&lt;/a&gt;.
It is about Agile with distributed team, scaling Agile teams, creating a kaizen culture
across many teams and continues to deliver more business value. 
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 14pt;"&gt;&lt;strong&gt;Collaboration tools &lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
Looking back at the conference, I also see a trend for more collaborative Agile tools.
Many people talked about tools to support better collaboration and communication.
I have a number of business cards from different venders, who created a new Agile
tool with more collaboration and asked me to have a look at the free version. It will
be interesting to see how those tools will evolve in the future. 
&lt;/p&gt;
&lt;p&gt;
I also talked with some people from EMC | Conchango and played with their integration
between TFS and a smart board. See picture below. Using the smart board, you collaborate
with stories from TFS, do estimation with planning poker cards and have the values
saved directly back into TFS. A fun and costly solution. 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/Trends_090709_1148_Agile2009tr1.png" border="0"&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;span style="color: rgb(79, 129, 189); font-size: 9pt;"&gt;&lt;strong&gt;EMC| Conchango software
integration a Smartboard into TFS &lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
A cheaper solution is the Wii virtual whiteboard from Johnny Chung Lee. &lt;a href="http://johnnylee.net/projects/wii/"&gt;http://johnnylee.net/projects/wii/&lt;/a&gt;.
It can be a easy way to make a virtual task board, see also this &lt;a href="http://www.youtube.com/watch?v=M-ZUM284ry8&amp;amp;feature=player_embedded"&gt;YouTube
video&lt;/a&gt;. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=28caaf55-01ca-4102-83b5-bfa03ad88044" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,28caaf55-01ca-4102-83b5-bfa03ad88044.aspx</comments>
      <category>Agile 2009</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=786d3366-44a8-4ef1-b4a2-b93877dc30be</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,786d3366-44a8-4ef1-b4a2-b93877dc30be.aspx</pingback:target>
      <dc:creator>Mads Troels Hansen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,786d3366-44a8-4ef1-b4a2-b93877dc30be.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=786d3366-44a8-4ef1-b4a2-b93877dc30be</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In this <a href="ct.ashx?id=bb2dfefe-8840-47cf-a3f6-d317ac49f70d&amp;url=http%3a%2f%2fwww.bestbrains.dk%2fBlog%2f2009%2f08%2f31%2fAgile2009TheConference.aspx">slice </a>about
inspiration from Agile 2009, I will write about the inspiring elements from different
sessions and discussions with other participants. It will be more facts than thoughts
and trends (I will cover that in later blog posts, slicing the Agile 2009 conference). 
</p>
        <p>
For me, the primary source of inspiration was from the workshops involving some kind
of games. Games can be a great way to learn about different practices, principles
and tools. Especially because they don't have elements from your daily work, so the
collaboration between the participants often will be much better and focus on the
complete team, a shared goal and not specific roles (well, well, I know we have all
those agile cross functional teams…but…). 
</p>
        <p>
I went to <a href="http://www.agile2009.com/node/257">The Business Value Game</a> with
Portia Tung and Pascal Van Cauwenberghe. It was a game about how to deliver maximum
business value, prioritization, estimate business value and collaboration between
different roles. The session was a bit chaotic with too many people in the room, but
it got some really interesting concepts. It was also interesting to see how people
got engaged in the game. I observed many people focusing quite a lot on learning the
game rules and less on optimizing the business value. For example in my team, we did
not talk about remove stories from the game to release more frequent, but tried to
maximize the delivery of ALL stories. Maybe it was because the session had too many
people and we did not have the time to think on that strategy, but it might also be
a pattern in many real teams? 
</p>
        <p>
          <img src="http://www.bestbrains.dk/Blog/content/binary/BusinessValueGame.png" border="0" />
        </p>
        <p>
          <span style="color: rgb(79, 129, 189); font-size: 9pt;">
            <strong>The Business Value
Game </strong>
          </span>
        </p>
        <p>
Portia and Pascal also facilitated the <a href="http://www.agile2009.com/node/503">The
Bottleneck Game</a>, and some of my colleges from BestBrains went to that workshop.
It was a game about options, Theory of Constraints, System Thinking and collaboration
on a common goal. It is a great way to learn those agile and lean techniques. I will
defiantly use this game with different teams. 
</p>
        <p>
I also went to <a href="http://www.agile2009.com/node/970">The Kanban Game</a> with
Tsutomu Yasui. It was also a workshop with too many people and it took some time before
we had enough problems to manage in the iterations of the game. After the first iteration
it got more interesting and had some good elements. I think the game could be much
better, by not having the first iteration and maybe facilitate the usage of different
Kanban elements. 
</p>
        <p>
          <img src="http://www.bestbrains.dk/Blog/content/binary/KanbanGame.png" border="0" />
        </p>
        <p>
          <span style="color: rgb(79, 129, 189); font-size: 9pt;">
            <strong>The Kanban Game </strong>
          </span>
        </p>
        <p>
Another fun and inspiring workshop was <a href="http://www.agile2009.com/node/2473">May
the Forces Be With You, Exploring the Forces Driving and Restraining Agile</a> with
Rod Claar and Douglas Shimp. We created two teams, the Drivers and the Restrainers
and had to present different forces in a humoristic way for some selected judges.
It was a fun way to explore the forces driving and restraining agile 
</p>
        <p>
          <img src="http://www.bestbrains.dk/Blog/content/binary/Forces.png" border="0" />
        </p>
        <p>
          <span style="color: rgb(79, 129, 189); font-size: 9pt;">
            <strong>May the Forces Be
With You </strong>
          </span>
        </p>
        <p>
          <a href="http://www.agile2009.com/node/573">"Flirting" With Your Customers </a> with
Jenni Dow and Ole Jepsen was a fresh way of looking at the customer relationship using
8 steps to build a good customer relationship. It was fun and interesting. 
</p>
        <p>
          <img src="http://www.bestbrains.dk/Blog/content/binary/Flirting_090209_2315_Agile2009in4.png" border="0" />
        </p>
        <p>
          <span style="color: rgb(79, 129, 189); font-size: 9pt;">
            <strong>Flirting With Your
Customers </strong>
          </span>
        </p>
        <p>
The last session I will include in this slice, was a workshop, <a href="http://www.agile2009.com/node/2989">First,
kill all the Metrics!</a>, with Niel Nickolaisen and Chris Matts. We talked about
many potential meaningful metrics, but did not find some really good examples in my
group. I might reflect more on this area in a later Agile 2009 slice. 
</p>
        <p>
          <img src="http://www.bestbrains.dk/Blog/content/binary/Metrics_090209_2315_Agile2009in5.png" border="0" />
        </p>
        <p>
          <span style="color: rgb(79, 129, 189); font-size: 9pt;">
            <strong>First kill all the
Metrics! </strong>
          </span>
        </p>
        <p>
Talking with other participants were also fund and inspiring, but I did not had the
time to talk with enough people. It was inspiring to hear agile and lean stories from
the trenches around the world, even though many people and teams seem to struggle
with retrospectives and problem solving techniques. 
</p>
        <p>
        </p>
        <br />
        <br />
        <img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=786d3366-44a8-4ef1-b4a2-b93877dc30be" />
      </body>
      <title>Agile 2009 – inspiration</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,786d3366-44a8-4ef1-b4a2-b93877dc30be.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/09/01/Agile2009Inspiration.aspx</link>
      <pubDate>Tue, 01 Sep 2009 23:19:32 GMT</pubDate>
      <description>&lt;p&gt;
In this &lt;a href="ct.ashx?id=bb2dfefe-8840-47cf-a3f6-d317ac49f70d&amp;amp;url=http%3a%2f%2fwww.bestbrains.dk%2fBlog%2f2009%2f08%2f31%2fAgile2009TheConference.aspx"&gt;slice &lt;/a&gt;about
inspiration from Agile 2009, I will write about the inspiring elements from different
sessions and discussions with other participants. It will be more facts than thoughts
and trends (I will cover that in later blog posts, slicing the Agile 2009 conference). 
&lt;/p&gt;
&lt;p&gt;
For me, the primary source of inspiration was from the workshops involving some kind
of games. Games can be a great way to learn about different practices, principles
and tools. Especially because they don't have elements from your daily work, so the
collaboration between the participants often will be much better and focus on the
complete team, a shared goal and not specific roles (well, well, I know we have all
those agile cross functional teams…but…). 
&lt;/p&gt;
&lt;p&gt;
I went to &lt;a href="http://www.agile2009.com/node/257"&gt;The Business Value Game&lt;/a&gt; with
Portia Tung and Pascal Van Cauwenberghe. It was a game about how to deliver maximum
business value, prioritization, estimate business value and collaboration between
different roles. The session was a bit chaotic with too many people in the room, but
it got some really interesting concepts. It was also interesting to see how people
got engaged in the game. I observed many people focusing quite a lot on learning the
game rules and less on optimizing the business value. For example in my team, we did
not talk about remove stories from the game to release more frequent, but tried to
maximize the delivery of ALL stories. Maybe it was because the session had too many
people and we did not have the time to think on that strategy, but it might also be
a pattern in many real teams? 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/BusinessValueGame.png" border="0"&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;span style="color: rgb(79, 129, 189); font-size: 9pt;"&gt;&lt;strong&gt;The Business Value
Game &lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
Portia and Pascal also facilitated the &lt;a href="http://www.agile2009.com/node/503"&gt;The
Bottleneck Game&lt;/a&gt;, and some of my colleges from BestBrains went to that workshop.
It was a game about options, Theory of Constraints, System Thinking and collaboration
on a common goal. It is a great way to learn those agile and lean techniques. I will
defiantly use this game with different teams. 
&lt;/p&gt;
&lt;p&gt;
I also went to &lt;a href="http://www.agile2009.com/node/970"&gt;The Kanban Game&lt;/a&gt; with
Tsutomu Yasui. It was also a workshop with too many people and it took some time before
we had enough problems to manage in the iterations of the game. After the first iteration
it got more interesting and had some good elements. I think the game could be much
better, by not having the first iteration and maybe facilitate the usage of different
Kanban elements. 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/KanbanGame.png" border="0"&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;span style="color: rgb(79, 129, 189); font-size: 9pt;"&gt;&lt;strong&gt;The Kanban Game &lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
Another fun and inspiring workshop was &lt;a href="http://www.agile2009.com/node/2473"&gt;May
the Forces Be With You, Exploring the Forces Driving and Restraining Agile&lt;/a&gt; with
Rod Claar and Douglas Shimp. We created two teams, the Drivers and the Restrainers
and had to present different forces in a humoristic way for some selected judges.
It was a fun way to explore the forces driving and restraining agile 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/Forces.png" border="0"&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;span style="color: rgb(79, 129, 189); font-size: 9pt;"&gt;&lt;strong&gt;May the Forces Be
With You &lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.agile2009.com/node/573"&gt;"Flirting" With Your Customers &lt;/a&gt; with
Jenni Dow and Ole Jepsen was a fresh way of looking at the customer relationship using
8 steps to build a good customer relationship. It was fun and interesting. 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/Flirting_090209_2315_Agile2009in4.png" border="0"&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;span style="color: rgb(79, 129, 189); font-size: 9pt;"&gt;&lt;strong&gt;Flirting With Your
Customers &lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
The last session I will include in this slice, was a workshop, &lt;a href="http://www.agile2009.com/node/2989"&gt;First,
kill all the Metrics!&lt;/a&gt;, with Niel Nickolaisen and Chris Matts. We talked about
many potential meaningful metrics, but did not find some really good examples in my
group. I might reflect more on this area in a later Agile 2009 slice. 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/Metrics_090209_2315_Agile2009in5.png" border="0"&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;span style="color: rgb(79, 129, 189); font-size: 9pt;"&gt;&lt;strong&gt;First kill all the
Metrics! &lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
Talking with other participants were also fund and inspiring, but I did not had the
time to talk with enough people. It was inspiring to hear agile and lean stories from
the trenches around the world, even though many people and teams seem to struggle
with retrospectives and problem solving techniques. 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=786d3366-44a8-4ef1-b4a2-b93877dc30be" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,786d3366-44a8-4ef1-b4a2-b93877dc30be.aspx</comments>
      <category>Agile 2009</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=bb2dfefe-8840-47cf-a3f6-d317ac49f70d</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,bb2dfefe-8840-47cf-a3f6-d317ac49f70d.aspx</pingback:target>
      <dc:creator>Mads Troels Hansen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,bb2dfefe-8840-47cf-a3f6-d317ac49f70d.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=bb2dfefe-8840-47cf-a3f6-d317ac49f70d</wfw:commentRss>
      <title>Agile 2009 – the venue</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,bb2dfefe-8840-47cf-a3f6-d317ac49f70d.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/09/01/Agile2009TheVenue.aspx</link>
      <pubDate>Tue, 01 Sep 2009 21:57:28 GMT</pubDate>
      <description>&lt;link rel="File-List" href="file:///E:%5CUsers%5Cmads%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;
&lt;link rel="Edit-Time-Data" href="file:///E:%5CUsers%5Cmads%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_editdata.mso"&gt;
&lt;!--[if !mso]&gt;
&lt;style&gt;
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
&lt;/style&gt;
&lt;![endif]--&gt;
&lt;link rel="themeData" href="file:///E:%5CUsers%5Cmads%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;
&lt;link rel="colorSchemeMapping" href="file:///E:%5CUsers%5Cmads%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves&gt;false&lt;/w:TrackMoves&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:HyphenationZone&gt;21&lt;/w:HyphenationZone&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;DA&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:DontVertAlignCellWithSp/&gt;
   &lt;w:DontBreakConstrainedForcedTables/&gt;
   &lt;w:DontVertAlignInTxbx/&gt;
   &lt;w:Word11KerningPairs/&gt;
   &lt;w:CachedColBalance/&gt;
   &lt;w:UseFELayout/&gt;
  &lt;/w:Compatibility&gt;
  &lt;w:DoNotOptimizeForBrowser/&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val="Cambria Math"/&gt;
   &lt;m:brkBin m:val="before"/&gt;
   &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;
   &lt;m:smallFrac m:val="off"/&gt;
   &lt;m:dispDef/&gt;
   &lt;m:lMargin m:val="0"/&gt;
   &lt;m:rMargin m:val="0"/&gt;
   &lt;m:defJc m:val="centerGroup"/&gt;
   &lt;m:wrapIndent m:val="1440"/&gt;
   &lt;m:intLim m:val="subSup"/&gt;
   &lt;m:naryLim m:val="undOvr"/&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267"&gt;
  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;
  &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;
  &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;
  &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;
  &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/&gt;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;
  &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;
  &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt;
&lt;!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:1;
	mso-generic-font-family:roman;
	mso-font-format:other;
	mso-font-pitch:variable;
	mso-font-signature:0 0 0 0 0 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-520092929 1073786111 9 0 415 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-priority:1;
	mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:10.0pt;
	margin-left:0cm;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:minor-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	mso-bidi-font-size:10.0pt;
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:minor-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
.MsoPapDefault
	{mso-style-type:export-only;
	margin-bottom:10.0pt;}
@page Section1
	{size:595.3pt 841.9pt;
	margin:3.0cm 2.0cm 3.0cm 2.0cm;
	mso-header-margin:35.4pt;
	mso-footer-margin:35.4pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--&gt;
&lt;/style&gt;
&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin-top:0cm;
	mso-para-margin-right:0cm;
	mso-para-margin-bottom:10.0pt;
	mso-para-margin-left:0cm;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
&lt;/style&gt;
&lt;![endif]--&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="" lang="EN-US"&gt;In this &lt;a href="http://www.bestbrains.dk/Blog/2009/08/31/Agile2009TheConference.aspx"&gt;slice &lt;/a&gt;about
the Agile 2009 venue, I will write about the city, the hotel and include some elements
from the two keynotes.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="" lang="EN-US"&gt;I liked to be in Chicago, it is a pleasant city with a
breathtaking skyline. People asked me a couple of times, if I needed any help when
I tried to figure out where I was on my city map. It looked like the residents were
quite relaxed and helpful. Not like in some other US cities I have visited. The hotel
was ok, but not special. Most of the conference rooms were located in the basement,
so I used many of the breaks to get up and out of the building to breath fresh air.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/chicago.jpg" border="0" height="383" width="541"&gt;
&lt;br&gt;
&lt;span style="" lang="EN-US"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="" lang="EN-US"&gt;Back in time, there has been a lot of innovation in Chicago
and the city plans and architecture are quite unique. In 1871 there was the big fire
in Chicago, where 17,500 buildings were destroyed, many people got homeless and a
large part of the city had to be rebuilt. Chicago also had another very special problem:
It stood on swamp. Actually they changed the catastrophe into an opportunity and found
an innovative solution to the swamp problem by constructing the world's first completely
iron-and-steel-framed building. The skyscraper. 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="" lang="EN-US"&gt;It is interesting to think about the reason behind inventing
and constructing the skyscraper. They had a huge problem, and found an elegant solution
to solve it. That’s innovation! Maybe we could learn something about innovation by
looking back at the invention of the first skyscraper?&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="" lang="EN-US"&gt;In the second keynote at the Agile 2009 conference, Jared
M. Spool talked about what it takes to build a design team that meets today’s needs.
Jared talked about how to integrate the needs from the users in the design process
and not “just” build more software. “Unfortunately” he had several examples of companies
using billions of $ on designs that did not deliver more business value. I think we
often in the software community are more focused on delivering more software in a
high effective way, than actually inventing the innovative solutions. The solution
with the skyscraper was great, because it was a solution to a huge need after the
big fire and the problem with the city on swamp. It was tomorrow’s solution for today’s
problem. 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="" lang="EN-US"&gt;We might find much more value by looking at why we build
software rather than building more software faster and faster!&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="" lang="EN-US"&gt;In the first keynote, Alistair Cockburn talked about agile
being more main stream, the iceberg is melted down in the ocean. He also talked about
how important it still was to have trust and effective communication. It was very
entertaining, but I think there is still a long way to have agile out in the big enterprises.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=bb2dfefe-8840-47cf-a3f6-d317ac49f70d" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,bb2dfefe-8840-47cf-a3f6-d317ac49f70d.aspx</comments>
      <category>Agile 2009</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=0f160e25-04ff-4460-ac41-2a38e3784bf8</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,0f160e25-04ff-4460-ac41-2a38e3784bf8.aspx</pingback:target>
      <dc:creator>Mads Troels Hansen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,0f160e25-04ff-4460-ac41-2a38e3784bf8.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=0f160e25-04ff-4460-ac41-2a38e3784bf8</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">This year, nearly 1400 attendees contributed
to the second largest Agile conference in Chicago, USA. Next year the Agile 2010 conference
will be in Nashville.<br /><br />
I have used some time to do some reflection about the conference. I also got back
to a more stable internet connection (the internet connection at the conference hotel
was not that stable…), so now it is time to do some more thinking and writing.<br /><br />
Instead of writing about all the sessions I attended, I thought it would be more interesting
to slice the whole conference in different areas combining the many different viewpoints
into some kind of context. If you are interested in all the sessions, you can find
the complete program with all the sessions at <a href="http://www.agile2009.com">www.agile2009.com</a>.<br /><br />
I have selected to view the conference from the following 5 slices:<br /><br /><div align="center"> <img src="http://www.bestbrains.dk/Blog/content/binary/083009_1957_Agile2009th1.png" border="0" /><br /></div><br />
For the following days, I will post a new slice. In that way, I will try to incrementally
create a more complete view of the conference and try to put the value from the sessions
into a context. At least from my point of view.<br /><br />
Stay tuned more to come.<br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=0f160e25-04ff-4460-ac41-2a38e3784bf8" /></body>
      <title>Agile 2009 - the conference</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,0f160e25-04ff-4460-ac41-2a38e3784bf8.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/08/31/Agile2009TheConference.aspx</link>
      <pubDate>Mon, 31 Aug 2009 08:20:09 GMT</pubDate>
      <description>This year, nearly 1400 attendees contributed to the second largest Agile
conference in Chicago, USA. Next year the Agile 2010 conference will be in Nashville.&lt;br&gt;
&lt;br&gt;
I have used some time to do some reflection about the conference. I also got back
to a more stable internet connection (the internet connection at the conference hotel
was not that stable…), so now it is time to do some more thinking and writing.&lt;br&gt;
&lt;br&gt;
Instead of writing about all the sessions I attended, I thought it would be more interesting
to slice the whole conference in different areas combining the many different viewpoints
into some kind of context. If you are interested in all the sessions, you can find
the complete program with all the sessions at &lt;a href="http://www.agile2009.com"&gt;www.agile2009.com&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
I have selected to view the conference from the following 5 slices:&lt;br&gt;
&lt;br&gt;
&lt;div align="center"&gt;&amp;nbsp;&lt;img src="http://www.bestbrains.dk/Blog/content/binary/083009_1957_Agile2009th1.png" border="0"&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
For the following days, I will post a new slice. In that way, I will try to incrementally
create a more complete view of the conference and try to put the value from the sessions
into a context. At least from my point of view.&lt;br&gt;
&lt;br&gt;
Stay tuned more to come.&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=0f160e25-04ff-4460-ac41-2a38e3784bf8" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,0f160e25-04ff-4460-ac41-2a38e3784bf8.aspx</comments>
      <category>Agile 2009</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=dc81e73f-bfe3-49ac-86a5-4c4076f7fe3d</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,dc81e73f-bfe3-49ac-86a5-4c4076f7fe3d.aspx</pingback:target>
      <dc:creator>Lars Thorup</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,dc81e73f-bfe3-49ac-86a5-4c4076f7fe3d.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=dc81e73f-bfe3-49ac-86a5-4c4076f7fe3d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">At Agile 2009, I attended an interesting
workshop on the problems of <a href="http://www.agile2009.com/node/1010">end-to-end
testing</a>. Here is the idea that I presented at the workshop:<br /><br />
I believe you need to have some end-to-end testing, because it helps you get fast
feedback about end-to-end-related bugs. But we don't need to have a lot of those tests
because then most of them test the same end-to-end-related stuff. The problem is that
it is so easy to write those tests, especially for legacy code, so people end up having
a lot of them. So a solution might be to put a limit on the amount of time that end-to-end
testing is allowed to take. And of course we can let the build server enforce that
limit by failing the build when the limit is exceeded. When a developer exceeds the
limit, some of the end-to-end-tests must then be converted into isolated unit tests.
When we only have a few end-to-end tests, neither their slowness nor their brittleness
is such a big problem.<br /><p></p><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=dc81e73f-bfe3-49ac-86a5-4c4076f7fe3d" /></body>
      <title>Slow and Brittle: Replacing End-to-End Testing</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,dc81e73f-bfe3-49ac-86a5-4c4076f7fe3d.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/08/27/SlowAndBrittleReplacingEndtoEndTesting.aspx</link>
      <pubDate>Thu, 27 Aug 2009 23:18:38 GMT</pubDate>
      <description>At Agile 2009, I attended an interesting workshop on the problems of &lt;a href="http://www.agile2009.com/node/1010"&gt;end-to-end
testing&lt;/a&gt;. Here is the idea that I presented at the workshop:&lt;br&gt;
&lt;br&gt;
I believe you need to have some end-to-end testing, because it helps you get fast
feedback about end-to-end-related bugs. But we don't need to have a lot of those tests
because then most of them test the same end-to-end-related stuff. The problem is that
it is so easy to write those tests, especially for legacy code, so people end up having
a lot of them. So a solution might be to put a limit on the amount of time that end-to-end
testing is allowed to take. And of course we can let the build server enforce that
limit by failing the build when the limit is exceeded. When a developer exceeds the
limit, some of the end-to-end-tests must then be converted into isolated unit tests.
When we only have a few end-to-end tests, neither their slowness nor their brittleness
is such a big problem.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=dc81e73f-bfe3-49ac-86a5-4c4076f7fe3d" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,dc81e73f-bfe3-49ac-86a5-4c4076f7fe3d.aspx</comments>
      <category>Automated Testing</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=3ecc68c1-1fce-45b3-80fe-78960727d47c</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,3ecc68c1-1fce-45b3-80fe-78960727d47c.aspx</pingback:target>
      <dc:creator>Thomas Blomseth</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,3ecc68c1-1fce-45b3-80fe-78960727d47c.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=3ecc68c1-1fce-45b3-80fe-78960727d47c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Games is a big topic at Agile 2009. Not
computer games, but participatory, experential learning games where the players learn
about the dynamics of organizations and Agile software development. I've been to several
great sessions where games played main role, e.g. <a href="http://agile2009.agilealliance.org/node/503">The
Bottleneck Game</a> and <a href="http://agile2009.agilealliance.org/node/2320">Applying
Systems Thinking for Organizations through Play</a>.<br /><br />
My take on the popularity of experential learning games at the conference is that
we've tried for some time with all the hard-hitting, rational arguments for why Agile
is a better way of developing software but those arguments fall short with people
that are deeply rooted in other ways of seeing the world. To be able to reach out
to those people the Agile community needs ways to provide those people with experiences
that will convince both intellectually and emotionally. Experiental learning games
is a great way of doing that. And fun too. 
<br /><br /><p></p><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=3ecc68c1-1fce-45b3-80fe-78960727d47c" /></body>
      <title>Games, games, games...</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,3ecc68c1-1fce-45b3-80fe-78960727d47c.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/08/27/GamesGamesGames.aspx</link>
      <pubDate>Thu, 27 Aug 2009 15:13:18 GMT</pubDate>
      <description>Games is a big topic at Agile 2009. Not computer games, but participatory, experential learning games where the players learn about the dynamics of organizations and Agile software development. I've been to several great sessions where games played main role, e.g. &lt;a href="http://agile2009.agilealliance.org/node/503"&gt;The
Bottleneck Game&lt;/a&gt; and &lt;a href="http://agile2009.agilealliance.org/node/2320"&gt;Applying
Systems Thinking for Organizations through Play&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
My take on the popularity of experential learning games at the conference is that
we've tried for some time with all the hard-hitting, rational arguments for why Agile
is a better way of developing software but those arguments fall short with people
that are deeply rooted in other ways of seeing the world. To be able to reach out
to those people the Agile community needs ways to provide those people with experiences
that will convince both intellectually and emotionally. Experiental learning games
is a great way of doing that. And fun too. 
&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=3ecc68c1-1fce-45b3-80fe-78960727d47c" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,3ecc68c1-1fce-45b3-80fe-78960727d47c.aspx</comments>
      <category>Agile</category>
      <category>Learning</category>
      <category>Agile 2009</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=257dd850-6bfa-4709-b7ae-9ebb2371e25a</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,257dd850-6bfa-4709-b7ae-9ebb2371e25a.aspx</pingback:target>
      <dc:creator>Lars Thorup</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,257dd850-6bfa-4709-b7ae-9ebb2371e25a.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=257dd850-6bfa-4709-b7ae-9ebb2371e25a</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">As previously <a href="http://www.bestbrains.dk/Blog/2009/06/03/CollaborativeAgileContracts.aspx">reported
here</a> we are establishing a new kind of contract for developing software solutions,
currently dubbed the "Collaborative Agile Contract". In short this contract introduces
fairness to ensure that both risks and gains are shared between customer and supplier.
This ensures incentives for both parties to reach the right solution as fast as possible. 
<br /><br />
On the front page of todays Wall Street Journal is an article <a href="http://online.wsj.com/article/SB125106954159552335.html#articleTabs">'Billable
Hour' Under Attack</a>. This article focus on the trend in relationships between clients
and law firms to find better kinds of contract than "payed by the hour", exemplified
with the following quote:<blockquote> "Pfizer could have demanded a discount from
firm's hourly rates, Ms. Schulman said, but she hopes for a shift to a system that
encourages firms to work more collaboratively with Pfizer." 
<br /></blockquote> It seems that the collaborative agile contract might be useful also
outside the software business.<br /><font color="#ffffff">agile kontrakter</font><br /><p></p><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=257dd850-6bfa-4709-b7ae-9ebb2371e25a" /></body>
      <title>Agile contracts for Lawyers?</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,257dd850-6bfa-4709-b7ae-9ebb2371e25a.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/08/24/AgileContractsForLawyers.aspx</link>
      <pubDate>Mon, 24 Aug 2009 15:23:18 GMT</pubDate>
      <description>As previously &lt;a href="http://www.bestbrains.dk/Blog/2009/06/03/CollaborativeAgileContracts.aspx"&gt;reported
here&lt;/a&gt; we are establishing a new kind of contract for developing software solutions,
currently dubbed the "Collaborative Agile Contract". In short this contract introduces
fairness to ensure that both risks and gains are shared between customer and supplier.
This ensures incentives for both parties to reach the right solution as fast as possible. 
&lt;br&gt;
&lt;br&gt;
On the front page of todays Wall Street Journal is an article &lt;a href="http://online.wsj.com/article/SB125106954159552335.html#articleTabs"&gt;'Billable
Hour' Under Attack&lt;/a&gt;. This article focus on the trend in relationships between clients
and law firms to find better kinds of contract than "payed by the hour", exemplified
with the following quote:&lt;blockquote&gt; "Pfizer could have demanded a discount from
firm's hourly rates, Ms. Schulman said, but she hopes for a shift to a system that
encourages firms to work more collaboratively with Pfizer." 
&lt;br&gt;
&lt;/blockquote&gt; It seems that the collaborative agile contract might be useful also
outside the software business.&lt;br&gt;
&lt;font color="#ffffff"&gt;agile kontrakter&lt;/font&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=257dd850-6bfa-4709-b7ae-9ebb2371e25a" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,257dd850-6bfa-4709-b7ae-9ebb2371e25a.aspx</comments>
      <category>Agile</category>
      <category>contract</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=d078e267-f96b-4a39-9ed1-6989ffb7db43</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,d078e267-f96b-4a39-9ed1-6989ffb7db43.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,d078e267-f96b-4a39-9ed1-6989ffb7db43.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=d078e267-f96b-4a39-9ed1-6989ffb7db43</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://www.bestbrains.dk/Blog/content/binary/kanbancard.jpg" style="float: left; margin-right: 5px; margin-bottom: 5px;" alt="Kanban card" border="0" />Kanban
is the japanese word for signalling card, but a signal for what? In the 1950s a Japanese
delegation including Sakichi Toyoda (founder of Toyota) and Taiichi Ohno (on of the
masterminds behind the Toyota Production System) went to 
<br />
the United States to observe how Ford was mass producing cars. They were not impressed.
During a stop at an american supermarket they witnessed how items were automatically
resupplied once sold. The beauty of this concept was its ability to ensure a sufficient
number of items was available to customers, without having to bind too much cash in
unneeded inventory.<br /><br />
Reading the InfoQ newsletter the other day, I found that "Kanban is the hottest buzz
since the dawn of XP" (eXtreme Programming). It is really so? Kanban is great for
limiting queues of items with a certain level of uniformity - but does software requirements
fit that? We certainly have queues of work that needs to be controlled - and requirements
certainly can be described in a somewhat uniform way. The question really is
- before implementing a kanban system to limit work-in-process, do you know for a
fact that this is your biggest issue? I look forward to see kanban systems implemented
in software development organizations where highly varying task size, complexity and
context is addressed effectively.<br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=d078e267-f96b-4a39-9ed1-6989ffb7db43" /></body>
      <title>Is Kanban useful in software development?</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,d078e267-f96b-4a39-9ed1-6989ffb7db43.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/08/24/IsKanbanUsefulInSoftwareDevelopment.aspx</link>
      <pubDate>Mon, 24 Aug 2009 09:13:41 GMT</pubDate>
      <description>&lt;img src="http://www.bestbrains.dk/Blog/content/binary/kanbancard.jpg" style="float: left; margin-right: 5px; margin-bottom: 5px;" alt="Kanban card" border="0"&gt;Kanban
is the japanese word for signalling card, but a signal for what? In the 1950s a Japanese
delegation including Sakichi Toyoda (founder of Toyota) and Taiichi Ohno (on of the
masterminds behind the Toyota Production System) went to 
&lt;br&gt;
the United States to observe how Ford was mass producing cars. They were not impressed.
During a stop at an american supermarket they witnessed how items were automatically
resupplied once sold. The beauty of this concept was its ability to ensure a sufficient
number of items was available to customers, without having to bind too much cash in
unneeded inventory.&lt;br&gt;
&lt;br&gt;
Reading the InfoQ newsletter the other day, I found that "Kanban is the hottest buzz
since the dawn of XP" (eXtreme Programming). It is really so? Kanban is great for
limiting queues of items with a certain level of uniformity - but does software requirements
fit that? We certainly have queues of work that needs to be controlled - and requirements
certainly can be described in a&amp;nbsp;somewhat uniform way. The question really is
- before implementing a kanban system to limit work-in-process, do you know for a
fact that this is your biggest issue? I look forward to see kanban systems implemented
in software development organizations where highly varying task size, complexity and
context is addressed effectively.&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=d078e267-f96b-4a39-9ed1-6989ffb7db43" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,d078e267-f96b-4a39-9ed1-6989ffb7db43.aspx</comments>
      <category>Japan</category>
      <category>Kanban</category>
      <category>Queing Theory</category>
      <category>Value Stream</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=26489a41-4466-4002-a540-bc8141b57919</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,26489a41-4466-4002-a540-bc8141b57919.aspx</pingback:target>
      <dc:creator>Bent Jensen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,26489a41-4466-4002-a540-bc8141b57919.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=26489a41-4466-4002-a540-bc8141b57919</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <br />
Here is a nice blog-entry about what you can learn when you actually engage with your
endusers.<br /><br /><a href="http://blog.b2b2dot0.com/2009/06/gemba-in-the-virtual-world.html#more">Gemba
in the virtual world</a><br /><br /><br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=26489a41-4466-4002-a540-bc8141b57919" /></body>
      <title>just because we can live in a virtual world, doesn't mean that we should - a blog entry about the power of the Gemba</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,26489a41-4466-4002-a540-bc8141b57919.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/06/26/justBecauseWeCanLiveInAVirtualWorldDoesntMeanThatWeShouldABlogEntryAboutThePowerOfTheGemba.aspx</link>
      <pubDate>Fri, 26 Jun 2009 09:07:23 GMT</pubDate>
      <description>&lt;br&gt;
Here is a nice blog-entry about what you can learn when you actually engage with your
endusers.&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blog.b2b2dot0.com/2009/06/gemba-in-the-virtual-world.html#more"&gt;Gemba
in the virtual world&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=26489a41-4466-4002-a540-bc8141b57919" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,26489a41-4466-4002-a540-bc8141b57919.aspx</comments>
      <category>Agile</category>
      <category>Lean</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=81a97b92-ffdd-48d7-a2fb-b79ba26d35a7</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,81a97b92-ffdd-48d7-a2fb-b79ba26d35a7.aspx</pingback:target>
      <dc:creator>Kristian Dupont</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,81a97b92-ffdd-48d7-a2fb-b79ba26d35a7.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=81a97b92-ffdd-48d7-a2fb-b79ba26d35a7</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">I first came across the term <i>vertical
slice</i> when I was in the video games industry. Trying to raise capital for our
game, we were told by venture capitalists that they needed to see a vertical slice
in order to assess our concept. That meant a small version of our game with just a
little bit of everything. You should be able to see the technology, the artwork, audio,
game design and all. I am not sure where the term originates from, but it is easy
to realize what it means. If you consider a product to be composed of layers, the
vertical slice represents a little bit of each layer. 
<br /><div align="center"><img src="http://www.bestbrains.dk/Blog/content/binary/verticalslice.png" alt="Vertical Slice" title="Vertical Slice" border="0" /></div>
This blog is called The Vertical Slice for a reason. While there is great focus on
prioritizing in agile development, the emphasis is often in the concept of "business
value". Which is a very sound focus compared to say, premature optimization or writing
a system that is <a href="http://www.bestbrains.dk/Blog/2007/11/04/LetsMakeItGeneric.aspx">unnecessarily
generic</a>. However, focusing on vertical slices is equally important. As my colleague
Lars suggested recently, the term <i>breadth-first development</i> is perhaps even
more descriptive. If you consider the product to be a tree of increasingly detailed
features, you want to start at the top and move into the details at all levels at
the same time.<br /><div align="center"><img src="http://www.bestbrains.dk/Blog/content/binary/breadthfirst.png" alt="Breadth-First development" title="Breadth-First development" border="0" /></div>
There is a consequence to this: you run into a lot of problems at the very start.
A project that we are currently working with includes a web-frontend, a database layer
and a reporting system that have all given us different kinds of problems. Other teams
might have focused on getting one part working before moving on to the others but
in the spirit of breadth-first, we wanted to work a little bit with all of them. That
way, we don't run off on tangents in one of the layers, which might turn out to be
unfeasible or simply incompatible with the rest of the environment.<br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=81a97b92-ffdd-48d7-a2fb-b79ba26d35a7" /></body>
      <title>Breadth-First Development</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,81a97b92-ffdd-48d7-a2fb-b79ba26d35a7.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/06/09/BreadthFirstDevelopment.aspx</link>
      <pubDate>Tue, 09 Jun 2009 16:46:41 GMT</pubDate>
      <description>I first came across the term &lt;i&gt;vertical slice&lt;/i&gt; when I was in the video games industry.
Trying to raise capital for our game, we were told by venture capitalists that they
needed to see a vertical slice in order to assess our concept. That meant a small
version of our game with just a little bit of everything. You should be able to see
the technology, the artwork, audio, game design and all. I am not sure where the term
originates from, but it is easy to realize what it means. If you consider a product
to be composed of layers, the vertical slice represents a little bit of each layer. 
&lt;br&gt;
&lt;div align="center"&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/verticalslice.png" alt="Vertical Slice" title="Vertical Slice" border="0"&gt; 
&lt;/div&gt;
This blog is called The Vertical Slice for a reason. While there is great focus on
prioritizing in agile development, the emphasis is often in the concept of "business
value". Which is a very sound focus compared to say, premature optimization or writing
a system that is &lt;a href="http://www.bestbrains.dk/Blog/2007/11/04/LetsMakeItGeneric.aspx"&gt;unnecessarily
generic&lt;/a&gt;. However, focusing on vertical slices is equally important. As my colleague
Lars suggested recently, the term &lt;i&gt;breadth-first development&lt;/i&gt; is perhaps even
more descriptive. If you consider the product to be a tree of increasingly detailed
features, you want to start at the top and move into the details at all levels at
the same time.&lt;br&gt;
&lt;div align="center"&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/breadthfirst.png" alt="Breadth-First development" title="Breadth-First development" border="0"&gt; 
&lt;/div&gt;
There is a consequence to this: you run into a lot of problems at the very start.
A project that we are currently working with includes a web-frontend, a database layer
and a reporting system that have all given us different kinds of problems. Other teams
might have focused on getting one part working before moving on to the others but
in the spirit of breadth-first, we wanted to work a little bit with all of them. That
way, we don't run off on tangents in one of the layers, which might turn out to be
unfeasible or simply incompatible with the rest of the environment.&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=81a97b92-ffdd-48d7-a2fb-b79ba26d35a7" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,81a97b92-ffdd-48d7-a2fb-b79ba26d35a7.aspx</comments>
      <category>Agile</category>
      <category>Quality</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=24a08af9-3cc6-4a80-8b1e-14f1c239a7e1</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,24a08af9-3cc6-4a80-8b1e-14f1c239a7e1.aspx</pingback:target>
      <dc:creator>Lars Thorup</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,24a08af9-3cc6-4a80-8b1e-14f1c239a7e1.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=24a08af9-3cc6-4a80-8b1e-14f1c239a7e1</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">When booking a hotel or a flight for your
next trip you could do it the old way: surfing a lot of websites looking for cheap
and relevant offerings. Or you could apply "Inversion of Control": specify your wishes
regarding travel and accomodation and then wait for a lot of hotels and airlines to
send offerings for you to choose from. <a href="http://www.hotwire.com/">Hotwire</a> is
one example of that kind of service.<br /><br /><div align="center"><img src="http://www.bestbrains.dk/Blog/content/binary/dontcall_up.gif" border="0" /><br /></div><br />
When surfing the net, a lot of websites "push" commercials onto your screen earning
money to the people running those websites. Wouldn't it be nice if you instead could
"pull" selected commercials and thereby provide funding to your favorite charity? <a href="http://aidonline.com/">AidOnline</a> is
one (Danish) example of that kind of service.<br /><br />
As a programmer it seems to me that these two examples of "Inversion of Control" are
structurally similar to the popular unit testing technique called "<a href="http://en.wikipedia.org/wiki/Dependency_injection">Dependency
Injection</a>".<br /><br />
Can you come up with other interesting examples of "Inversion of Control"?<br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=24a08af9-3cc6-4a80-8b1e-14f1c239a7e1" /></body>
      <title>Inversion of Control in the Real World</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,24a08af9-3cc6-4a80-8b1e-14f1c239a7e1.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/06/03/InversionOfControlInTheRealWorld.aspx</link>
      <pubDate>Wed, 03 Jun 2009 19:48:02 GMT</pubDate>
      <description>When booking a hotel or a flight for your next trip you could do it the old way: surfing a lot of websites looking for cheap and relevant offerings. Or you could apply "Inversion of Control": specify your wishes regarding travel and accomodation and then wait for a lot of hotels and airlines to send offerings for you to choose from. &lt;a href="http://www.hotwire.com/"&gt;Hotwire&lt;/a&gt; is
one example of that kind of service.&lt;br&gt;
&lt;br&gt;
&lt;div align="center"&gt;&lt;img src="http://www.bestbrains.dk/Blog/content/binary/dontcall_up.gif" border="0"&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
When surfing the net, a lot of websites "push" commercials onto your screen earning
money to the people running those websites. Wouldn't it be nice if you instead could
"pull" selected commercials and thereby provide funding to your favorite charity? &lt;a href="http://aidonline.com/"&gt;AidOnline&lt;/a&gt; is
one (Danish) example of that kind of service.&lt;br&gt;
&lt;br&gt;
As a programmer it seems to me that these two examples of "Inversion of Control" are
structurally similar to the popular unit testing technique called "&lt;a href="http://en.wikipedia.org/wiki/Dependency_injection"&gt;Dependency
Injection&lt;/a&gt;".&lt;br&gt;
&lt;br&gt;
Can you come up with other interesting examples of "Inversion of Control"?&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=24a08af9-3cc6-4a80-8b1e-14f1c239a7e1" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,24a08af9-3cc6-4a80-8b1e-14f1c239a7e1.aspx</comments>
      <category>Pull</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=42f2602c-2caa-48b0-83e0-ef35eb151ae3</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,42f2602c-2caa-48b0-83e0-ef35eb151ae3.aspx</pingback:target>
      <dc:creator>Lars Thorup</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,42f2602c-2caa-48b0-83e0-ef35eb151ae3.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=42f2602c-2caa-48b0-83e0-ef35eb151ae3</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">Recently peterstev reported on, <a href="http://agilesoftwaredevelopment.com/blog/peterstev/10-agile-contracts">10
Contracts for your next Agile Software Project</a>.<br /><br />
In BestBrains we now have experience from two commercial projects using a new kind
of agile contract. 
<br /><br />
We want to create contracts where risk is shared fairly between customer and supplier
and where likewise benefit is shared fairly. Based on our experiences we have arrived
at a contract model that has proven to achieve this result. We call this the collaborative
agile contract. 
<br /><br />
The main mechanism of the contract is to delay some of the payment until a certain
criteria has been reached. We do not use a date as this criteria which otherwise seems
to be common. Rather we want a criteria that tells when we have a situation where
the customer is getting value from the software. There is generally a mutual interest
of arriving at this situation as quickly as possible. Effectiveness and creativity
from the supplier will be rewarded. And the customer will be careful when deciding
what features are needed in order to reach that goal. 
<br /><br />
The contract defines the following elements: 
<br /><ul><li>
Scope described loosely in a few paragraphs, a kind of vision statement 
</li><li>
An hourly price, that is 10-50% below what is normal for pure time-and-material 
</li><li>
A set of milestones, which will lead to payment of a fixed amount. The simple criteria
that tells that a given milestone has been reached, is whether the software is deployed
in production. 
</li><li>
A development process following agile practices 
</li><li>
A suggested time frame for the overall project and for each milestone 
</li></ul><br />
We are going to <a href="http://www.agile2009.com/node/859">report on our experiences</a> at <a href="http://www.agile2009.com/">Agile
2009</a>, but don't hestitate to comment on this blog entry or contact <a href="http://www.bestbrains.dk/dansk.aspx/Hvem_er_vi/Lars_Thorup">Lars
Thorup</a> to learn more about agile contracting.<br /><font color="#ffffff">agile kontrakter</font><br /><p></p><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=42f2602c-2caa-48b0-83e0-ef35eb151ae3" /></body>
      <title>Collaborative Agile Contracts</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,42f2602c-2caa-48b0-83e0-ef35eb151ae3.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/06/03/CollaborativeAgileContracts.aspx</link>
      <pubDate>Wed, 03 Jun 2009 09:15:49 GMT</pubDate>
      <description>Recently peterstev reported on, &lt;a href="http://agilesoftwaredevelopment.com/blog/peterstev/10-agile-contracts"&gt;10
Contracts for your next Agile Software Project&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
In BestBrains we now have experience from two commercial projects using a new kind
of agile contract. 
&lt;br&gt;
&lt;br&gt;
We want to create contracts where risk is shared fairly between customer and supplier
and where likewise benefit is shared fairly. Based on our experiences we have arrived
at a contract model that has proven to achieve this result. We call this the collaborative
agile contract. 
&lt;br&gt;
&lt;br&gt;
The main mechanism of the contract is to delay some of the payment until a certain
criteria has been reached. We do not use a date as this criteria which otherwise seems
to be common. Rather we want a criteria that tells when we have a situation where
the customer is getting value from the software. There is generally a mutual interest
of arriving at this situation as quickly as possible. Effectiveness and creativity
from the supplier will be rewarded. And the customer will be careful when deciding
what features are needed in order to reach that goal. 
&lt;br&gt;
&lt;br&gt;
The contract defines the following elements: 
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
Scope described loosely in a few paragraphs, a kind of vision statement 
&lt;/li&gt;
&lt;li&gt;
An hourly price, that is 10-50% below what is normal for pure time-and-material 
&lt;/li&gt;
&lt;li&gt;
A set of milestones, which will lead to payment of a fixed amount. The simple criteria
that tells that a given milestone has been reached, is whether the software is deployed
in production. 
&lt;/li&gt;
&lt;li&gt;
A development process following agile practices 
&lt;/li&gt;
&lt;li&gt;
A suggested time frame for the overall project and for each milestone 
&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
We are going to &lt;a href="http://www.agile2009.com/node/859"&gt;report on our experiences&lt;/a&gt; at &lt;a href="http://www.agile2009.com/"&gt;Agile
2009&lt;/a&gt;, but don't hestitate to comment on this blog entry or contact &lt;a href="http://www.bestbrains.dk/dansk.aspx/Hvem_er_vi/Lars_Thorup"&gt;Lars
Thorup&lt;/a&gt; to learn more about agile contracting.&lt;br&gt;
&lt;font color="#ffffff"&gt;agile kontrakter&lt;/font&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=42f2602c-2caa-48b0-83e0-ef35eb151ae3" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,42f2602c-2caa-48b0-83e0-ef35eb151ae3.aspx</comments>
      <category>Agile</category>
      <category>contract</category>
      <category>management</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=9d3c2fe6-b4fe-4cff-a446-97f8f461a386</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,9d3c2fe6-b4fe-4cff-a446-97f8f461a386.aspx</pingback:target>
      <dc:creator>Kristian Dupont</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,9d3c2fe6-b4fe-4cff-a446-97f8f461a386.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=9d3c2fe6-b4fe-4cff-a446-97f8f461a386</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">For the past three months, I have been
working with the team in Copenhagen from Barcelona. 
<br />
There is no business reason for this, it is purely for the experience. Now, there
are some obvious disadvantages to working away from the rest of the team. Office smalltalk,
while not necessarily directly related to the project at hand, really keeps you in
the loop in a way that is hard to obtain over a distance. On the other hand, constraints
foster creativity. A real problem is rare and hard to find - and extremely valuable.
So if I can help produce problems by working from Spain, I will be quite happy :-)<br /><br />
So far, my random observations are:<br /><br />
1) Skype is amazing. Video conferencing is at a point where it just works. There are
glitches and every now and then, the connection will die but overall, having a meeting
with the Copenhagen team feels to me like I am present. Having a decent web camera
really helps in this matter as having a high quality picture makes a very noticable
difference. I bought a couple of Logitech Pro 9000 cams which deliver a very nice
quality and frame rate.<br /><br />
2) Timezones matter. We run a very agile process with stand-up meetings every morning
(okay, I don't actually stand up but that's because I am in front of the camera) at
9. This is always a good thing but it becomes even more important if you are located
elsewhere, just to get in synch every day. However, such meetings are much easier
when you are in the same timezone. And while Barcelona and Copenhagen are that, they
are in different <i>cultural </i>timezones in the sense that the Spanish have very
different eating habits than the Danes. I'm still working on adjusting my daily routine
to fit both as well as I can.<br /><br />
3) A good thing about working remotely is that you can actually force peace and quiet
if you need to. If I turn off my instant messaging, people can only bother me by calling
me which they only will if it is very important. This is much harder to achieve if
you are in the same office. We usually solve this by running synchronized Pomodoro's
though. I will get back to Pomodoros and working remotely in a later post.<br /><br />
4) If you are already using version control and Google Docs or similar for your code
and management, going remote is dead-simple! I was quite astonished to find that I
could literally sit down in my Barcelona office and be doing normal work within 10
minutes. Everything works just as it does when I am in Copenhagen. I guess this shouldn't
surprise me but still, it was a pleasant experience.<br /><br /><p></p><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=9d3c2fe6-b4fe-4cff-a446-97f8f461a386" /></body>
      <title>Working remotely</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,9d3c2fe6-b4fe-4cff-a446-97f8f461a386.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/05/11/WorkingRemotely.aspx</link>
      <pubDate>Mon, 11 May 2009 19:45:22 GMT</pubDate>
      <description>For the past three months, I have been working with the team in Copenhagen from Barcelona. &lt;br&gt;
There is no business reason for this, it is purely for the experience. Now, there
are some obvious disadvantages to working away from the rest of the team. Office smalltalk,
while not necessarily directly related to the project at hand, really keeps you in
the loop in a way that is hard to obtain over a distance. On the other hand, constraints
foster creativity. A real problem is rare and hard to find - and extremely valuable.
So if I can help produce problems by working from Spain, I will be quite happy :-)&lt;br&gt;
&lt;br&gt;
So far, my random observations are:&lt;br&gt;
&lt;br&gt;
1) Skype is amazing. Video conferencing is at a point where it just works. There are
glitches and every now and then, the connection will die but overall, having a meeting
with the Copenhagen team feels to me like I am present. Having a decent web camera
really helps in this matter as having a high quality picture makes a very noticable
difference. I bought a couple of Logitech Pro 9000 cams which deliver a very nice
quality and frame rate.&lt;br&gt;
&lt;br&gt;
2) Timezones matter. We run a very agile process with stand-up meetings every morning
(okay, I don't actually stand up but that's because I am in front of the camera) at
9. This is always a good thing but it becomes even more important if you are located
elsewhere, just to get in synch every day. However, such meetings are much easier
when you are in the same timezone. And while Barcelona and Copenhagen are that, they
are in different &lt;i&gt;cultural &lt;/i&gt;timezones in the sense that the Spanish have very
different eating habits than the Danes. I'm still working on adjusting my daily routine
to fit both as well as I can.&lt;br&gt;
&lt;br&gt;
3) A good thing about working remotely is that you can actually force peace and quiet
if you need to. If I turn off my instant messaging, people can only bother me by calling
me which they only will if it is very important. This is much harder to achieve if
you are in the same office. We usually solve this by running synchronized Pomodoro's
though. I will get back to Pomodoros and working remotely in a later post.&lt;br&gt;
&lt;br&gt;
4) If you are already using version control and Google Docs or similar for your code
and management, going remote is dead-simple! I was quite astonished to find that I
could literally sit down in my Barcelona office and be doing normal work within 10
minutes. Everything works just as it does when I am in Copenhagen. I guess this shouldn't
surprise me but still, it was a pleasant experience.&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=9d3c2fe6-b4fe-4cff-a446-97f8f461a386" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,9d3c2fe6-b4fe-4cff-a446-97f8f461a386.aspx</comments>
      <category>Distributed development</category>
      <category>Problem Solving</category>
      <category>Process Innovation</category>
      <category>productivity</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=45ac860b-f648-47d1-8c95-3a7d8054e6b4</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,45ac860b-f648-47d1-8c95-3a7d8054e6b4.aspx</pingback:target>
      <dc:creator>Mads Troels Hansen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,45ac860b-f648-47d1-8c95-3a7d8054e6b4.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=45ac860b-f648-47d1-8c95-3a7d8054e6b4</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div align="right">
          <img src="http://www.bestbrains.dk/Blog/content/binary/SNV30244.JPG" border="0" width="195" height="134" />
          <br />
        </div>
        <br />
Currently I am attending a BestBrains course with Mary and Tom Poppendieck on Lean
Software Development (see more <a href="http://www.bestbrains.dk/english.aspx/Workshops/Lean_Software_Development">here</a><a href="http://www.bestbrains.dk/english.aspx/Workshops/Lean_Software_Development"></a>). 
<br /><br />
On the course there are people from companies in UK, Germany and Denmark, it is an
interesting combination of different views and experience.<br />
Even though I read the two books from Poppendeick many years ago, it has been an inspiring
day with many stories and cases from companies around the world. 
<br /><br />
We did two Value Stream Maps based on some real life cases from the participants,
and the people presenting the results had a hard time when Mary started to ask a lot
of “why”-questions. I am sure they got a lot of valuable things to work with at home.<br /><br />
Some of the take-away I got from the first day:<br /><ul><li>
Focus on bad news first: That makes the organization focus on constant improvements
(Toyota does it).</li><li>
Copying Toyota is also copying someone else solutions to their problems and that is
not solutions to your own problems. Lean from Toyota and improve it. 
</li><li>
To make real user value, you have to see and understand it from eyes of the customer/users.</li></ul>
Especially the last bullet is so important, and if you want to learn more in this
area, I can recommend a BestBrains workshop at Øresund Agile on May 14th: “Capturing
Requirements and Agile Planning“ <a href="http://oresundagile.org/workshop-7">http://oresundagile.org/workshop-7</a>.
It might change how you define your systems to be built in the future...<br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=45ac860b-f648-47d1-8c95-3a7d8054e6b4" /></body>
      <title>Lean Software Development, Practitioners Course with Mary and Tom Poppendieck</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,45ac860b-f648-47d1-8c95-3a7d8054e6b4.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/04/28/LeanSoftwareDevelopmentPractitionersCourseWithMaryAndTomPoppendieck.aspx</link>
      <pubDate>Tue, 28 Apr 2009 08:35:17 GMT</pubDate>
      <description>&lt;div align="right"&gt;&lt;img src="http://www.bestbrains.dk/Blog/content/binary/SNV30244.JPG" border="0" width="195" height="134"&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
Currently I am attending a BestBrains course with Mary and Tom Poppendieck on Lean
Software Development (see more &lt;a href="http://www.bestbrains.dk/english.aspx/Workshops/Lean_Software_Development"&gt;here&lt;/a&gt;&lt;a href="http://www.bestbrains.dk/english.aspx/Workshops/Lean_Software_Development"&gt;&lt;/a&gt;). 
&lt;br&gt;
&lt;br&gt;
On the course there are people from companies in UK, Germany and Denmark, it is an
interesting combination of different views and experience.&lt;br&gt;
Even though I read the two books from Poppendeick many years ago, it has been an inspiring
day with many stories and cases from companies around the world. 
&lt;br&gt;
&lt;br&gt;
We did two Value Stream Maps based on some real life cases from the participants,
and the people presenting the results had a hard time when Mary started to ask a lot
of “why”-questions. I am sure they got a lot of valuable things to work with at home.&lt;br&gt;
&lt;br&gt;
Some of the take-away I got from the first day:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
Focus on bad news first: That makes the organization focus on constant improvements
(Toyota does it).&lt;/li&gt;
&lt;li&gt;
Copying Toyota is also copying someone else solutions to their problems and that is
not solutions to your own problems. Lean from Toyota and improve it. 
&lt;/li&gt;
&lt;li&gt;
To make real user value, you have to see and understand it from eyes of the customer/users.&lt;/li&gt;
&lt;/ul&gt;
Especially the last bullet is so important, and if you want to learn more in this
area, I can recommend a BestBrains workshop at Øresund Agile on May 14th: “Capturing
Requirements and Agile Planning“ &lt;a href="http://oresundagile.org/workshop-7"&gt;http://oresundagile.org/workshop-7&lt;/a&gt;.
It might change how you define your systems to be built in the future...&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=45ac860b-f648-47d1-8c95-3a7d8054e6b4" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,45ac860b-f648-47d1-8c95-3a7d8054e6b4.aspx</comments>
      <category>Lean</category>
      <category>Value Creation</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=e63ee33d-c2eb-40c5-b9e5-2e901e2f462e</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,e63ee33d-c2eb-40c5-b9e5-2e901e2f462e.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,e63ee33d-c2eb-40c5-b9e5-2e901e2f462e.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e63ee33d-c2eb-40c5-b9e5-2e901e2f462e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://www.bestbrains.dk/Blog/content/binary/azzuri.jpg" style="float: left; margin-right: 5px; margin-bottom: 5px;" border="0" />After
visiting DaiNippon we went to Azzuri to see how they were doing agile development.
They were using the term Work Cell (from Lean Manufactoring) for organizing developers
in small teams. I think it would require further investigation before I would make
any conclusions on the Work Cell idea. The desks that were used had been handpicked
to facilitate pair programming - How? The table legs were positioned so workers could
move easily to the nearby workstations!<br /><br /><br />
Later we went to Kenji Hiranabe's company Eiwa System Management, Inc. and talked
with the employees on how they were developing software. I encountered the term Iki-Iki
(translated to Alive), which I concluded was an initiative for fostering employee
satisfaction. 
<br /><br /><img src="http://www.bestbrains.dk/Blog/content/binary/agilejapan.jpg" style="float: left; margin-right: 5px; margin-bottom: 5px;" border="0" />After
the visit to Eiwa we were all invited to a meeting with the Agile Japan group - where
we participated in a panel discussion focusing on how we viewed agile software development,
and how widespread the agile approach was in Europe and the United States. One of
the things I noticed was how fixed scope software contracts seemed alarmingly common
- not only in Japan.<br /><br />
As with last years meeting with XPJUG we ended the evening with a nice dinner and
informal talk with the members of Agile Japan. I got to pratice both my japanese and
my ability to sit in a cross-legged position (auch!)<br /><br /><img src="http://www.bestbrains.dk/Blog/content/binary/agilejapan1.jpg" style="float: left; margin-right: 5px; margin-bottom: 5px;" border="0" />I
feel certain that we have started building a long-term friendship with the Japanese
agile community - and I very much hope to get a chance to see some of these guys again
later this year at the Agile 2009 conference.<br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=e63ee33d-c2eb-40c5-b9e5-2e901e2f462e" /></body>
      <title>Lean Study Tour 2009 - Day 4 (Part 2)</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,e63ee33d-c2eb-40c5-b9e5-2e901e2f462e.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/04/27/LeanStudyTour2009Day4Part2.aspx</link>
      <pubDate>Mon, 27 Apr 2009 08:51:10 GMT</pubDate>
      <description>&lt;img src="http://www.bestbrains.dk/Blog/content/binary/azzuri.jpg" style="float: left; margin-right: 5px; margin-bottom: 5px;" border="0"&gt;After
visiting DaiNippon we went to Azzuri to see how they were doing agile development.
They were using the term Work Cell (from Lean Manufactoring) for organizing developers
in small teams. I think it would require further investigation before I would make
any conclusions on the Work Cell idea. The desks that were used had been handpicked
to facilitate pair programming - How? The table legs were positioned so workers could
move easily to the nearby workstations!&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Later we went to Kenji Hiranabe's company Eiwa System Management, Inc. and talked
with the employees on how they were developing software. I encountered the term Iki-Iki
(translated to Alive), which I concluded was an initiative for fostering employee
satisfaction. 
&lt;br&gt;
&lt;br&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/agilejapan.jpg" style="float: left; margin-right: 5px; margin-bottom: 5px;" border="0"&gt;After
the visit to Eiwa we were all invited to a meeting with the Agile Japan group - where
we participated in a panel discussion focusing on how we viewed agile software development,
and how widespread the agile approach was in Europe and the United States. One of
the things I noticed was how fixed scope software contracts seemed alarmingly common
- not only in Japan.&lt;br&gt;
&lt;br&gt;
As with last years meeting with XPJUG we ended the evening with a nice dinner and
informal talk with the members of Agile Japan. I got to pratice both my japanese and
my ability to sit in a cross-legged position (auch!)&lt;br&gt;
&lt;br&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/agilejapan1.jpg" style="float: left; margin-right: 5px; margin-bottom: 5px;" border="0"&gt;I
feel certain that we have started building a long-term friendship with the Japanese
agile community - and I very much hope to get a chance to see some of these guys again
later this year at the Agile 2009 conference.&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=e63ee33d-c2eb-40c5-b9e5-2e901e2f462e" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,e63ee33d-c2eb-40c5-b9e5-2e901e2f462e.aspx</comments>
      <category>Japan</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=d2195d27-1fb3-4074-bff8-b7ecf42dae6d</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,d2195d27-1fb3-4074-bff8-b7ecf42dae6d.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,d2195d27-1fb3-4074-bff8-b7ecf42dae6d.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=d2195d27-1fb3-4074-bff8-b7ecf42dae6d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://www.bestbrains.dk/Blog/content/binary/dainippon.jpg" style="float: left; margin-right: 5px; margin-bottom: 5px;" border="0" />On
day 3 we had not scheduled any visits, so I took of the day off buying some presents
in Akihabara part of Tokyo (a.k.a. Electric City). In the afternoon I met with some
of the participants at a Big Echo Karaoke-hotel. Who would have thought "We are the
world" sung in a Tokyo basement could sound so beautiful?<br /><br />
Day 4 we visited DaiNippon Printing Ltd. At the factory tour of DaiNippon we saw how
millions of japanese anime cartoons were printed, but most remarkably we saw how widespread
the culture of using visual management in factories are. We had barely entered the
factory, when I counted 13 * 3 meters of visuals on a wall. What to look for during
maintenance with big pictures of how well-maintained equipment should look, defect
statistics, and a lot of stuff I japanese (whích I can't read) that looked important.
All of which helped employees do a better job.<br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=d2195d27-1fb3-4074-bff8-b7ecf42dae6d" /></body>
      <title>Lean Study Tour 2009 - Day 4 (Part 1)</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,d2195d27-1fb3-4074-bff8-b7ecf42dae6d.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/04/27/LeanStudyTour2009Day4Part1.aspx</link>
      <pubDate>Mon, 27 Apr 2009 04:10:17 GMT</pubDate>
      <description>&lt;img src="http://www.bestbrains.dk/Blog/content/binary/dainippon.jpg" style="float: left; margin-right: 5px; margin-bottom: 5px;" border="0"&gt;On
day 3 we had not scheduled any visits, so I took of the day off buying some presents
in Akihabara part of Tokyo (a.k.a. Electric City). In the afternoon I met with some
of the participants at a Big Echo Karaoke-hotel. Who would have thought "We are the
world" sung in a Tokyo basement could sound so beautiful?&lt;br&gt;
&lt;br&gt;
Day 4 we visited DaiNippon Printing Ltd. At the factory tour of DaiNippon we saw how
millions of japanese anime cartoons were printed, but most remarkably we saw how widespread
the culture of using visual management in factories are. We had barely entered the
factory, when I counted 13 * 3 meters of visuals on a wall. What to look for during
maintenance with big pictures of how well-maintained equipment should look, defect
statistics, and a lot of stuff I japanese (whích I can't read) that looked important.
All of which helped employees do a better job.&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=d2195d27-1fb3-4074-bff8-b7ecf42dae6d" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,d2195d27-1fb3-4074-bff8-b7ecf42dae6d.aspx</comments>
      <category>Japan</category>
      <category>Learning</category>
      <category>Mieruka</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=98913a0d-8279-464f-82fd-9723e5df77b0</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,98913a0d-8279-464f-82fd-9723e5df77b0.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,98913a0d-8279-464f-82fd-9723e5df77b0.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=98913a0d-8279-464f-82fd-9723e5df77b0</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://www.bestbrains.dk/Blog/content/binary/toyota2.jpg" style="float: right; margin-bottom: 5px; margin-left: 5px;" border="0" />Yesterday
was a really long day, and I have to admit I was to tired to write a blog entry. So
here is the field report from day 2 of our Lean study tour. To be completely honest
with you - I felt incredibly privileged about what I experienced in Nagoya yesterday.
First we visted <i>Toyota Commemorative Museum of Industry and Technology</i> and
the <i>Motomachi </i>plant like Jesper mentioned in his earlier blog entry - I would
definitely recommend both to anyone visiting Japan.<br /><br /><img src="http://www.bestbrains.dk/Blog/content/binary/toyota4.jpg" style="float: left; margin-right: 5px; margin-bottom: 5px;" border="0" />After
the plant tour we met Mr. Satoshi Ishii who is a project general manager at the BR
Automotive Software Engineering Dept. within Toyota. In short, these guys are doing
all sorts of software that is embedded in modern Toyota/Lexus cars. Satoshi Ishii
explained to us that a modern Lexus (Toyota's luxury brand) contains 70 or more ECUs
(electronic control units) which all needs software (brakes, engine, fuel injection,
navigation, adaptive cruise control, etc.) along with the ability to communicate with
each other.<br /><br />
Before the meeting I was a little skeptical - Were the Toyota culture so strong that
it had found its way into the relatively new field of software development? What might
surprise some, was that they were using a waterfall model (in Ishii-san's own words
- in reality I think it was more like the spiral model). In spite of that, I had a
feeling afterwards that I had just talked to perhaps the most skilled software development
managers I have ever met! Does that sound like a paradox? I do not think so. 
<br /><br />
Let me explain it this way. I once said to myself that I did not want to waste my
time as a developer on non-agile projects. In the Toyota case, I would certainly make
an exception. Why? Because I believe that the principles that this company is built
upon is of far greater importance than any of the agile pratices that we spent so
much time on in the Western world.<br /><br /><img src="http://www.bestbrains.dk/Blog/content/binary/toyota1.jpg" style="float: left; margin-bottom: 5px; margin-right: 5px;" border="0" />After
meeting Mr. Ishii, I had a talk with Mary Poppendieck (who is also with us on this
study tour) and she believed that this was actually the first time a Toyota manager
in software development has ever spoken publicly about how they apply their (Lean)
philosophy in this field - I almost had the goose bumps :-)<br /><br />
Trust me... I will write more about the all the learnings of this meeting - but now
it is time for preparing a presentation for the Agile Japan group tomorrow.<br /><br /><div style="width: 100%; text-align: center;"><img src="http://www.bestbrains.dk/Blog/content/binary/toyota3.jpg" border="0" /></div><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=98913a0d-8279-464f-82fd-9723e5df77b0" /></body>
      <title>Lean Study Tour 2009 - Day 2 (Feeling Privileged)</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,98913a0d-8279-464f-82fd-9723e5df77b0.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/04/22/LeanStudyTour2009Day2FeelingPrivileged.aspx</link>
      <pubDate>Wed, 22 Apr 2009 09:04:16 GMT</pubDate>
      <description>&lt;img src="http://www.bestbrains.dk/Blog/content/binary/toyota2.jpg" style="float: right; margin-bottom: 5px; margin-left: 5px;" border="0"&gt;Yesterday
was a really long day, and I have to admit I was to tired to write a blog entry. So
here is the field report from day 2 of our Lean study tour. To be completely honest
with you - I felt incredibly privileged about what I experienced in Nagoya yesterday.
First we visted &lt;i&gt;Toyota Commemorative Museum of Industry and Technology&lt;/i&gt; and
the &lt;i&gt;Motomachi &lt;/i&gt;plant like Jesper mentioned in his earlier blog entry - I would
definitely recommend both to anyone visiting Japan.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/toyota4.jpg" style="float: left; margin-right: 5px; margin-bottom: 5px;" border="0"&gt;After
the plant tour we met Mr. Satoshi Ishii who is a project general manager at the BR
Automotive Software Engineering Dept. within Toyota. In short, these guys are doing
all sorts of software that is embedded in modern Toyota/Lexus cars. Satoshi Ishii
explained to us that a modern Lexus (Toyota's luxury brand) contains 70 or more ECUs
(electronic control units) which all needs software (brakes, engine, fuel injection,
navigation, adaptive cruise control, etc.) along with the ability to communicate with
each other.&lt;br&gt;
&lt;br&gt;
Before the meeting I was a little skeptical - Were the Toyota culture so strong that
it had found its way into the relatively new field of software development? What might
surprise some, was that they were using a waterfall model (in Ishii-san's own words
- in reality I think it was more like the spiral model). In spite of that, I had a
feeling afterwards that I had just talked to perhaps the most skilled software development
managers I have ever met! Does that sound like a paradox? I do not think so. 
&lt;br&gt;
&lt;br&gt;
Let me explain it this way. I once said to myself that I did not want to waste my
time as a developer on non-agile projects. In the Toyota case, I would certainly make
an exception. Why? Because I believe that the principles that this company is built
upon is of far greater importance than any of the agile pratices that we spent so
much time on in the Western world.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/toyota1.jpg" style="float: left; margin-bottom: 5px; margin-right: 5px;" border="0"&gt;After
meeting Mr. Ishii, I had a talk with Mary Poppendieck (who is also with us on this
study tour) and she believed that this was actually the first time a Toyota manager
in software development has ever spoken publicly about how they apply their (Lean)
philosophy in this field - I almost had the goose bumps :-)&lt;br&gt;
&lt;br&gt;
Trust me... I will write more about the all the learnings of this meeting - but now
it is time for preparing a presentation for the Agile Japan group tomorrow.&lt;br&gt;
&lt;br&gt;
&lt;div style="width: 100%; text-align: center;"&gt;&lt;img src="http://www.bestbrains.dk/Blog/content/binary/toyota3.jpg" border="0"&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=98913a0d-8279-464f-82fd-9723e5df77b0" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,98913a0d-8279-464f-82fd-9723e5df77b0.aspx</comments>
      <category>Agile</category>
      <category>Japan</category>
      <category>Lean</category>
      <category>management</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=ea553861-9109-4de1-8a54-d5729316fcf6</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,ea553861-9109-4de1-8a54-d5729316fcf6.aspx</pingback:target>
      <dc:creator>Jesper Thaning</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,ea553861-9109-4de1-8a54-d5729316fcf6.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=ea553861-9109-4de1-8a54-d5729316fcf6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Have you ever thought about a good metaphor
for software?<br /><br />
Up until today on some occasions I have explored the metaphor that software is a building,
where architects build from standard components and when a new requirement to “the
building” comes, we can alter parts of the building. This metaphor has never been
compelling to me, so luckily, on a trip from “Toyota Commemorative Museum of Industry
and Technology” to the Toyota Motomachi plant in Japan I found another: Software is
a factory.<br /><br />
I needed to know more clearly, what software development is really trying to build,
so what does it require to build a successful factory? Well Toyota certainly can provide
a good deal of inspiration with their factories where the Toyota Production System
takes place.<br /><br />
Generally speaking a factory supports processes which consists of input, an operation
and output. One overall process of a car factory is input (parts for a car) and the
operation of assembling the car which gives an output of a car. This process of course
can be divided in subprocesses, also with input, an operation and output.<br />
If software is a factory, it takes information as input, performs an operation producing
information as output.<br /><br />
An important attribute of a Toyota factory is that it can support <a href="http://en.wikipedia.org/wiki/Autonomation">Jidoka</a>:
to detect an abnormality instantly, stop, fix and correct the immediate condition
and install a countermeasure. This is how quality is built into what ever the factory
is producing. Detecting an abnormality instantly in a software factory, is not the
same as logging an exception, and waiting for someone to look at the log...<br /><br />
In this view we as software developers, in a broad sense, are factory builders. We
supply our customer with an information factory that can process information. So what
implications does this have?<br />
What for example is software architecture? It is an act of planning factories - not
a trivial task I believe. 
<br /><br />
I want to explore this metaphor and find out more about which methods are used to
build factories, because I believe we can use this experience in software development.<br /><br /><p></p><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=ea553861-9109-4de1-8a54-d5729316fcf6" /></body>
      <title>Software as a factory</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,ea553861-9109-4de1-8a54-d5729316fcf6.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/04/21/SoftwareAsAFactory.aspx</link>
      <pubDate>Tue, 21 Apr 2009 15:50:46 GMT</pubDate>
      <description>Have you ever thought about a good metaphor for software?&lt;br&gt;
&lt;br&gt;
Up until today on some occasions I have explored the metaphor that software is a building,
where architects build from standard components and when a new requirement to “the
building” comes, we can alter parts of the building. This metaphor has never been
compelling to me, so luckily, on a trip from “Toyota Commemorative Museum of Industry
and Technology” to the Toyota Motomachi plant in Japan I found another: Software is
a factory.&lt;br&gt;
&lt;br&gt;
I needed to know more clearly, what software development is really trying to build,
so what does it require to build a successful factory? Well Toyota certainly can provide
a good deal of inspiration with their factories where the Toyota Production System
takes place.&lt;br&gt;
&lt;br&gt;
Generally speaking a factory supports processes which consists of input, an operation
and output. One overall process of a car factory is input (parts for a car) and the
operation of assembling the car which gives an output of a car. This process of course
can be divided in subprocesses, also with input, an operation and output.&lt;br&gt;
If software is a factory, it takes information as input, performs an operation producing
information as output.&lt;br&gt;
&lt;br&gt;
An important attribute of a Toyota factory is that it can support &lt;a href="http://en.wikipedia.org/wiki/Autonomation"&gt;Jidoka&lt;/a&gt;:
to detect an abnormality instantly, stop, fix and correct the immediate condition
and install a countermeasure. This is how quality is built into what ever the factory
is producing. Detecting an abnormality instantly in a software factory, is not the
same as logging an exception, and waiting for someone to look at the log...&lt;br&gt;
&lt;br&gt;
In this view we as software developers, in a broad sense, are factory builders. We
supply our customer with an information factory that can process information. So what
implications does this have?&lt;br&gt;
What for example is software architecture? It is an act of planning factories - not
a trivial task I believe. 
&lt;br&gt;
&lt;br&gt;
I want to explore this metaphor and find out more about which methods are used to
build factories, because I believe we can use this experience in software development.&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=ea553861-9109-4de1-8a54-d5729316fcf6" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,ea553861-9109-4de1-8a54-d5729316fcf6.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=5dff87ea-5d23-407c-91cf-d4272a6b4d48</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,5dff87ea-5d23-407c-91cf-d4272a6b4d48.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,5dff87ea-5d23-407c-91cf-d4272a6b4d48.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=5dff87ea-5d23-407c-91cf-d4272a6b4d48</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Today was the first official day of our
Lean study tour "Roots of Lean 2009" in Japan. We started out this day by visiting
Fujitsu Applications Ltd. in Tokyo. President and CEO Jun Watanabe gave us an introduction
to how Fujitsu Applications had implemented Toyota Production System/Lean in their
software development business.<br /><br />
Two things stuck me in particular.<br /><b>1)</b> Their use of standardized work (well-defined processes for how, when, and
what to do). In the Fujitsu case I believe this was one of the major contributors
to the productivity improvement they had experienced. Throughput had gone up by a
factor of 7 - over a period of 6 years - without hiring more people!!<br />
    <br /><b>2)</b> Changing the method of software developmet to a very manufacturing-like
way had certainly improved productivity, compared to what they did before their TPS
transformation. However I asked myself: They are paying salary to 300 employees -
are they really utilizing the talent that they are paying for? I got the impression
that maybe they were focusing a bit too much on <b>Point Kaizen</b> rather than <b>System
Kaizen</b>.<br /><br />
Also we met Tomoya Saito who gave a talk on how Fujitsu Applications were crunching
data from employee timesheets and measurements of progress in a way I have never seen
before. What they were trying, was to do really fast estimation on a large scale.
They were doing this using statistical theory and a high volume of historical data.
I did initially feel slightly skeptical about it, but it has surely given me something
to think about!<br /><br /><p></p><div style="TEXT-ALIGN: center"><table cellspacing="5"><tbody><tr><td><img src="http://www.bestbrains.dk/Blog/content/binary/fujitsu.jpg" border="0" /></td><td><img src="http://www.bestbrains.dk/Blog/content/binary/fujitsu3.jpg" border="0" /></td><td><br /></td></tr></tbody></table></div><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=5dff87ea-5d23-407c-91cf-d4272a6b4d48" /></body>
      <title>Lean Study Tour 2009 - Day 1</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,5dff87ea-5d23-407c-91cf-d4272a6b4d48.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/04/20/LeanStudyTour2009Day1.aspx</link>
      <pubDate>Mon, 20 Apr 2009 10:03:04 GMT</pubDate>
      <description>Today was the first official day of our Lean study tour "Roots of Lean 2009" in Japan. We started out this day by visiting Fujitsu Applications Ltd. in Tokyo. President and CEO Jun Watanabe gave us an introduction to how Fujitsu Applications had implemented Toyota Production System/Lean in their software development business.&lt;br&gt;
&lt;br&gt;
Two things stuck me in particular.&lt;br&gt;
&lt;b&gt;1)&lt;/b&gt; Their use of standardized work (well-defined processes for how, when, and
what to do). In the Fujitsu case I believe this was one of the major contributors
to the productivity improvement they had experienced. Throughput had gone up by a
factor of 7 - over a period of 6 years - without hiring more people!!&lt;br&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;
&lt;b&gt;2)&lt;/b&gt; Changing the method of software developmet to a very manufacturing-like
way had certainly improved productivity, compared to what they did before their TPS
transformation. However I asked myself: They are paying salary to 300 employees -
are they really utilizing the talent that they are paying for? I got the impression
that maybe they were focusing a bit too much on &lt;b&gt;Point Kaizen&lt;/b&gt; rather than &lt;b&gt;System
Kaizen&lt;/b&gt;.&lt;br&gt;
&lt;br&gt;
Also we met Tomoya Saito who gave a talk on how Fujitsu Applications were crunching
data from employee timesheets and measurements of progress in a way I have never seen
before. What they were trying, was to do really fast estimation on a large scale.
They were doing this using statistical theory and a high volume of historical data.
I did initially feel slightly skeptical about it, but it has surely given me something
to think about!&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;div style="TEXT-ALIGN: center"&gt;
&lt;table cellspacing=5&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/fujitsu.jpg" border=0&gt;&lt;/td&gt;
&lt;td&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/fujitsu3.jpg" border=0&gt;&lt;/td&gt;
&lt;td&gt;
&lt;br&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=5dff87ea-5d23-407c-91cf-d4272a6b4d48" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,5dff87ea-5d23-407c-91cf-d4272a6b4d48.aspx</comments>
      <category>Japan</category>
      <category>Lean</category>
      <category>productivity</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=01db9914-9aef-4c75-b93f-3614222d73f0</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,01db9914-9aef-4c75-b93f-3614222d73f0.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,01db9914-9aef-4c75-b93f-3614222d73f0.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=01db9914-9aef-4c75-b93f-3614222d73f0</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://www.bestbrains.dk/Blog/content/binary/iStock_000005792579XSmall_web.jpg" style="margin-right: 5px; margin-bottom: 5px; float: left;" border="0" />At
a retrospective meeting with a client not to long ago, a really interesting point
came up. The client had deliberately attempted to push a lot of feature work onto
the development team, while keeping a fixed deadline - presumably to have the team
work harder, and thereby producing more features before a particular deadline. Interestingly
quite the opposite happened.<br /><br />
A total of 7 features were requested by the customer, while neither deadline nor scope
change could be tolerated. The result? 7 features were reported done on the deadline.
Unfortuately it turned out - in production - that only 2 was working as supposed,
meaning that 5 was more or less defective.<br /><br />
When these numbers were clear to everybody an obvious question came up. Could the
team instead have aimed for a total of 4 features (instead of 7), and actually completed
4 features upon the deadline (instead of 2)? Significant amounts of time had been
invested in 5 features that were not completed anyway.<br /><br />
Who were to blame for this? The development team were only doing their best, trying
to accomplish a goal not set by themselves. How could the client know any better?
They did not know the kind of problems that are induced by using a push approach. 
<br /><br />
What the client and the development team had experienced was simple physics.<br /><br /><font size="4">Little's Law:</font><br /><b>Work in process = Flow time * Throughput</b><br /><br />
Little's Law describes the relationship between multiple key variables in any value
stream (including software development projects)<br /><br />
What Little's Law says, is that - The more work you start, the longer it will take
you to finish (given that your capacity/throughput is stable). Now imagine what happens
if the customer asks for a fixed deadline - The amount of work that can be done before
that deadline is indicated by the current capacity.<br /><br />
How about if we attempt to get higher throughput/capacity by increasing the amount
of work, and asking people to work harder. Which variable do you think will be affected?
..you guessed right, Flow time will increase, as throughput (or capacity) does not
increase magically over night.<br /><br />
I wonder how many people in the software industry are trying to outrun Little's Law,
by putting pressure on the "floor" workers (e.g. developers and testers) ?<br /><br />
Lesson learned? 
<br />
1) Don't try to run above the speed limit indicated by your current capacity. You
will pay more and get less. 
<br />
2) Favor pull systems over push - for instance as advocated in Scrum.<br />
3) Never attempt to fix scope if you have a fixed deadline.<br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=01db9914-9aef-4c75-b93f-3614222d73f0" /></body>
      <title>You can't hide from Little's Law</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,01db9914-9aef-4c75-b93f-3614222d73f0.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/04/13/YouCantHideFromLittlesLaw.aspx</link>
      <pubDate>Mon, 13 Apr 2009 12:11:05 GMT</pubDate>
      <description>&lt;img src="http://www.bestbrains.dk/Blog/content/binary/iStock_000005792579XSmall_web.jpg" style="margin-right: 5px; margin-bottom: 5px; float: left;" border="0"&gt;At
a retrospective meeting with a client not to long ago, a really interesting point
came up. The client had deliberately attempted to push a lot of feature work onto
the development team, while keeping a fixed deadline - presumably to have the team
work harder, and thereby producing more features before a particular deadline. Interestingly
quite the opposite happened.&lt;br&gt;
&lt;br&gt;
A total of 7 features were requested by the customer, while neither deadline nor scope
change could be tolerated. The result? 7 features were reported done on the deadline.
Unfortuately it turned out - in production - that only 2 was working as supposed,
meaning that 5 was more or less defective.&lt;br&gt;
&lt;br&gt;
When these numbers were clear to everybody an obvious question came up. Could the
team instead have aimed for a total of 4 features (instead of 7), and actually completed
4 features upon the deadline (instead of 2)? Significant amounts of time had been
invested in 5 features that were not completed anyway.&lt;br&gt;
&lt;br&gt;
Who were to blame for this? The development team were only doing their best, trying
to accomplish a goal not set by themselves. How could the client know any better?
They did not know the kind of problems that are induced by using a push approach. 
&lt;br&gt;
&lt;br&gt;
What the client and the development team had experienced was simple physics.&lt;br&gt;
&lt;br&gt;
&lt;font size="4"&gt;Little's Law:&lt;/font&gt;
&lt;br&gt;
&lt;b&gt;Work in process = Flow time * Throughput&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Little's Law describes the relationship between multiple key variables in any value
stream (including software development projects)&lt;br&gt;
&lt;br&gt;
What Little's Law says, is that - The more work you start, the longer it will take
you to finish (given that your capacity/throughput is stable). Now imagine what happens
if the customer asks for a fixed deadline - The amount of work that can be done before
that deadline is indicated by the current capacity.&lt;br&gt;
&lt;br&gt;
How about if we attempt to get higher throughput/capacity by increasing the amount
of work, and asking people to work harder. Which variable do you think will be affected?
..you guessed right, Flow time will increase, as throughput (or capacity) does not
increase magically over night.&lt;br&gt;
&lt;br&gt;
I wonder how many people in the software industry are trying to outrun Little's Law,
by putting pressure on the "floor" workers (e.g. developers and testers) ?&lt;br&gt;
&lt;br&gt;
Lesson learned? 
&lt;br&gt;
1) Don't try to run above the speed limit indicated by your current capacity. You
will pay more and get less. 
&lt;br&gt;
2) Favor pull systems over push - for instance as advocated in Scrum.&lt;br&gt;
3) Never attempt to fix scope if you have a fixed deadline.&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=01db9914-9aef-4c75-b93f-3614222d73f0" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,01db9914-9aef-4c75-b93f-3614222d73f0.aspx</comments>
      <category>Pull</category>
      <category>Queing Theory</category>
      <category>Value Stream</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=e3381815-6d66-4281-b28e-90ba64d5b34e</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,e3381815-6d66-4281-b28e-90ba64d5b34e.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,e3381815-6d66-4281-b28e-90ba64d5b34e.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e3381815-6d66-4281-b28e-90ba64d5b34e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://www.bestbrains.dk/Blog/content/binary/probability.jpg" style="float: left; padding-right: 5px; padding-bottom: 5px;" border="0" />Back
when I was studying at the Technical University of Denmark, I took a course named
something like "Probability and Statistics for Engineers". Just the other day I came
across the book which was used in the course - in my own bookshelf. I never paid much
attention to the chapter of statistical quality control when I was reading it back
in university. In fact, I'm not even sure I made it to that chapter. 
<br /><br />
For some reason I can't explain, I felt an urge to take a look in that particular
book the other day, and in there I stumbled across quality guru Dr. Deming's 14 points
for management. I wonder why this part of the book was totally overlooked in the course
- considering how important I have later found them to be.<br /><br />
I've never had such experience with a book I've had for years on my bookshelf :-)
Have you?<br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=e3381815-6d66-4281-b28e-90ba64d5b34e" /></body>
      <title>A gold mine on the bookshelf</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,e3381815-6d66-4281-b28e-90ba64d5b34e.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/04/08/AGoldMineOnTheBookshelf.aspx</link>
      <pubDate>Wed, 08 Apr 2009 14:19:59 GMT</pubDate>
      <description>&lt;img src="http://www.bestbrains.dk/Blog/content/binary/probability.jpg" style="float: left; padding-right: 5px; padding-bottom: 5px;" border="0"&gt;Back
when I was studying at the Technical University of Denmark, I took a course named
something like "Probability and Statistics for Engineers". Just the other day I came
across the book which was used in the course - in my own bookshelf. I never paid much
attention to the chapter of statistical quality control when I was reading it back
in university. In fact, I'm not even sure I made it to that chapter. 
&lt;br&gt;
&lt;br&gt;
For some reason I can't explain, I felt an urge to take a look in that particular
book the other day, and in there I stumbled across quality guru Dr. Deming's 14 points
for management. I wonder why this part of the book was totally overlooked in the course
- considering how important I have later found them to be.&lt;br&gt;
&lt;br&gt;
I've never had such experience with a book I've had for years on my bookshelf :-)
Have you?&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=e3381815-6d66-4281-b28e-90ba64d5b34e" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,e3381815-6d66-4281-b28e-90ba64d5b34e.aspx</comments>
      <category>management</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=81c8e5e4-b016-4d3c-a3f3-bfbd7b2d3ddb</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,81c8e5e4-b016-4d3c-a3f3-bfbd7b2d3ddb.aspx</pingback:target>
      <dc:creator>Jesper Thaning</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,81c8e5e4-b016-4d3c-a3f3-bfbd7b2d3ddb.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=81c8e5e4-b016-4d3c-a3f3-bfbd7b2d3ddb</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
Some interesting new tools in the field of continuous integration and code analytics
are getting to speed and are exceeding past the old first-movers.<br />
Two such tools are the build server <a href="https://hudson.dev.java.net/">Hudson</a> and
the “Code quality management platform” of <a href="http://sonar.codehaus.org/">Sonar</a>.
The first gives you a very quick to install and get running build server, with a very
inviting and intuitive user interface and an open platform for third party plugins.
Forget the dinosaurish CruiseControl (for Java at least) as the open source build
server, Hudson serves you way better.<br />
Your development team will love the excellent dashboard with sunshine and clouds showing
how your projects are doing, and the metrics graphs with history of build and test
results, build times, tasks etc. In terms of “smartness” it is said to read your Maven
pom.xml and ensure that dependent builds are ran in the correct order (still need
to try that). 
<br /><br /><a href="http://ci.pentaho.com/"><img src="http://www.bestbrains.dk/Blog/content/binary/hudson2.png" border="0" height="350" width="569" /></a><br /><br />
Sonar joins a number of open source code analytics tools and puts it into a nice but
at bit over cluttered dashboard. Look here to see a <a href="http://nemo.sonar.codehaus.org/">Sonar
site of the Apache frameworks</a>. I just want to show one of the features which I
find most useful, the coverage cloud:<br /><br /><a href="http://nemo.sonar.codehaus.org/"><img src="http://www.bestbrains.dk/Blog/content/binary/coverage_cloud2.png" border="0" height="342" width="566" /></a><br /><br />
It identifies the classes probably needing an extra look, because complexity is running
high and code coverage are running low. Brilliant way of visualizing code quality.<br /><br />
But remember: one thing is to know the state of your code –  another is to act
wisely on it. Code coverage derived from automated test suites does not tell you,
if you have assertions in your unit test. Without assertions you can add and delete
code without test failing.<br />
The violations of code quality rules and the complexity measures of you components,
does not tell you if your design is thought out well, or express the domain your trying
to support, only a combined effort of analysis with your customer and experiments
can reveal this for you. But on the of path of getting less variation in code and
fewer defects – that this getting closer to software nirvana – I will not be without
Hudson and Sonar giving me daily updates on how we are doing.<br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=81c8e5e4-b016-4d3c-a3f3-bfbd7b2d3ddb" /></body>
      <title>Hudson and Sonar</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,81c8e5e4-b016-4d3c-a3f3-bfbd7b2d3ddb.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/03/23/HudsonAndSonar.aspx</link>
      <pubDate>Mon, 23 Mar 2009 22:13:39 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
Some interesting new tools in the field of continuous integration and code analytics
are getting to speed and are exceeding past the old first-movers.&lt;br&gt;
Two such tools are the build server &lt;a href="https://hudson.dev.java.net/"&gt;Hudson&lt;/a&gt; and
the “Code quality management platform” of &lt;a href="http://sonar.codehaus.org/"&gt;Sonar&lt;/a&gt;.
The first gives you a very quick to install and get running build server, with a very
inviting and intuitive user interface and an open platform for third party plugins.
Forget the dinosaurish CruiseControl (for Java at least) as the open source build
server, Hudson serves you way better.&lt;br&gt;
Your development team will love the excellent dashboard with sunshine and clouds showing
how your projects are doing, and the metrics graphs with history of build and test
results, build times, tasks etc. In terms of “smartness” it is said to read your Maven
pom.xml and ensure that dependent builds are ran in the correct order (still need
to try that). 
&lt;br&gt;
&lt;br&gt;
&lt;a href="http://ci.pentaho.com/"&gt;&lt;img src="http://www.bestbrains.dk/Blog/content/binary/hudson2.png" border="0" height="350" width="569"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
Sonar joins a number of open source code analytics tools and puts it into a nice but
at bit over cluttered dashboard. Look here to see a &lt;a href="http://nemo.sonar.codehaus.org/"&gt;Sonar
site of the Apache frameworks&lt;/a&gt;. I just want to show one of the features which I
find most useful, the coverage cloud:&lt;br&gt;
&lt;br&gt;
&lt;a href="http://nemo.sonar.codehaus.org/"&gt;&lt;img src="http://www.bestbrains.dk/Blog/content/binary/coverage_cloud2.png" border="0" height="342" width="566"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
It identifies the classes probably needing an extra look, because complexity is running
high and code coverage are running low. Brilliant way of visualizing code quality.&lt;br&gt;
&lt;br&gt;
But remember: one thing is to know the state of your code –&amp;nbsp; another is to act
wisely on it. Code coverage derived from automated test suites does not tell you,
if you have assertions in your unit test. Without assertions you can add and delete
code without test failing.&lt;br&gt;
The violations of code quality rules and the complexity measures of you components,
does not tell you if your design is thought out well, or express the domain your trying
to support, only a combined effort of analysis with your customer and experiments
can reveal this for you. But on the of path of getting less variation in code and
fewer defects – that this getting closer to software nirvana – I will not be without
Hudson and Sonar giving me daily updates on how we are doing.&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=81c8e5e4-b016-4d3c-a3f3-bfbd7b2d3ddb" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,81c8e5e4-b016-4d3c-a3f3-bfbd7b2d3ddb.aspx</comments>
      <category>Agile</category>
      <category>Automated Testing</category>
      <category>Automation</category>
      <category>Quality</category>
      <category>Risk-reduction</category>
      <category>Testing</category>
      <category>Tools</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=5ac3f71d-1380-4167-b4b7-eba2410bba5c</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,5ac3f71d-1380-4167-b4b7-eba2410bba5c.aspx</pingback:target>
      <dc:creator>Thomas Blomseth</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,5ac3f71d-1380-4167-b4b7-eba2410bba5c.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=5ac3f71d-1380-4167-b4b7-eba2410bba5c</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">The other day Danish newspaper Politiken
had an article about how Toyota is renting a ship to store unsold 1200 cars in the
harbour of Malmö, the Swedish town just across Øresund from Copenhagen. My guess would
be that there's some <i>hansei</i> - reflection in Japanese - going on at the world's
best manufacturer and the inventor of Lean. Obviously, Toyota has been producing to
forecast and not to actual custumer pull. Some of the questions the people at Toyota
probably could be asking themselves are these: Why didn't we sense the actual market
conditions during the fall of 2008 and changed our production schedules? Why did we
resolve to wishful thinking about customer demand? Why did we end up with overproduction?
- the worst of Toyota Production System genius Taichi Ohno's seven types of waste
in manufacturing. 
<br /><br />
When I saw the picture of unsold cars accompanying the article in Politiken I once
again had the thought: Wouldn't it be nice if overproduction could be much more visible
in software development? In much software development people are also producing to
very uncertain forecasts without being in contact with the actual customer pull. And
in software development the forecasts come in the form of big specifications of features
that in many instances end up being delayed. And even worse, features not being used
by the users when finally implemented. 
<br /><br />
If we had to rent ships to store all the implemented, but unused features, there might
be some more <i>hansei</i> going on to avoid implementing those features in the first
place?<br /><p></p><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=5ac3f71d-1380-4167-b4b7-eba2410bba5c" /></body>
      <title>Dangers of Overproduction</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,5ac3f71d-1380-4167-b4b7-eba2410bba5c.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/03/10/DangersOfOverproduction.aspx</link>
      <pubDate>Tue, 10 Mar 2009 12:57:01 GMT</pubDate>
      <description>The other day Danish newspaper Politiken had an article about how Toyota is renting a ship to store unsold 1200 cars in the harbour of Malmö, the Swedish town just across Øresund from Copenhagen. My guess would be that there's some &lt;i&gt;hansei&lt;/i&gt; -
reflection in Japanese - going on at the world's best manufacturer and the inventor
of Lean. Obviously, Toyota has been producing to forecast and not to actual custumer
pull. Some of the questions the people at Toyota probably could be asking themselves
are these: Why didn't we sense the actual market conditions during the fall of 2008
and changed our production schedules? Why did we resolve to wishful thinking about
customer demand? Why did we end up with overproduction? - the worst of Toyota Production
System genius Taichi Ohno's seven types of waste in manufacturing. 
&lt;br&gt;
&lt;br&gt;
When I saw the picture of unsold cars accompanying the article in Politiken I once
again had the thought: Wouldn't it be nice if overproduction could be much more visible
in software development? In much software development people are also producing to
very uncertain forecasts without being in contact with the actual customer pull. And
in software development the forecasts come in the form of big specifications of features
that in many instances end up being delayed. And even worse, features not being used
by the users when finally implemented. 
&lt;br&gt;
&lt;br&gt;
If we had to rent ships to store all the implemented, but unused features, there might
be some more &lt;i&gt;hansei&lt;/i&gt; going on to avoid implementing those features in the first
place?&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=5ac3f71d-1380-4167-b4b7-eba2410bba5c" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,5ac3f71d-1380-4167-b4b7-eba2410bba5c.aspx</comments>
      <category>Lean</category>
      <category>Value Stream</category>
      <category>Waste</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=e19a2d6d-32ef-4fb6-993a-3ee4abe1d4ab</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,e19a2d6d-32ef-4fb6-993a-3ee4abe1d4ab.aspx</pingback:target>
      <dc:creator>Bent Jensen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,e19a2d6d-32ef-4fb6-993a-3ee4abe1d4ab.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e19a2d6d-32ef-4fb6-993a-3ee4abe1d4ab</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">As I'm beginning to feel a little stuck
writing this blog-entry, I get a strong desire to check the news and see what happened
in the world since I last checked 30 minutes ago. And I think I also need a fresh
cup of coffee. I can imagine myself go down into the kitchen, boil water and add instant
coffee to the mug, pour hot water over and add a little milk - heavenly! But instead
of following my desires, I take a  look at the small ticking tomato-shaped timer
in front of me, and I notice that I still have 15 <img src="http://www.bestbrains.dk/Blog/content/binary/pomodoro.png" border="0" />minutes
left to go. I put a mark on a piece of paper on my table, and turn my attention back
to my blog-entry with a desire to keep going for the next fifteen minutes. I know
very well that the desire to get a cup of coffee or check the news, are just a few
of my procrastionation demons. They have haunted me for most of my life, but I now
have found the ultimate weapon in the form of a small red tomato-shaped timer.<br /><br />
It was more accident than anything else, that led me to attend <a id="vchu" title="Staffen Nötebergs" href="http://blog.staffannoteberg.com/">Staffan
Nöteberg's</a> talk about the pomodoro technique at this years agile conference in
Toronto. This accident changed my life, and after that also the lives of my colleagues.
Much would have been different had I known it 25 years ago.<br /><br />
The technique was invented by an, at that time, young italian student <a id="ewkf" title="Francesco Cirillo," href="http://cirillosscrapbook.wordpress.com/">Francesco
Cirillo,</a> who was not too pleased with his own ability to study concentrated. As
an experiment he borrowed his mothers kitchen timer, and tried to stay focused for
25 minutes. He did not succed immediately, but gradually developed the technicue to
deal with internal and external interruptions. He developed a set of simple artefacts
and  planning and improvement tools. As the technique matured, it was shaped
to be used by others than just individuals. Also pair-workers and teams can have great
benefit of the technique.<br /><br />
Curious? Check the links or attend my presentation in Copenhagen on Thursday 
March 5th at 5pm - <a id="sc29" title="read more and register here." href="../dansk.aspx/Workshops/Pomodoro-teknikken">read
more and register here.</a><br /><br /><br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=e19a2d6d-32ef-4fb6-993a-3ee4abe1d4ab" /></body>
      <title>Can a Tomato change your life? The Pomodoro Technique</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,e19a2d6d-32ef-4fb6-993a-3ee4abe1d4ab.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/02/21/CanATomatoChangeYourLifeThePomodoroTechnique.aspx</link>
      <pubDate>Sat, 21 Feb 2009 15:34:44 GMT</pubDate>
      <description>As I'm beginning to feel a little stuck writing this blog-entry, I get a strong desire to check the news and see what happened in the world since I last checked 30 minutes ago. And I think I also need a fresh cup of coffee. I can imagine myself go down into the kitchen, boil water and add instant coffee to the mug, pour hot water over and add a little milk - heavenly! But instead of following my desires, I take a&amp;nbsp; look at the small ticking tomato-shaped timer in front of me, and I notice that I still have 15 &lt;img src="http://www.bestbrains.dk/Blog/content/binary/pomodoro.png" border=0&gt;minutes
left to go. I put a mark on a piece of paper on my table, and turn my attention back
to my blog-entry with a desire to keep going for the next fifteen minutes. I know
very well that the desire to get a cup of coffee or check the news, are just a few
of my procrastionation demons. They have haunted me for most of my life, but I now
have found the ultimate weapon in the form of a small red tomato-shaped timer.&lt;br&gt;
&lt;br&gt;
It was more accident than anything else, that led me to attend &lt;a id=vchu title="Staffen Nötebergs" href="http://blog.staffannoteberg.com/"&gt;Staffan
Nöteberg's&lt;/a&gt; talk about the pomodoro technique at this years agile conference in
Toronto. This accident changed my life, and after that also the lives of my colleagues.
Much would have been different had I known it 25 years ago.&lt;br&gt;
&lt;br&gt;
The technique was invented by an, at that time, young italian student &lt;a id=ewkf title="Francesco Cirillo," href="http://cirillosscrapbook.wordpress.com/"&gt;Francesco
Cirillo,&lt;/a&gt; who was not too pleased with his own ability to study concentrated. As
an experiment he borrowed his mothers kitchen timer, and tried to stay focused for
25 minutes. He did not succed immediately, but gradually developed the technicue to
deal with internal and external interruptions. He developed a set of simple artefacts
and&amp;nbsp; planning and improvement tools. As the technique matured, it was shaped
to be used by others than just individuals. Also pair-workers and teams can have great
benefit of the technique.&lt;br&gt;
&lt;br&gt;
Curious? Check the links or attend my presentation in Copenhagen on Thursday&amp;nbsp;
March 5th at 5pm - &lt;a id=sc29 title="read more and register here." href="../dansk.aspx/Workshops/Pomodoro-teknikken"&gt;read
more and register here.&lt;/a&gt; 
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=e19a2d6d-32ef-4fb6-993a-3ee4abe1d4ab" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,e19a2d6d-32ef-4fb6-993a-3ee4abe1d4ab.aspx</comments>
      <category>Agile</category>
      <category>Learning</category>
      <category>Process Innovation</category>
      <category>productivity</category>
      <category>Value Creation</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=44ef8f80-3c17-4174-abba-40bca44f806b</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,44ef8f80-3c17-4174-abba-40bca44f806b.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,44ef8f80-3c17-4174-abba-40bca44f806b.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=44ef8f80-3c17-4174-abba-40bca44f806b</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://www.bestbrains.dk/Blog/content/binary/iStock_000001069768XSmall_web.jpg" style="float: left; margin-right: 5px; margin-bottom: 5px;" border="0" />A
couple of weeks ago I attended an interesting conference. One of the speakers told
the story of how the Great Ormond Street Hospital for Children in London had reduced
the number of mistakes during surgery and the following handoff between different
hospital units. While watching a Formula One race on TV two doctors were inspired
- Could standardized choreography used by pit stop teams in Formula One be used to
reduce the number of mistakes when transferring patients in hospitals? The short answer
-- yes. I suggest you read the full article on learning from Formula One here: <a href="http://www.post-gazette.com/pg/06318/738252-114.stm">http://www.post-gazette.com/pg/06318/738252-114.stm</a><br /><br />
The story made me wonder. If hospitals can improve safety and speed by learning from
Formula One teams, could the software industry do the same? I realize we don't really
have the same degree of physical movement that other industries have - but there is
something more to that story. I think what it really shows, is that if you foster
an environment of process innovation, and strives for excellence in safety and speed,
magic can actually happen :-)<br /><br />
I did some Google-based research and found out that in NASCAR racing, teams have gone
from 16 seconds pit stops being good, to 12-13 seconds pit stops being what is expected,
during a 10 year period. That is a pretty significant improvement. I think it is quite
likely that 10 years from now, the software industry can look back and witness similar
improvements - primarily based on the Agile/Lean transformations that are taking place
right now.<br /><br />
I think everyone wishes to be part of a team that pushes the limit of what is possible
in their domain -- I know I do :-)<br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=44ef8f80-3c17-4174-abba-40bca44f806b" /></body>
      <title>Masters of process innovation - Can the software industry learn from racing teams?</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,44ef8f80-3c17-4174-abba-40bca44f806b.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/01/31/MastersOfProcessInnovationCanTheSoftwareIndustryLearnFromRacingTeams.aspx</link>
      <pubDate>Sat, 31 Jan 2009 13:29:58 GMT</pubDate>
      <description>&lt;img src="http://www.bestbrains.dk/Blog/content/binary/iStock_000001069768XSmall_web.jpg" style="float: left; margin-right: 5px; margin-bottom: 5px;" border="0"&gt;A
couple of weeks ago I attended an interesting conference. One of the speakers told
the story of how the Great Ormond Street Hospital for Children in London had reduced
the number of mistakes during surgery and the following handoff between different
hospital units. While watching a Formula One race on TV two doctors were inspired
- Could standardized choreography used by pit stop teams in Formula One be used to
reduce the number of mistakes when transferring patients in hospitals? The short answer
-- yes. I suggest you read the full article on learning from Formula One here: &lt;a href="http://www.post-gazette.com/pg/06318/738252-114.stm"&gt;http://www.post-gazette.com/pg/06318/738252-114.stm&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
The story made me wonder. If hospitals can improve safety and speed by learning from
Formula One teams, could the software industry do the same? I realize we don't really
have the same degree of physical movement that other industries have - but there is
something more to that story. I think what it really shows, is that if you foster
an environment of process innovation, and strives for excellence in safety and speed,
magic can actually happen :-)&lt;br&gt;
&lt;br&gt;
I did some Google-based research and found out that in NASCAR racing, teams have gone
from 16 seconds pit stops being good, to 12-13 seconds pit stops being what is expected,
during a 10 year period. That is a pretty significant improvement. I think it is quite
likely that 10 years from now, the software industry can look back and witness similar
improvements - primarily based on the Agile/Lean transformations that are taking place
right now.&lt;br&gt;
&lt;br&gt;
I think everyone wishes to be part of a team that pushes the limit of what is possible
in their domain -- I know I do :-)&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=44ef8f80-3c17-4174-abba-40bca44f806b" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,44ef8f80-3c17-4174-abba-40bca44f806b.aspx</comments>
      <category>Process Innovation</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=a952367d-26f3-4595-b7be-642264ee8438</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,a952367d-26f3-4595-b7be-642264ee8438.aspx</pingback:target>
      <dc:creator>Mads Troels Hansen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,a952367d-26f3-4595-b7be-642264ee8438.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=a952367d-26f3-4595-b7be-642264ee8438</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">A task board has been used by many teams
when doing Agile development to have a shared place to manage tasks in the iteration. 
I have used it myself in a lot of different formats when working with R&amp;D development,
customer projects and also working together with offshore teams.<br /><br />
It can be a great tool for the team and creates more collaboration, feedback and risk
mitigation when having a visible task board.<br /><br />
But, you might also have more frequent requests from other teams or customers and
maybe you also work with maintenance tasks of existing products in production. It
can be challenging to combine focus in the iteration with different ongoing requests. 
<br /><br />
One alternative approach to the traditional task board and iteration planning can
be a Kanban system. Kanban is the Japanese word for visible card and originates from
the Toyota Production System. It is used to minimize inventory, enforce Just-In-Time
and eliminate waste.<br /><br />
I have used the Kanban approach to extend the traditional task board with limits on
the number of concurrent tasks in different states to reduce work in progress and
apply a more pull oriented process. When working with many different specialists in
one team, I have also seen high value by extending the board with more states to manage
the work of the different specialists. It makes it much more visible and easier to
follow the flow and find wastes in the process.<br /><br />
In one team we combined the Kanban approach with a two week release rhythm and that
enabled the team to both have a rhythm of planed activities and also do more frequent
business requests depending on their capacity and the business prioritization.<br /><br />
The combination of the more traditional iterative processes together with a Kanban
approach is very interesting, and I think many teams and organizations will find a
lot of value and increased productivity looking into this area.<br /><p></p><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=a952367d-26f3-4595-b7be-642264ee8438" /></body>
      <title>Using a Kanban system to introduce Lean techniques</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,a952367d-26f3-4595-b7be-642264ee8438.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/01/19/UsingAKanbanSystemToIntroduceLeanTechniques.aspx</link>
      <pubDate>Mon, 19 Jan 2009 22:05:58 GMT</pubDate>
      <description>A task board has been used by many teams when doing Agile development to have a shared place to manage tasks in the iteration.&amp;nbsp; I have used it myself in a lot of different formats when working with R&amp;amp;D development, customer projects and also working together with offshore teams.&lt;br&gt;
&lt;br&gt;
It can be a great tool for the team and creates more collaboration, feedback and risk
mitigation when having a visible task board.&lt;br&gt;
&lt;br&gt;
But, you might also have more frequent requests from other teams or customers and
maybe you also work with maintenance tasks of existing products in production. It
can be challenging to combine focus in the iteration with different ongoing requests. 
&lt;br&gt;
&lt;br&gt;
One alternative approach to the traditional task board and iteration planning can
be a Kanban system. Kanban is the Japanese word for visible card and originates from
the Toyota Production System. It is used to minimize inventory, enforce Just-In-Time
and eliminate waste.&lt;br&gt;
&lt;br&gt;
I have used the Kanban approach to extend the traditional task board with limits on
the number of concurrent tasks in different states to reduce work in progress and
apply a more pull oriented process. When working with many different specialists in
one team, I have also seen high value by extending the board with more states to manage
the work of the different specialists. It makes it much more visible and easier to
follow the flow and find wastes in the process.&lt;br&gt;
&lt;br&gt;
In one team we combined the Kanban approach with a two week release rhythm and that
enabled the team to both have a rhythm of planed activities and also do more frequent
business requests depending on their capacity and the business prioritization.&lt;br&gt;
&lt;br&gt;
The combination of the more traditional iterative processes together with a Kanban
approach is very interesting, and I think many teams and organizations will find a
lot of value and increased productivity looking into this area.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=a952367d-26f3-4595-b7be-642264ee8438" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,a952367d-26f3-4595-b7be-642264ee8438.aspx</comments>
      <category>Agile</category>
      <category>Flow</category>
      <category>Kanban</category>
      <category>Lean</category>
      <category>Waste</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=34731680-af98-4eff-80f2-4cdac7d93598</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,34731680-af98-4eff-80f2-4cdac7d93598.aspx</pingback:target>
      <dc:creator>Mads Troels Hansen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,34731680-af98-4eff-80f2-4cdac7d93598.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=34731680-af98-4eff-80f2-4cdac7d93598</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Maybe you have made some great improvements
in your software development organization in 2008 and now it might be easier to reach
the expected milestones and get value out to customers/users in a faster way. You
might even have introduced some Agile or Lean practices (maybe Scrum) and started
to work in a more iterative rhythm with increased collaboration and feedback. 
<br /><br />
Don’t relax and think it is good enough, because it can be so much better!<br /><br />
When your teams and individuals on a regular basis starts to search for new and improved
ways of doing their daily work, you are moving in a direction, where more of the sleeping
and hidden potential of the organization gets activated. When people get used to the
rhythm of continuous improvements with regular retrospectives, instant kaizen events
etc., they will start learning to see some of the candidates for removing wastes and
be more efficient.  
<br /><br />
Continuous improvements with a structured and constant improved process to find the
most important candidates to improve, is key to more business success in your organization
and it is essential for you to do it better than your competitors.<br /><br />
It is not only about improving development practices in your development team, because
you might just sub-optimize areas with lower impact and poor ROI. Off course you can
get a lot of value by having an efficient development infrastructure and teams working
with automated testing, emergent design etc., but the bottlenecks might be in the
value streams involving people outside development. Working on the right prioritizes
with enough knowledge of the business problem, so you can make a simple and optimal
solution, often requires an efficient collaboration between business the development
team and here might be candidates for larger improvements. 
<br /><br />
Unfortunately I know of many teams and organizations not doing any kind of regular
improvement activities in teams, projects or on a department level. That’s a shame,
because they could do it much better and be much more competitive with an improved
bottom-line in the company. 
<br /><br />
So start doing continuous improvements as an individual, in your team or organization,
and you will over time learn to see what is really blocking you not to do it better.
Just keep in mind that it can take some time and there are a lot of different techniques
to get into the root cause of the problems, so you can focus on the constant
and sustainable small steps with the largest impact.<br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=34731680-af98-4eff-80f2-4cdac7d93598" /></body>
      <title>Can it be better?</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,34731680-af98-4eff-80f2-4cdac7d93598.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2009/01/18/CanItBeBetter.aspx</link>
      <pubDate>Sun, 18 Jan 2009 22:03:13 GMT</pubDate>
      <description>Maybe you have made some great improvements in your software development organization in 2008 and now it might be easier to reach the expected milestones and get value out to customers/users in a faster way. You might even have introduced some Agile or Lean practices (maybe Scrum) and started to work in a more iterative rhythm with increased collaboration and feedback. &lt;br&gt;
&lt;br&gt;
Don’t relax and think it is good enough, because it can be so much better!&lt;br&gt;
&lt;br&gt;
When your teams and individuals on a regular basis starts to search for new and improved
ways of doing their daily work, you are moving in a direction, where more of the sleeping
and hidden potential of the organization gets activated. When people get used to the
rhythm of continuous improvements with regular retrospectives, instant kaizen events
etc., they will start learning to see some of the candidates for removing wastes and
be more efficient.&amp;nbsp; 
&lt;br&gt;
&lt;br&gt;
Continuous improvements with a structured and constant improved process to find the
most important candidates to improve, is key to more business success in your organization
and it is essential for you to do it better than your competitors.&lt;br&gt;
&lt;br&gt;
It is not only about improving development practices in your development team, because
you might just sub-optimize areas with lower impact and poor ROI. Off course you can
get a lot of value by having an efficient development infrastructure and teams working
with automated testing, emergent design etc., but the bottlenecks might be in the
value streams involving people outside development. Working on the right prioritizes
with enough knowledge of the business problem, so you can make a simple and optimal
solution, often requires an efficient collaboration between business the development
team and here might be candidates for larger improvements. 
&lt;br&gt;
&lt;br&gt;
Unfortunately I know of many teams and organizations not doing any kind of regular
improvement activities in teams, projects or on a department level. That’s a shame,
because they could do it much better and be much more competitive with an improved
bottom-line in the company. 
&lt;br&gt;
&lt;br&gt;
So start doing continuous improvements as an individual, in your team or organization,
and you will over time learn to see what is really blocking you not to do it better.
Just keep in mind that it can take some time and there are a lot of different techniques
to get into the root&amp;nbsp;cause of the problems, so you can focus on the constant
and sustainable small steps with the largest impact.&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=34731680-af98-4eff-80f2-4cdac7d93598" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,34731680-af98-4eff-80f2-4cdac7d93598.aspx</comments>
      <category>Agile</category>
      <category>management</category>
      <category>Value Stream</category>
      <category>Waste</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=65251c4e-00cd-4128-aea1-8f38ee58abe6</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,65251c4e-00cd-4128-aea1-8f38ee58abe6.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,65251c4e-00cd-4128-aea1-8f38ee58abe6.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=65251c4e-00cd-4128-aea1-8f38ee58abe6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div align="center">
          <img src="content/binary/merry%20christmas.jpg" style="border: 1px solid gray;" border="0" />
          <br />
        </div>
Now is the time to look back at an exciting 2008. As we witness the worst financial
crisis in decades it is important to remember that - now more than ever - does everyone
need to improve and innovate, in order to stay in business.<br /><br />
One thing I can say for sure is that throughout 2008 we have all learned a lot. I
speak for everyone at BestBrains when I wish all the best in 2009 for our customers,
partners and friends in Denmark, Japan, Finland, Sweden, and United States.<br /><br />
Merry Christmas and a happy new year from all of us. And remember, with continuous
focus on improving - 2009 will be better.<br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=65251c4e-00cd-4128-aea1-8f38ee58abe6" /></body>
      <title>Looking back...</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,65251c4e-00cd-4128-aea1-8f38ee58abe6.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/12/24/LookingBack.aspx</link>
      <pubDate>Wed, 24 Dec 2008 14:41:43 GMT</pubDate>
      <description>&lt;div align="center"&gt;&lt;img src="content/binary/merry%20christmas.jpg" style="border: 1px solid gray;" border="0"&gt;
&lt;br&gt;
&lt;/div&gt;
Now is the time to look back at an exciting 2008. As we witness the worst financial
crisis in decades it is important to remember that - now more than ever - does everyone
need to improve and innovate, in order to stay in business.&lt;br&gt;
&lt;br&gt;
One thing I can say for sure is that throughout 2008 we have all learned a lot. I
speak for everyone at BestBrains when I wish all the best in 2009 for our customers,
partners and friends in Denmark, Japan, Finland, Sweden, and United States.&lt;br&gt;
&lt;br&gt;
Merry Christmas and a happy new year from all of us. And remember, with continuous
focus on improving - 2009 will be better.&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=65251c4e-00cd-4128-aea1-8f38ee58abe6" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,65251c4e-00cd-4128-aea1-8f38ee58abe6.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=2dc7d0dc-180a-433b-ade5-1e4a8b55a1aa</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,2dc7d0dc-180a-433b-ade5-1e4a8b55a1aa.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,2dc7d0dc-180a-433b-ade5-1e4a8b55a1aa.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=2dc7d0dc-180a-433b-ade5-1e4a8b55a1aa</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://www.bestbrains.dk/Blog/content/binary/iStock_000005464638XSmall_web1.jpg" style="float:left;margin-right:5px;margin-bottom:5px;" border="0" />Today
I had a talk with a family member who has considerable knowledge within procurement
and service contracts in the public sector. We talked back and forth, for instance
about cleaning services. I must do my utmost to remain a man of patience when I hear
real-world stories like this: 
<br /><br />
"Let's force the company responsible for cleaning elderly homes, to reduce their prices
with 30%." ... the rationale? "It should give them incentives to do the necessary
improvements". Right? Wrong!<br /><br />
Go down that path, and you have apparently never heard the stories of how the American
automotive industry tried to reduce costs on spare parts by putting pressure on the
suppliers to the extend where they almost went bankrupt. This kind of behavior will
be perceived by the supplier as a threat to their existence. And thus, they will react
by survival instinct, which means extreme precaution, zero tolerance and distrust.
It is impossible to have a prosperous partnership when one party is trying to take
advantage of the other. And it is very hard to come up with creative 
<br />
solutions for lowering prices in an environment of distrust.<br /><br />
A different (and better) approach for improvements could be to ask the supplier to
work on increasing quality without increasing costs. That is not a threat to the existence
of the supplier, thus they can respond with creativity instead of hostility and distrust.
Hmm.. how can we increase quality without increasing prices? .. Maybe you are already
bending your mind trying to figure that out.<br /><br />
In the software industry someone once faced a challenge like this, and then came up
with the concept of <b>Automated Testing</b> -- Result? Increased quality, lower overall
cost. Today we take it for granted. Naturally, this kind of innovative thinking can
be applied to any domain.<br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=2dc7d0dc-180a-433b-ade5-1e4a8b55a1aa" /></body>
      <title>"It's the pressures of the marketplace!"</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,2dc7d0dc-180a-433b-ade5-1e4a8b55a1aa.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/12/15/ItsThePressuresOfTheMarketplace.aspx</link>
      <pubDate>Mon, 15 Dec 2008 18:16:02 GMT</pubDate>
      <description>&lt;img src="http://www.bestbrains.dk/Blog/content/binary/iStock_000005464638XSmall_web1.jpg" style="float:left;margin-right:5px;margin-bottom:5px;" border="0"&gt;Today
I had a talk with a family member who has considerable knowledge within procurement
and service contracts in the public sector. We talked back and forth, for instance
about cleaning services. I must do my utmost to remain a man of patience when I hear
real-world stories like this: 
&lt;br&gt;
&lt;br&gt;
"Let's force the company responsible for cleaning elderly homes, to reduce their prices
with 30%." ... the rationale? "It should give them incentives to do the necessary
improvements". Right? Wrong!&lt;br&gt;
&lt;br&gt;
Go down that path, and you have apparently never heard the stories of how the American
automotive industry tried to reduce costs on spare parts by putting pressure on the
suppliers to the extend where they almost went bankrupt. This kind of behavior will
be perceived by the supplier as a threat to their existence. And thus, they will react
by survival instinct, which means extreme precaution, zero tolerance and distrust.
It is impossible to have a prosperous partnership when one party is trying to take
advantage of the other. And it is very hard to come up with creative 
&lt;br&gt;
solutions for lowering prices in an environment of distrust.&lt;br&gt;
&lt;br&gt;
A different (and better) approach for improvements could be to ask the supplier to
work on increasing quality without increasing costs. That is not a threat to the existence
of the supplier, thus they can respond with creativity instead of hostility and distrust.
Hmm.. how can we increase quality without increasing prices? .. Maybe you are already
bending your mind trying to figure that out.&lt;br&gt;
&lt;br&gt;
In the software industry someone once faced a challenge like this, and then came up
with the concept of &lt;b&gt;Automated Testing&lt;/b&gt; -- Result? Increased quality, lower overall
cost. Today we take it for granted. Naturally, this kind of innovative thinking can
be applied to any domain.&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=2dc7d0dc-180a-433b-ade5-1e4a8b55a1aa" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,2dc7d0dc-180a-433b-ade5-1e4a8b55a1aa.aspx</comments>
      <category>management</category>
      <category>Society</category>
      <category>Trust</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=e3064ca6-1b98-4ea1-98db-b074dbb2b80a</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,e3064ca6-1b98-4ea1-98db-b074dbb2b80a.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,e3064ca6-1b98-4ea1-98db-b074dbb2b80a.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e3064ca6-1b98-4ea1-98db-b074dbb2b80a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://www.bestbrains.dk/Blog/content/binary/iStock_000006368018XSmall_web.jpg" style="float: left; margin-right: 5px;" border="0" />Believe
it or not -- I saw this question posted dead serious at LinkedIn the other day. It
made me think, we need to spend more efforts on training everyone to see the negative
impact of <b>individual performance measurements</b>.<br /><br />
Have you ever been in an organization where testers were praised for no. of defects
found? Though it is harder to measure, wouldn't you agree that it would be more useful
to praise people for "no. of bugs that were never introduced due to close collaboration
and mentoring of developers"? I need to emphasize that the latter is of far greater
importance than the number of bugs discovered. 
<br /><br />
And here's the important part -- Doing individual performance ratings will seriously
constrain peoples innovative abilities, and thus their abilities to do real value
stream improvements. In addition, individual performance ratings will encourage people
to NOT help each other, even when it is clear it will be of greater benefit for the
company.<br /><br />
Promise me you won't do it :-)<br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=e3064ca6-1b98-4ea1-98db-b074dbb2b80a" /></body>
      <title>How do you measure the performance of a tester?</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,e3064ca6-1b98-4ea1-98db-b074dbb2b80a.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/12/14/HowDoYouMeasureThePerformanceOfATester.aspx</link>
      <pubDate>Sun, 14 Dec 2008 22:46:15 GMT</pubDate>
      <description>&lt;img src="http://www.bestbrains.dk/Blog/content/binary/iStock_000006368018XSmall_web.jpg" style="float: left; margin-right: 5px;" border="0"&gt;Believe
it or not -- I saw this question posted dead serious at LinkedIn the other day. It
made me think, we need to spend more efforts on training everyone to see the negative
impact of &lt;b&gt;individual performance measurements&lt;/b&gt;.&lt;br&gt;
&lt;br&gt;
Have you ever been in an organization where testers were praised for no. of defects
found? Though it is harder to measure, wouldn't you agree that it would be more useful
to praise people for "no. of bugs that were never introduced due to close collaboration
and mentoring of developers"? I need to emphasize that the latter is of far greater
importance than the number of bugs discovered. 
&lt;br&gt;
&lt;br&gt;
And here's the important part -- Doing individual performance ratings will seriously
constrain peoples innovative abilities, and thus their abilities to do real value
stream improvements. In addition, individual performance ratings will encourage people
to NOT help each other, even when it is clear it will be of greater benefit for the
company.&lt;br&gt;
&lt;br&gt;
Promise me you won't do it :-)&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=e3064ca6-1b98-4ea1-98db-b074dbb2b80a" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,e3064ca6-1b98-4ea1-98db-b074dbb2b80a.aspx</comments>
      <category>Bugs</category>
      <category>Learning</category>
      <category>management</category>
      <category>Testing</category>
      <category>Value Stream</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=2d7464d0-3bb6-4eb3-af31-f06b5b0b5767</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,2d7464d0-3bb6-4eb3-af31-f06b5b0b5767.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,2d7464d0-3bb6-4eb3-af31-f06b5b0b5767.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=2d7464d0-3bb6-4eb3-af31-f06b5b0b5767</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="content/binary/Imperial%20palace1.jpg" style="margin-bottom: 5px;" border="0" />
        <br />
Last week I attended an Agile conference in Copenhagen. Among the speakers were David
J. Anderson, who did a session on kanban systems. He told the audience the story of
the kanban system used in the Imperial Palace in Tokyo, Japan. The Imperial Palace,
is really like a big park with various buildings inside. I was in the park with my
colleagues during our Japan 2008 Lean study tour last spring, and I remember being
impressed with the kanban system used in the park, as a simple and truly elegant solution.<br /><br />
When you enter the park, which can be done at several different locations, you receive
a little plastic brick. When you leave the park, you hand it back to the lady in uniform
at the exit. My first thought was, that it was used to ensure that everyone got out
before night. Interestingly that same answer came up at the conference when David
Anderson asked the audience what they thought it was used for. 
<br /><br />
However, imagine a single plastic brick is missing when the park closes. Did someone
loose their brick, or are they still inside the park? Should resources be spent on
going through the park looking for them? With thousands of daily visitors, bricks
will be lost probably on a daily basis, so it's not a way to ensure everyone gets
out.<br /><br />
Instead it is a way to limit the number of concurrent visitors in the park. The number
of bricks is limited to the highest number of concurrent visitors accepted. That means
that the entrance booth may run out of bricks, and then stop letting more people into
the park. They can start letting more people in when they get some of the bricks left
at the exit. If a brick is lost? No big deal - that just lower the maximum number
of concurrent visitors by one.<br /><img src="http://www.bestbrains.dk/Blog/content/binary/ImperialGardenToken1.jpg" border="0" style="margin-top:5px;margin-bottom:5px;" /><br />
The concept is exactly what is also used in Lean manufacturing to control the amount
of work-in-process. And of course it can also be used in software development environments
to limit work to current capacity.<br /><br />
If you should ever go to Tokyo, I would highly recommend going to the park. It is
quite beautiful.<br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=2d7464d0-3bb6-4eb3-af31-f06b5b0b5767" /></body>
      <title>A simple kanban system</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,2d7464d0-3bb6-4eb3-af31-f06b5b0b5767.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/12/11/ASimpleKanbanSystem.aspx</link>
      <pubDate>Thu, 11 Dec 2008 07:34:49 GMT</pubDate>
      <description>&lt;img src="content/binary/Imperial%20palace1.jpg" style="margin-bottom: 5px;" border="0"&gt;
&lt;br&gt;
Last week I attended an Agile conference in Copenhagen. Among the speakers were David
J. Anderson, who did a session on kanban systems. He told the audience the story of
the kanban system used in the Imperial Palace in Tokyo, Japan. The Imperial Palace,
is really like a big park with various buildings inside. I was in the park with my
colleagues during our Japan 2008 Lean study tour last spring, and I remember being
impressed with the kanban system used in the park, as a simple and truly elegant solution.&lt;br&gt;
&lt;br&gt;
When you enter the park, which can be done at several different locations, you receive
a little plastic brick. When you leave the park, you hand it back to the lady in uniform
at the exit. My first thought was, that it was used to ensure that everyone got out
before night. Interestingly that same answer came up at the conference when David
Anderson asked the audience what they thought it was used for. 
&lt;br&gt;
&lt;br&gt;
However, imagine a single plastic brick is missing when the park closes. Did someone
loose their brick, or are they still inside the park? Should resources be spent on
going through the park looking for them? With thousands of daily visitors, bricks
will be lost probably on a daily basis, so it's not a way to ensure everyone gets
out.&lt;br&gt;
&lt;br&gt;
Instead it is a way to limit the number of concurrent visitors in the park. The number
of bricks is limited to the highest number of concurrent visitors accepted. That means
that the entrance booth may run out of bricks, and then stop letting more people into
the park. They can start letting more people in when they get some of the bricks left
at the exit. If a brick is lost? No big deal - that just lower the maximum number
of concurrent visitors by one.&lt;br&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/ImperialGardenToken1.jpg" border="0" style="margin-top:5px;margin-bottom:5px;"&gt;
&lt;br&gt;
The concept is exactly what is also used in Lean manufacturing to control the amount
of work-in-process. And of course it can also be used in software development environments
to limit work to current capacity.&lt;br&gt;
&lt;br&gt;
If you should ever go to Tokyo, I would highly recommend going to the park. It is
quite beautiful.&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=2d7464d0-3bb6-4eb3-af31-f06b5b0b5767" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,2d7464d0-3bb6-4eb3-af31-f06b5b0b5767.aspx</comments>
      <category>Japan</category>
      <category>Kanban</category>
      <category>Problem Solving</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=fd72fee3-32ec-420b-bc17-9242bcaa86a5</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,fd72fee3-32ec-420b-bc17-9242bcaa86a5.aspx</pingback:target>
      <dc:creator>Thomas Blomseth</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,fd72fee3-32ec-420b-bc17-9242bcaa86a5.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=fd72fee3-32ec-420b-bc17-9242bcaa86a5</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">I'm reading <a href="http://en.wikipedia.org/wiki/Edwards_Deming">Dr.
W. Edwards Deming</a>'s main work <i>Out of the Crisis</i> for the first time and
thought I would share some of Dr. Demings wise words with you. I didn't really expect
it but Dr. Deming actually has something to say about software development.<br /><br />
Earlier this year I had the pleasure of reading his other main work<i> The New Economics</i> and
was amazed by the insights of Dr. Deming and how little people in general and management
in particular have understood what he actually said. Granted, his overall style could
easily be termed idiosyncratic and collage-like but stunningly concise formulations
are spread all over. 
<br /><br />
This is what Dr. Deming said about the "supposition that it is only necessary to meet
specifications" when it comes to software development: 
<br /><br />
"A programmer has a similar problem. She learns, after she finishes the job, that
she programmed very well the specifications as delivered to her, but that they were
deficient. If she had only known the purpose of the program, she could have done it
right for the purpose, even though the specifications were deficient."<br /><br />
That's it! Did I mention that Dr. Deming wrote this in 1984, long before anyone talked
about Agile software development?<br /><p></p><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=fd72fee3-32ec-420b-bc17-9242bcaa86a5" /></body>
      <title>Wise words from Dr. Deming on specs</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,fd72fee3-32ec-420b-bc17-9242bcaa86a5.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/12/10/WiseWordsFromDrDemingOnSpecs.aspx</link>
      <pubDate>Wed, 10 Dec 2008 12:51:03 GMT</pubDate>
      <description>I'm reading &lt;a href="http://en.wikipedia.org/wiki/Edwards_Deming"&gt;Dr. W. Edwards Deming&lt;/a&gt;'s
main work &lt;i&gt;Out of the Crisis&lt;/i&gt; for the first time and thought I would share some
of Dr. Demings wise words with you. I didn't really expect it but Dr. Deming actually
has something to say about software development.&lt;br&gt;
&lt;br&gt;
Earlier this year I had the pleasure of reading his other main work&lt;i&gt; The New Economics&lt;/i&gt; and
was amazed by the insights of Dr. Deming and how little people in general and management
in particular have understood what he actually said. Granted, his overall style could
easily be termed idiosyncratic and collage-like but stunningly concise formulations
are spread all over. 
&lt;br&gt;
&lt;br&gt;
This is what Dr. Deming said about the "supposition that it is only necessary to meet
specifications" when it comes to software development: 
&lt;br&gt;
&lt;br&gt;
"A programmer has a similar problem. She learns, after she finishes the job, that
she programmed very well the specifications as delivered to her, but that they were
deficient. If she had only known the purpose of the program, she could have done it
right for the purpose, even though the specifications were deficient."&lt;br&gt;
&lt;br&gt;
That's it! Did I mention that Dr. Deming wrote this in 1984, long before anyone talked
about Agile software development?&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=fd72fee3-32ec-420b-bc17-9242bcaa86a5" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,fd72fee3-32ec-420b-bc17-9242bcaa86a5.aspx</comments>
      <category>Agile</category>
      <category>management</category>
      <category>Quality</category>
      <category>Value Creation</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=85c95042-83cc-4ad7-8df3-436397003187</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,85c95042-83cc-4ad7-8df3-436397003187.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,85c95042-83cc-4ad7-8df3-436397003187.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=85c95042-83cc-4ad7-8df3-436397003187</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <br />
        <img src="http://www.bestbrains.dk/Blog/content/binary/iStock_000005324835XSmall_web.jpg" style="float: left; margin-right: 10px; margin-bottom: 10px;" border="0" />Have
you ever heard the old joke about how many programmers it will take to change a light
bulb? -- None, it's a hardware problem. 
<br /><br />
After the following experience, one might think the answer above is the logic of HP
-- the worlds largest provider of printers.<br /><br />
The other day I found my self in need of scanning a document. A company was asking
me to fax a signed non-disclosure agreement to them -- Who has a fax these days anyway??<br /><br />
So I thought to myself, aha, I'll just scan the document with my signature on the
HP PSC 2110 combined printer and scanner I have next door. Though I had not used the
printer with my current laptop, I thought to myself, How hard can it be to get a bit
of HP hardware running these days? (man, was I wrong...) I had already used it on
my old laptop, so I set out with confidence on what was to become a quest longer than
expected.<br /><br />
First I eagerly put the document in the scanner, and connected to it via a USB cable.
Windows came up with "Found New Hardware" dialog. I nodded - Sure BillG, please attempt
to find the right driver for me. Then confidence started dropping. Another "Found
New Hardware", and another, and another, and another. Damn, how many different devices
exists in this printer/scanner that needs drivers installed seperately? Well.. the
number of dialogs wasn't really what scared me the most. The fact that some of them
completed successfully while others said the hardware could not be installed successfully,
concerned me a bit more.<br /><br />
Hmm... okay, plug and play -- yeah right. I decided to do it the ol'fashioned way.
Pick the right drivers directly from hp.com, and install it myself. At this point
I was yet to discover that the road ahead was to be filled with trouble and despair.<br /><br />
I went to Google and typed "HP PSC 2110 driver download" - And as anyone would expect
I found the correct site in a few seconds. I clicked "Windows XP" as operating system
and got a list of downloadable files. I scrolled to the "Driver" section. ...And stopped.
I need to download a 166 mb driver?? You got to be kidding me HP! Though I haven't
written a lot of hardware drivers I just know, that no hardware driver will even come
close to 166 megs!<br /><br />
You would think that engineers at HP had tried Windows Update from Microsoft, which
- though not perfect - features to ability to download, only whats needed, in the
user's particular context. But no, some product owner guy at HP probably convinced
everyone around him that users would rather spend their precious time downloading
166 mb of bloated irrelevant software (with photo viewing capabilities!! - amazing!)<br /><br />
Though shocked I convinced myself that if I just downloaded the driver, everything
would work out just fine.<br /><br />
..30 minutes later..<br /><br />
I started the installer and for a second I was thinking ... "Hey, maybe it will just
work right away". After a few moments the installer asked me to plug in the scanner
in the USB port. And so I did ...and waited.... and waited... I went to pick up lunch,
and came back 10 minutes later. Now it said that the installation was unsuccessful,
and asked me to look in the readme file (only way out was an "Okay" button). What
in the world should I look for in the readme file? Why was it unsuccessful? Why doesn't
it just work...? I was all of a sudden feeling very tired.<br /><br />
I could see that the installer had put two shortcuts on my desktop. "HP Director"
which I had no clue what might be, and "HP Photo &amp; Imaging"... I clicked the latter,
found a Scan button and clicked it. The program asked me to select a source... unfortunately
the list of available sources was empty, though my scanner was plugged in. Hmm...
great, a partial install.<br /><br />
..an hour passed, I tried back and forth but still wasn't able to scan my document
and I gave up. I thought to myself, maybe I should just buy another scanner? 
<br /><br />
Looking back, I wonder if it is possible to find a vendor that takes software, drivers
and particularly user experience more seriously?<br /><br />
I admit, that if had I bought a just-released-to-market, highly complex, all-new-technology
piece of hardware - I might run into problems like this. But dammit, this is a printer
and scanner, using technology that is 20 years old, running on the most common operating
system on the planet.<br /><br />
Well.. the PSC 2110 is a couple of years old. So maybe HP is so busy releasing new
printers that they don't update and maintain drivers for their old stuff? While this
could be true... I certainly doesn't hope it is the case. Dear HP... users don't need
new printers, they need working printers!<br /><br />
If I put my software background aside, and step into the world of my favorite fictional
user, nice old Mrs. Jensen, it all seems even more bizarre. How on earth did HP expect
her to figure this stuff out? 
<br /><br />
So dear HP - I got to say, you got one sceptic customer, to say the least. And I can't
believe I'm the only one who is experiencing this. Why not seize this opportunity
to tap into one of the most valuable sources of information -- user feedback. The
guys responsible for maintaining content at hp.com seemed to get that user feedback
is important. I guess otherwise they wouldn't have implemented an online feedback
system. I got to admit that I found it a bit strange that they asked me to give them
feedback about the web experience in the "driver downloads" section of their website.
See for yourself: "Thank you for taking the time to provide this information. This
will help us to provide a better download experience in the future."<br /><br />
I did consider writing "I'll give you feedback on the experience in 30 minutes, once
my printer driver download is completed", but maybe they wouldn't get the irony.<br /><br />
Who gives a damn about the download experience anyway? I'm not the kind of guy that
comes about driver download pages without an underlying reason, like wanting to scan
a document. So why not ask me for feedback in the context of the whole experience,
instead of "Is this web page useful?". I mean -- dear HP, you do not earn money from
having a nice structured website. You earn money, marketshare and respect by understanding
and helping users users facing problems - like "I need to print a document". So if
I were to give you some advice based on this experience - ask yourself: "How can we
solve the problems our users face, faster and easier than anyone else?"<br /><br />
I could talk for days about this bizarre experience -- but I'll leave it here, for
HP or anyone else to comment :-)<br /><br />
Oh and by the way, yes - I did submit this experience through HP's online feedback
system. Now the real question is whether those responsible for the drivers download
pages, will actually forward it to the appropriate team inside HP...<br /><br />
---<br />
What if there was just ONE file to download from the HP website, no matter which HP
printer you had. A simple probing utility no larger than 500kb, which would probe
your printer, download and install the right driver. And I bet it could be done with
no more than a single click by the end-user. I wonder how that would affect the number
of support incidents at HP.<br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=85c95042-83cc-4ad7-8df3-436397003187" /></body>
      <title>How many user experience experts does it take to change a light bulb?</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,85c95042-83cc-4ad7-8df3-436397003187.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/12/07/HowManyUserExperienceExpertsDoesItTakeToChangeALightBulb.aspx</link>
      <pubDate>Sun, 07 Dec 2008 15:17:36 GMT</pubDate>
      <description>&lt;br&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/iStock_000005324835XSmall_web.jpg" style="float: left; margin-right: 10px; margin-bottom: 10px;" border="0"&gt;Have
you ever heard the old joke about how many programmers it will take to change a light
bulb? -- None, it's a hardware problem. 
&lt;br&gt;
&lt;br&gt;
After the following experience, one might think the answer above is the logic of HP
-- the worlds largest provider of printers.&lt;br&gt;
&lt;br&gt;
The other day I found my self in need of scanning a document. A company was asking
me to fax a signed non-disclosure agreement to them -- Who has a fax these days anyway??&lt;br&gt;
&lt;br&gt;
So I thought to myself, aha, I'll just scan the document with my signature on the
HP PSC 2110 combined printer and scanner I have next door. Though I had not used the
printer with my current laptop, I thought to myself, How hard can it be to get a bit
of HP hardware running these days? (man, was I wrong...) I had already used it on
my old laptop, so I set out with confidence on what was to become a quest longer than
expected.&lt;br&gt;
&lt;br&gt;
First I eagerly put the document in the scanner, and connected to it via a USB cable.
Windows came up with "Found New Hardware" dialog. I nodded - Sure BillG, please attempt
to find the right driver for me. Then confidence started dropping. Another "Found
New Hardware", and another, and another, and another. Damn, how many different devices
exists in this printer/scanner that needs drivers installed seperately? Well.. the
number of dialogs wasn't really what scared me the most. The fact that some of them
completed successfully while others said the hardware could not be installed successfully,
concerned me a bit more.&lt;br&gt;
&lt;br&gt;
Hmm... okay, plug and play -- yeah right. I decided to do it the ol'fashioned way.
Pick the right drivers directly from hp.com, and install it myself. At this point
I was yet to discover that the road ahead was to be filled with trouble and despair.&lt;br&gt;
&lt;br&gt;
I went to Google and typed "HP PSC 2110 driver download" - And as anyone would expect
I found the correct site in a few seconds. I clicked "Windows XP" as operating system
and got a list of downloadable files. I scrolled to the "Driver" section. ...And stopped.
I need to download a 166 mb driver?? You got to be kidding me HP! Though I haven't
written a lot of hardware drivers I just know, that no hardware driver will even come
close to 166 megs!&lt;br&gt;
&lt;br&gt;
You would think that engineers at HP had tried Windows Update from Microsoft, which
- though not perfect - features to ability to download, only whats needed, in the
user's particular context. But no, some product owner guy at HP probably convinced
everyone around him that users would rather spend their precious time downloading
166 mb of bloated irrelevant software (with photo viewing capabilities!! - amazing!)&lt;br&gt;
&lt;br&gt;
Though shocked I convinced myself that if I just downloaded the driver, everything
would work out just fine.&lt;br&gt;
&lt;br&gt;
..30 minutes later..&lt;br&gt;
&lt;br&gt;
I started the installer and for a second I was thinking ... "Hey, maybe it will just
work right away". After a few moments the installer asked me to plug in the scanner
in the USB port. And so I did ...and waited.... and waited... I went to pick up lunch,
and came back 10 minutes later. Now it said that the installation was unsuccessful,
and asked me to look in the readme file (only way out was an "Okay" button). What
in the world should I look for in the readme file? Why was it unsuccessful? Why doesn't
it just work...? I was all of a sudden feeling very tired.&lt;br&gt;
&lt;br&gt;
I could see that the installer had put two shortcuts on my desktop. "HP Director"
which I had no clue what might be, and "HP Photo &amp;amp; Imaging"... I clicked the latter,
found a Scan button and clicked it. The program asked me to select a source... unfortunately
the list of available sources was empty, though my scanner was plugged in. Hmm...
great, a partial install.&lt;br&gt;
&lt;br&gt;
..an hour passed, I tried back and forth but still wasn't able to scan my document
and I gave up. I thought to myself, maybe I should just buy another scanner? 
&lt;br&gt;
&lt;br&gt;
Looking back, I wonder if it is possible to find a vendor that takes software, drivers
and particularly user experience more seriously?&lt;br&gt;
&lt;br&gt;
I admit, that if had I bought a just-released-to-market, highly complex, all-new-technology
piece of hardware - I might run into problems like this. But dammit, this is a printer
and scanner, using technology that is 20 years old, running on the most common operating
system on the planet.&lt;br&gt;
&lt;br&gt;
Well.. the PSC 2110 is a couple of years old. So maybe HP is so busy releasing new
printers that they don't update and maintain drivers for their old stuff? While this
could be true... I certainly doesn't hope it is the case. Dear HP... users don't need
new printers, they need working printers!&lt;br&gt;
&lt;br&gt;
If I put my software background aside, and step into the world of my favorite fictional
user, nice old Mrs. Jensen, it all seems even more bizarre. How on earth did HP expect
her to figure this stuff out? 
&lt;br&gt;
&lt;br&gt;
So dear HP - I got to say, you got one sceptic customer, to say the least. And I can't
believe I'm the only one who is experiencing this. Why not seize this opportunity
to tap into one of the most valuable sources of information -- user feedback. The
guys responsible for maintaining content at hp.com seemed to get that user feedback
is important.&amp;nbsp;I guess otherwise they wouldn't have implemented an online feedback
system. I got to admit that I found it a bit strange that they asked me to give them
feedback about the web experience in the "driver downloads" section of their website.
See for yourself: "Thank you for taking the time to provide this information. This
will help us to provide a better download experience in the future."&lt;br&gt;
&lt;br&gt;
I did consider writing "I'll give you feedback on the experience in 30 minutes, once
my printer driver download is completed", but maybe they wouldn't get the irony.&lt;br&gt;
&lt;br&gt;
Who gives a damn about the download experience anyway? I'm not the kind of guy that
comes about driver download pages without an underlying reason, like wanting to scan
a document. So why not ask me for feedback in the context of the whole experience,
instead of "Is this web page useful?". I mean -- dear HP, you do not earn money from
having a nice structured website. You earn money, marketshare and respect by understanding
and helping users users facing problems - like "I need to print a document". So if
I were to give you some advice based on this experience - ask yourself: "How can we
solve the problems our users face, faster and easier than anyone else?"&lt;br&gt;
&lt;br&gt;
I could talk for days about this bizarre experience -- but I'll leave it here, for
HP or anyone else to comment :-)&lt;br&gt;
&lt;br&gt;
Oh and by the way, yes - I did submit this experience through HP's online feedback
system. Now the real question is whether those responsible for the drivers download
pages, will actually forward it to the appropriate team inside HP...&lt;br&gt;
&lt;br&gt;
---&lt;br&gt;
What if there was just ONE file to download from the HP website, no matter which HP
printer you had. A simple probing utility no larger than 500kb, which would probe
your printer, download and install the right driver. And I bet it could be done with
no more than a single click by the end-user. I wonder how that would affect the number
of support incidents at HP.&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=85c95042-83cc-4ad7-8df3-436397003187" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,85c95042-83cc-4ad7-8df3-436397003187.aspx</comments>
      <category>Learning</category>
      <category>Problem Solving</category>
      <category>User Experience</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=ce3c5101-d622-448e-afcb-6678910d9197</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,ce3c5101-d622-448e-afcb-6678910d9197.aspx</pingback:target>
      <dc:creator>Kristian Dupont</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,ce3c5101-d622-448e-afcb-6678910d9197.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=ce3c5101-d622-448e-afcb-6678910d9197</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img src="http://www.bestbrains.dk/Images/letterbox.jpg" width="185" align="left" height="170" hspace="5" vspace="5" /> Outlook
and Thunderbird are two examples of programs that aren't <a href="http://www.chrylers.com/2006/11/30/is-your-code-laptop-ready/">laptop
ready</a>. The reason being that the SMTP setup is fixed. Most SMTP servers have IP
whitelists, meaning that only a few, known IP addresses are allowed to send mail through
them. Therefore, the SMTP server that is used should vary with my current IP address
which changes all the time.<br />
Apple Mail solved this problem - if an SMTP server rejects the connection, it will
try the next known SMTP server until a connection is accepted.
</p>
        <p>
          <br />
I am quick to tell developers off if they seem too attached to a metaphor. In this
case however, the mail metaphor actually works really well. You have a personal mail
box where mail sent to you ends up. And then you have the mail boxes on the street
corners for outgoing mail. Those are perfect analogues to POP3 and SMTP. Outlook uses
the metaphor of an account where stuff enters and leaves, which means that an account
knows about a POP3 server and an SMTP server. 
</p>
        <img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=ce3c5101-d622-448e-afcb-6678910d9197" />
      </body>
      <title>Choosing Metaphors</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,ce3c5101-d622-448e-afcb-6678910d9197.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/11/30/ChoosingMetaphors.aspx</link>
      <pubDate>Sun, 30 Nov 2008 20:36:23 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img src="http://www.bestbrains.dk/Images/letterbox.jpg" width="185" align="left" height="170" hspace="5" vspace="5"&gt; Outlook
and Thunderbird are two examples of programs that aren't &lt;a href="http://www.chrylers.com/2006/11/30/is-your-code-laptop-ready/"&gt;laptop
ready&lt;/a&gt;. The reason being that the SMTP setup is fixed. Most SMTP servers have IP
whitelists, meaning that only a few, known IP addresses are allowed to send mail through
them. Therefore, the SMTP server that is used should vary with my current IP address
which changes all the time.&lt;br&gt;
Apple Mail solved this problem - if an SMTP server rejects the connection, it will
try the next known SMTP server until a connection is accepted.
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
I am quick to tell developers off if they seem too attached to a metaphor. In this
case however, the mail metaphor actually works really well. You have a personal mail
box where mail sent to you ends up. And then you have the mail boxes on the street
corners for outgoing mail. Those are perfect analogues to POP3 and SMTP. Outlook uses
the metaphor of an account where stuff enters and leaves, which means that an account
knows about a POP3 server and an SMTP server. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=ce3c5101-d622-448e-afcb-6678910d9197" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,ce3c5101-d622-448e-afcb-6678910d9197.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=c0dfc0b7-5fcf-4541-beff-526cac0ecad0</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,c0dfc0b7-5fcf-4541-beff-526cac0ecad0.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,c0dfc0b7-5fcf-4541-beff-526cac0ecad0.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=c0dfc0b7-5fcf-4541-beff-526cac0ecad0</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://www.bestbrains.dk/Blog/content/binary/newspaper1.jpg" style="float: left; margin-right: 15px;" border="0" />Reading
the danish newspaper Jyllands-Posten today, I felt like writing a blog entry in a
category we rarely touch on this blog. That is, commenting on political issues in
Denmark. I was quite surprised reading that a recent study showed that infants born
in Denmark in the year 2008, would during their entire life end up costing society
more than they contribute. Naturally a problem, especially considering that Denmark
already has one of the highest income taxes in the world (up to around 62% depending
on your total income).<br /><br />
According to the article politicians are faced with only 3 options, to overcome this
lack of balance between national income and expenses.<br /><ol><li>
Increase taxes        
</li><li>
Make people work longer</li><li>
Cut budgets</li></ol><br />
Now, I would agree if the assumption of time spent working, directly affected the
tax incomes at a fixed ratio. That certainly isn't the case. Let's try and shift the
problem. Imagine if companies were able to become more profitable, they would then
pay more taxes, hopefully to the benefit of the nation. All without picking any of
the options above.<br /><br />
So what options do companies have at becoming more profitable?<br /><ol><li>
Increase prices on products and services</li><li>
Lower average employee salary</li><li>
Layoffs</li></ol>
Not surprisingly it looks a lot like the list in the top. Also, it has the same built-in
assumptions.<br /><br />
It seems like a common misunderstanding that there is a direct link between time spent
and value created. Does people that work longer create more value? Maybe, but not
necessarily. It obviously depends on what they spend their time on. 
<br /><br />
None of the options listed above are particular popular, as they all have negative
impact somewhere. But as I see it there is at least one more option, which is far
more interesting. I am surprised that it is really so hard to see, that we jump to
conclusions on time and value being part of a fixed equation.<br /><br />
The Fourth Option: Do more with less.<br /><br />
Sounds impossible? It's not. You see, <b>working is not a goal</b> - if it was, we
could all just be digging holes in the ground and once done, we could fill them again. <b>Value
creation is the goal</b> and work just happens to be a necessity in the process of
creating value. By focusing on maximizing work, we are not necessarily maximizing
the value created. Have you ever considered that much of the work we do today could
be as value-adding as digging holes in the ground? And if that is the case, we have
a potentially of increasing value creation, without working longer hours.<br /><br />
It makes you wonder, if doing work is not the goal why do we spend so much time talking
about lowering unemployment rates? Unemployment is cleary related only to whether
people work or not? I personally wonder why this nation have something called The
Ministry of Employment? It should be changed into The Ministry of Value Creation. 
<br /><br />
I think it's about time we change focus from working hard, to thinking hard. I bet
we could work towards unleashing the abundant source of human creativity, and surely
we can find ways to add more value to our customers, our society and ourselves without
working longer hours. 
<br /><br />
I'd love to hear your thoughts on this.<br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=c0dfc0b7-5fcf-4541-beff-526cac0ecad0" /></body>
      <title>The Fourth Option</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,c0dfc0b7-5fcf-4541-beff-526cac0ecad0.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/11/30/TheFourthOption.aspx</link>
      <pubDate>Sun, 30 Nov 2008 19:21:22 GMT</pubDate>
      <description>&lt;img src="http://www.bestbrains.dk/Blog/content/binary/newspaper1.jpg" style="float: left; margin-right: 15px;" border="0"&gt;Reading
the danish newspaper Jyllands-Posten today, I felt like writing a blog entry in a
category we rarely touch on this blog. That is, commenting on political issues in
Denmark. I was quite surprised reading that a recent study showed that infants born
in Denmark in the year 2008, would during their entire life end up costing society
more than they contribute. Naturally a problem, especially considering that Denmark
already has one of the highest income taxes in the world (up to around 62% depending
on your total income).&lt;br&gt;
&lt;br&gt;
According to the article politicians are faced with only 3 options, to overcome this
lack of balance between national income and expenses.&lt;br&gt;
&lt;ol&gt;
&lt;li&gt;
Increase taxes&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/li&gt;
&lt;li&gt;
Make people work longer&lt;/li&gt;
&lt;li&gt;
Cut budgets&lt;/li&gt;
&lt;/ol&gt;
&lt;br&gt;
Now, I would agree if the assumption of time spent working, directly affected the
tax incomes at a fixed ratio. That certainly isn't the case. Let's try and shift the
problem. Imagine if companies were able to become more profitable, they would then
pay more taxes, hopefully to the benefit of the nation. All without picking any of
the options above.&lt;br&gt;
&lt;br&gt;
So what options do companies have at becoming more profitable?&lt;br&gt;
&lt;ol&gt;
&lt;li&gt;
Increase prices on products and services&lt;/li&gt;
&lt;li&gt;
Lower average employee salary&lt;/li&gt;
&lt;li&gt;
Layoffs&lt;/li&gt;
&lt;/ol&gt;
Not surprisingly it looks a lot like the list in the top. Also, it has the same built-in
assumptions.&lt;br&gt;
&lt;br&gt;
It seems like a common misunderstanding that there is a direct link between time spent
and value created. Does people that work longer create more value? Maybe, but not
necessarily. It obviously depends on what they spend their time on. 
&lt;br&gt;
&lt;br&gt;
None of the options listed above are particular popular, as they all have negative
impact somewhere. But as I see it there is at least one more option, which is far
more interesting. I am surprised that it is really so hard to see, that we jump to
conclusions on time and value being part of a fixed equation.&lt;br&gt;
&lt;br&gt;
The Fourth Option: Do more with less.&lt;br&gt;
&lt;br&gt;
Sounds impossible? It's not. You see, &lt;b&gt;working is not a goal&lt;/b&gt; - if it was, we
could all just be digging holes in the ground and once done, we could fill them again. &lt;b&gt;Value
creation is the goal&lt;/b&gt; and work just happens to be a necessity in the process of
creating value. By focusing on maximizing work, we are not necessarily maximizing
the value created. Have you ever considered that much of the work we do today could
be as value-adding as digging holes in the ground? And if that is the case, we have
a potentially of increasing value creation, without working longer hours.&lt;br&gt;
&lt;br&gt;
It makes you wonder, if doing work is not the goal why do we spend so much time talking
about lowering unemployment rates? Unemployment is cleary related only to whether
people work or not? I personally wonder why this nation have something called The
Ministry of Employment? It should be changed into The Ministry of Value Creation. 
&lt;br&gt;
&lt;br&gt;
I think it's about time we change focus from working hard, to thinking hard. I bet
we could work towards unleashing the abundant source of human creativity, and surely
we can find ways to add more value to our customers, our society and ourselves without
working longer hours. 
&lt;br&gt;
&lt;br&gt;
I'd love to hear your thoughts on this.&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=c0dfc0b7-5fcf-4541-beff-526cac0ecad0" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,c0dfc0b7-5fcf-4541-beff-526cac0ecad0.aspx</comments>
      <category>Problem Solving</category>
      <category>Society</category>
      <category>Value Creation</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=425d6a93-8ab9-42f4-8db3-65ad808f3608</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,425d6a93-8ab9-42f4-8db3-65ad808f3608.aspx</pingback:target>
      <dc:creator>Lars Thorup</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,425d6a93-8ab9-42f4-8db3-65ad808f3608.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=425d6a93-8ab9-42f4-8db3-65ad808f3608</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">When a softwareproject is about to finish,
the most important task is to deliver the software into production. The goal of most
projects is to create business value, and software that creates business value is
by definition in production. 
<br /><br />
BestBrains often argue that this final delivery becomes easy, if the team has practiced
many deliveries during the lifetime of the project, in essence acting as if they should
deliver at any time. 
<br /><div align="center"><img src="http://www.bestbrains.dk/Blog/content/binary/box_small.jpg" border="0" /><br /></div>
But is it really possible to actually deliver at any time? Well, on one of our current
projects here at BestBrains, this assumption was tested by our customer: 
<br /><br />
The project in question was in the middle of its fourth iteration, when our customer
asked, if we would recommend against using our latest delivery for an important last-minute
event with one of their customers. This latest delivery was from the beginning of
the current iteration, and we knew that the customer had actually tested it. They
were very confident about its quality and wanted to use the features it contained.
So we said: "sure, go ahead". 
<br /><br />
After running a successfull event without support from our side, we now know that
delivery at any time is attainable. It could be for you too!<img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=425d6a93-8ab9-42f4-8db3-65ad808f3608" /></body>
      <title>Delivery at any time</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,425d6a93-8ab9-42f4-8db3-65ad808f3608.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/11/26/DeliveryAtAnyTime.aspx</link>
      <pubDate>Wed, 26 Nov 2008 20:51:53 GMT</pubDate>
      <description>When a softwareproject is about to finish, the most important task is to
deliver the software into production. The goal of most projects is to 
create business value, and software that creates business value is by 
definition in production. &lt;br&gt;
&lt;br&gt;
BestBrains often argue that this final delivery becomes easy, if the team has practiced
many deliveries during the lifetime of the project, in essence acting as if they should
deliver at any time. 
&lt;br&gt;
&lt;div align="center"&gt;&lt;img src="http://www.bestbrains.dk/Blog/content/binary/box_small.jpg" border="0"&gt;
&lt;br&gt;
&lt;/div&gt;
But is it really possible to actually deliver at any time? Well, on one of our current
projects here at BestBrains, this assumption was tested by our customer: 
&lt;br&gt;
&lt;br&gt;
The project in question was in the middle of its fourth iteration, when our customer
asked, if we would recommend against using our latest delivery for an important last-minute
event with one of their customers. This latest delivery was from the beginning of
the current iteration, and we knew that the customer had actually tested it. They
were very confident about its quality and wanted to use the features it contained.
So we said: "sure, go ahead". 
&lt;br&gt;
&lt;br&gt;
After running a successfull event without support from our side, we now know that
delivery at any time is attainable. It could be for you too!&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=425d6a93-8ab9-42f4-8db3-65ad808f3608" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,425d6a93-8ab9-42f4-8db3-65ad808f3608.aspx</comments>
      <category>Return on investment</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=575eb056-fb63-4187-b82e-d041e51c198e</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,575eb056-fb63-4187-b82e-d041e51c198e.aspx</pingback:target>
      <dc:creator>Lars Thorup</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,575eb056-fb63-4187-b82e-d041e51c198e.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=575eb056-fb63-4187-b82e-d041e51c198e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">On Hacker News, uuilly tells how they implemented
a simple bugtracking scheme using DropBox, see <a href="http://news.ycombinator.org/item?id=351293">Using
Dropbox to Track Bugs</a>. I don't know if I should smile because this is a nice example
of how to find a simple and pragmatic solution to some problem you have. Or if I should
cry over all the bugs they are now going to track instead of fixing them, see <a href="http://www.bestbrains.dk/dansk.aspx/Artikler/Why_Bugs_should_not_be_Tracked">Why
Bugs should not be Tracked</a>.<br /><br /><p></p><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=575eb056-fb63-4187-b82e-d041e51c198e" /></body>
      <title>Bugtracking with DropBox - A simple solution to the wrong problem</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,575eb056-fb63-4187-b82e-d041e51c198e.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/11/05/BugtrackingWithDropBoxASimpleSolutionToTheWrongProblem.aspx</link>
      <pubDate>Wed, 05 Nov 2008 08:09:00 GMT</pubDate>
      <description>On Hacker News, uuilly tells how they implemented a simple bugtracking scheme using DropBox, see &lt;a href="http://news.ycombinator.org/item?id=351293"&gt;Using
Dropbox to Track Bugs&lt;/a&gt;. I don't know if I should smile because this is a nice example
of how to find a simple and pragmatic solution to some problem you have. Or if I should
cry over all the bugs they are now going to track instead of fixing them, see &lt;a href="http://www.bestbrains.dk/dansk.aspx/Artikler/Why_Bugs_should_not_be_Tracked"&gt;Why
Bugs should not be Tracked&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=575eb056-fb63-4187-b82e-d041e51c198e" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,575eb056-fb63-4187-b82e-d041e51c198e.aspx</comments>
      <category>Bug tracking</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=a853ef50-5126-42ad-9e17-a992b17093f4</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,a853ef50-5126-42ad-9e17-a992b17093f4.aspx</pingback:target>
      <dc:creator>Bent Jensen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,a853ef50-5126-42ad-9e17-a992b17093f4.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=a853ef50-5126-42ad-9e17-a992b17093f4</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div style="margin-top: 0px; margin-bottom: 0px;">
At some stage in my life, my experience of time changed from being something I had
plenty of, sometimes even too much, to being a very scarce resource where tasks and
chores compete for time and attention. 
</div>
        <div style="margin-top: 0px; margin-bottom: 0px;">
          <br />
        </div>
        <div style="margin-top: 0px; margin-bottom: 0px;">
The other day I walked past a place where  there used to be a cherry
plum tree. I remembered how I as a kid, could spend hours in that tree, enjoying
the half-ripe plums, without ever feeling there was anything more important or serious
to do. Usually there was a price to pay the next day, but that did not prevent me
from doing it again again. While I mourning that lost paradise, and
looking for a way to find it again, there is the practical problem of managing, remembering
and prioritizing all the stuff I have to do. 
</div>
        <div style="margin-top: 0px; margin-bottom: 0px;">
          <br />
        </div>
        <div style="margin-top: 0px; margin-bottom: 0px;">
Over the years I have used multiple systems: Sticky notes, task lists in
Outlook, notebooks of all kind, emails send to myself, mindmaps, and probably a few
more I can't remember. All of them were great for a while, but all had limitations
that let me to eventfully give them up. For instance Sticky notes are great,
tangible and practical - as long as you are the same place all the time. Mindmaps
are great for a brainstorming a set of tasks, but more tedious on a daily basis. 
</div>
        <div style="margin-top: 0px; margin-bottom: 0px;">
          <br />
        </div>
        <div style="margin-top: 0px; margin-bottom: 0px;">
But now I have used a tool continuously for more than a year, and I am still
surprised by the way it can fit to any of my changing work modes and places. 
</div>
        <p>
The name of the tool is <a href="http://www.rememberthemilk.com">Remember the Milk<span style="vertical-align: super;"><font size="1">tm</font></span></a> .
It is a free, webbased tool. What I really like about it is that it  is simple,
easy to use, and at the same time extraordinary flexible in terms of input and output. 
</p>
        <p>
The core of the product is a set of tasklists, each containing tasks, that can be
prioritized, have a due dates, estimates and a few other things. It is easy to create
and remove lists. 
</p>
        <p>
But what it really impressive is the numerous ways to enter new tasks and the equally
impressive amount of ways to manage and be reminded of tasks:    
</p>
        <p>
First of all there is a nice Ajax based Web-UI. From that I can enter  and maintain
all my tasks as well as my lists. That probably the least important part of RTM. 
</p>
        <p>
I mostly interface with RTM through my iGoogle Dashboard in Firebox.  I also
have access to my tasks via Gmail, Google Calendar, Skype and on my mobile phone.
  Every morning I get a friendly email, telling me which tasks are due today,
and if they are due at a certain hour, I get a reminder at that time too. Besides
iGoogle, Google Calendar and Gmail,  I can enter tasks on my mobile phone or
through email.
</p>
        <p>
Try it out! - maybe you too will never need another tool to manage your tasks
</p>
        <p>
          <br />
        </p>
        <p>
          <br />
        </p>
        <p>
          <br />
        </p>
        <p>
        </p>
        <img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=a853ef50-5126-42ad-9e17-a992b17093f4" />
      </body>
      <title>To Do Lists or not To Do Lists</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,a853ef50-5126-42ad-9e17-a992b17093f4.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/10/31/ToDoListsOrNotToDoLists.aspx</link>
      <pubDate>Fri, 31 Oct 2008 15:31:30 GMT</pubDate>
      <description>&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;
At some stage in my life, my experience of time changed from being something I had
plenty of, sometimes even too much, to being a very scarce resource where tasks and
chores compete for time and attention. 
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;
The&amp;nbsp;other day I walked past a place where&amp;nbsp;&amp;nbsp;there used to be a cherry
plum tree. I remembered how I&amp;nbsp;as a kid, could spend hours in that tree, enjoying
the half-ripe plums, without ever feeling there was anything more important or serious
to do. Usually there was a price to pay the next day, but that did not prevent me
from doing it again again. While I&amp;nbsp;mourning&amp;nbsp;that&amp;nbsp;lost paradise, and
looking for a way to find it again, there is the practical problem of managing, remembering
and prioritizing all the stuff I have to do. 
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;
Over the years I have used multiple systems: Sticky notes,&amp;nbsp;task lists&amp;nbsp;in
Outlook, notebooks of all kind, emails send to myself, mindmaps, and probably a few
more I can't remember. All of them were great for a while, but all had limitations
that let me to&amp;nbsp;eventfully&amp;nbsp;give them up. For instance Sticky notes are great,
tangible and practical - as long as you are the same place all the time. Mindmaps
are great for a brainstorming a set of tasks, but more tedious on a daily basis. 
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;
But now I have used a tool&amp;nbsp;continuously&amp;nbsp;for more than a year, and I am still
surprised by the way it can fit to any of my changing&amp;nbsp;work modes&amp;nbsp;and places. 
&lt;/div&gt;
&lt;p&gt;
The name of the tool is &lt;a href="http://www.rememberthemilk.com"&gt;Remember the Milk&lt;span style="vertical-align: super;"&gt;&lt;font size="1"&gt;tm&lt;/font&gt;&lt;/span&gt;&lt;/a&gt; .
It is a free, webbased tool. What I really like about it is that it &amp;nbsp;is simple,
easy to use, and at the same time extraordinary flexible in terms of input and output. 
&lt;/p&gt;
&lt;p&gt;
The core of the product is a set of tasklists, each containing tasks, that can be
prioritized, have a due dates, estimates and a few other things. It is easy to create
and remove lists.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
But what it really impressive is the numerous ways to enter new tasks and the equally
impressive amount of ways to manage and be reminded of tasks: &amp;nbsp; &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
First of all there is a nice Ajax based Web-UI. From that I can enter &amp;nbsp;and maintain
all my tasks as well as my lists. That probably the least important part of RTM.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
I mostly interface with RTM through my iGoogle Dashboard in Firebox. &amp;nbsp;I also
have access to my tasks via Gmail, Google Calendar, Skype and on my mobile phone.
&amp;nbsp; Every morning I get a friendly email, telling me which tasks are due today,
and if they are due at a certain hour, I get a reminder at that time too. Besides
iGoogle, Google Calendar and Gmail, &amp;nbsp;I can enter tasks on my mobile phone or
through email.
&lt;/p&gt;
&lt;p&gt;
Try it out! - maybe you too will never need another tool to manage your tasks
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=a853ef50-5126-42ad-9e17-a992b17093f4" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,a853ef50-5126-42ad-9e17-a992b17093f4.aspx</comments>
      <category>Tools</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=264e3afc-75fa-49b9-af44-d995639b3515</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,264e3afc-75fa-49b9-af44-d995639b3515.aspx</pingback:target>
      <dc:creator>Bent Jensen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,264e3afc-75fa-49b9-af44-d995639b3515.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=264e3afc-75fa-49b9-af44-d995639b3515</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Verdana; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
          <div style="margin-top: 0px; margin-bottom: 0px;">Here at BestBrains we like innovative
companies, and especially we like those that use innovation to solve on of the big
problems of this era - Global Warming.
</div>
          <div style="margin-top: 0px; margin-bottom: 0px;">
            <br />
          </div>
          <div style="margin-top: 0px; margin-bottom: 0px;">
            <a href="http://www.teslamotors.com/">Tesla
Motors</a> are one of those companies. They are producing the Tesla Roadster, a cool,
all electric sportscar.
</div>
          <div style="margin-top: 0px; margin-bottom: 0px;">
            <br />
          </div>
          <div style="margin-top: 0px; margin-bottom: 0px;">Unfortunately Tesla apparently can
not demonstrate mature leadership that matches the coolness and innovation of their
products. 
</div>
          <div style="margin-top: 0px; margin-bottom: 0px;">
            <br />
          </div>
          <div style="margin-top: 0px; margin-bottom: 0px;">According to <a href="http://www.shmula.com/589/tesla-motors-is-not-toyota-a-contrast-in-disrespect-and-respect-of-peopl">this
blog post</a> and <a href="http://gizmodo.com/5065078/tesla-lays-of-90-off-detroit-staff-in-douchey-way">this</a> they
apparently decided to close their Detroit office. That means that 90% of the staff
there will be without a job.  Information about this was given in a blog-post
and those that did not get the message went to work, just to find out that they were
fired when logging on to their computers.
</div>
          <div style="margin-top: 0px; margin-bottom: 0px;">
            <br />
          </div>
          <div style="margin-top: 0px; margin-bottom: 0px;">One can only hope that management
will be able to restore trust and morale in the remaining staff - or we will may seen
just another good company destroyed by poor management.
</div>
          <div style="margin-top: 0px; margin-bottom: 0px;">
            <br />
          </div>
        </span>
        <br class="Apple-interchange-newline" />
        <p>
        </p>
        <img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=264e3afc-75fa-49b9-af44-d995639b3515" />
      </body>
      <title>When the good guys behave badly</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,264e3afc-75fa-49b9-af44-d995639b3515.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/10/20/WhenTheGoodGuysBehaveBadly.aspx</link>
      <pubDate>Mon, 20 Oct 2008 13:40:56 GMT</pubDate>
      <description>&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Verdana; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;
&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;Here at BestBrains we like innovative
companies, and especially we like those that use innovation to solve on of the big
problems of this era - Global Warming.
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;a href="http://www.teslamotors.com/"&gt;Tesla
Motors&lt;/a&gt; are one of those companies. They are producing the Tesla Roadster, a cool,
all electric sportscar.
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;Unfortunately Tesla apparently can
not demonstrate mature leadership that matches the coolness and innovation of their
products.&amp;nbsp;
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;According to &lt;a href="http://www.shmula.com/589/tesla-motors-is-not-toyota-a-contrast-in-disrespect-and-respect-of-peopl"&gt;this
blog post&lt;/a&gt; and &lt;a href="http://gizmodo.com/5065078/tesla-lays-of-90-off-detroit-staff-in-douchey-way"&gt;this&lt;/a&gt; they
apparently decided to close their Detroit office. That means that 90% of the staff
there will be without a job. &amp;nbsp;Information about this was given in a blog-post
and those that did not get the message went to work, just to find out that they were
fired when logging on to their computers.
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;One can only hope that management
will be able to restore trust and morale in the remaining staff - or we will may seen
just another good company destroyed by poor management.
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-bottom: 0px;"&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;/span&gt;
&lt;br class="Apple-interchange-newline"&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=264e3afc-75fa-49b9-af44-d995639b3515" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,264e3afc-75fa-49b9-af44-d995639b3515.aspx</comments>
      <category>management</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=0722c91f-7c59-4623-92af-06aaea0403ad</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,0722c91f-7c59-4623-92af-06aaea0403ad.aspx</pingback:target>
      <dc:creator>Bent Jensen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,0722c91f-7c59-4623-92af-06aaea0403ad.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=0722c91f-7c59-4623-92af-06aaea0403ad</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">There is a lot of good stuff about lean
on the Internet. Some of my favourites are:<br /><a href="http://www.gembapantarei.com/"><br />
Gemba Panta Re</a>i: This is hosted by Gemba Research, a Washington DC based consulting
company. Jon Miller, the main contributor, has a lot of insightful and interesting
posts. For example the latest blog post is about how <a href="http://www.gembapantarei.com/2008/10/13_lean_leadership_lessons_from_dwight_d_eisenhowe.html">Dwight
D Eisenhower</a> could be seen as a lean thinker<br /><br /><a href="http://www.leanblog.org/">Lean blog</a> is written mainly by Mark Graban.
It has a lot of good stuff, much of it related to Lean Healthcare, which is Mr. Grabans
main interest. It also hosts a podcast service: <a href="http://www.leanblog.org/2006/07/leanblog-podcast-main-page.html">lean
blog podcast</a> with interviews with leading lean thinkers to put on your MP3 player.
For instance in episode #43 you can hear a wonderful impersonation of Dr. Deming,
telling why Six Sigma is not in line with his philosphy.<br /><a href="http://elegantsolutions.typepad.com/"><br />
The Elegant Solution</a>, by the author of the book of the same name is a well-written
blog about lean and Toyota. See for instance this <a href="http://www.matthewemay.com/elegant_solutions/2008/10/the-art-of-the-a3.html">post
about A3 -thinking</a><a href="http://www.leanblog.org/2006/07/leanblog-podcast-main-page.html"><br /></a><br /><br /><br /><br /><br /><p></p><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=0722c91f-7c59-4623-92af-06aaea0403ad" /></body>
      <title>Good lean blogs and podcasts</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,0722c91f-7c59-4623-92af-06aaea0403ad.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/10/15/GoodLeanBlogsAndPodcasts.aspx</link>
      <pubDate>Wed, 15 Oct 2008 19:04:10 GMT</pubDate>
      <description>There is a lot of good stuff about lean on the Internet. Some of my favourites are:&lt;br&gt;
&lt;a href="http://www.gembapantarei.com/"&gt;
&lt;br&gt;
Gemba Panta Re&lt;/a&gt;i: This is hosted by Gemba Research, a Washington DC based consulting
company. Jon Miller, the main contributor, has a lot of insightful and interesting
posts. For example the latest blog post is about how &lt;a href="http://www.gembapantarei.com/2008/10/13_lean_leadership_lessons_from_dwight_d_eisenhowe.html"&gt;Dwight
D Eisenhower&lt;/a&gt; could be seen as a lean thinker&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.leanblog.org/"&gt;Lean blog&lt;/a&gt; is written mainly by Mark Graban.
It has a lot of good stuff, much of it related to Lean Healthcare, which is Mr. Grabans
main interest. It also hosts a podcast service: &lt;a href="http://www.leanblog.org/2006/07/leanblog-podcast-main-page.html"&gt;lean
blog podcast&lt;/a&gt; with interviews with leading lean thinkers to put on your MP3 player.
For instance in episode #43 you can hear a wonderful impersonation of Dr. Deming,
telling why Six Sigma is not in line with his philosphy.&lt;br&gt;
&lt;a href="http://elegantsolutions.typepad.com/"&gt;
&lt;br&gt;
The Elegant Solution&lt;/a&gt;, by the author of the book of the same name is a well-written
blog about lean and Toyota. See for instance this &lt;a href="http://www.matthewemay.com/elegant_solutions/2008/10/the-art-of-the-a3.html"&gt;post
about A3 -thinking&lt;/a&gt;&lt;a href="http://www.leanblog.org/2006/07/leanblog-podcast-main-page.html"&gt;
&lt;br&gt;
&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=0722c91f-7c59-4623-92af-06aaea0403ad" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,0722c91f-7c59-4623-92af-06aaea0403ad.aspx</comments>
      <category>Lean</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=dc21300a-389a-45f8-87ba-c086e004463c</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,dc21300a-389a-45f8-87ba-c086e004463c.aspx</pingback:target>
      <dc:creator>Bent Jensen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,dc21300a-389a-45f8-87ba-c086e004463c.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=dc21300a-389a-45f8-87ba-c086e004463c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">In a "Traditional"  approach to estimation
a set of detailed requirements are analyzed, and from that analysis a solution is
designed that will fullfill these requiments. We then estimate the time it will take
for us to build that design.<br /><br />
If we do Agile development, we instead measure the relative size of each of a set
of high-level requirements (e.g. in the form of User Stories). We then assign a conversion
factor to the relative sizes of the User Stories, to be able to predict, when we can
have what done. If we do not know how long time it takes, we can do a small iteration,
and see how much we are able to complete in e.g. a week. We then use that knowledge
to extrapolate from the whole set of requirements, to arrive at a delivery date.<br /><br />
If I am to choose from those two methods, I will greatly recommend the latter. simply
because the detailed analysis and design, always misses something, and because it
has an underlying assumption that nothing, or very little will be changed over the
course of the project - thus the investment in the detailed analysis and design is
justified. Anyone who has created software in the real world know that is <b>never </b>the
case.<br /><br />
But both approaches treat estimation, as if the size of a piece of functionality or
time it will take to complete it, is a real characteristic of the feature, and what
we do in estimation is trying to find that hidden, true number. 
<br /><br />
I will call both these approaches <b>Reactive estimation.<br /><br /><br /></b>And off course there is something I will call  <b>Proactive estimation. </b>In
this kind of estimation, the estimators acknowledge that creating a piece of software,
is a creative process, where problems are solved on a daily basis, and that the level
of teamwork, dedication, creativity and problem-solving skills are the factors that
really determine the lenght of a software schedule. In this kind of thinking, a team
will commit to deliver a product to a certain date, but they know, that what will
be delivered, will depend on their ability to learn and solve problems along the way.
The development process is then organized to accelerate learning, and plan  in
a way that keeps decisions  open as long as possible. In that way the team will
arrive at the best possible result at the given date.  Much the same way a play
normally always will have premiere at the date that was planned months of even years
earlier.<br /><br />
Does this sound to crazy to you? Maybe - but that is the way Toyota creates new cars,
on time and with fewer resources than their competitors, and I am convinced that some
kind of proactive estimation was used when the iPod and the iPhone was created.<p></p><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=dc21300a-389a-45f8-87ba-c086e004463c" /></body>
      <title>One more thing about Estimation (and Planning)</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,dc21300a-389a-45f8-87ba-c086e004463c.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/10/14/OneMoreThingAboutEstimationAndPlanning.aspx</link>
      <pubDate>Tue, 14 Oct 2008 18:55:49 GMT</pubDate>
      <description>In a
"Traditional"&amp;nbsp; approach to estimation a set of detailed requirements
are analyzed, and from that analysis a solution is designed that will
fullfill these requiments. We then estimate the time it will take for
us to build that design.&lt;br&gt;
&lt;br&gt;
If we do Agile development, we instead measure the relative size of each of a set
of high-level requirements (e.g. in the form of User Stories). We then assign a conversion
factor to the relative sizes of the User Stories, to be able to predict, when we can
have what done. If we do not know how long time it takes, we can do a small iteration,
and see how much we are able to complete in e.g. a week. We then use that knowledge
to extrapolate from the whole set of requirements, to arrive at a delivery date.&lt;br&gt;
&lt;br&gt;
If I am to choose from those two methods, I will greatly recommend the latter. simply
because the detailed analysis and design, always misses something, and because it
has an underlying assumption that nothing, or very little will be changed over the
course of the project - thus the investment in the detailed analysis and design is
justified. Anyone who has created software in the real world know that is &lt;b&gt;never &lt;/b&gt;the
case.&lt;br&gt;
&lt;br&gt;
But both approaches treat estimation, as if the size of a piece of functionality or
time it will take to complete it, is a real characteristic of the feature, and what
we do in estimation is trying to find that hidden, true number. 
&lt;br&gt;
&lt;br&gt;
I will call both these approaches &lt;b&gt;Reactive estimation.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/b&gt;And off course there is something I will call&amp;nbsp; &lt;b&gt;Proactive estimation. &lt;/b&gt;In
this kind of estimation, the estimators acknowledge that creating a piece of software,
is a creative process, where problems are solved on a daily basis, and that the level
of teamwork, dedication, creativity and problem-solving skills are the factors that
really determine the lenght of a software schedule. In this kind of thinking, a team
will commit to deliver a product to a certain date, but they know, that what will
be delivered, will depend on their ability to learn and solve problems along the way.
The development process is then organized to accelerate learning, and plan&amp;nbsp; in
a way that keeps decisions&amp;nbsp; open as long as possible. In that way the team will
arrive at the best possible result at the given date.&amp;nbsp; Much the same way a play
normally always will have premiere at the date that was planned months of even years
earlier.&lt;br&gt;
&lt;br&gt;
Does this sound to crazy to you? Maybe - but that is the way Toyota creates new cars,
on time and with fewer resources than their competitors, and I am convinced that some
kind of proactive estimation was used when the iPod and the iPhone was created.&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=dc21300a-389a-45f8-87ba-c086e004463c" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,dc21300a-389a-45f8-87ba-c086e004463c.aspx</comments>
      <category>Agile</category>
      <category>Lean</category>
      <category>Learning</category>
      <category>Problem Solving</category>
      <category>Estimation</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=5afd2074-f36c-4eb1-8bd2-8b11bd9062b2</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,5afd2074-f36c-4eb1-8bd2-8b11bd9062b2.aspx</pingback:target>
      <dc:creator>Bent Jensen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,5afd2074-f36c-4eb1-8bd2-8b11bd9062b2.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=5afd2074-f36c-4eb1-8bd2-8b11bd9062b2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://bestbrains.dk/images/collage1.gif" />
        <br />
        <br />
        <br />
        <br />
        <br />
In April 2008 we went on an eye- and mind-opening study tour to Japan.  We visited
a number of software companies, saw Toyotas Tsutumi plant and met the Agile Software
Development Community in Tokyo.<br /><br />
We are planning to do a similar tour the week of April 20'th 2009.  This time
the two leading thinkers in the area of Lean Software Development; Mary and Tom Poppendieck
will join us.<br /><br />
The trip will allow a first hand experience of the japanese society and business life,
as well as visits to a number of lean companies.<br /><br />
There will be a limited number of seats available to customers and friends<br /><br />
If you would like to participate, please write to bent.jensen@bestbrains.dk<br /><br /><br /><p></p><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=5afd2074-f36c-4eb1-8bd2-8b11bd9062b2" /></body>
      <title>Lean Pilgrimage to Japan, Spring 2009</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,5afd2074-f36c-4eb1-8bd2-8b11bd9062b2.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/10/13/LeanPilgrimageToJapanSpring2009.aspx</link>
      <pubDate>Mon, 13 Oct 2008 20:12:50 GMT</pubDate>
      <description>&lt;img src="http://bestbrains.dk/images/collage1.gif"&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
In April 2008 we went on an eye- and mind-opening study tour to Japan.&amp;nbsp; We visited
a number of software companies, saw Toyotas Tsutumi plant and met the Agile Software
Development Community in Tokyo.&lt;br&gt;
&lt;br&gt;
We are planning to do a similar tour the week of April 20'th 2009.&amp;nbsp; This time
the two leading thinkers in the area of Lean Software Development; Mary and Tom Poppendieck
will join us.&lt;br&gt;
&lt;br&gt;
The trip will allow a first hand experience of the japanese society and business life,
as well as visits to a number of lean companies.&lt;br&gt;
&lt;br&gt;
There will be a limited number of seats available to customers and friends&lt;br&gt;
&lt;br&gt;
If you would like to participate, please write to bent.jensen@bestbrains.dk&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=5afd2074-f36c-4eb1-8bd2-8b11bd9062b2" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,5afd2074-f36c-4eb1-8bd2-8b11bd9062b2.aspx</comments>
      <category>Lean</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=538d20e8-5507-4866-a2e8-97bb3189a913</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,538d20e8-5507-4866-a2e8-97bb3189a913.aspx</pingback:target>
      <dc:creator>Bent Jensen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,538d20e8-5507-4866-a2e8-97bb3189a913.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=538d20e8-5507-4866-a2e8-97bb3189a913</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="file:///C:/DOCUME%7E1/Bent/LOCALS%7E1/Temp/moz-screenshot.jpg" alt="" />
        <div>
          <br />
        </div>
        <div>
At BestBrains we firmly believe in trust as a key factor in successful Software Development. 
</div>
        <div>
          <br />
        </div>
        <div>
We have all seen and experienced situations with lack of trust: Teams where problems
are hidden instead of brought to the surface because team members does not trust their
colleagues or managers, Companies where lack of trust between departments, leads to
inefficient non-negotiable contracts between e.g Product Management and Development,
and relations between customers and suppliers of large IT-projects where complicated
contracts replace collaboration.
</div>
        <div>
          <br />
        </div>
        <div>
As engineers we do also traditionally see the lack of trust as a problem that mainly
has its roots not in engineering, but on the other side of the fence, where people
decide not to trust engineers. In our own self-understanding we are off-course trustworthy.
</div>
        <div>
          <br />
        </div>
        <div>Saturday night I had an experience that led me to think, that maybe it is not
that simple. Maybe there is a reason for the lack of trust, and maybe engineers has
a role to play in changing the equation.
</div>
        <div>
          <br />
        </div>
        <div>The event was a play at <a href="http://www.kglteater.dk/site/OmTeateret/Scenerne/Skuespilhuset.aspx">Copenhagen's
beautiful new playhouse.</a> The name of the play was "Håndværkerne" - "The Craftsmen".
 In the play a young couple had hired a group of craftsmen to renovate their
house. Again and again the work was delayed, and often the craftsmen asked for more
money, with a sentence like "We know it is difficult for you as lay-men to understand,
but it is not possible to predict this kind of - [some construction technicality here]
 - but it is common, and there is really no choice, but to pay the money, otherwise
the work will come to a halt". The young couple got more and more desperate with a
feeling of total loos of control, and ended up killing the craftsmen one by one. Now
they could start over with a new crew - that apparently were more trustworthy, or
the couple knew how to manage them, because it all ended with a party in the beautiful
renovated house. 
<div><br /><img src="file:///C:/DOCUME%7E1/Bent/LOCALS%7E1/Temp/moz-screenshot-1.jpg" alt="" /><img src="file:///C:/DOCUME%7E1/Bent/LOCALS%7E1/Temp/moz-screenshot-2.jpg" alt="" /><br /></div><div>A friend stated  afterwards, that this play was about the revenge of the
Danish middle-class. For a number of years there has been a shortage of skilled labor,
which has led to a upward price-spiral and a downward quality-spiral. Nearly everyone
around the table had experiences with delays, poor quality, and exorbitant prices.
 
</div><div><br /></div><div>Maybe similar experiences in the Software Industry has led to the current misery
and lack of trust in many companies and between customers and suppliers. Maybe at
some places arrogant, non-professional engineering organizations has driven their
counterparts and customers to a level of desperation, where they, since we do normally
not kill each other in Danish companies, have invented systems of contracts, and processes
that mainly serves to protect from the lack of trust.
</div><div><br /></div><div><br /></div><div>
So how do we as engineers learn from this? In my view it is not enough to say "Trust
me". We must prove to be trustworthy, and the road to that goes through delivering
on our promises and by giving our customers, and the organization we are serving  a
level of real control with the process. First then engineering organizations can begin
to expect others to trust them and thus be able to remove the inefficiencies of mistrust. 
</div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><br /></div>
        <br />
        <p>
        </p>
        <img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=538d20e8-5507-4866-a2e8-97bb3189a913" />
      </body>
      <title>Trust in Software Development </title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,538d20e8-5507-4866-a2e8-97bb3189a913.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/10/13/TrustInSoftwareDevelopment.aspx</link>
      <pubDate>Mon, 13 Oct 2008 08:47:39 GMT</pubDate>
      <description>&lt;img src="file:///C:/DOCUME%7E1/Bent/LOCALS%7E1/Temp/moz-screenshot.jpg" alt=""&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;
At BestBrains we firmly believe in trust as a key factor in successful Software Development. 
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;
We have all seen and experienced situations with lack of trust: Teams where problems
are hidden instead of brought to the surface because team members does not trust their
colleagues or managers, Companies where lack of trust between departments, leads to
inefficient non-negotiable contracts between e.g Product Management and Development,
and relations between customers and suppliers of large IT-projects where complicated
contracts replace collaboration.
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;
As engineers we do also traditionally see the lack of trust as a problem that mainly
has its roots not in engineering, but on the other side of the fence, where people
decide not to trust engineers. In our own self-understanding we are off-course trustworthy.
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;Saturday night I had an experience that led me to think, that maybe it is not
that simple. Maybe there is a reason for the lack of trust, and maybe engineers has
a role to play in changing the equation.
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;The event was a play&amp;nbsp;at &lt;a href="http://www.kglteater.dk/site/OmTeateret/Scenerne/Skuespilhuset.aspx"&gt;Copenhagen's
beautiful new playhouse.&lt;/a&gt; The name of the play was "Håndværkerne" - "The Craftsmen".
&amp;nbsp;In the play a young couple had hired a group of craftsmen to renovate their
house. Again and again the work was delayed, and often the craftsmen asked for more
money, with a sentence like "We know it is difficult for you as lay-men to understand,
but it is not possible to predict this kind of - [some construction technicality here]
&amp;nbsp;- but it is common, and there is really no choice, but to pay the money, otherwise
the work will come to a halt". The young couple got more and more desperate with a
feeling of total loos of control, and ended up killing the craftsmen one by one. Now
they could start over with a new crew - that apparently were more trustworthy, or
the couple knew how to manage them, because it all ended with a party in the beautiful
renovated house. 
&lt;div&gt;
&lt;br&gt;
&lt;img src="file:///C:/DOCUME%7E1/Bent/LOCALS%7E1/Temp/moz-screenshot-1.jpg" alt=""&gt;&lt;img src="file:///C:/DOCUME%7E1/Bent/LOCALS%7E1/Temp/moz-screenshot-2.jpg" alt=""&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;A friend stated &amp;nbsp;afterwards, that this play was about the revenge of the
Danish middle-class. For a number of years there has been a shortage of skilled labor,
which has led to a upward price-spiral and a downward quality-spiral. Nearly everyone
around the table had experiences with delays, poor quality, and exorbitant prices.
&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;Maybe similar experiences in the Software Industry has led to the current misery
and lack of trust in many companies and between customers and suppliers. Maybe at
some places arrogant, non-professional engineering organizations has driven their
counterparts and customers to a level of desperation, where they, since we do normally
not kill each other in Danish companies, have invented systems of contracts, and processes
that mainly serves to protect from the lack of trust.
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;
So how do we as engineers learn from this? In my view it is not enough to say "Trust
me". We must prove to be trustworthy, and the road to that goes through delivering
on our promises and by giving our customers, and the organization we are serving &amp;nbsp;a
level of real control with the process. First then engineering organizations can begin
to expect others to trust them and thus be able to remove the inefficiencies of mistrust. 
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=538d20e8-5507-4866-a2e8-97bb3189a913" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,538d20e8-5507-4866-a2e8-97bb3189a913.aspx</comments>
      <category>management</category>
      <category>Waste</category>
      <category>Trust</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=10768888-d99b-4712-a666-d37ac92d35f2</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,10768888-d99b-4712-a666-d37ac92d35f2.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,10768888-d99b-4712-a666-d37ac92d35f2.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=10768888-d99b-4712-a666-d37ac92d35f2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://www.bestbrains.dk/Blog/content/binary/thewolf.jpg" border="0" />
        <br />
        <i>"I'm Winston Wolfe. I solve problems."</i>
        <br />
        <br />
Talking with my colleague Thomas Blomseth a while ago, revealed how we were both fascinated
by the fictitious character Winston Wolfe, appearing in Quentin Tarantino's popular
Pulp Fiction. Mr. Wolfe a.k.a. "The Wolf", played by Harvey Keitel, shows a remarkable
sense of pragmatism during his work in the so-called "problem-solving" business. With
his simple, yet highly effective, approach to problems he is able to earn respect
in record-time, even from the most brutal criminals, while drinking coffee and looking
cool at the same time. It just seems like a very appealing way to make a living.<br /><br />
If have boiled down The Wolf's problem-solving approach into this:<br /><br /><b>1. Calmly asses the problem</b><br /><b>2. Perform necessary trade-offs</b><br /><b>3. Implement rapidly</b><br /><br />
As I am a big fan of both simplicity and A3 posters, maybe I should post this universal 
<br />
"Process for Problem Solving" on the office wall in the company.<br /><br />
Should you be one of the few who have not yet seen this movie, or does the name Winston
Wolfe no longer ring a bell, I would recommend you to go and see it as soon as possible.
Alternatively you can join the cult of Mr. Wolfe by viewing this flick <a href="http://www.youtube.com/watch?v=ANPsHKpti48">http://www.youtube.com/watch?v=ANPsHKpti48</a><br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=10768888-d99b-4712-a666-d37ac92d35f2" /></body>
      <title>Solving Problems -- and looking cool at the same time</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,10768888-d99b-4712-a666-d37ac92d35f2.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/08/27/SolvingProblemsAndLookingCoolAtTheSameTime.aspx</link>
      <pubDate>Wed, 27 Aug 2008 20:04:19 GMT</pubDate>
      <description>&lt;img src="http://www.bestbrains.dk/Blog/content/binary/thewolf.jpg" border="0"&gt;
&lt;br&gt;
&lt;i&gt;"I'm Winston Wolfe. I solve problems."&lt;/i&gt;
&lt;br&gt;
&lt;br&gt;
Talking with my colleague Thomas Blomseth a while ago, revealed how we were both fascinated
by the fictitious character Winston Wolfe, appearing in Quentin Tarantino's popular
Pulp Fiction. Mr. Wolfe a.k.a. "The Wolf", played by Harvey Keitel, shows a remarkable
sense of pragmatism during his work in the so-called "problem-solving" business. With
his simple, yet highly effective, approach to problems he is able to earn respect
in record-time, even from the most brutal criminals, while drinking coffee and looking
cool at the same time. It just seems like a very appealing way to make a living.&lt;br&gt;
&lt;br&gt;
If have boiled down The Wolf's problem-solving approach into this:&lt;br&gt;
&lt;br&gt;
&lt;b&gt;1. Calmly asses the problem&lt;/b&gt;
&lt;br&gt;
&lt;b&gt;2. Perform necessary trade-offs&lt;/b&gt;
&lt;br&gt;
&lt;b&gt;3. Implement rapidly&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
As I am a big fan of both simplicity and A3 posters, maybe I should post this universal 
&lt;br&gt;
"Process for Problem Solving" on the office wall in the company.&lt;br&gt;
&lt;br&gt;
Should you be one of the few who have not yet seen this movie, or does the name Winston
Wolfe no longer ring a bell, I would recommend you to go and see it as soon as possible.
Alternatively you can join the cult of Mr. Wolfe by viewing this flick &lt;a href="http://www.youtube.com/watch?v=ANPsHKpti48"&gt;http://www.youtube.com/watch?v=ANPsHKpti48&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=10768888-d99b-4712-a666-d37ac92d35f2" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,10768888-d99b-4712-a666-d37ac92d35f2.aspx</comments>
      <category>Pragmatic</category>
      <category>Problem Solving</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=65600dfc-01fe-4eb6-9c71-568f9d232aaa</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,65600dfc-01fe-4eb6-9c71-568f9d232aaa.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,65600dfc-01fe-4eb6-9c71-568f9d232aaa.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=65600dfc-01fe-4eb6-9c71-568f9d232aaa</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Back about a month ago we arranged a free
lecture at the Copenhagen-based IT-University, with Lean Software pioneer Mary Poppendieck.
Though a little late, we now have a copy of her slides available to all the participants.
We very much hope you enjoyed the evening and got a chance to mingle with other agilists.<br /><br />
Download the slides <a href="http://www.bestbrains.dk/Is_Agile_a_Fad.pdf">here</a>.<br /><br /><img src="http://www.bestbrains.dk/Blog/content/binary/IMG_6054.jpg" border="0" /><br /><br /><img src="http://www.bestbrains.dk/Blog/content/binary/IMG_6052.jpg" border="0" /><br /><br />
Some of the participants wrote blog entries about the experience. Check them out here: <a href="http://compaspascal.blogspot.com/2008/06/mary-poppendieck-100-scrum-is-not-100.html">100%
Scrum is not 100% Agile</a> and  <a href="http://casperfabricius.com/blog/2008/06/25/mary-poppendieck-agile-theses-and-mistakes/">Agile
theses and mistakes</a><br /><br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=65600dfc-01fe-4eb6-9c71-568f9d232aaa" /></body>
      <title>Is Agile a Fad?</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,65600dfc-01fe-4eb6-9c71-568f9d232aaa.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/07/31/IsAgileAFad.aspx</link>
      <pubDate>Thu, 31 Jul 2008 11:42:39 GMT</pubDate>
      <description>Back about a month ago we arranged a free lecture at the Copenhagen-based IT-University, with Lean Software pioneer Mary Poppendieck. Though a little late, we now have a copy of her slides available to all the participants. We very much hope you enjoyed the evening and got a chance to mingle with other agilists.&lt;br&gt;
&lt;br&gt;
Download the slides &lt;a href="http://www.bestbrains.dk/Is_Agile_a_Fad.pdf"&gt;here&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/IMG_6054.jpg" border="0"&gt;
&lt;br&gt;
&lt;br&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/IMG_6052.jpg" border="0"&gt;
&lt;br&gt;
&lt;br&gt;
Some of the participants wrote blog entries about the experience. Check them out here: &lt;a href="http://compaspascal.blogspot.com/2008/06/mary-poppendieck-100-scrum-is-not-100.html"&gt;100%
Scrum is not 100% Agile&lt;/a&gt; and&amp;nbsp; &lt;a href="http://casperfabricius.com/blog/2008/06/25/mary-poppendieck-agile-theses-and-mistakes/"&gt;Agile
theses and mistakes&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=65600dfc-01fe-4eb6-9c71-568f9d232aaa" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,65600dfc-01fe-4eb6-9c71-568f9d232aaa.aspx</comments>
      <category>Agile</category>
      <category>Lean</category>
      <category>Learning</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=48cc46ed-c5f0-452c-b898-3d674c2c4146</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,48cc46ed-c5f0-452c-b898-3d674c2c4146.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,48cc46ed-c5f0-452c-b898-3d674c2c4146.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=48cc46ed-c5f0-452c-b898-3d674c2c4146</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">We have just completed the list of workshops
that will be held by BestBrains throughout the year. You will find new exciting workshops
like "Agile Software Development for Managers" and "Lean Product Development for Software",
as well as old popular ones like "Agile Planning and Estimation".<br /><br />
Download the PDF from <a href="http://www.bestbrains.dk/kurser2008.pdf">here</a>.
(It's in danish!)<br /><p></p><img src="http://www.bestbrains.dk/Blog/content/binary/folder.jpg" border="0" style="border:1px solid gray" /><br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=48cc46ed-c5f0-452c-b898-3d674c2c4146" /></body>
      <title>Agile Workshops - Autumn 2008</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,48cc46ed-c5f0-452c-b898-3d674c2c4146.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/07/31/AgileWorkshopsAutumn2008.aspx</link>
      <pubDate>Thu, 31 Jul 2008 11:18:53 GMT</pubDate>
      <description>We have just completed the list of workshops that will be held by BestBrains throughout the year. You will find new exciting workshops like "Agile Software Development for Managers" and "Lean Product Development for Software", as well as old popular ones like "Agile Planning and Estimation".&lt;br&gt;
&lt;br&gt;
Download the PDF from &lt;a href="http://www.bestbrains.dk/kurser2008.pdf"&gt;here&lt;/a&gt;.
(It's in danish!)&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/folder.jpg" border="0" style="border:1px solid gray"&gt;
&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=48cc46ed-c5f0-452c-b898-3d674c2c4146" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,48cc46ed-c5f0-452c-b898-3d674c2c4146.aspx</comments>
      <category>Learning</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=b25fcf80-60ff-4191-ae25-0a613512278c</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,b25fcf80-60ff-4191-ae25-0a613512278c.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,b25fcf80-60ff-4191-ae25-0a613512278c.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=b25fcf80-60ff-4191-ae25-0a613512278c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Last weekend I took a minor holiday to the german capital, Berlin. On sunday morning
I went out to find a place that served breakfast and I came by a nice litte bistro.
I was with a small group of friends, so we ordered breakfast based on personal preferences.
I had scrambled eggs, some had coffee, bread and croissants, and so on. After taking
our orders the waitress went inside (we were sitting outside) for a few minutes. Then
she came back -- or so I thought. She went by us, turned left, and entered the bakery
that was located pretty much right next to the bistro. A few moments later she came
out with a plastic bag that seemed to hold exactly what we ordered. She got back inside
the bistro again, and a couple of minutes later our breakfast was served.
</p>
        <p>
Reflecting on what I just saw, I concluded the following. Right after taking our orders
she went inside and started on the scrambled eggs. At that time she probably notified
the bakery on exactly what items to prepare for here. Afterwards she went out and
got the bread that we had ordered, but no more.
</p>
        <p>
Lesson learned. Keeping trusted key suppliers close, allows you to have very low inventory
of the most "problematic" items. For instance freshly baked bread, which decays
very fast, and is not suited for selling after a matter of hours. Even if you pay
a higher price for picking up bread in smaller batches, the bakery -- not you -- will
end up with the bread that can no longer be sold, and thus you will rarely have to throw
out food. The strategy also allows you to spend the scarce space you might
have in your bistro, on more value adding abilities, like setting up a table
with a blender and serve smoothies!
</p>
        <p>
The bakery is probably happy with the setup, as their incomming orders are now levelled
out on the entire day, instead of having to prepare big batches in the morning. Furthermore
the customers are probably more happy as the average time from bread leaving the oven
until it is served, is now shortened, resulting in bread that is still slightly
warm, and tastes better.
</p>
        <p>
          <img src="http://www.bestbrains.dk/Blog/content/binary/19_crusty_chewy_bread_P10900381.JPG" border="0" />
        </p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=b25fcf80-60ff-4191-ae25-0a613512278c" />
      </body>
      <title>Lean breakfast in Berlin</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,b25fcf80-60ff-4191-ae25-0a613512278c.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/07/29/LeanBreakfastInBerlin.aspx</link>
      <pubDate>Tue, 29 Jul 2008 08:43:46 GMT</pubDate>
      <description>&lt;p&gt;
Last weekend I took a minor holiday to the german capital, Berlin. On sunday morning
I went out to find a place that served breakfast and I came by a nice litte bistro.
I was with a small group of friends, so we ordered breakfast based on personal preferences.
I had scrambled eggs, some had coffee, bread and croissants, and so on. After taking
our orders the waitress went inside (we were sitting outside) for a few minutes. Then
she came back -- or so I thought. She went by us, turned left, and entered the bakery
that was located pretty much right next to the bistro. A few moments later she came
out with a plastic bag that seemed to hold exactly what we ordered. She got back inside
the bistro again, and a couple of minutes later our breakfast was served.
&lt;/p&gt;
&lt;p&gt;
Reflecting on what I just saw, I concluded the following. Right after taking our orders
she went inside and started on the scrambled eggs. At that time she probably notified
the bakery on exactly what items to prepare for here. Afterwards she went out and
got the bread that we had ordered, but no more.
&lt;/p&gt;
&lt;p&gt;
Lesson learned. Keeping trusted key suppliers close, allows you to have very low inventory
of&amp;nbsp;the most "problematic" items. For instance freshly baked bread, which&amp;nbsp;decays
very fast, and is not suited for selling after a matter of hours. Even if you pay
a higher price for picking up bread in smaller batches, the bakery -- not you -- will
end up with the bread that can no longer be sold, and thus you will rarely have&amp;nbsp;to&amp;nbsp;throw
out&amp;nbsp;food.&amp;nbsp;The strategy also allows you to spend the scarce space you might
have in your bistro, on more value adding abilities, like&amp;nbsp;setting up a table
with a blender and serve smoothies!
&lt;/p&gt;
&lt;p&gt;
The bakery is probably happy with the setup, as their incomming orders are now&amp;nbsp;levelled
out on the entire day, instead of having to prepare big batches in the morning. Furthermore
the customers are probably more happy as the average time from bread leaving the oven
until it is served, is now shortened,&amp;nbsp;resulting in bread that is still slightly
warm, and tastes better.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/19_crusty_chewy_bread_P10900381.JPG" border="0"&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=b25fcf80-60ff-4191-ae25-0a613512278c" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,b25fcf80-60ff-4191-ae25-0a613512278c.aspx</comments>
      <category>Flow</category>
      <category>Lean</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=2d17b7e3-cfb6-43ba-ae9d-56b062daaa50</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,2d17b7e3-cfb6-43ba-ae9d-56b062daaa50.aspx</pingback:target>
      <dc:creator>Jesper Thaning</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,2d17b7e3-cfb6-43ba-ae9d-56b062daaa50.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=2d17b7e3-cfb6-43ba-ae9d-56b062daaa50</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Some thoughts that popped up on my first day of attending our Poppendieck course on
23th of June.<br /></p>
        <h4>Knowledge inventory
</h4>
The concept of “Zero Inventory” is not desirable and in fact does not hold in Toyota
(go to the production plant and notice the trucks on the park yard outside the factory
with inventory waiting to load it into the factory – the drivers are sleeping some
times), its all about having the correct amount of inventory.<br />
So! Mary keeps a log book containing what programs she installed on her laptop and
what problems she experienced (hope she doesn't mind me telling this in public). When
there is a problem on the laptop, she goes to look into the log book instead of googling
it again spending time on finding the same site as 6 months ago, wasting time on finding
already acquired knowledge – relearning, which is waste.  <br />
Well. This log book is knowledge inventory. Knowledge that we keep close to us, ready
to use, but it takes up space and the more we have, the more difficult it is to find
the knowledge we need. In software we do not have physical inventory, like wheels
ready put on a car in a car factory plant, but we have knowledge inventory. So how
do we produce the correct amount of knowledge inventory?<br /><br /><h4>Knowledge briefs
</h4>
Lets go to the source. When we make knowledge and put it into our repository (perhaps
a wiki), we should make the knowledge condense, then it is easier to find - and use.
But it is difficult to make knowledge brief! If I make a four page documentation of
a feature, and come back six months later, I will spend time  <br /><br />
Because knowledge in wikis are knowledge inventory, and tend to grow and grow. Too
much get a burden, you cannot find things and when you find a document, its four pages
long and the valuable knowledge is hidden in a lot of irrelevant noise. (Can search
engines solve the problem of finding useful knowledge in a split second on the internet?
I don't think so.)<br /><br />
So what about a wiki that have limited space? You can only put 2400 characters on
a page, because if you put on more, you build up too much knowledge inventory. “If
you cannot fit your knowledge into an A3, use an A4”. Constrain yourself to condense
it even more – extract the important parts e.g. the exceptions in the business case
that you only found out about later, and spent time on trying to grasp.  <br /><br />
I want to make an exercise on our next workshop to practice the art of making knowledge
brief, to avoid building up knowledge inventory. 
<br />
And last thoughts: Are knowledge always written? Can you build condensed knowledge
in pictures and graphs?<p></p><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=2d17b7e3-cfb6-43ba-ae9d-56b062daaa50" /></body>
      <title>Spinn offs from Poppendieck course day 1</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,2d17b7e3-cfb6-43ba-ae9d-56b062daaa50.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/06/24/SpinnOffsFromPoppendieckCourseDay1.aspx</link>
      <pubDate>Tue, 24 Jun 2008 10:15:36 GMT</pubDate>
      <description>&lt;p&gt;
Some thoughts that popped up on my first day of attending our Poppendieck course on
23th of June.&lt;br&gt;
&lt;/p&gt;
&lt;h4&gt;Knowledge inventory
&lt;/h4&gt;
The concept of “Zero Inventory” is not desirable and in fact does not hold in Toyota
(go to the production plant and notice the trucks on the park yard outside the factory
with inventory waiting to load it into the factory – the drivers are sleeping some
times), its all about having the correct amount of inventory.&lt;br&gt;
So! Mary keeps a log book containing what programs she installed on her laptop and
what problems she experienced (hope she doesn't mind me telling this in public). When
there is a problem on the laptop, she goes to look into the log book instead of googling
it again spending time on finding the same site as 6 months ago, wasting time on finding
already acquired knowledge – relearning, which is waste. &amp;nbsp;&lt;br&gt;
Well. This log book is knowledge inventory. Knowledge that we keep close to us, ready
to use, but it takes up space and the more we have, the more difficult it is to find
the knowledge we need. In software we do not have physical inventory, like wheels
ready put on a car in a car factory plant, but we have knowledge inventory. So how
do we produce the correct amount of knowledge inventory?&lt;br&gt;
&lt;br&gt;
&lt;h4&gt;Knowledge briefs
&lt;/h4&gt;
Lets go to the source. When we make knowledge and put it into our repository (perhaps
a wiki), we should make the knowledge condense, then it is easier to find - and use.
But it is difficult to make knowledge brief! If I make a four page documentation of
a feature, and come back six months later, I will spend time &amp;nbsp;&lt;br&gt;
&lt;br&gt;
Because knowledge in wikis are knowledge inventory, and tend to grow and grow. Too
much get a burden, you cannot find things and when you find a document, its four pages
long and the valuable knowledge is hidden in a lot of irrelevant noise. (Can search
engines solve the problem of finding useful knowledge in a split second on the internet?
I don't think so.)&lt;br&gt;
&lt;br&gt;
So what about a wiki that have limited space? You can only put 2400 characters on
a page, because if you put on more, you build up too much knowledge inventory. “If
you cannot fit your knowledge into an A3, use an A4”. Constrain yourself to condense
it even more – extract the important parts e.g. the exceptions in the business case
that you only found out about later, and spent time on trying to grasp. &amp;nbsp;&lt;br&gt;
&lt;br&gt;
I want to make an exercise on our next workshop to practice the art of making knowledge
brief, to avoid building up knowledge inventory. 
&lt;br&gt;
And last thoughts: Are knowledge always written? Can you build condensed knowledge
in pictures and graphs?&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=2d17b7e3-cfb6-43ba-ae9d-56b062daaa50" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,2d17b7e3-cfb6-43ba-ae9d-56b062daaa50.aspx</comments>
      <category>Agile</category>
      <category>Lean</category>
      <category>Quality</category>
      <category>Tools</category>
      <category>Waste</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=4dafbf9b-d68a-4458-b57d-1c8cee5babfa</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,4dafbf9b-d68a-4458-b57d-1c8cee5babfa.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,4dafbf9b-d68a-4458-b57d-1c8cee5babfa.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=4dafbf9b-d68a-4458-b57d-1c8cee5babfa</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Will Agile Software Development end on the dumping grounds of History? This June Mary
Poppendieck will present her view on how the move to agile software development, needs
to be done cautiously to avoid repeating the mistakes the IT industry has previously
encountered while adopting new methodologies and paradigms.
</p>
        <p>
June 23th and 24th, BestBrains is arranging a 2-day Lean Software Development course
in Copenhagen with lean software pioneers Mary and Tom Poppendieck. In connection
with this course we have also arranged a free lecture June 24th, at danish IT-Universitetet.
Mary and Tom are well-acclaimed authors of the popular books "Lean Software Development"
and "Implementing Lean Software Development", which describes how to use Lean principles
to improve software development organizations.
</p>
        <p>
See more about the comprehensive 2-day course <a href="http://www.bestbrains.dk/english.aspx/Workshops/Poppendieck-2008">here</a> (or
in danish <a href="http://www.bestbrains.dk/dansk.aspx/Workshops/Lean_Software_Development">here</a>),
and the free lecture at ITU <a href="http://www.bestbrains.dk/english.aspx/Workshops/Free_lecture_with_Mary_Poppendieck">here</a>.
</p>
        <p>
We are looking forward to seeing you there!
</p>
        <p>
          <img style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; BORDER-BOTTOM: gray 1px solid" src="http://www.bestbrains.dk/Blog/content/binary/poppendieck%20card.png" border="0" />
          <br />
        </p>
        <img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=4dafbf9b-d68a-4458-b57d-1c8cee5babfa" />
      </body>
      <title>Free lecture with Mary Poppendieck in Copenhagen!</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,4dafbf9b-d68a-4458-b57d-1c8cee5babfa.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/06/17/FreeLectureWithMaryPoppendieckInCopenhagen.aspx</link>
      <pubDate>Tue, 17 Jun 2008 20:06:43 GMT</pubDate>
      <description>&lt;p&gt;
Will Agile Software Development end on the dumping grounds of History? This June Mary
Poppendieck will present her view on how the move to agile software development,&amp;nbsp;needs
to&amp;nbsp;be done cautiously to avoid repeating the mistakes the IT industry has previously
encountered&amp;nbsp;while adopting&amp;nbsp;new methodologies and paradigms.
&lt;/p&gt;
&lt;p&gt;
June 23th and 24th, BestBrains is arranging a 2-day Lean Software Development course
in Copenhagen with lean software pioneers Mary and Tom Poppendieck. In connection
with this course we have also arranged a free lecture June 24th, at danish IT-Universitetet.
Mary and Tom are well-acclaimed authors of the popular books "Lean Software Development"
and "Implementing Lean Software Development", which describes how to use Lean principles
to improve software development organizations.
&lt;/p&gt;
&lt;p&gt;
See more about the comprehensive 2-day course &lt;a href="http://www.bestbrains.dk/english.aspx/Workshops/Poppendieck-2008"&gt;here&lt;/a&gt;&amp;nbsp;(or
in danish &lt;a href="http://www.bestbrains.dk/dansk.aspx/Workshops/Lean_Software_Development"&gt;here&lt;/a&gt;),
and the free lecture at ITU &lt;a href="http://www.bestbrains.dk/english.aspx/Workshops/Free_lecture_with_Mary_Poppendieck"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
We are looking forward to seeing you there!
&lt;/p&gt;
&lt;p&gt;
&lt;img style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; BORDER-BOTTOM: gray 1px solid" src="http://www.bestbrains.dk/Blog/content/binary/poppendieck%20card.png" border=0&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=4dafbf9b-d68a-4458-b57d-1c8cee5babfa" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,4dafbf9b-d68a-4458-b57d-1c8cee5babfa.aspx</comments>
      <category>Agile</category>
      <category>Lean</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=e4f61abc-2bf5-4f96-a78e-758f768e220c</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,e4f61abc-2bf5-4f96-a78e-758f768e220c.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,e4f61abc-2bf5-4f96-a78e-758f768e220c.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e4f61abc-2bf5-4f96-a78e-758f768e220c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Yesterday Jesper and I was doing an agile workshop as part of the Öresund Agile 2008
conference in Malmö, Sweden. I have to admit we had set out being pretty ambitious
about the content of the workshop. We stuffed everything from Release planning, charting,
coding, test-driving, continuously integrating, doing reviews, retrospectives, scrum
meetings, planning poker, and discussing engineering practices and process improvement
into just one day. I think we can conclude the workshop fully lived up to it's name
-- Accelerated Agile!
</p>
        <p>
With Malmö filled with swedish football fans, students celebrating final exams, and
of course a lot of skilled people from the agile software community, we had some great
days. Not only was it cool doing the workshop itself, but being at a smaller software
conference where you actually get a chance to chat with most of the attendees I think
is really valuable. I hope everyone else enjoyed it as much as we did (in time the
feedback forms will tell!).
</p>
        <p>
As promised during the workshop, we have of course put the latest (and hopefully greatest)
version of all the slides online. You can download them from <a href="http://www.bestbrains.dk/accelerated-agile-slides.pdf">here</a>. 
</p>
        <p>
After browsing through the pictures that was taken during the day, I selected some
that you'll find below.
</p>
        <p>
          <img src="http://www.bestbrains.dk/Blog/content/binary/DSCF7113.JPG" border="0" />
        </p>
        <p>
Notice the red and green lava lamps in the background. These were controlled by the
CruiseControl CI server! I personally think that this was actually more than just
a gadget. It brought great visiblity into the project. With these lamps connected
to the build system, everyone who entered the conference room (or even looked through
the door) could immediately spot if there was currently a problem. Now that is TRULY
surfacing problems fast!
</p>
        <p>
          <img src="http://www.bestbrains.dk/Blog/content/binary/DSCF7115.JPG" border="0" />
        </p>
        <p>
          <img src="http://www.bestbrains.dk/Blog/content/binary/DSCF7123.JPG" border="0" />
        </p>
        <p>
          <img src="http://www.bestbrains.dk/Blog/content/binary/DSCF7135.JPG" border="0" />
          <br />
          <em>The self-organizing team working towards a common goal?</em>
        </p>
        <p>
          <img src="http://www.bestbrains.dk/Blog/content/binary/DSCF7178.JPG" border="0" />
          <br />
          <em>Some laid back discussions of interesting engineering practices.</em>
        </p>
        <p>
          <em>
            <img src="http://www.bestbrains.dk/Blog/content/binary/DSCF7205.JPG" border="0" />
            <br />
Our one-day iteration ended with a retrospective, that judging from the smiles were
rather positive.</em>
        </p>
        <p>
          <img src="http://www.bestbrains.dk/Blog/content/binary/DSCF7214.JPG" border="0" />
          <br />
          <em>All sorts of important stuff on the wall. Tasks, burn-down, WIP chart, and standard
work sheets.</em>
        </p>
        <p>
A big thanks to all the dedicated attendees, conference coordinator Gustav Bergman from
Softhouse who invited us in the first place, and also Sonny, Lars and Thomas Lundström
who assisted us during the entire day!
</p>
        <img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=e4f61abc-2bf5-4f96-a78e-758f768e220c" />
      </body>
      <title>Back from Öresund Agile 2008</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,e4f61abc-2bf5-4f96-a78e-758f768e220c.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/06/11/BackFrom%c3%96resundAgile2008.aspx</link>
      <pubDate>Wed, 11 Jun 2008 22:36:20 GMT</pubDate>
      <description>&lt;p&gt;
Yesterday Jesper and I was doing an agile workshop as part of the Öresund Agile 2008
conference in Malmö, Sweden. I have to admit we had set out being pretty ambitious
about the content of the workshop. We stuffed everything from Release planning, charting,
coding, test-driving, continuously integrating, doing reviews, retrospectives, scrum
meetings, planning poker, and discussing engineering practices and process improvement
into just one day. I think we can conclude the workshop fully lived up to it's name
-- Accelerated Agile!
&lt;/p&gt;
&lt;p&gt;
With Malmö filled with swedish football fans, students celebrating final exams, and
of course a lot of skilled people from the agile software community, we had some great
days. Not only was it cool doing the workshop itself, but being at a smaller software
conference where you actually get a chance to chat with most of the attendees I think
is really valuable. I hope everyone else enjoyed it as much as we did (in time the
feedback forms will tell!).
&lt;/p&gt;
&lt;p&gt;
As promised during the workshop, we have of course put the latest (and hopefully greatest)
version of all the slides online. You can download them from &lt;a href="http://www.bestbrains.dk/accelerated-agile-slides.pdf"&gt;here&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
After browsing through the pictures that was taken during the day, I selected some
that you'll find below.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/DSCF7113.JPG" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Notice the red and green lava lamps in the background. These were controlled by the
CruiseControl CI server! I personally think that this was actually more than just
a gadget. It brought great visiblity into the project. With these lamps connected
to the build system, everyone who entered the conference room (or even looked through
the door) could immediately spot if there was currently a problem. Now that is TRULY
surfacing problems fast!
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/DSCF7115.JPG" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/DSCF7123.JPG" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/DSCF7135.JPG" border=0&gt;
&lt;br&gt;
&lt;em&gt;The self-organizing team working towards a common goal?&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/DSCF7178.JPG" border=0&gt;
&lt;br&gt;
&lt;em&gt;Some laid back discussions of interesting engineering practices.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;img src="http://www.bestbrains.dk/Blog/content/binary/DSCF7205.JPG" border=0&gt;
&lt;br&gt;
Our one-day iteration ended with a retrospective, that judging from the smiles were
rather positive.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/DSCF7214.JPG" border=0&gt;
&lt;br&gt;
&lt;em&gt;All sorts of important stuff on the wall. Tasks, burn-down, WIP chart, and standard
work sheets.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
A big thanks to all the dedicated attendees, conference coordinator Gustav Bergman&amp;nbsp;from
Softhouse who invited us in the first place, and also Sonny, Lars and Thomas Lundström
who assisted us during the entire day!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=e4f61abc-2bf5-4f96-a78e-758f768e220c" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,e4f61abc-2bf5-4f96-a78e-758f768e220c.aspx</comments>
      <category>Agile</category>
      <category>Mieruka</category>
      <category>Scrum</category>
      <category>TDD</category>
      <category>Test-Driven</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=356f909f-e0cb-49e3-87ba-3c9d985a3187</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,356f909f-e0cb-49e3-87ba-3c9d985a3187.aspx</pingback:target>
      <dc:creator>Jesper Thaning</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,356f909f-e0cb-49e3-87ba-3c9d985a3187.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=356f909f-e0cb-49e3-87ba-3c9d985a3187</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">During a presentation of the scrum principles
this afternoon, participants were eager to discuss about what to put around a scrum
process, feeling that something is missing in terms of well-designed architecture,
thorough analysis of the domain and better knowledge about requirements. 
<br /><br />
Scrum is flexible and can fit into many different environments and uses, raging from
product development, deliveries of customized software and maintenance inside an IT-department.
It is also beginning to be spread into other areas than software industry!<br /><br />
So don't look for the silver bullet extension to scrum, but try to embrace the agile
and lead principles when finding the right balance of planning your project.<br /><br />
One important lean rule:<br />
If you need to decide on an important part of the system (e.g. your platform, database
or ): Find out what is the latest responsible moment when the decision needs to be
made. It is not easy, you will probably feel , but the longer you wait the more knowledge
you will have the oppurtunity gain to support your decision, and you have the possibility
to set start some experiments to search for alternatives. You might change your mind
later regarding the latest moment, but that is the core part of agile practices: always
be ready adapt to reality.<br /><br />
Don't be surprised if we write more on the lean and agile way of planning on this
blog... 
<p></p><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=356f909f-e0cb-49e3-87ba-3c9d985a3187" /></body>
      <title>Scrum wrap?</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,356f909f-e0cb-49e3-87ba-3c9d985a3187.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/05/21/ScrumWrap.aspx</link>
      <pubDate>Wed, 21 May 2008 21:16:38 GMT</pubDate>
      <description>During a presentation of the scrum principles this afternoon, participants were eager to discuss about what to put around a scrum process, feeling that something is missing in terms of well-designed architecture, thorough analysis of the domain and better knowledge about requirements. &lt;br&gt;
&lt;br&gt;
Scrum is flexible and can fit into many different environments and uses, raging from
product development, deliveries of customized software and maintenance inside an IT-department.
It is also beginning to be spread into other areas than software industry!&lt;br&gt;
&lt;br&gt;
So don't look for the silver bullet extension to scrum, but try to embrace the agile
and lead principles when finding the right balance of planning your project.&lt;br&gt;
&lt;br&gt;
One important lean rule:&lt;br&gt;
If you need to decide on an important part of the system (e.g. your platform, database
or ): Find out what is the latest responsible moment when the decision needs to be
made. It is not easy, you will probably feel , but the longer you wait the more knowledge
you will have the oppurtunity gain to support your decision, and you have the possibility
to set start some experiments to search for alternatives. You might change your mind
later regarding the latest moment, but that is the core part of agile practices: always
be ready adapt to reality.&lt;br&gt;
&lt;br&gt;
Don't be surprised if we write more on the lean and agile way of planning on this
blog... 
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=356f909f-e0cb-49e3-87ba-3c9d985a3187" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,356f909f-e0cb-49e3-87ba-3c9d985a3187.aspx</comments>
      <category>Agile</category>
      <category>Tools</category>
      <category>Scrum</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=1e9ff75c-226b-44c2-a37c-c6b6d61e6936</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,1e9ff75c-226b-44c2-a37c-c6b6d61e6936.aspx</pingback:target>
      <dc:creator>Bent Jensen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,1e9ff75c-226b-44c2-a37c-c6b6d61e6936.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=1e9ff75c-226b-44c2-a37c-c6b6d61e6936</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Wednesday night I had the opportunity to
visit Valtech's premises in Paris. They are located just besides the Triumphal Arch
and Champs Elysses, so this time I got a real Paris expericence (last time I stayed
one night at a hotel near the airport - not exactly exciting). I did a presentation
on Lean Software Development, to a group of Valtech Consultants and Greg Hutchings
who was my original contact with Valtech. We had a good evening and a interesting
discussion afterwards, while drinking french wine and eating pizza. Gilles, one of
the pariticipants wrote about the evening in his <a href="http://testdriveninformation.blogspot.com/2008/05/bent-jensen-presented-lean-to-valtech.html">blog</a>.<br /><br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=1e9ff75c-226b-44c2-a37c-c6b6d61e6936" /></body>
      <title>Lean Software Development in Paris</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,1e9ff75c-226b-44c2-a37c-c6b6d61e6936.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/05/16/LeanSoftwareDevelopmentInParis.aspx</link>
      <pubDate>Fri, 16 May 2008 16:23:02 GMT</pubDate>
      <description>Wednesday night I had the opportunity to visit Valtech's premises in Paris. They are located just besides the Triumphal Arch and Champs Elysses, so this time I got a real Paris expericence (last time I stayed one night at a hotel near the airport - not exactly exciting). I did a presentation on Lean Software Development, to a group of Valtech Consultants and Greg Hutchings who was my original contact with Valtech. We had a good evening and a interesting discussion afterwards, while drinking french wine and eating pizza. Gilles, one of the pariticipants wrote about the evening in his &lt;a href="http://testdriveninformation.blogspot.com/2008/05/bent-jensen-presented-lean-to-valtech.html"&gt;blog&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=1e9ff75c-226b-44c2-a37c-c6b6d61e6936" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,1e9ff75c-226b-44c2-a37c-c6b6d61e6936.aspx</comments>
      <category>Lean</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=79c9ff6e-546f-4faa-ba7a-c2a28d6fd76a</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,79c9ff6e-546f-4faa-ba7a-c2a28d6fd76a.aspx</pingback:target>
      <dc:creator>Bent Jensen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,79c9ff6e-546f-4faa-ba7a-c2a28d6fd76a.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=79c9ff6e-546f-4faa-ba7a-c2a28d6fd76a</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">Last year in November I made a presentation
on the Öredev conference in Malmö about my experiences with agile distributed development.
In my years at SAS our team was at the remote end of a distributed development team,
and I have since then helped a number of customers straighten out their distributed
development efforts, with agile methods.<br /><br />
The presentation was captured on video and recentely the videos were made available.
The video can see seen <a href="http://www.oredev.org/toppmeny/video/november13/bentjensenremoteanddistributedagiledevelopment.4.3f1ff754117a0ed3480800014055.html">here</a><br /><p></p><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=79c9ff6e-546f-4faa-ba7a-c2a28d6fd76a" /></body>
      <title>Distributed agile development</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,79c9ff6e-546f-4faa-ba7a-c2a28d6fd76a.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/05/15/DistributedAgileDevelopment.aspx</link>
      <pubDate>Thu, 15 May 2008 18:43:45 GMT</pubDate>
      <description>Last year in November I made a presentation on the Öredev conference in Malmö about my experiences with agile distributed development. In my years at SAS our team was at the remote end of a distributed development team, and I have since then helped a number of customers straighten out their distributed development efforts, with agile methods.&lt;br&gt;
&lt;br&gt;
The presentation was captured on video and recentely the videos were made available.
The video can see seen &lt;a href="http://www.oredev.org/toppmeny/video/november13/bentjensenremoteanddistributedagiledevelopment.4.3f1ff754117a0ed3480800014055.html"&gt;here&lt;/a&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=79c9ff6e-546f-4faa-ba7a-c2a28d6fd76a" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,79c9ff6e-546f-4faa-ba7a-c2a28d6fd76a.aspx</comments>
      <category>Agile</category>
      <category>Distributed development</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=fab4b5b8-5b24-4b55-86a8-8abba9a7a274</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,fab4b5b8-5b24-4b55-86a8-8abba9a7a274.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,fab4b5b8-5b24-4b55-86a8-8abba9a7a274.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=fab4b5b8-5b24-4b55-86a8-8abba9a7a274</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Wednesday we visited NEC and Change Vision, both located in Tokyo. At those visits
we got the chance to see one of the major Japanese corporations in the IT industry,
as well a small software company. 
<br /><br /><img src="http://www.bestbrains.dk/Blog/content/binary/changevision%20sign.jpg" border="0" /><br /><br />
We started out the day by visiting Change Vision, a company founded by Japanese author
Kenji Hiranabe. We got a presentation of the two products of the company, <a href="http://jude.change-vision.com">JUDE</a> and <a href="http://trichord.change-vision.com/en/index.html">TRICHORD</a>.
Both seemed to be built on the idea of "mieruka" (making visible), which is a concept
used by Japanese organizations for sharing information by making it visible
in an easily understandable form.<br /><br />
While noticing the extensive use of simple visuals for tasks, metrics, ideas, releases
and retrospectives, I have to admit what personally struck me the most was the bug-tracking
system of Change Vision. It was visualized using LEGO bricks in a constrained physical
space. This provides kanban-like control of the "bugs in process", by showing not
only the variation in complexity of bugs, but also making it easy for everyone to
see when you are running out of "slots" for new bugs, and thus have to start fixing
some. Personally I just can't wait to try this visualization idea back home.
</p>
        <p>
          <img src="http://www.bestbrains.dk/Blog/content/binary/bugtracking%20bricks.jpg" border="0" />
          <br />
          <br />
Judging by the discussions that took place after the visit, I think we all
got a lot of inspiration from visiting a truly agile environment.<br /><br /><img src="http://www.bestbrains.dk/Blog/content/binary/change%20vision.jpg" border="0" /></p>
        <p>
Later the same day we visited NEC for a techical presentation as well as a presentation
focused on their development process. During the visit we learned that NEC had
experimented with using Toyota Production System (TPS) a.k.a. Lean in the development
process, for instance with the use of a kanban system to control the workload between
different parts of the organisaion. Most surprisingly the system was put into place
for controlling hand-offs between design, code, and test-phases. I think that as a
group of agile thinkers, we were a bit stunned by this implementation.
</p>
        <p>
NEC had also experimented with the TPS "stop-the-line" practice, in their development
process, but had abandoned it due to inefficiency. Unfortunately we did not get a
chance to hear the reasons that led to this conclusion.
</p>
        <p>
          <img src="http://www.bestbrains.dk/Blog/content/binary/nec%20whiteboard.jpg" border="0" />
          <br />
(BestBrains getting a demonstration of Japanese innovation. This is an NEC electronic
whiteboard with a built-in printer!)<br /></p>
        <img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=fab4b5b8-5b24-4b55-86a8-8abba9a7a274" />
      </body>
      <title>Lean Study Tour day #4</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,fab4b5b8-5b24-4b55-86a8-8abba9a7a274.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/04/16/LeanStudyTourDay4.aspx</link>
      <pubDate>Wed, 16 Apr 2008 10:05:57 GMT</pubDate>
      <description>&lt;p&gt;
Wednesday we visited NEC and Change Vision, both located in Tokyo. At those visits
we got the chance to see one of the major Japanese corporations in the IT industry,
as well a small software company. 
&lt;br&gt;
&lt;br&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/changevision%20sign.jpg" border="0"&gt;
&lt;br&gt;
&lt;br&gt;
We started out the day by visiting Change Vision, a company founded by Japanese author
Kenji Hiranabe. We got a presentation of the two products of the company, &lt;a href="http://jude.change-vision.com"&gt;JUDE&lt;/a&gt; and &lt;a href="http://trichord.change-vision.com/en/index.html"&gt;TRICHORD&lt;/a&gt;.
Both seemed to be built on the idea of "mieruka" (making visible), which is a concept
used&amp;nbsp;by&amp;nbsp;Japanese organizations for sharing information by making it visible
in an easily understandable form.&lt;br&gt;
&lt;br&gt;
While noticing the extensive use of simple visuals for tasks, metrics, ideas, releases
and retrospectives, I have to admit what personally struck me the most was the bug-tracking
system of Change Vision. It was visualized using LEGO bricks in a constrained physical
space. This provides kanban-like control of the "bugs in process", by showing not
only the variation in complexity of bugs, but also making it easy for everyone to
see when you are running out of "slots" for new bugs, and thus have to start fixing
some. Personally I just can't wait to try this visualization idea back home.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/bugtracking%20bricks.jpg" border="0"&gt;
&lt;br&gt;
&lt;br&gt;
Judging by the discussions that&amp;nbsp;took place&amp;nbsp;after the visit, I think we all
got a lot of inspiration from visiting&amp;nbsp;a truly agile environment.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/change%20vision.jpg" border="0"&gt;
&lt;/p&gt;
&lt;p&gt;
Later the same day we visited NEC for a techical presentation as well as a presentation
focused on their development process. During the visit we&amp;nbsp;learned that NEC had
experimented with using Toyota Production System (TPS) a.k.a. Lean in the development
process, for instance with the use of a kanban system to control the workload between
different parts of the organisaion. Most surprisingly the system was put into place
for controlling hand-offs between design, code, and test-phases. I think that as a
group of agile thinkers, we were a bit stunned by this implementation.
&lt;/p&gt;
&lt;p&gt;
NEC had also experimented with the TPS "stop-the-line" practice, in their development
process, but had abandoned it due to inefficiency. Unfortunately we did not get a
chance to hear the reasons that led to this conclusion.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/nec%20whiteboard.jpg" border="0"&gt;
&lt;br&gt;
(BestBrains getting a demonstration of Japanese innovation. This is an NEC electronic
whiteboard with a built-in printer!)&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=fab4b5b8-5b24-4b55-86a8-8abba9a7a274" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,fab4b5b8-5b24-4b55-86a8-8abba9a7a274.aspx</comments>
      <category>Agile</category>
      <category>Bug tracking</category>
      <category>Lean</category>
      <category>Mieruka</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=8e3aa6d6-5289-4043-b410-681a3792ce2f</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,8e3aa6d6-5289-4043-b410-681a3792ce2f.aspx</pingback:target>
      <dc:creator>Bent Jensen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,8e3aa6d6-5289-4043-b410-681a3792ce2f.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=8e3aa6d6-5289-4043-b410-681a3792ce2f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p class="MsoNormal">
Tuesday was Toyota day. Destination: Toyotas Tsutsumi plant in Toyota City just outside
of Nagoya.
</p>
        <p class="MsoNormal">
To get there we had to take the Shinkansen from Tokyo Station. Seeing <span> </span>the<span>  </span>Shinkansen
700 series silverarrow slide into the station, be seated in the comfortable compartment
and drive silently towards Nagoya with a speed of more than 300 km/t was an adventure
in itself.
</p>
        <p class="MsoNormal">
In the factory, we were guided through one of the assembly lines, and the automated
welding process.<span>  </span>At the plant Toyota produces Camry, <span> </span>Premio, <span> </span>Allion,
Prius, Wish and Scion tC. 
</p>
        <p class="MsoNormal">
These models are produced on two lines, in a mixed production each car on the line
is a <span> </span>different model and color from the previous one. Only that
way Toyota can remove the waste of overproduction by not <span> </span>producing
cars, that has not yet been ordered.
</p>
        <p class="MsoNormal">
The first operation we saw was the door assembly. Toyota uses door-less assembly where
doors after painting the doors are removed from the body and they each follow their
own route to later be united again in final assembly. The advantage of this is easier
access to the inner parts of the car, and less damage to the doors. 
</p>
        <p class="MsoNormal">
The best analogy to what we saw is a ballet. Workers did their work with a choreographed
set of movements, designed to be the minimal effort to do the work and ensure good
ergonomic.<span>  </span>Nobody was running and nobody worked ahead of the line.<span>  </span>The
spirit of Taiichi Ohno was strong and alive.
</p>
        <p class="MsoNormal">
Surely the work of producing a lot of completely similar things can never be as varied
as other kinds of work in the modern world. However our whole standard of living is
based on the society’s ability to produce low-cost, high quality items. And Toyota
is able to transform this into a system that protects the individual and gives everybody
challenges, <span> </span>by having everybody involved in improvement efforts
– Kaizen.
</p>
        <p class="MsoNormal">
We also saw several examples of Andon pulls and stop the line philosophy.<span>  </span>Here
it was clear that while the Stop The Line philosophy is what creates quality and is
making sure systemic problems is eliminated quickly; it is also the lubrication that
keeps the line running smooth.<span>  </span>Most of the Andon pulls was just
small problems, that was solved immediately by having the supervisor help getting
things back on track.
</p>
        <p class="MsoNormal">
Further into the factory we saw the supply lines to the door assembly. A clever worked
out system allowed a worker to create “kits” for each set of doors coming along the
line.<span>  </span>By having models be mixed on the individual level (I do not
know if any other manufacturer does this?), a need for standardizing is also created.<span>  </span>Assembly
will be easier, when the parts are the same in more models.
</p>
        <p class="MsoNormal">
Finally in the end of the line new cars flowed into to final verification: <span> </span>a
Blue Prius followed by a Green Camry, Followed by a Scion. Impressive.
</p>
        <p class="MsoNormal">
          <br />
        </p>
        <img style="WIDTH: 561px; HEIGHT: 388px" height="409" alt="Tsutumi2.jpg" src="http://www.bestbrains.dk/blog/images/Tsutumi2.jpg" width="614" align="left" border="0" />
        <br />
        <p class="MsoNormal">
          <br />
        </p>
        <p class="MsoNormal">
          <br />
        </p>
        <p class="MsoNormal">
          <br />
        </p>
        <p class="MsoNormal">
          <br />
        </p>
        <p class="MsoNormal">
          <br />
        </p>
        <p class="MsoNormal">
          <br />
        </p>
        <p class="MsoNormal">
          <br />
        </p>
        <p class="MsoNormal">
          <br />
        </p>
        <p class="MsoNormal">
          <br />
        </p>
        <p class="MsoNormal">
          <br />
        </p>
        <p class="MsoNormal">
          <br />
        </p>
        <p class="MsoNormal">
          <br />
        </p>
        <p class="MsoNormal">
          <br />
        </p>
        <p class="MsoNormal">
 
</p>
        <p class="MsoNormal">
 
</p>
        <p class="MsoNormal">
 
</p>
        <p class="MsoNormal">
 
</p>
        <p class="MsoNormal">
          <br />
(we were not allowed to take photos - the picture about is a official photo from the
plant)<br /><br />
We sometimes hear Lean <span style="COLOR: black">be</span> accused of being just
a new cost savings philosophy. <span> </span>Yet another clever trick from management!
But Toyota shows it is possible to create a challenging, respectful workplace in what
is normally considered the most de-humanized kind of work (think of Chaplins “Modern
Times”) . So why shouldn’t we be able to do that to in other areas, It should be easier,<span>  </span>not
more difficult to apply lean to healthcare, service,<span>  </span>and Software
Development by the way.
</p>
        <br />
        <p class="MsoNormal">
          <img height="395" alt="IMG_4993.jpg" src="http://www.bestbrains.dk/blog/images/IMG_4993.jpg" width="593" border="0" />
          <br />
        </p>
        <br />
        <p class="MsoNormal">
(Some of the participants in the Toyota Museum)<br /></p>
        <p class="MsoNormal">
          <br />
        </p>
        <p>
        </p>
        <img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=8e3aa6d6-5289-4043-b410-681a3792ce2f" />
      </body>
      <title>Lean Study Tour day #3</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,8e3aa6d6-5289-4043-b410-681a3792ce2f.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/04/15/LeanStudyTourDay3.aspx</link>
      <pubDate>Tue, 15 Apr 2008 04:48:21 GMT</pubDate>
      <description>&lt;p class=MsoNormal&gt;
Tuesday was Toyota day. Destination: Toyotas Tsutsumi plant in Toyota City just outside
of Nagoya.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
To get there we had to take the Shinkansen from Tokyo Station. Seeing &lt;span&gt;&amp;nbsp;&lt;/span&gt;the&lt;span&gt;&amp;nbsp; &lt;/span&gt;Shinkansen
700 series silverarrow slide into the station, be seated in the comfortable compartment
and drive silently towards Nagoya with a speed of more than 300 km/t was an adventure
in itself.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
In the factory, we were guided through one of the assembly lines, and the automated
welding process.&lt;span&gt;&amp;nbsp; &lt;/span&gt;At the plant Toyota produces Camry, &lt;span&gt;&amp;nbsp;&lt;/span&gt;Premio, &lt;span&gt;&amp;nbsp;&lt;/span&gt;Allion,
Prius, Wish and Scion tC. 
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
These models are produced on two lines, in a mixed production each car on the line
is a &lt;span&gt;&amp;nbsp;&lt;/span&gt;different model and color from the previous one. Only that
way Toyota can remove the waste of overproduction by not &lt;span&gt;&amp;nbsp;&lt;/span&gt;producing
cars, that has not yet been ordered.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
The first operation we saw was the door assembly. Toyota uses door-less assembly where
doors after painting the doors are removed from the body and they each follow their
own route to later be united again in final assembly. The advantage of this is easier
access to the inner parts of the car, and less damage to the doors. 
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
The best analogy to what we saw is a ballet. Workers did their work with a choreographed
set of movements, designed to be the minimal effort to do the work and ensure good
ergonomic.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Nobody was running and nobody worked ahead of the line.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The
spirit of Taiichi Ohno was strong and alive.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
Surely the work of producing a lot of completely similar things can never be as varied
as other kinds of work in the modern world. However our whole standard of living is
based on the society’s ability to produce low-cost, high quality items. And Toyota
is able to transform this into a system that protects the individual and gives everybody
challenges, &lt;span&gt;&amp;nbsp;&lt;/span&gt;by having everybody involved in improvement efforts
– Kaizen.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
We also saw several examples of Andon pulls and stop the line philosophy.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Here
it was clear that while the Stop The Line philosophy is what creates quality and is
making sure systemic problems is eliminated quickly; it is also the lubrication that
keeps the line running smooth.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Most of the Andon pulls was just
small problems, that was solved immediately by having the supervisor help getting
things back on track.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
Further into the factory we saw the supply lines to the door assembly. A clever worked
out system allowed a worker to create “kits” for each set of doors coming along the
line.&lt;span&gt;&amp;nbsp; &lt;/span&gt;By having models be mixed on the individual level (I do not
know if any other manufacturer does this?), a need for standardizing is also created.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Assembly
will be easier, when the parts are the same in more models.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
Finally in the end of the line new cars flowed into to final verification: &lt;span&gt;&amp;nbsp;&lt;/span&gt;a
Blue Prius followed by a Green Camry, Followed by a Scion. Impressive.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;img style="WIDTH: 561px; HEIGHT: 388px" height=409 alt=Tsutumi2.jpg src="http://www.bestbrains.dk/blog/images/Tsutumi2.jpg" width=614 align=left border=0&gt;
&lt;br&gt;
&lt;p class=MsoNormal&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;br&gt;
(we were not allowed to take photos - the picture about is a official photo from the
plant)&lt;br&gt;
&lt;br&gt;
We sometimes hear Lean &lt;span style="COLOR: black"&gt;be&lt;/span&gt; accused of being just
a new cost savings philosophy. &lt;span&gt;&amp;nbsp;&lt;/span&gt;Yet another clever trick from management!
But Toyota shows it is possible to create a challenging, respectful workplace in what
is normally considered the most de-humanized kind of work (think of Chaplins “Modern
Times”) . So why shouldn’t we be able to do that to in other areas, It should be easier,&lt;span&gt;&amp;nbsp; &lt;/span&gt;not
more difficult to apply lean to healthcare, service,&lt;span&gt;&amp;nbsp; &lt;/span&gt;and Software
Development by the way.
&lt;/p&gt;
&lt;br&gt;
&lt;p class=MsoNormal&gt;
&lt;img height=395 alt=IMG_4993.jpg src="http://www.bestbrains.dk/blog/images/IMG_4993.jpg" width=593 border=0&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;br&gt;
&lt;p class=MsoNormal&gt;
(Some of the participants in the Toyota Museum)&lt;br&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=8e3aa6d6-5289-4043-b410-681a3792ce2f" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,8e3aa6d6-5289-4043-b410-681a3792ce2f.aspx</comments>
      <category>Lean</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=a9849631-069e-4fd2-9432-237f36483ea1</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,a9849631-069e-4fd2-9432-237f36483ea1.aspx</pingback:target>
      <dc:creator>Bent Jensen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,a9849631-069e-4fd2-9432-237f36483ea1.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=a9849631-069e-4fd2-9432-237f36483ea1</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">The first "work" day in Japan. We are slowly
adjusting to timedifference, and all the other things that are different. Though fully
adjusting probably takes more than the week we have at our disposal. This morning
we tried Japanese breakfast - Miso soup, Fermented soy beans, fish and sea-weeds.
Yummy, but very different.<br /><br />
The program started with a visit at Fujitsu at their new complex, solution square.
A highly modern building, with a beautiful, very human friendly work-environment.
We were received by Corporate VP Kazuo Miyata and President and CEO of Fujitsu applications
Jun Watanabe. After a short trip in the building, where we got to see Fujitsu's implementation
and experiments with TPS in practice, we were given a presentation and had an interesting
exchange about agile and TPS in software development.<br /><br /><br /><p></p><p><img src="http://www.bestbrains.dk/Blog/content/binary/IMG_4938.jpg" border="0" /><br /><br /><br />
The day ended i a much more informal, but not less interesting way. We met with a
group of members of XPJUG and spend a couple of hours with mutual presentations and
exchanging ideas. After that we had a great Japanese dinner with lots of discussions
and laughter in a cozy restaurant. Thanks to all the nice people from XPJUG to receive us
so warmly.<br /><br /><br /><br /><img src="http://www.bestbrains.dk/Blog/content/binary/P1100559.jpg" border="0" /></p><p><img src="http://www.bestbrains.dk/Blog/content/binary/P1100568.jpg" border="0" /><br /><br />
Kampai! In the picture is Kenji Hiranabe, Author, Translator and much more and Tsutomy
Yasui, who helped arrange the evening<br /></p><pre wrap=""><br /></pre><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=a9849631-069e-4fd2-9432-237f36483ea1" /></body>
      <title>Lean Study Tour To Japan day 2</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,a9849631-069e-4fd2-9432-237f36483ea1.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/04/13/LeanStudyTourToJapanDay2.aspx</link>
      <pubDate>Sun, 13 Apr 2008 22:53:23 GMT</pubDate>
      <description>The first "work" day in Japan. We are slowly adjusting to timedifference, and all the other things that are different. Though fully adjusting probably takes more than the week we have at our disposal. This morning we tried Japanese breakfast - Miso soup, Fermented soy beans, fish and sea-weeds. Yummy, but very different.&lt;br&gt;
&lt;br&gt;
The program started with a visit at Fujitsu at their new complex, solution square.
A highly modern building, with a beautiful, very human friendly work-environment.
We were received by Corporate VP Kazuo Miyata and President and CEO of Fujitsu applications
Jun Watanabe. After a short trip in the building, where we got to see Fujitsu's implementation
and experiments with TPS in practice, we were given a presentation and had an interesting
exchange about agile and TPS in software development.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/IMG_4938.jpg" border=0&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
The day ended i a much more informal, but not less interesting way. We met with a
group of members of XPJUG and spend a couple of hours with mutual presentations and
exchanging ideas. After that we had a great Japanese dinner with lots of discussions
and laughter in a cozy restaurant. Thanks to all the nice people from XPJUG to receive&amp;nbsp;us
so warmly.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/P1100559.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/P1100568.jpg" border=0&gt;
&lt;br&gt;
&lt;br&gt;
Kampai! In the picture is Kenji Hiranabe, Author, Translator and much more and Tsutomy
Yasui, who helped arrange the evening&lt;br&gt;
&lt;/p&gt;
&lt;pre wrap=""&gt;
&lt;br&gt;
&lt;/pre&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=a9849631-069e-4fd2-9432-237f36483ea1" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,a9849631-069e-4fd2-9432-237f36483ea1.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=a088e991-8212-493c-a1ca-bf81c9516f27</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,a088e991-8212-493c-a1ca-bf81c9516f27.aspx</pingback:target>
      <dc:creator>Bent Jensen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,a088e991-8212-493c-a1ca-bf81c9516f27.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=a088e991-8212-493c-a1ca-bf81c9516f27</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">This main theme for the first day getting
over the jetlag and get a little bit adjusted to Japan before going to the first real
event(s) tomorrow.<br /><br />
Already in the airport it became clear that it is not an accident Visual Management
is such an important thing in Toyotas bag of tricks.<br />
At the bagage delivery clearly marked signs marked the area where baggage carts should
be kept out in order to let people grab their luggage easily. 
<br />
That trend continued with arrows and painted footsteps markin where to go on stairs
and escalators and where to stand on moving footpaths.<br /><br />
The inventive japanese mind showed itself in the hotel bathroom, where the toilet
has a heated seat and bidet built-in. The problem of water in the floor when forgetting
to take the curtain inside the bath-tub has also been solved by a small effective
invention.<br /><p></p><img src="http://www.bestbrains.dk/Blog/content/binary/P1100555.JPG" border="0" height="538" width="403" /><img src="http://www.bestbrains.dk/Blog/content/binary/P11005561.JPG" border="0" height="537" width="403" /><br /><br />
Not everything is fantastic and effective here. The public transportation is not exactly
easy manage, with ticket-prices depending on where you are going, and not being able
to use the same ticket when transferring from one line to another. That caused some
confusion it our jet-lagged brains yesterday.<br /><br />
To be continued...<br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=a088e991-8212-493c-a1ca-bf81c9516f27" /></body>
      <title>Lean Study Tour to Japan day 1</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,a088e991-8212-493c-a1ca-bf81c9516f27.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/04/13/LeanStudyTourToJapanDay1.aspx</link>
      <pubDate>Sun, 13 Apr 2008 00:56:31 GMT</pubDate>
      <description>This main theme for the first day getting over the jetlag and get a
little bit adjusted to Japan before going to the first real event(s)
tomorrow.&lt;br&gt;
&lt;br&gt;
Already in the airport it became clear that it is not an accident Visual Management
is such an important thing in Toyotas bag of tricks.&lt;br&gt;
At the bagage delivery clearly marked signs marked the area where baggage carts should
be kept out in order to let people grab their luggage easily. 
&lt;br&gt;
That trend continued with arrows and painted footsteps markin where to go on stairs
and escalators and where to stand on moving footpaths.&lt;br&gt;
&lt;br&gt;
The inventive japanese mind showed itself in the hotel bathroom, where the toilet
has a heated seat and bidet built-in. The problem of water in the floor when forgetting
to take the curtain inside the bath-tub has also been solved by a small effective
invention.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/P1100555.JPG" border="0" height="538" width="403"&gt;&lt;img src="http://www.bestbrains.dk/Blog/content/binary/P11005561.JPG" border="0" height="537" width="403"&gt;
&lt;br&gt;
&lt;br&gt;
Not everything is fantastic and effective here. The public transportation is not exactly
easy manage, with ticket-prices depending on where you are going, and not being able
to use the same ticket when transferring from one line to another. That caused some
confusion it our jet-lagged brains yesterday.&lt;br&gt;
&lt;br&gt;
To be continued...&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=a088e991-8212-493c-a1ca-bf81c9516f27" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,a088e991-8212-493c-a1ca-bf81c9516f27.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=f52001be-9379-4959-b059-cf22907a8dc3</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,f52001be-9379-4959-b059-cf22907a8dc3.aspx</pingback:target>
      <dc:creator>Bent Jensen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,f52001be-9379-4959-b059-cf22907a8dc3.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=f52001be-9379-4959-b059-cf22907a8dc3</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">We are all busy preparing for our Japan-tour.
Some are out buying business suits, so we can have the right look. Others are busy
buying typical danish small things as presents for our hosts.  And I was practicing
a typical Japanese thing: To have my photograph taken with my hero.<br /><br /><p></p><img src="http://www.bestbrains.dk/Blog/content/binary/P1100530.JPG" border="0" /><br /><br /><br />
In the picture you see me with Jeffrey "Toyota Way" Liker. Jeffrey Liker is the person
outside of Toyota that knows most about the company. He has written several books
about Toyota, including the world famous: The Toyota Way, where he observes Toyota,
and construct it's innner working in 14 principles.<br />
Jeff gave a lean master-class today in Copenhagen. It was a highly interesting and
inspiring day. Especially I learned interesting things about Lean Product Development 
<br />
and the function of Toyotas Obeya, which I look forward to use.<br />
 <br /><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=f52001be-9379-4959-b059-cf22907a8dc3" /></body>
      <title>Getting ready for Japan</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,f52001be-9379-4959-b059-cf22907a8dc3.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/04/08/GettingReadyForJapan.aspx</link>
      <pubDate>Tue, 08 Apr 2008 20:11:30 GMT</pubDate>
      <description>We are all busy preparing for our Japan-tour. Some are out buying business suits, so we can have the right look. Others are busy buying typical danish small things as presents for our hosts.&amp;nbsp; And I was practicing a typical Japanese thing: To have my photograph taken with my hero.&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/P1100530.JPG" border=0&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
In the picture you see me with Jeffrey "Toyota Way" Liker. Jeffrey Liker is the person
outside of Toyota that knows most about the company. He has written several books
about Toyota, including the world famous: The Toyota Way, where he observes Toyota,
and construct it's innner working in 14 principles.&lt;br&gt;
Jeff gave a lean master-class today in Copenhagen. It was a highly interesting and
inspiring day. Especially I learned interesting things about Lean Product Development 
&lt;br&gt;
and the function of Toyotas Obeya, which I look forward to use.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=f52001be-9379-4959-b059-cf22907a8dc3" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,f52001be-9379-4959-b059-cf22907a8dc3.aspx</comments>
      <category>Lean</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=7840f46a-96b9-4e8d-ad98-66d5acbdfd87</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,7840f46a-96b9-4e8d-ad98-66d5acbdfd87.aspx</pingback:target>
      <dc:creator>Bent Jensen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,7840f46a-96b9-4e8d-ad98-66d5acbdfd87.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=7840f46a-96b9-4e8d-ad98-66d5acbdfd87</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">In April we will go on a pilot trip
to study lean in Japan. We will visit Toyota, see a plant and learn about TPS from
the masters. Also we plan to visit several IT companies that are using lean in their
development process. We hope to be able to offer these trips to our customers once
of twice a year in the future. 
<br /><br />
Maybe we will even be able to see this homage to XP performed live <a href="http://www.youtube.com/watch?v=zpw8h4OGNxg">http://www.youtube.<wbr />com/watch?<wbr />v=zpw8h4OGNxg</a><br /><br /><br /><p></p><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=7840f46a-96b9-4e8d-ad98-66d5acbdfd87" /></body>
      <title>Lean study tour to Japan</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,7840f46a-96b9-4e8d-ad98-66d5acbdfd87.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/02/21/LeanStudyTourToJapan.aspx</link>
      <pubDate>Thu, 21 Feb 2008 20:26:18 GMT</pubDate>
      <description>In April we will go&amp;nbsp;on a pilot trip to study lean in Japan. We will visit Toyota, see a plant and learn about TPS from the masters. Also we plan to visit several IT companies that are using lean in their development process. We hope to be able to offer these trips to our customers once of twice a year in the future. &lt;br&gt;
&lt;br&gt;
Maybe we will even be able to see this homage to XP performed live &lt;a href="http://www.youtube.com/watch?v=zpw8h4OGNxg"&gt;http://www.youtube.&lt;wbr&gt;com/watch?&lt;wbr&gt;v=zpw8h4OGNxg&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=7840f46a-96b9-4e8d-ad98-66d5acbdfd87" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,7840f46a-96b9-4e8d-ad98-66d5acbdfd87.aspx</comments>
      <category>Lean</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=39f6d151-a24d-4ebd-b2a7-f045710392d5</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,39f6d151-a24d-4ebd-b2a7-f045710392d5.aspx</pingback:target>
      <dc:creator>Jesper Thaning</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,39f6d151-a24d-4ebd-b2a7-f045710392d5.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=39f6d151-a24d-4ebd-b2a7-f045710392d5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Last Thursday we had a <a href="http://www.bestbrains.dk/dansk.aspx/Workshops/Agile_Planl%C3%A6gning_og_Estimering">workshop</a> in
BestBrains about Agile Planning and Estimation, with some lively and interesting discussions
on the agile methods of estimating and planning. 
<br />
One of the question that we only touched briefly was how to handle customer requirements
that manifests as interdependent long running stories.<br /><br />
In the agile literature the examples where themes (an overall picture of a functionality)
are divided into user stories (As a ... I can) are almost always simple and straight
forward, but as many of us has experienced this is more the exception than the rule.<br /><br />
A scenario could look like this: Several requirements from the customer seems to involve
the development of a common component (one example could be a layer of abstraction
to a legacy system), with a complexity not suitable for a 2 week iteration.<br /><br />
One challenge is to give the customer a good indication on how much each requirement
cost to produce, since the implementation of the first chosen requirement will suffer
the cost of making the common component.<br />
Another challenge is to deliver customer value at the end of each iteration with a
complex technical task.<br /><br />
One alternative is to present the customer with the following choice between three
user stories (As a ... I can), using the story point-method to indicate the stories <i>relative</i> size
and not how long they will take to finish.<br /><br /><ol><li>
Tech Story - 24 story point (As a developer I can ... creating the common component) 
</li><li>
User Story A - 4 story point</li><li>
User Story B - 4 story point</li></ol><br />
Any one of A and B would require the tech story be implemented first. But when done
the two user stories should be fairly easy to finish. One might think that the customer
does not need to chose which user story goes first because the prelude is given.<br />
The danger here is that the implementation of the tech story is not driven by a customer
need and the team could make an over-complex implementation of the tech story, since
both the user stories should be supported. 
<br /><br />
Another alternative is to include the technical complexity in both user stories:<br /><ol><li>
User story A - 28 point</li><li>
User story B - 28 point</li></ol><br />
This yields a somewhat false picture one might say, because we know that the relative
size would never be 48 story point for the two stories because the second would benefit
from the first, and we just have estimated the total work to be 32 points.<br /><br />
On the other hand this is the more true picture for the customer - <i>at this moment
in time</i> - because the relative cost are equal for the two stories and the size
of 28 story point could be compared to other user stories not listed here.<br />
The customers task is to prioritize between the two stories and chose the one he favors
most. The user story chosen will drive the planning of the first iterations, perhaps
taken out as a series of spikes or experiments, trying to shoot a bullet through the
whole stack of the system. The team should force themselves to consider how the user
story can be split into smaller user stories fitting into iterations where the team
commits to 7 story point at the beginning of each iteration. 
<br />
One could imagine the CRUD operations (Create-Read-Update-Delete) split up into iterations
taken one at a time or perhaps a light weight implementation with a small entity,
saving complex data and business rules for later iterations.<br />
After each iteration the team will know more about the user story and more about the
complexity of the component, and they could soon feel the need to re-plan or re-estimate
the stories with this new knowledge taken into account. 
<br /><br />
This shows the principle that above an accurate plan we try to help the customer to
make a decision from the cost, and emphasize the teams focus on working on small customer-driven
tasks. We value planning over plans. 
<br /><br />
In my opinion breaking down a 28 point user story into smaller tasks would yield a
different result than breaking down a 24 point tech story that is made to support
several user stories.<br /><br />
Even if the customer cannot decide which story that should be implemented first, the
team should make a choice and pick one of them to start with (preferably the most
simple one to make a quick proof of concept and learn fast, unless any risks could
be minimized taken a more complex one) again to keep focus on a user scenario when
diving into the technical problems.<br /><br />
This all shows that planning is challenging and never straight forward, and finding
alternatives can give you valuable insight on how to plan your work. I do not know
which of the scenarios you would choose or if you could think of a third or fourth
alternative to meet the challenge of interdependent long running stories or another
challenging example.<p></p><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=39f6d151-a24d-4ebd-b2a7-f045710392d5" /></body>
      <title>Estimating and planning interdependent, long running user stories</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,39f6d151-a24d-4ebd-b2a7-f045710392d5.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/02/12/EstimatingAndPlanningInterdependentLongRunningUserStories.aspx</link>
      <pubDate>Tue, 12 Feb 2008 12:15:23 GMT</pubDate>
      <description>Last Thursday we had a &lt;a href="http://www.bestbrains.dk/dansk.aspx/Workshops/Agile_Planl%C3%A6gning_og_Estimering"&gt;workshop&lt;/a&gt; in
BestBrains about Agile Planning and Estimation, with some lively and interesting discussions
on the agile methods of estimating and planning. 
&lt;br&gt;
One of the question that we only touched briefly was how to handle customer requirements
that manifests as interdependent long running stories.&lt;br&gt;
&lt;br&gt;
In the agile literature the examples where themes (an overall picture of a functionality)
are divided into user stories (As a ... I can) are almost always simple and straight
forward, but as many of us has experienced this is more the exception than the rule.&lt;br&gt;
&lt;br&gt;
A scenario could look like this: Several requirements from the customer seems to involve
the development of a common component (one example could be a layer of abstraction
to a legacy system), with a complexity not suitable for a 2 week iteration.&lt;br&gt;
&lt;br&gt;
One challenge is to give the customer a good indication on how much each requirement
cost to produce, since the implementation of the first chosen requirement will suffer
the cost of making the common component.&lt;br&gt;
Another challenge is to deliver customer value at the end of each iteration with a
complex technical task.&lt;br&gt;
&lt;br&gt;
One alternative is to present the customer with the following choice between three
user stories (As a ... I can), using the story point-method to indicate the stories &lt;i&gt;relative&lt;/i&gt; size
and not how long they will take to finish.&lt;br&gt;
&lt;br&gt;
&lt;ol&gt;
&lt;li&gt;
Tech Story - 24 story point (As a developer I can ... creating the common component) 
&lt;/li&gt;
&lt;li&gt;
User Story A - 4 story point&lt;/li&gt;
&lt;li&gt;
User Story B - 4 story point&lt;/li&gt;
&lt;/ol&gt;
&lt;br&gt;
Any one of A and B would require the tech story be implemented first. But when done
the two user stories should be fairly easy to finish. One might think that the customer
does not need to chose which user story goes first because the prelude is given.&lt;br&gt;
The danger here is that the implementation of the tech story is not driven by a customer
need and the team could make an over-complex implementation of the tech story, since
both the user stories should be supported. 
&lt;br&gt;
&lt;br&gt;
Another alternative is to include the technical complexity in both user stories:&lt;br&gt;
&lt;ol&gt;
&lt;li&gt;
User story A - 28 point&lt;/li&gt;
&lt;li&gt;
User story B - 28 point&lt;/li&gt;
&lt;/ol&gt;
&lt;br&gt;
This yields a somewhat false picture one might say, because we know that the relative
size would never be 48 story point for the two stories because the second would benefit
from the first, and we just have estimated the total work to be 32 points.&lt;br&gt;
&lt;br&gt;
On the other hand this is the more true picture for the customer - &lt;i&gt;at this moment
in time&lt;/i&gt; - because the relative cost are equal for the two stories and the size
of 28 story point could be compared to other user stories not listed here.&lt;br&gt;
The customers task is to prioritize between the two stories and chose the one he favors
most. The user story chosen will drive the planning of the first iterations, perhaps
taken out as a series of spikes or experiments, trying to shoot a bullet through the
whole stack of the system. The team should force themselves to consider how the user
story can be split into smaller user stories fitting into iterations where the team
commits to 7 story point at the beginning of each iteration. 
&lt;br&gt;
One could imagine the CRUD operations (Create-Read-Update-Delete) split up into iterations
taken one at a time or perhaps a light weight implementation with a small entity,
saving complex data and business rules for later iterations.&lt;br&gt;
After each iteration the team will know more about the user story and more about the
complexity of the component, and they could soon feel the need to re-plan or re-estimate
the stories with this new knowledge taken into account. 
&lt;br&gt;
&lt;br&gt;
This shows the principle that above an accurate plan we try to help the customer to
make a decision from the cost, and emphasize the teams focus on working on small customer-driven
tasks. We value planning over plans. 
&lt;br&gt;
&lt;br&gt;
In my opinion breaking down a 28 point user story into smaller tasks would yield a
different result than breaking down a 24 point tech story that is made to support
several user stories.&lt;br&gt;
&lt;br&gt;
Even if the customer cannot decide which story that should be implemented first, the
team should make a choice and pick one of them to start with (preferably the most
simple one to make a quick proof of concept and learn fast, unless any risks could
be minimized taken a more complex one) again to keep focus on a user scenario when
diving into the technical problems.&lt;br&gt;
&lt;br&gt;
This all shows that planning is challenging and never straight forward, and finding
alternatives can give you valuable insight on how to plan your work. I do not know
which of the scenarios you would choose or if you could think of a third or fourth
alternative to meet the challenge of interdependent long running stories or another
challenging example.&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=39f6d151-a24d-4ebd-b2a7-f045710392d5" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,39f6d151-a24d-4ebd-b2a7-f045710392d5.aspx</comments>
      <category>Agile</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=f74cbd9b-54da-4950-9054-72e73b3a8d32</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,f74cbd9b-54da-4950-9054-72e73b3a8d32.aspx</pingback:target>
      <dc:creator>Lars Thorup</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,f74cbd9b-54da-4950-9054-72e73b3a8d32.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=f74cbd9b-54da-4950-9054-72e73b3a8d32</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">I am currently working on an automated
system test engine for a project developing a medical device. The test engine runs
on a PC and can connect to the device through some network connection. In the device
we have implemented a very simple command line application that allows us to control
the device from the test engine. We can send a command like "key Accept" to the device
which will act like the user had pressed the Accept-key.<br /><br />
To make automated system testing more manageable we thought about extending this small
scripting language with language constructs like loops and subrutines. But we did
not want to implement an entire scripting language from scratch. Instead it would
be much easier if we could use an existing scripting language, like JavaScript which
already contains these language constructs.<br /><br />
It turned out to be quite easy to add scripting to our .NET-based test engine, using
the Microsoft Script Control. Now we can write a test scripts in JavaScript like the
following:   <pre><pre><span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"><span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;"> //
Test pressing a key 10 times</span> var i; <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"> for</span>(i <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> 0;
i &lt; 10; ++i) { device.key(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"a"</span>);
} </span></pre></pre><p>
The "device"-object exists inside the test engine and is written as a .NET class:<br /></p><pre><span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">public</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">class</span> DeviceProxy
{ <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">public</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">void</span> key(<span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">string</span> key)
{ sendCommand(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"key
"</span><span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">+</span> key);
Console.WriteLine(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Pressing
'{0}'"</span>, key); } } </span></pre>
An instance of this class is added to the Script Control at startup:<br /><pre><span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"> ScriptControl
sc <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">new</span> ScriptControl();
DeviceProxy deviceProxy <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">new</span> DeviceProxy();
sc.Language <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span><span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"JScript"</span>;
sc.AddObject(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"device"</span>,
deviceProxy, <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">true</span>);
sc.AddCode(File.ReadAllText(scriptPath)); </span></pre><br />
You also need to please the COM-to-.NET interop by setting ComVisible to 
<br />
True in AssemblyInfo.cs. Take a look at the <a href="http://www.bestbrains.dk/scriptable-dotnet.zip">sample
project</a>.<p></p><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=f74cbd9b-54da-4950-9054-72e73b3a8d32" /></body>
      <title>Add scripting to your system test engine</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,f74cbd9b-54da-4950-9054-72e73b3a8d32.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/01/29/AddScriptingToYourSystemTestEngine.aspx</link>
      <pubDate>Tue, 29 Jan 2008 20:42:31 GMT</pubDate>
      <description>I am currently working on an automated system test engine for a project developing a medical device. The test engine runs on a PC and can connect to the device through some network connection. In the device we have implemented a very simple command line application that allows us to control the device from the test engine. We can send a command like "key Accept" to the device which will act like the user had pressed the Accept-key.&lt;br&gt;
&lt;br&gt;
To make automated system testing more manageable we thought about extending this small
scripting language with language constructs like loops and subrutines. But we did
not want to implement an entire scripting language from scratch. Instead it would
be much easier if we could use an existing scripting language, like JavaScript which
already contains these language constructs.&lt;br&gt;
&lt;br&gt;
It turned out to be quite easy to add scripting to our .NET-based test engine, using
the Microsoft Script Control. Now we can write a test scripts in JavaScript like the
following:&amp;nbsp; &amp;nbsp;&lt;pre&gt;&lt;pre&gt;&lt;span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;&lt;span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt; //
Test pressing a key 10 times&lt;/span&gt; var i; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt; for&lt;/span&gt;(i &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; 0;
i &amp;lt; 10; ++i) { device.key(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"a"&lt;/span&gt;);
} &lt;/span&gt;&lt;/pre&gt;
&lt;/pre&gt;
&lt;p&gt;
The "device"-object exists inside the test engine and is written as a .NET class:&lt;br&gt;
&lt;/p&gt;
&lt;pre&gt;&lt;span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;class&lt;/span&gt; DeviceProxy
{ &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;void&lt;/span&gt; key(&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt; key)
{ sendCommand(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"key
"&lt;/span&gt; &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;+&lt;/span&gt; key);
Console.WriteLine(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Pressing
'{0}'"&lt;/span&gt;, key); } } &lt;/span&gt;&lt;/pre&gt;
An instance of this class is added to the Script Control at startup:&lt;br&gt;
&lt;pre&gt;&lt;span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt; ScriptControl
sc &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;new&lt;/span&gt; ScriptControl();
DeviceProxy deviceProxy &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;new&lt;/span&gt; DeviceProxy();
sc.Language &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"JScript"&lt;/span&gt;;
sc.AddObject(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"device"&lt;/span&gt;,
deviceProxy, &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;true&lt;/span&gt;);
sc.AddCode(File.ReadAllText(scriptPath)); &lt;/span&gt;&lt;/pre&gt;
&lt;br&gt;
You also need to please the COM-to-.NET interop by setting ComVisible to 
&lt;br&gt;
True in AssemblyInfo.cs. Take a look at the &lt;a href="http://www.bestbrains.dk/scriptable-dotnet.zip"&gt;sample
project&lt;/a&gt;.&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=f74cbd9b-54da-4950-9054-72e73b3a8d32" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,f74cbd9b-54da-4950-9054-72e73b3a8d32.aspx</comments>
      <category>Automated Testing</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=39ae41fe-0136-44d1-b498-8fef83ec4b23</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,39ae41fe-0136-44d1-b498-8fef83ec4b23.aspx</pingback:target>
      <dc:creator>Bent Jensen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,39ae41fe-0136-44d1-b498-8fef83ec4b23.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=39ae41fe-0136-44d1-b498-8fef83ec4b23</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <title>Nemawashi - Toyotas way to good decisions.</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,39ae41fe-0136-44d1-b498-8fef83ec4b23.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/01/27/NemawashiToyotasWayToGoodDecisions.aspx</link>
      <pubDate>Sun, 27 Jan 2008 19:13:53 GMT</pubDate>
      <description>&lt;o:p&gt;&lt;/o:p&gt;
In his classic book about Toyota, &lt;i style=""&gt;The Toyota Way&lt;/i&gt;, Jeffrey liker describe
the 14 management principles that are guiding the way Toyota operates.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;These
principles explain why Toyota is different from other companies and so much more successful. 
&lt;p class="MsoNormal"&gt;
Principle #13 is about &lt;i style=""&gt;nemawashi&lt;/i&gt;: The way Toyota makes and implements
decisions. 
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
Liker describes the principle this way:
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;i style=""&gt;Do not pick a single direction and go down that one path until you have
thoroughly considered alternatives. &lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;When you have picked,
move quickly but cautiously down the path. 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/i&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;i style=""&gt;And about the &lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;process:&lt;br&gt;
&lt;br&gt;
Nemawashi is the process of discussing problems and potential solutions with all of
those affected, to collect their ideas and get agreement on a path forward. This consensus
process, though time-consuming, helps broaden the search for solutions, and once a
decision is made, the stage is set for rapid implementation.&lt;/i&gt; 
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
How can we apply and use Nemawashi in our organizations and how does it fit a agile
approach to software development?
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
There are two aspects of Nemawashi.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;First of all it is
a thinking process. By deliberately not deciding before all alternatives and risks
has been considered, we avoid a kind of habitual thinking, where we just take the
first solution that comes to mind, and start implementation immediately.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;If
we are always are guided by our habits, there will be very little innovation and new
thinking. Second, it is a way to create support and engagement from everybody involved.
By consulting people involved, carefully listening to their opinion and incorporating
it in the proposal, the chances for successful implementation are much better, than
if implementation and decisions are forced through.
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
A common understanding of agile development is that it is more about “doing” than
“thinking” and most Agilists are sworn enemies of Waterfall processes with detailed
planning up front planning.
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
So how is nemawashi different from waterfall planning?
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
Toyota has the concept of The Gemba – the real place, where actual work is done. Any
planning activity is done close to or at The Gemba, and not in an ivory tower far
from reality. Second&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;The process of considering alternatives
and risks will be a process that is driven by experiments and trying out things –
what in product development is called Concurrent Set Based Design. 
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
The ability to do lightweight planning and quickly decisions, as we do it in agile
development,&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;is based on having a software development
system, that allows us to have low cost of change, and rapid feedback.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;If
we think that all processes in a company or in a development group will work the same
way as we implement new features in our software, we may make a dangerous mistake. 
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
There is a number of decisions that are not easily reverted, and &lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;does
require input and adjustments from many involved people to be successfully implemented.
Examples are hiring of new staff, architectural decisions, and changes in organization.
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
If you hire new people, and have not assured they fit well into the team, or you have
not carefully accessed, that they have the skills and competencies you are looking
for, it can be very costly to correct. If you decide to start using a tool to manage
your development process, because a vendor recommends it, or you know somebody else
using it, you are likely to pay a high price, for a too hasty decision later.
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
A final quote from the Toyota Way:
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;i style=""&gt;If you’ve got a project that is supposed to be fully implemented in a
year, it seems to me that the typical American company will spend about three months
on planning, then they’ll begin to implement. But they’ll encounter all sorts of problems
after implementation, and they’ll spend the rest of the year correcting them.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/i&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;i style=""&gt;However, given the same year-long project, Toyota will spend nine to 10
months planning, then implement in a small way such as with pilot production and be
fully implemented at the end of the year, with virtually no remaining problems.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/i&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;i style=""&gt;Alex Warren, former senior vice president,&lt;o:p&gt;&lt;/o:p&gt;
&lt;/i&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;i style=""&gt;Toyota Motor Manufacturing, Kentucky&lt;o:p&gt;&lt;/o:p&gt;
&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=39ae41fe-0136-44d1-b498-8fef83ec4b23" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,39ae41fe-0136-44d1-b498-8fef83ec4b23.aspx</comments>
      <category>Lean</category>
      <category>management</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=24fdc637-a7e6-4651-a284-2889a1a86b08</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,24fdc637-a7e6-4651-a284-2889a1a86b08.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,24fdc637-a7e6-4651-a284-2889a1a86b08.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=24fdc637-a7e6-4651-a284-2889a1a86b08</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p align="left">
          <img src="http://www.bestbrains.dk/Blog/content/binary/sune2.png" border="0" />
        </p>
        <p>
Just the other day I was thinking about the core ideas of Agile software development,
and I believe I came to an interesting conclusion. I think the core of agile development
is all about one thing -- <strong>Aggressively attacking risks</strong>. Well, maybe
there is more to it ;-) but that is what I'll talk about in this blog entry. 
</p>
        <p>
Whether you start up a new software project, or join an existing team that has been
constructing something for years, you need to consider what the risks to the project
are, and especially what you can do about them.
</p>
        <p>
          <strong>Risk of not shipping on time (or not shipping at all)</strong>
          <br />
Practice makes perfect. Start shipping from day one -- That is, for instance ship
a new release every week. Naturally it depends on the kind of product you are working
on, but more than often this is perfectly feasable. In fact, this happens every single
day for many web-applications, and users may not even notice.
</p>
        <p>
          <strong>Risk of building the wrong thing</strong>
          <br />
Have developers work closely with users throughout the project, and encourage them
to build an executable and testable model of the business domain, without too
much focus on integration. This ensures that the product can in fact solve the
core business problem.
</p>
        <p>
          <strong>Risk of not being able to integrate different parts.</strong>
          <br />
If there is a risk of integration issues, practice! Integrate risky parts from day
one of the project. For instance, communication protocols that you haven't tried before
may be risky. While accessing a database may be a walk in the park. Find out which
integration points require early integration, and balance those efforts against the
efforts involved with the risk of "building the wrong thing".
</p>
        <p>
          <strong>Risk of high long-term maintenance costs. </strong>
          <br />
What you need is a software solution to a business problem. What you don't need
is unneccessary technical complexity. Aggressively attack complexity, and make sure
your product is still capable of solving the business problem.
</p>
        <p>
          <strong>Risk of shipping software with defects</strong>
          <br />
Where are your defects? In the business logic, or at the integration points between
different modules? No matter which, the answer is simple: Test it (automatically)
-- From day one! And use every single defect found, to improve the development process
so that you introduce less errors in the future.
</p>
        <p>
          <strong>Risk of unacceptable performance issues</strong>
          <br />
Have your team commit to a measurable performance goal. ...And you never guessed --
Measure it from day one.
</p>
        <p>
The key to long-term success, is knowing what your long term success factors are,
and figuring out how to address them on an everyday basis. What is our long-term succcess
factor? I bet you are looking for a cost/earnings ratio close to zero viewing at the
entire lifecycle of the software product. This is done by either increasing the earnings,
or lowering the cost of development and maintenance. Also a short time-to-market is
most likely attractive to your company. Thus, address those every day.
</p>
        <p>
          <br />
That's it for now. Keep working on reducing your risks out there.
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=24fdc637-a7e6-4651-a284-2889a1a86b08" />
      </body>
      <title>What is Agile Software Development all about?</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,24fdc637-a7e6-4651-a284-2889a1a86b08.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2008/01/17/WhatIsAgileSoftwareDevelopmentAllAbout.aspx</link>
      <pubDate>Thu, 17 Jan 2008 21:21:58 GMT</pubDate>
      <description>&lt;p align=left&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/sune2.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Just the other day I was thinking about the core ideas of Agile software development,
and I believe I came to an interesting conclusion. I think the core of agile development
is all about one thing -- &lt;strong&gt;Aggressively attacking risks&lt;/strong&gt;. Well, maybe
there is more to it ;-)&amp;nbsp;but that is what I'll talk about in this blog entry. 
&lt;/p&gt;
&lt;p&gt;
Whether you start up a new software project, or join an existing team that has been
constructing something for years, you need to consider what the risks to the project
are, and especially what you can do about them.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Risk of not shipping on time (or not shipping at all)&lt;/strong&gt;
&lt;br&gt;
Practice makes perfect. Start shipping from day one -- That is, for instance ship
a new release every week. Naturally it depends on the kind of product you are working
on, but more than often this is perfectly feasable. In fact, this happens every single
day for many web-applications, and users may not even notice.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Risk of building the wrong thing&lt;/strong&gt;
&lt;br&gt;
Have developers work closely with users throughout the project, and encourage them
to build an executable and testable&amp;nbsp;model of the business domain, without too
much focus on integration.&amp;nbsp;This ensures that the product can in fact solve the
core business problem.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Risk of not being able to integrate different parts.&lt;/strong&gt;
&lt;br&gt;
If there is a risk of integration issues, practice! Integrate risky parts from day
one of the project. For instance, communication protocols that you haven't tried before
may be risky. While accessing a database may be a walk in the park. Find out which
integration points require early integration, and balance those efforts against the
efforts involved with the risk of "building the wrong thing".
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Risk of high long-term maintenance costs. &lt;/strong&gt;
&lt;br&gt;
What you need is a software solution to&amp;nbsp;a business problem. What you don't need
is unneccessary technical complexity. Aggressively attack complexity, and make sure
your product is still capable of solving the business problem.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Risk of shipping software with defects&lt;/strong&gt;
&lt;br&gt;
Where are your defects? In the business logic, or at the integration points between
different modules? No matter which, the answer is simple: Test it (automatically)
-- From day one! And use every single defect found, to improve the development process
so that you introduce less errors in the future.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Risk of unacceptable performance issues&lt;/strong&gt;
&lt;br&gt;
Have your team commit to a measurable performance goal. ...And you never guessed --
Measure it from day one.
&lt;/p&gt;
&lt;p&gt;
The key to long-term success, is knowing what your long term success factors are,
and figuring out how to address them on an everyday basis. What is our long-term succcess
factor? I bet you are looking for a cost/earnings ratio close to zero viewing at the
entire lifecycle of the software product. This is done by either increasing the earnings,
or lowering the cost of development and maintenance. Also a short time-to-market is
most likely attractive to your company. Thus, address those every day.
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
That's it for now. Keep working on reducing your risks out there.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=24fdc637-a7e6-4651-a284-2889a1a86b08" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,24fdc637-a7e6-4651-a284-2889a1a86b08.aspx</comments>
      <category>Agile</category>
      <category>Risk-reduction</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=9febba7a-34e1-4b98-bb0d-717e730b86aa</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,9febba7a-34e1-4b98-bb0d-717e730b86aa.aspx</pingback:target>
      <dc:creator>Bent Jensen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,9febba7a-34e1-4b98-bb0d-717e730b86aa.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=9febba7a-34e1-4b98-bb0d-717e730b86aa</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <title>It's Christmas. Let us borrow money and have fun</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,9febba7a-34e1-4b98-bb0d-717e730b86aa.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2007/12/04/ItsChristmasLetUsBorrowMoneyAndHaveFun.aspx</link>
      <pubDate>Tue, 04 Dec 2007 10:46:30 GMT</pubDate>
      <description>

&lt;p class="MsoNormal"&gt;
At this time of year we are constantly tempted to borrow money for spending more for
Christmas. Money-lenders offer us one-click-loan on the internet or even so called
SMS- loans on the mobile and shops are trying to persuade us with “buy now – do not
pay until March” offers.
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style=""&gt;&lt;/span&gt;Most of us do not fall for the temptation. We may have tried
it once, and know that after the short pleasure of being able to spend, comes the
long pay-back period, where our freedom are much more limited than it otherwise would
be.
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
When it comes to software development, we are also at times confronted with the same
kind of temptation, especially close to some kind of deadline.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;We
may not be completely finished with what we should do, and when looking for a way
out, we may think &lt;i style=""&gt;why not borrow a little?&lt;o:p&gt;&lt;/o:p&gt;
&lt;/i&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
There are many ways to borrow in developing software; generally we do it by lowering
the bar a little and not doing things exactly as they should be done. We may create
a solution that does not cover all required&lt;span style=""&gt; &lt;/span&gt;usages, we may make
a shortcut &lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;we know will cause us a performance penalty
later or we may simply skip some of the testing we normally know to be good engineering
practice. In this way we create &lt;i&gt;technical debt&lt;/i&gt; in our product. &lt;i style=""&gt;Unfinished
work your organization owes your product, &lt;/i&gt;as Preston Smith defines it in his book
“Flexible Product Development”
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style=""&gt;&lt;/span&gt;Those who have tried to ship a software-product know this temptation.
Most of us have fallen for it, at least once.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;We also
know how painful paying back is. The really strange thing is that many software developers
and even more&amp;nbsp; software managers apparently does not learn from that experience. 
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style=""&gt;&lt;/span&gt;If we stretch the Christmas analogy a little further, one of
the things that are different with technical loans in the software, is that we do
not know exactly when payback is due. There is no guarantee that you can wait until
after Christmas, in this case the deadline. Some of the shortcuts you have taken may
come back to you, at the most unpleasant time, where you thought, that now you were
going to ship. &lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;Also you do not know the interest rate
– the only thing you know from experience is that it is high. Almost always higher
than you expect. The cost of fixing a problem after the software has been delivered
to customers is sizes of magnitude larger, than what is was, when you decided to take
the loan.
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
It may very well even be so, that you never will be able to pay back in full.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;You
may for the life of the system, be paying the interest, which is a larger than necessary
cost on future development,&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;and never have the surplus
to actually be able to start reducing the debt. 
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
If investors or buyers are smart when looking at your company, they will look at the
size of the technical debt, with the same scrutiny as they use when examining &lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;the
financial data, since they know that a large technical debt, may mean that what looks
like a promising company, actually is more like a sinking wreck,&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;only
able to stay floating with a tremendous effort and thus with little potential for
growth and future profits.
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=9febba7a-34e1-4b98-bb0d-717e730b86aa" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,9febba7a-34e1-4b98-bb0d-717e730b86aa.aspx</comments>
      <category>Quality</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=aa0d5548-ba21-4dcc-8967-137d955c9ef3</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,aa0d5548-ba21-4dcc-8967-137d955c9ef3.aspx</pingback:target>
      <dc:creator>Kristian Dupont</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,aa0d5548-ba21-4dcc-8967-137d955c9ef3.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=aa0d5548-ba21-4dcc-8967-137d955c9ef3</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">Making a piece of software more generic
is tempting to programmers. But it isn't free.<br /><br /><img src="http://www.bestbrains.dk/Blog/content/binary/understanding-comics.png" alt="On abstraction in comics, from Understanding Comics by Scott McCloud" /><br /><br />
I have noticed something about the way I think. Whenever I think of a solution to
a given problem, my mind starts wandering off looking for a more general solution
that will fit a more general version of the problem.<br />
I enjoy this feeling, it is intellectually challenging. I consider myself a decent
programmer and I think that to some degree, this habit is either the cause of or an
effect of this fact. Talented programmers have the ability to redefine problems -
in more general terms and in particular, in simpler terms. There is always a better
and more generic solution which is almost always more interesting to create and possibly
a good investment as well. But tempting as it may be, there is a cost and it is something
that I need to remind myself of frequently. 
<br /><br />
I was recently working for a customer that had a very large database of clients. At
one point, they needed a list of clients that matched a certain number of criteria's.
A simple (well it was quite complex but still) SQL query, and I would be done. Simply
handing them the output would be the least generic solution to the problem. However,
I asked whether this was something that was likely to show up again and it turned
out that it was. So I hacked a minimalist winforms app that could perform the query.
And because they might need to fetch old data, I made a date picker on the form, allowing
them to choose when the data should be from. A little more generic and a wise investment.
I spent about ½ hour making this app and I am sure that this ½ hour would quickly
be spent by me or somebody else real soon. But I could have made it more generic (and
indeed, I did consider this). It could be customizable in all kinds of ways, applying
arbitrary filters, outputting in various formats and so forth. If one extreme is the
hard data, the other, I think, is Turing completeness - where you have a programming
language that gives you all the possibilities that the computer offers. 
<br /><br /><img src="http://www.bestbrains.dk/Blog/content/binary/genericity-scale.png" alt="Genericity Scale" /><br /><br />
So besides from the fact that making something more generic takes more time, are there
any drawbacks? Surely, more generic == better, right? Well, I once wrote a blog entry
entitled "<a href="http://www.chrylers.com/2006/09/11/good-things-about-hardcoding/">Good
things about hard coding</a>". This was obviously meant in a bit of a provocative
manner but my point was and is that there is a cognitive cost to generic code as well
as an economic. 
<br /><br />
Quick, tell me, what does a <i>FilterItem</i> do?<br /><br />
Say that you are making a program that needs to manipulate some data that comes from
a file. You may then have a FileReader class which reads your file and deserializes
the data. Good. But then you figure out that this data might as well come from a database.
So you make an abstraction called DataProvider, of which FileReader becomes a specialized
version. It's beautiful and generic. However, if I look at the code now and I am not
the author, the term DataProvider is a little more abstract than FileReader would
be. I can sort'a tell what it does but where as the term FileReader is quite self
documenting, the more abstract term DataProvider is a little less obvious. And the
more layers of abstraction that you apply, the vaguer the self-documenting effect
becomes. You end up with functions and classes that are named with combinations of
terms like <i>stream</i>, <i>container</i>, <i>input</i>, <i>output</i> etc. 
<br />
In my opinion, you should strive for generic code, but only to the point where it
actually saves you from duplicated code. The way I try to achieve this is by constantly
making vertical slices, or <a href="http://www.bestbrains.dk/Blog/2009/06/09/BreadthFirstDevelopment.aspx">breadth-first
development</a> - moving to the right on the genericity scale every time I spot duplicated
code.<br /><br /><hints id="hah_hints"></hints><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=aa0d5548-ba21-4dcc-8967-137d955c9ef3" /></body>
      <title>Let's Make it Generic</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,aa0d5548-ba21-4dcc-8967-137d955c9ef3.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2007/11/04/LetsMakeItGeneric.aspx</link>
      <pubDate>Sun, 04 Nov 2007 13:54:57 GMT</pubDate>
      <description>Making a piece of software more generic is tempting to programmers. But it isn't free.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/understanding-comics.png" alt="On abstraction in comics, from Understanding Comics by Scott McCloud"&gt;
&lt;br&gt;
&lt;br&gt;
I have noticed something about the way I think. Whenever I think of a solution to
a given problem, my mind starts wandering off looking for a more general solution
that will fit a more general version of the problem.&lt;br&gt;
I enjoy this feeling, it is intellectually challenging. I consider myself a decent
programmer and I think that to some degree, this habit is either the cause of or an
effect of this fact. Talented programmers have the ability to redefine problems -
in more general terms and in particular, in simpler terms. There is always a better
and more generic solution which is almost always more interesting to create and possibly
a good investment as well. But tempting as it may be, there is a cost and it is something
that I need to remind myself of frequently. 
&lt;br&gt;
&lt;br&gt;
I was recently working for a customer that had a very large database of clients. At
one point, they needed a list of clients that matched a certain number of criteria's.
A simple (well it was quite complex but still) SQL query, and I would be done. Simply
handing them the output would be the least generic solution to the problem. However,
I asked whether this was something that was likely to show up again and it turned
out that it was. So I hacked a minimalist winforms app that could perform the query.
And because they might need to fetch old data, I made a date picker on the form, allowing
them to choose when the data should be from. A little more generic and a wise investment.
I spent about ½ hour making this app and I am sure that this ½ hour would quickly
be spent by me or somebody else real soon. But I could have made it more generic (and
indeed, I did consider this). It could be customizable in all kinds of ways, applying
arbitrary filters, outputting in various formats and so forth. If one extreme is the
hard data, the other, I think, is Turing completeness - where you have a programming
language that gives you all the possibilities that the computer offers. 
&lt;br&gt;
&lt;br&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/genericity-scale.png" alt="Genericity Scale"&gt;
&lt;br&gt;
&lt;br&gt;
So besides from the fact that making something more generic takes more time, are there
any drawbacks? Surely, more generic == better, right? Well, I once wrote a blog entry
entitled "&lt;a href="http://www.chrylers.com/2006/09/11/good-things-about-hardcoding/"&gt;Good
things about hard coding&lt;/a&gt;". This was obviously meant in a bit of a provocative
manner but my point was and is that there is a cognitive cost to generic code as well
as an economic. 
&lt;br&gt;
&lt;br&gt;
Quick, tell me, what does a &lt;i&gt;FilterItem&lt;/i&gt; do?&lt;br&gt;
&lt;br&gt;
Say that you are making a program that needs to manipulate some data that comes from
a file. You may then have a FileReader class which reads your file and deserializes
the data. Good. But then you figure out that this data might as well come from a database.
So you make an abstraction called DataProvider, of which FileReader becomes a specialized
version. It's beautiful and generic. However, if I look at the code now and I am not
the author, the term DataProvider is a little more abstract than FileReader would
be. I can sort'a tell what it does but where as the term FileReader is quite self
documenting, the more abstract term DataProvider is a little less obvious. And the
more layers of abstraction that you apply, the vaguer the self-documenting effect
becomes. You end up with functions and classes that are named with combinations of
terms like &lt;i&gt;stream&lt;/i&gt;, &lt;i&gt;container&lt;/i&gt;, &lt;i&gt;input&lt;/i&gt;, &lt;i&gt;output&lt;/i&gt; etc. 
&lt;br&gt;
In my opinion, you should strive for generic code, but only to the point where it
actually saves you from duplicated code. The way I try to achieve this is by constantly
making vertical slices, or &lt;a href="http://www.bestbrains.dk/Blog/2009/06/09/BreadthFirstDevelopment.aspx"&gt;breadth-first
development&lt;/a&gt; - moving to the right on the genericity scale every time I spot duplicated
code.&lt;br&gt;
&lt;br&gt;
&lt;hints id="hah_hints"&gt;
&lt;/hints&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=aa0d5548-ba21-4dcc-8967-137d955c9ef3" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,aa0d5548-ba21-4dcc-8967-137d955c9ef3.aspx</comments>
      <category>Quality</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=4ac1bd75-2f9a-4aa4-84c2-9dcddf057121</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,4ac1bd75-2f9a-4aa4-84c2-9dcddf057121.aspx</pingback:target>
      <dc:creator>Jesper Thaning</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,4ac1bd75-2f9a-4aa4-84c2-9dcddf057121.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=4ac1bd75-2f9a-4aa4-84c2-9dcddf057121</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">Working with an app that requires live
fast response times we experienced some random pauses in the execution. Normally a
server request would take about 100 milliseconds but every now and then a request
took considerably longer and logging showed that it was not always the same method
calls that took up to 2 seconds and sometimes longer. 
<p style="MARGIN-BOTTOM: 0cm">
Suspicion began to fall on the jvm performance (Suns Jvm for Java 1.4.2) and some
logging parameters was added to one of the servers in a production cluster.
</p><pre>java -Xloggc:gc.log -XX:+PrintGCDetails</pre><p style="MARGIN-BOTTOM: 0cm">
Looking at the gc.log in a graphical tool showed this picture:
</p><p style="MARGIN-BOTTOM: 0cm"><img src="http://www.bestbrains.dk/Blog/content/binary/default_gc1.PNG" border="0" /></p><p style="MARGIN-BOTTOM: 0cm"><br /></p><p style="MARGIN-BOTTOM: 0cm">
Notice that the jvm has over 700MB memory but only uses around 200MB because a full
garbage collection is run every minute, and that most pauses is between 0.6 and 0.9
seconds. This interrupts the execution on the server creating the unwanted pauses.
</p><p style="MARGIN-BOTTOM: 0cm">
Investigating the subtle workings of garbage collection revealed that remote method
invocation (RMI – when a remote client calls an object on the server) has a role to
play in how often the server-side jvm performs a full garbage collection. By default
the RMI calls System.garbageCollect() every minute, which can give the long pauses.
</p><p style="MARGIN-BOTTOM: 0cm">
Increasing the interval between full garbage collections to 30 minutes (here both
for client and server) helped to reduce pause considerably.
</p><pre>java ... -Dsun.rmi.dgc.client.gcInterval=1800000 
<br />
-Dsun.rmi.dgc.server.gcInterval=1800000</pre><p style="MARGIN-BOTTOM: 0cm">
One thing to note is that increasing the memory will only make the pauses longer because
more garbage would be able to fill up until a full garbage collection needs to be
performed. So putting lots of memory blocks in your box and boosting the jvm with
more memory does not necessary help the user experience. Instead you have to suit
to the actual needs of your application, for example based on how many objects are
cached.
</p><p style="MARGIN-BOTTOM: 0cm"><br /></p><p style="MARGIN-BOTTOM: 0cm">
Further more on a multiprocessor server, you can benefit from enabling a concurrent
garbage collector that runs in a separate thread, so the main threads are not interrupted.
</p><pre>java ... -XX:+UseConcMarkSweepGC</pre><p style="MARGIN-BOTTOM: 0cm"><img src="http://www.bestbrains.dk/Blog/content/binary/lateRmiGc_concurrent_gc12.PNG" border="0" /></p><p style="MARGIN-BOTTOM: 0cm">
With this collector you get lots of small garbage collections in the background and
practically no long pauses in the application. Notice that here we also set the initial
size of the jvm to 256MB letting the jvm itself determine how much memory is needed.
</p><p><br />
So remember to dive into your jvm when performance issues arises. 
<br /></p><p style="MARGIN-BOTTOM: 0cm">
Want to read more:
</p><p style="MARGIN-BOTTOM: 0cm"><a href="http://www.tagtraum.com/gcviewer.html">http://www.tagtraum.com/gcviewer.html</a></p><p style="MARGIN-BOTTOM: 0cm"><a href="http://developers.sun.com/mobility/midp/articles/garbagecollection2/index.html">http://developers.sun.com/mobility/midp/articles/garbagecollection2/index.html</a></p><p style="MARGIN-BOTTOM: 0cm">
More general on jvm options
</p><p style="MARGIN-BOTTOM: 0cm"><a href="http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp">http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp</a></p><p style="MARGIN-BOTTOM: 0cm">
 
</p><img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=4ac1bd75-2f9a-4aa4-84c2-9dcddf057121" /></body>
      <title>When Java RMI and default garbage collection can make your server pause</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,4ac1bd75-2f9a-4aa4-84c2-9dcddf057121.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2007/10/28/WhenJavaRMIAndDefaultGarbageCollectionCanMakeYourServerPause.aspx</link>
      <pubDate>Sun, 28 Oct 2007 21:46:01 GMT</pubDate>
      <description>Working with an app that requires live fast response times we experienced some random pauses in the execution. Normally a server request would take about 100 milliseconds but every now and then a request took considerably longer and logging showed that it was not always the same method calls that took up to 2 seconds and sometimes longer. 
&lt;p style="MARGIN-BOTTOM: 0cm"&gt;
Suspicion began to fall on the jvm performance (Suns Jvm for Java 1.4.2) and some
logging parameters was added to one of the servers in a production cluster.
&lt;/p&gt;
&lt;pre&gt;java -Xloggc:gc.log -XX:+PrintGCDetails&lt;/pre&gt;
&lt;p style="MARGIN-BOTTOM: 0cm"&gt;
Looking at the gc.log in a graphical tool showed this picture:
&lt;/p&gt;
&lt;p style="MARGIN-BOTTOM: 0cm"&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/default_gc1.PNG" border=0&gt; 
&lt;/p&gt;
&lt;p style="MARGIN-BOTTOM: 0cm"&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p style="MARGIN-BOTTOM: 0cm"&gt;
Notice that the jvm has over 700MB memory but only uses around 200MB because a full
garbage collection is run every minute, and that most pauses is between 0.6 and 0.9
seconds. This interrupts the execution on the server creating the unwanted pauses.
&lt;/p&gt;
&lt;p style="MARGIN-BOTTOM: 0cm"&gt;
Investigating the subtle workings of garbage collection revealed that remote method
invocation (RMI – when a remote client calls an object on the server) has a role to
play in how often the server-side jvm performs a full garbage collection. By default
the RMI calls System.garbageCollect() every minute, which can give the long pauses.
&lt;/p&gt;
&lt;p style="MARGIN-BOTTOM: 0cm"&gt;
Increasing the interval between full garbage collections to 30 minutes (here both
for client and server) helped to reduce pause considerably.
&lt;/p&gt;
&lt;pre&gt;java ... -Dsun.rmi.dgc.client.gcInterval=1800000 
&lt;br&gt;
-Dsun.rmi.dgc.server.gcInterval=1800000&lt;/pre&gt;
&lt;p style="MARGIN-BOTTOM: 0cm"&gt;
One thing to note is that increasing the memory will only make the pauses longer because
more garbage would be able to fill up until a full garbage collection needs to be
performed. So putting lots of memory blocks in your box and boosting the jvm with
more memory does not necessary help the user experience. Instead you have to suit
to the actual needs of your application, for example based on how many objects are
cached.
&lt;/p&gt;
&lt;p style="MARGIN-BOTTOM: 0cm"&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p style="MARGIN-BOTTOM: 0cm"&gt;
Further more on a multiprocessor server, you can benefit from enabling a concurrent
garbage collector that runs in a separate thread, so the main threads are not interrupted.
&lt;/p&gt;
&lt;pre&gt;java ... -XX:+UseConcMarkSweepGC&lt;/pre&gt;
&lt;p style="MARGIN-BOTTOM: 0cm"&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/lateRmiGc_concurrent_gc12.PNG" border=0&gt; 
&lt;/p&gt;
&lt;p style="MARGIN-BOTTOM: 0cm"&gt;
With this collector you get lots of small garbage collections in the background and
practically no long pauses in the application. Notice that here we also set the initial
size of the jvm to 256MB letting the jvm itself determine how much memory is needed.
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
So remember to dive into your jvm when performance issues arises. 
&lt;br&gt;
&lt;/p&gt;
&lt;p style="MARGIN-BOTTOM: 0cm"&gt;
Want to read more:
&lt;/p&gt;
&lt;p style="MARGIN-BOTTOM: 0cm"&gt;
&lt;a href="http://www.tagtraum.com/gcviewer.html"&gt;http://www.tagtraum.com/gcviewer.html&lt;/a&gt;
&lt;/p&gt;
&lt;p style="MARGIN-BOTTOM: 0cm"&gt;
&lt;a href="http://developers.sun.com/mobility/midp/articles/garbagecollection2/index.html"&gt;http://developers.sun.com/mobility/midp/articles/garbagecollection2/index.html&lt;/a&gt;
&lt;/p&gt;
&lt;p style="MARGIN-BOTTOM: 0cm"&gt;
More general on jvm options
&lt;/p&gt;
&lt;p style="MARGIN-BOTTOM: 0cm"&gt;
&lt;a href="http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp"&gt;http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp&lt;/a&gt;
&lt;/p&gt;
&lt;p style="MARGIN-BOTTOM: 0cm"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=4ac1bd75-2f9a-4aa4-84c2-9dcddf057121" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,4ac1bd75-2f9a-4aa4-84c2-9dcddf057121.aspx</comments>
      <category>Tools</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=71434336-df26-4ee1-9789-073691c8b4b6</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,71434336-df26-4ee1-9789-073691c8b4b6.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,71434336-df26-4ee1-9789-073691c8b4b6.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=71434336-df26-4ee1-9789-073691c8b4b6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://www.bestbrains.dk/Blog/content/binary/stdd.png" border="0" />
        <p>
          <font size="2">If you attended the JAOO 2007 conference, or follow the Test-Driven
Development community you may have heard of Jim Coplien and his arguments about why
you should not use TDD. I believe that Jim said something like "TDD will deteriorate
your design", and it made me ask myself -- Is TDD a controversial topic?</font>
        </p>
        <p>
          <font size="2">So is it? Not if you ask me. If you rewrite the original Red-Green-Refactor
mantra from TDD, into "Spec. the feature" &gt; "Implement it" &gt; "Reduce
technical debt", it seems to make quite a lot of sense. In fact, I don't really see
any other way you could work and maintain your professional integrity!</font>
        </p>
        <p>
          <font size="2">So is there any risk of bad design or architecture as a result of using
Test-Driven Development? Well, only if you neglect that refactoring is a continuous
activity of TDD. If you refactor (small and large refactorings) on a continuous basis,
I simply do not see how you could have a design- or architectural meltdown. If anyone
experience this, I seriously doubt that TDD is the root cause of their problem.</font>
        </p>
        <p>
          <font size="2">Check out Roy Osherove's blog entry on the topic </font>
          <a href="http://weblogs.asp.net/rosherove/archive/2007/10/08/the-various-meanings-of-tdd.aspx">
            <font size="2">here</font>
          </a>
          <font size="2">.</font>
        </p>
        <img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=71434336-df26-4ee1-9789-073691c8b4b6" />
      </body>
      <title>Is TDD Controversial?</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,71434336-df26-4ee1-9789-073691c8b4b6.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2007/10/16/IsTDDControversial.aspx</link>
      <pubDate>Tue, 16 Oct 2007 19:27:51 GMT</pubDate>
      <description>&lt;img src="http://www.bestbrains.dk/Blog/content/binary/stdd.png" border=0&gt; 
&lt;p&gt;
&lt;font size=2&gt;If you attended the JAOO 2007 conference, or follow the Test-Driven Development
community you may have heard of Jim Coplien and his arguments about why you should
not use TDD. I believe that Jim said something like "TDD will deteriorate your design",
and it made me ask&amp;nbsp;myself -- Is TDD a controversial topic?&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size=2&gt;So is it? Not if you ask me. If you rewrite the original Red-Green-Refactor
mantra from TDD, into "Spec. the feature"&amp;nbsp;&amp;gt; "Implement it"&amp;nbsp;&amp;gt; "Reduce
technical debt", it seems to make quite a lot of sense. In fact, I don't really see
any other way you could work and maintain your professional integrity!&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size=2&gt;So is there any risk of bad design or architecture as a result of using
Test-Driven Development? Well, only if you neglect that refactoring is a continuous
activity of TDD. If you refactor (small and large refactorings) on a continuous basis,
I simply do not see how you could have a design- or architectural meltdown. If anyone
experience this, I seriously doubt that TDD is the root cause of their problem.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size=2&gt;Check out Roy Osherove's blog entry on the topic &lt;/font&gt;&lt;a href="http://weblogs.asp.net/rosherove/archive/2007/10/08/the-various-meanings-of-tdd.aspx"&gt;&lt;font size=2&gt;here&lt;/font&gt;&lt;/a&gt;&lt;font size=2&gt;.&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=71434336-df26-4ee1-9789-073691c8b4b6" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,71434336-df26-4ee1-9789-073691c8b4b6.aspx</comments>
      <category>Automated Testing</category>
      <category>TDD</category>
      <category>Test-Driven</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=55ec0dce-7a7d-4fac-9336-79d7bbb1f780</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,55ec0dce-7a7d-4fac-9336-79d7bbb1f780.aspx</pingback:target>
      <dc:creator>Bent Jensen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,55ec0dce-7a7d-4fac-9336-79d7bbb1f780.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=55ec0dce-7a7d-4fac-9336-79d7bbb1f780</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img src="http://www.bestbrains.dk/Blog/content/binary/tortoise_hare_2.jpg" border="0" />
          <br />
          <br />
Three important principles of agile development are: 
<br /></p>
        <ol>
          <li>
End to end development of small batches of work 
</li>
          <li>
Make problems visible 
</li>
          <li>
Limit work to capacity</li>
        </ol>
        <p style="margin-bottom: 0cm;">
          <br />
        </p>
        <p style="margin-bottom: 0cm;">
Unfortunately it is not uncommon for teams, adopting agile methods like e.g. Scrum
to somehow miss these principles.
</p>
        <p style="margin-bottom: 0cm;">
          <br />
        </p>
        <p style="margin-bottom: 0cm;">
I have a number of times watched teams plan and estimate work, they believe they can
do in one sprint. After a few days, it is clear that the team lag behind. The immediate
reaction is then to start to try to work faster, either by putting in longer hours
or by sacrificing quality. In that way a Scrum sprints really live up it's name –
a headless rush towards the goal. The result of having sacrificed all three principles
mentioned above is a demotivated team and a growing pile of technical debt.
</p>
        <p style="margin-bottom: 0cm;">
          <br />
        </p>
        <p style="margin-bottom: 0cm;">
It is important to realize that the great benefits of agile development, will take
some time to manifest themselves, and the best way to make them manifest themselves,
is to avoid focusing too much on getting a lot dot done when starting to do agile
development. Instead you should look carefully on <b>how</b> things are done.
</p>
        <p style="margin-bottom: 0cm;">
For instance it is a common problem that developers lack information about features
they need to work on, which will either slow them down or in order to not be slowed
down, make them start guessing what it is they are supposed to do. This is a problem
that should be made visible and dealt with at its root cause. 
<br /></p>
        <p style="margin-bottom: 0cm;">
Another common problem is that features are not completely done when the iteration
ends. Either they are not doing what they should, or is has not been verified that
they actually work.
</p>
        <p style="margin-bottom: 0cm;">
          <br />
        </p>
        <p style="margin-bottom: 0cm;">
These two problems are just examples of problems a team starting to do agile development
can and will encounter. It is important to embrace problems as opportunities for improving
processes in a way that will create a more lean and flexible development environment.
</p>
        <p style="margin-bottom: 0cm;">
          <br />
        </p>
        <p style="margin-bottom: 0cm;">
So in your agile adoption:
</p>
        <p style="margin-bottom: 0cm;" align="center">
          <b>admit we are all tortoises and we will not become hares just because we do agile
development!</b>
        </p>
        <p style="margin-bottom: 0cm;">
 
</p>
        <img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=55ec0dce-7a7d-4fac-9336-79d7bbb1f780" />
      </body>
      <title>The Tortoise is the winner.</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,55ec0dce-7a7d-4fac-9336-79d7bbb1f780.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2007/09/30/TheTortoiseIsTheWinner.aspx</link>
      <pubDate>Sun, 30 Sep 2007 22:12:35 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img src="http://www.bestbrains.dk/Blog/content/binary/tortoise_hare_2.jpg" border="0"&gt;
&lt;br&gt;
&lt;br&gt;
Three important principles of agile development are: 
&lt;br&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
End to end development of small batches of work 
&lt;/li&gt;
&lt;li&gt;
Make problems visible 
&lt;/li&gt;
&lt;li&gt;
Limit work to capacity&lt;/li&gt;
&lt;/ol&gt;
&lt;p style="margin-bottom: 0cm;"&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p style="margin-bottom: 0cm;"&gt;
Unfortunately it is not uncommon for teams, adopting agile methods like e.g. Scrum
to somehow miss these principles.
&lt;/p&gt;
&lt;p style="margin-bottom: 0cm;"&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p style="margin-bottom: 0cm;"&gt;
I have a number of times watched teams plan and estimate work, they believe they can
do in one sprint. After a few days, it is clear that the team lag behind. The immediate
reaction is then to start to try to work faster, either by putting in longer hours
or by sacrificing quality. In that way a Scrum sprints really live up it's name –
a headless rush towards the goal. The result of having sacrificed all three principles
mentioned above is a demotivated team and a growing pile of technical debt.
&lt;/p&gt;
&lt;p style="margin-bottom: 0cm;"&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p style="margin-bottom: 0cm;"&gt;
It is important to realize that the great benefits of agile development, will take
some time to manifest themselves, and the best way to make them manifest themselves,
is to avoid focusing too much on getting a lot dot done when starting to do agile
development. Instead you should look carefully on &lt;b&gt;how&lt;/b&gt; things are done.
&lt;/p&gt;
&lt;p style="margin-bottom: 0cm;"&gt;
For instance it is a common problem that developers lack information about features
they need to work on, which will either slow them down or in order to not be slowed
down, make them start guessing what it is they are supposed to do. This is a problem
that should be made visible and dealt with at its root cause. 
&lt;br&gt;
&lt;/p&gt;
&lt;p style="margin-bottom: 0cm;"&gt;
Another common problem is that features are not completely done when the iteration
ends. Either they are not doing what they should, or is has not been verified that
they actually work.
&lt;/p&gt;
&lt;p style="margin-bottom: 0cm;"&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p style="margin-bottom: 0cm;"&gt;
These two problems are just examples of problems a team starting to do agile development
can and will encounter. It is important to embrace problems as opportunities for improving
processes in a way that will create a more lean and flexible development environment.
&lt;/p&gt;
&lt;p style="margin-bottom: 0cm;"&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p style="margin-bottom: 0cm;"&gt;
So in your agile adoption:
&lt;/p&gt;
&lt;p style="margin-bottom: 0cm;" align="center"&gt;
&lt;b&gt;admit we are all tortoises and we will not become hares just because we do agile
development!&lt;/b&gt;
&lt;/p&gt;
&lt;p style="margin-bottom: 0cm;"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=55ec0dce-7a7d-4fac-9336-79d7bbb1f780" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,55ec0dce-7a7d-4fac-9336-79d7bbb1f780.aspx</comments>
      <category>Agile</category>
      <category>Lean</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=4b37e8fe-32b3-41d5-844b-4eb2b8d57999</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,4b37e8fe-32b3-41d5-844b-4eb2b8d57999.aspx</pingback:target>
      <dc:creator>Lars Thorup</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,4b37e8fe-32b3-41d5-844b-4eb2b8d57999.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=4b37e8fe-32b3-41d5-844b-4eb2b8d57999</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">The other day I needed a thread safe collection
class. Since .NET 2.0 lack thread safe generic collection classes and because I wanted
a ReaderWriterLock for best throughput I decided to write it myself. 
<br />
Being a TDD-kind of guy, I wanted to start with some failing tests, and focusing on
the thread safety of the class I wanted the tests to fail because of lacking thread
safety. In this way I would know for sure when the added thread safety mechanisms
was actually working. 
<br />
But how do you write a test that fails because of lacking thread safety? Well, in
this case I could start up some threads, make sure that they used the collection methods
simultaneously and then assert that only one thread was allowed to do so at a time. 
<br />
That turned out to be more easy to think than to code. Lets look at the two problems
and their solution: 
<br />
"Making sure that the threads used the collection methods simultaneously". The collection
methods are typically so fast that it is practically impossible to arrange for two
threads to try to enter a method simultaneously. However, I decided that for testing
purposes, I could slow down the methods and thereby ensure that the first thread was
still inside the method when the next thread came around. So inside the Collection.Add()-method
I added: 
<br /><pre><font color="#0000ff">if</font> (assertEnabled)<br />
{<br />
Thread.Sleep(100);<br />
}<br /></pre><br />
"Asserting that only one thread at a time is allowed to execute a method". A thread
cannot know whether other threads are running the same method body. However, inside
the method body, we can count the number of threads entering and exiting. And then
we can add Assert-statements stating the required restriction on the number of concurrent
threads in the method. So again, inside the Collection.Add()-method I added: 
<br /><pre><font color="#0000ff">if</font> (assertEnabled)<br />
{<br />
Interlocked.Increment(<font color="#0000ff">ref</font> writerCount);<br />
Thread.Sleep(100);<br />
Assert.AreEqual(1, writerCount);<br />
Assert.AreEqual(0, readerCount, <font color="#ff0000">"trying to write while reading"</font>);<br />
}<br /><font color="#008000">// the implementation of the method go here</font><br /><font color="#0000ff">if</font> (assertEnabled)<br />
{<br />
Interlocked.Decrement(<font color="#0000ff">ref</font> writerCount);<br />
}<br /></pre><br />
Having these mechanisms in place I could write a test that failed because of the "trying
to write while reading"-exception being thrown. 
<br /><pre>   [Test]<br /><font color="#0000ff">public void</font> WriterWaitForReader()<br />
{<br />
Thread r1 = CreateReader();<br />
Thread w1 = CreateWriter();<br />
r1.Join();<br />
w1.Join();<br />
Assert.That(exception, Is.Null);<br />
}<br /></pre><br />
Now having a failing test, allowed me to add the actual thread safety mechanism using
the ReaderWriterLock in the Collection.Add()-method: 
<br /><pre>   rwLock.AcquireWriterLock(InfiniteTimeOut);<br /><font color="#0000ff">if</font> (assertEnabled)<br />
{<br />
Interlocked.Increment(<font color="#0000ff">ref</font> writerCount);<br />
Thread.Sleep(100);<br />
Assert.AreEqual(1, writerCount);<br />
Assert.AreEqual(0, readerCount, <font color="#ff0000">"trying to write while reading"</font>);<br />
}<br /><font color="#008000">// the implementation of the method go here</font><br /><font color="#0000ff">if</font> (assertEnabled)<br />
{<br />
Interlocked.Decrement(<font color="#0000ff">ref</font> writerCount);<br />
}<br />
rwLock.ReleaseLock();<br /></pre><br />
Bringing me a succeeding test. Then I could add tests for the actual functionality
of my collection class and the corresponding implementation. 
<br />
Depending on the project in which this code is being used I could keep asserEnabled==true
in production as well as when running the tests (this requires another condition to
avoid enabling the Sleep()). Another choice could be to entirely avoid the overhead
of the assertEnabled condition by surrounding it with #if DEBUG ... #endif, so the
tests only run in debug mode. 
<br />
Take a look at the <a href="http://www.bestbrains.dk/TestDrivenThreadSafety.zip">example
source code</a> (for Visual Studio 2008). <img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=4b37e8fe-32b3-41d5-844b-4eb2b8d57999" /></body>
      <title>Test Driven Thread Safety</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,4b37e8fe-32b3-41d5-844b-4eb2b8d57999.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2007/09/14/TestDrivenThreadSafety.aspx</link>
      <pubDate>Fri, 14 Sep 2007 17:22:46 GMT</pubDate>
      <description>The other day I needed a thread safe collection class. Since .NET 2.0 lack thread safe generic collection classes and because I wanted a ReaderWriterLock for best throughput I decided to write it myself. &lt;br&gt;
Being a TDD-kind of guy, I wanted to start with some failing tests, and focusing on
the thread safety of the class I wanted the tests to fail because of lacking thread
safety. In this way I would know for sure when the added thread safety mechanisms
was actually working. 
&lt;br&gt;
But how do you write a test that fails because of lacking thread safety? Well, in
this case I could start up some threads, make sure that they used the collection methods
simultaneously and then assert that only one thread was allowed to do so at a time. 
&lt;br&gt;
That turned out to be more easy to think than to code. Lets look at the two problems
and their solution: 
&lt;br&gt;
"Making sure that the threads used the collection methods simultaneously". The collection
methods are typically so fast that it is practically impossible to arrange for two
threads to try to enter a method simultaneously. However, I decided that for testing
purposes, I could slow down the methods and thereby ensure that the first thread was
still inside the method when the next thread came around. So inside the Collection.Add()-method
I added: 
&lt;br&gt;
&lt;pre&gt;   &lt;font color=#0000ff&gt;if&lt;/font&gt; (assertEnabled)&lt;br&gt;
{&lt;br&gt;
Thread.Sleep(100);&lt;br&gt;
}&lt;br&gt;
&lt;/pre&gt;
&lt;br&gt;
"Asserting that only one thread at a time is allowed to execute a method". A thread
cannot know whether other threads are running the same method body. However, inside
the method body, we can count the number of threads entering and exiting. And then
we can add Assert-statements stating the required restriction on the number of concurrent
threads in the method. So again, inside the Collection.Add()-method I added: 
&lt;br&gt;
&lt;pre&gt;   &lt;font color=#0000ff&gt;if&lt;/font&gt; (assertEnabled)&lt;br&gt;
{&lt;br&gt;
Interlocked.Increment(&lt;font color=#0000ff&gt;ref&lt;/font&gt; writerCount);&lt;br&gt;
Thread.Sleep(100);&lt;br&gt;
Assert.AreEqual(1, writerCount);&lt;br&gt;
Assert.AreEqual(0, readerCount, &lt;font color=#ff0000&gt;"trying to write while reading"&lt;/font&gt;);&lt;br&gt;
}&lt;br&gt;
&lt;font color=#008000&gt;// the implementation of the method go here&lt;/font&gt;
&lt;br&gt;
&lt;font color=#0000ff&gt;if&lt;/font&gt; (assertEnabled)&lt;br&gt;
{&lt;br&gt;
Interlocked.Decrement(&lt;font color=#0000ff&gt;ref&lt;/font&gt; writerCount);&lt;br&gt;
}&lt;br&gt;
&lt;/pre&gt;
&lt;br&gt;
Having these mechanisms in place I could write a test that failed because of the "trying
to write while reading"-exception being thrown. 
&lt;br&gt;
&lt;pre&gt;   [Test]&lt;br&gt;
&lt;font color=#0000ff&gt;public void&lt;/font&gt; WriterWaitForReader()&lt;br&gt;
{&lt;br&gt;
Thread r1 = CreateReader();&lt;br&gt;
Thread w1 = CreateWriter();&lt;br&gt;
r1.Join();&lt;br&gt;
w1.Join();&lt;br&gt;
Assert.That(exception, Is.Null);&lt;br&gt;
}&lt;br&gt;
&lt;/pre&gt;
&lt;br&gt;
Now having a failing test, allowed me to add the actual thread safety mechanism using
the ReaderWriterLock in the Collection.Add()-method: 
&lt;br&gt;
&lt;pre&gt;   rwLock.AcquireWriterLock(InfiniteTimeOut);&lt;br&gt;
&lt;font color=#0000ff&gt;if&lt;/font&gt; (assertEnabled)&lt;br&gt;
{&lt;br&gt;
Interlocked.Increment(&lt;font color=#0000ff&gt;ref&lt;/font&gt; writerCount);&lt;br&gt;
Thread.Sleep(100);&lt;br&gt;
Assert.AreEqual(1, writerCount);&lt;br&gt;
Assert.AreEqual(0, readerCount, &lt;font color=#ff0000&gt;"trying to write while reading"&lt;/font&gt;);&lt;br&gt;
}&lt;br&gt;
&lt;font color=#008000&gt;// the implementation of the method go here&lt;/font&gt;
&lt;br&gt;
&lt;font color=#0000ff&gt;if&lt;/font&gt; (assertEnabled)&lt;br&gt;
{&lt;br&gt;
Interlocked.Decrement(&lt;font color=#0000ff&gt;ref&lt;/font&gt; writerCount);&lt;br&gt;
}&lt;br&gt;
rwLock.ReleaseLock();&lt;br&gt;
&lt;/pre&gt;
&lt;br&gt;
Bringing me a succeeding test. Then I could add tests for the actual functionality
of my collection class and the corresponding implementation. 
&lt;br&gt;
Depending on the project in which this code is being used I could keep asserEnabled==true
in production as well as when running the tests (this requires another condition to
avoid enabling the Sleep()). Another choice could be to entirely avoid the overhead
of the assertEnabled condition by surrounding it with #if DEBUG ... #endif, so the
tests only run in debug mode. 
&lt;br&gt;
Take a look at the &lt;a href="http://www.bestbrains.dk/TestDrivenThreadSafety.zip"&gt;example
source code&lt;/a&gt; (for Visual Studio 2008). &lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=4b37e8fe-32b3-41d5-844b-4eb2b8d57999" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,4b37e8fe-32b3-41d5-844b-4eb2b8d57999.aspx</comments>
      <category>Automated Testing</category>
      <category>Concurrency</category>
      <category>TDD</category>
      <category>Test-Driven</category>
    </item>
    <item>
      <trackback:ping>http://www.bestbrains.dk/Blog/Trackback.aspx?guid=88f6aca3-6ee0-43ed-abc2-c0e75e2f3b5c</trackback:ping>
      <pingback:server>http://www.bestbrains.dk/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.bestbrains.dk/Blog/PermaLink,guid,88f6aca3-6ee0-43ed-abc2-c0e75e2f3b5c.aspx</pingback:target>
      <dc:creator>Sune Gynthersen</dc:creator>
      <wfw:comment>http://www.bestbrains.dk/Blog/CommentView,guid,88f6aca3-6ee0-43ed-abc2-c0e75e2f3b5c.aspx</wfw:comment>
      <wfw:commentRss>http://www.bestbrains.dk/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=88f6aca3-6ee0-43ed-abc2-c0e75e2f3b5c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Creating quality software on a continuous basis is a complicated business. 
</p>
        <p>
I think it is a sign of maturity if your team can admit that there are daily problems
which are ultimately obstructing flow. While not everyone will appreciate that your
team does a complete halt until the obstruction has been removed I think it is a necessity
for a team to stay in good shape and continue to deliver frequently.
</p>
        <p>
Just the other day I came to think about what were the most common obstructions of
flow we see in software development environments. So here is my preliminary list --
I bet you have seen them all.
</p>
        <p>
          <strong>1. Build breaks<br /></strong>If you don't have a build, you don't have anything. Nobody is able to do
any progress progress as the state of the product is unknown. Developers cannot check-in,
as they will not get any response from the continuous integration environment. Testers
cannot try out the latest build. Users cannot see the product in action, and the list
goes on. A build break is like a blindfold, and you should treat it as such. Don't
try to go anywhere until you have your vision back.
</p>
        <p>
          <strong>2. Test failures<br /></strong>If you have a failing test, you have dysfunctional software. Imaging somebody
fitting some cool new styling parts on to a car with a busted engine. Now, who would
ever do that? It really is the same with software. Why do any feature work on a software
product which has a failing test? I know this can be hard to respect, especially when
a deadline is closing in on the team. Deadlines however, does not justify continuing
without stopping the line upon test failures.
</p>
        <p>
          <strong>3. Bug reports<br /></strong>If you have bug reports, you have dysfunctional software. There is no need
to do any feature work, until the product is stabilized. Bug reports are even worse
than failing automated tests as those bugs can only be reproduced by a human. You
should not spend work hours on anything but writing tests for these bugs, and fixing
them.
</p>
        <p>
          <strong>4. Any other blocks keeping the team from a steady flow<br /></strong>If you are experiencing an obstruction which is keeping from moving forward
as fast as you could, suggest to the team that you stop doing anymore feature work,
until you are able to eliminate the obstruction. One obstacle which I think is quite
common is builds that take way to long time. "Yeah, but how can you build 2 million
lines of code in less than two hours?" -- Well, I suppose you could start by reorganizing
your code and build only the module related to a particular source control check-in.
Hopefully you don't have modules consisting of 2 million lines of code!
</p>
        <p>
I'd like to hear about any other obstructions you may have experienced in a software
development environment.
</p>
        <img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=88f6aca3-6ee0-43ed-abc2-c0e75e2f3b5c" />
      </body>
      <title>"Stop The Line" Issues</title>
      <guid isPermaLink="false">http://www.bestbrains.dk/Blog/PermaLink,guid,88f6aca3-6ee0-43ed-abc2-c0e75e2f3b5c.aspx</guid>
      <link>http://www.bestbrains.dk/Blog/2007/09/02/StopTheLineIssues.aspx</link>
      <pubDate>Sun, 02 Sep 2007 20:18:21 GMT</pubDate>
      <description>&lt;p&gt;
Creating quality software on a continuous basis is a complicated business. 
&lt;/p&gt;
&lt;p&gt;
I think it is a sign of maturity if your team can admit that there are daily problems
which are ultimately obstructing flow. While not everyone will appreciate that your
team does a complete halt until the obstruction has been removed I think it is a necessity
for a team to stay in good shape and continue to deliver frequently.
&lt;/p&gt;
&lt;p&gt;
Just the other day I came to think about what were the most common obstructions of
flow we see in software development environments. So here is my preliminary list --
I bet you have seen them all.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;1. Build breaks&lt;br&gt;
&lt;/strong&gt;If you don't have a build, you don't have anything. Nobody is able to do
any progress progress as the state of the product is unknown. Developers cannot check-in,
as they will not get any response from the continuous integration environment. Testers
cannot try out the latest build. Users cannot see the product in action, and the list
goes on. A build break is like a blindfold, and you should treat it as such. Don't
try to go anywhere until you have your vision back.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;2. Test failures&lt;br&gt;
&lt;/strong&gt;If you have a failing test, you have dysfunctional software. Imaging somebody
fitting some cool new styling parts on to a car with a busted engine. Now, who would
ever do that? It really is the same with software. Why do any feature work on a software
product which has a failing test? I know this can be hard to respect, especially when
a deadline is closing in on the team. Deadlines however, does not justify continuing
without stopping the line upon test failures.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;3. Bug reports&lt;br&gt;
&lt;/strong&gt;If you have bug reports, you have dysfunctional software. There is no need
to do any feature work, until the product is stabilized. Bug reports are even worse
than failing automated tests as those bugs can only be reproduced by a human. You
should not spend work hours on anything but writing tests for these bugs, and fixing
them.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;4. Any other blocks keeping the team from a steady flow&lt;br&gt;
&lt;/strong&gt;If you are experiencing an obstruction which is keeping from moving forward
as fast as you could, suggest to the team that you stop doing anymore feature work,
until you are able to eliminate the obstruction. One obstacle which I think is quite
common is builds that take way to long time. "Yeah, but how can you build 2 million
lines of code in less than two hours?" -- Well, I suppose you could start by reorganizing
your code and build only the module related to a particular source control check-in.
Hopefully you don't have modules consisting of 2 million lines of code!
&lt;/p&gt;
&lt;p&gt;
I'd like to hear about any other obstructions you may have experienced in a software
development environment.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bestbrains.dk/Blog/aggbug.ashx?id=88f6aca3-6ee0-43ed-abc2-c0e75e2f3b5c" /&gt;</description>
      <comments>http://www.bestbrains.dk/Blog/CommentView,guid,88f6aca3-6ee0-43ed-abc2-c0e75e2f3b5c.aspx</comments>
      <category>Agile</category>
      <category>Automated Testing</category>
      <category>Automation</category>
      <category>Bugs</category>
      <category>Flow</category>
      <category>Lean</category>
    </item>
  </channel>
</rss>