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

<channel>
	<title>Flexible Diamond &#187; cloud</title>
	<atom:link href="http://blog.flexiblediamond.com/tag/cloud/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.flexiblediamond.com</link>
	<description></description>
	<lastBuildDate>Wed, 02 Sep 2009 12:31:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Finding out what&#8217;s best &#8230;</title>
		<link>http://blog.flexiblediamond.com/2008/05/finding-out-whats-best/</link>
		<comments>http://blog.flexiblediamond.com/2008/05/finding-out-whats-best/#comments</comments>
		<pubDate>Wed, 14 May 2008 21:20:14 +0000</pubDate>
		<dc:creator>jamesk</dc:creator>
				<category><![CDATA[management]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[pipeline]]></category>

		<guid isPermaLink="false">http://blog.hoardinghopes.com/?p=37</guid>
		<description><![CDATA[Just doing our best ain&#8217;t good enough &#8211; we need to be more savvy than that and work out precisely what&#8217;s the best thing to do first. So far, we&#8217;ve identified the conflict, and we now need to assess possible solutions.

If you haven&#8217;t read It&#8217;s not rocket science yet, please do first, as this article [...]]]></description>
			<content:encoded><![CDATA[<p>Just doing our best ain&#8217;t good enough &#8211; we need to be more savvy than that and work out precisely what&#8217;s the best thing to do first. So far, <a href="http://blog.hoardinghopes.com/index.php/2008/05/an-evaporating-conflict-cloud/">we&#8217;ve identified the conflict</a>, and we now need to assess possible solutions.</p>
<p><span id="more-37"></span></p>
<p>If you haven&#8217;t read <a href="http://blog.hoardinghopes.com/index.php/2008/05/its-not-rocket-science/"><em>It&#8217;s not rocket science</em></a> yet, please do first, as this article is a continuation of that theme.</p>
<p>I&#8217;ve said that key to a successful project is not just having everyone involved do their best, but having them work out what is the best thing to do, and then do their best at that. Anything else is at best a waste of effort, and at worst will doom a project.</p>
<p>I&#8217;ve also said that a sucessful project, just as any other system, needs a systemic view, rather than a bunch of local team views (new business, project management, creatives, developers, etc.).</p>
<p>So, how on earth do we go about finding out what&#8217;s best from a systemic perspective? A good place to start may be looking at some of the gripes that sit uncomfortably between teams involved in a project.</p>
<p>For example: </p>
<p><em>Project Manager </em>(PM): developers&#8217; estimates are always wrong.<br />
<em>Developer</em>: PMs treat our estimates as promises, and thus can&#8217;t handle it when they turn out to be inaccurate.</p>
<p>Let&#8217;s think about lines on a graph: x axis denotes time; y axis denotes understanding. At the very start of the project, my understanding of what&#8217;s involved is minimal. At the end of the project, I know all there is to know about it (ah, the beauty of hindsight!). Between those two points, the line rises in a sloping curve, with most altitude gained in the first half of the project.</p>
<p><a href='http://blog.hoardinghopes.com/wp-content/uploads/2008/05/time_vs_understanding.png'><img src="http://blog.hoardinghopes.com/wp-content/uploads/2008/05/time_vs_understanding.png" alt="" title="Understanding increasing over time" class="alignnone size-full wp-image-46" /></a></p>
<p>Where does estimation take place? Early on in the project, where understanding is incomplete (often requirements are incomplete too). </p>
<p><a href='http://blog.hoardinghopes.com/wp-content/uploads/2008/05/time_vs_understanding_vs_estimate.png'><img src="http://blog.hoardinghopes.com/wp-content/uploads/2008/05/time_vs_understanding_vs_estimate.png" alt="We estimate before we fully understand the project" title="Understanding over time" class="alignnone size-full wp-image-47" /></a></p>
<p>And that&#8217;s only the first problem. Here&#8217;s a second: when we estimate towards the start of a project for the length of a project, we&#8217;re looking far ahead into the future. The further we peer, the poorer our seeing, and the harder it is to a provide realistic estimate.</p>
<p><a href='http://blog.hoardinghopes.com/wp-content/uploads/2008/05/effect_of_change_on_estimates.png'><img src="http://blog.hoardinghopes.com/wp-content/uploads/2008/05/effect_of_change_on_estimates.png" alt="" title="How change breaks estimates" class="alignnone size-full wp-image-49" /></a></p>
<p>Estimating a project from the start requires long-distance lenses, so we may pad with a buffer because that protects us slightly. But, as the project progresses, problems arise, change requests come through, and the specification that we&#8217;ve been working from changes (or it doesn&#8217;t, even though the functionality does, but that&#8217;s another problem). This is how reality departs from our estimates. Towards the end of the project, we&#8217;re dealing with bugs that we couldn&#8217;t foresee and test results have come in, which frequently mean lots of change requests now that the client&#8217;s seen the proposed release version.</p>
<p>Two problems: estimating when our knowledge about the project is less than complete; changes arising that throw the project off schedule. Now what could solve them?</p>
<p>We want our estimates to be more accurate, so they can be considered commitments; and we want to be able to handle changes and problems that arise.</p>
<p>Imagine that, as a developer, you were asked each morning how long it would take to perform the single task you were about to tackle. Your response would be in hours, and probably more or less accurate. Imagine now, that you were given the whole list of tasks up front and asked to estimate on them &#8211; the answer would be in days, and a lot less accurate.</p>
<p>Firstly, say it takes 10 hours to complete a task, and you&#8217;re 10% out: it takes 11 hours. We&#8217;ve lost an hour. Say it takes 10 days, with the same margin of error, and it&#8217;s taken 11 days. Say it takes 100 days, and it&#8217;s taken 110 days. Thus the same margin of error, when affecting differing timescales, has very different ramifications. And just in case you think I&#8217;m being unfair by swapping from hours to days: if you think something will take one hour and I think it&#8217;ll take two, we have room for a discussion &#8211; the difference is clear; if you think something will take 30 hours and I think it&#8217;ll take 31, it&#8217;s a lot harder to explain the difference and decide which is a better estimate.</p>
<p>If we can make our estimates more often and more short-sighted, rather than a single one tackling the whole project, we stand a much better chance of getting the estimates right, we can adjust them based on recent learnings, and we can incorporate changes/problems as they arise.</p>
<p>That may resolve the conflict of PMs wanting commitments and developers not having concrete specs to work from (with no changes, ever ever). Whaddya think?</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.flexiblediamond.com%2F2008%2F05%2Ffinding-out-whats-best%2F';
  addthis_title  = 'Finding+out+what%26%238217%3Bs+best+%26%238230%3B';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.flexiblediamond.com/2008/05/finding-out-whats-best/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>An evaporating conflict cloud</title>
		<link>http://blog.flexiblediamond.com/2008/05/an-evaporating-conflict-cloud/</link>
		<comments>http://blog.flexiblediamond.com/2008/05/an-evaporating-conflict-cloud/#comments</comments>
		<pubDate>Mon, 12 May 2008 21:40:06 +0000</pubDate>
		<dc:creator>jamesk</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[change]]></category>
		<category><![CDATA[cloud]]></category>

		<guid isPermaLink="false">http://blog.hoardinghopes.com/?p=30</guid>
		<description><![CDATA[Doing our best doesn&#8217;t guarantee success, despite best intentions. How do we identify the behaviours that we want and don&#8217;t want, and find the inherent conflicts within the system?
Let&#8217;s take one of the problems in the previous article (It&#8217;s not rocket science), and see what&#8217;s driving it, which may give us a better perspective towards [...]]]></description>
			<content:encoded><![CDATA[<p>Doing our best doesn&#8217;t guarantee success, despite best intentions. How do we identify the behaviours that we want and don&#8217;t want, and find the inherent conflicts within the system?</p>
<p>Let&#8217;s take one of the problems in the <a href="http://blog.hoardinghopes.com/index.php/2008/05/its-not-rocket-science/">previous article (<em>It&#8217;s not rocket science</em>)</a>, and see what&#8217;s driving it, which may give us a better perspective towards possible fixes.</p>
<p><span id="more-30"></span></p>
<p>I&#8217;m going to use a tool that I first saw (read, actually) used by <a href="http://clarkeching.blogs.com/">Clarke Ching</a> in <em><a href="http://www.rollingrocksdownhill.com/">Rolling Rocks Downhill</a></em>, which uses a diagram to define the conflicting behaviour, and thence to uncover the assumptions behind it.</p>
<p><a href='http://blog.hoardinghopes.com/wp-content/uploads/2008/05/structure.png'><img src="http://blog.hoardinghopes.com/wp-content/uploads/2008/05/structure.png" title="Conflict cloud diagram structure" width="500" height="269" class="alignnone size-full wp-image-39" /></a></p>
<p></p>
<p><strong>1. state the behaviour that you want to get rid of</strong><br />
I said that developers were so pushed for time that they didn&#8217;t test their code as they wrote it, nor before committing it to Subversion, our code control system. They were clear that they were working as hard as they could &#8211; doing the best they could &#8211; in the circumstances. Their repeated complaint was that the requirements kept changing so nothing could be finalised. That statement goes into the box marked D.</p>
<p><a href='http://blog.hoardinghopes.com/wp-content/uploads/2008/05/undesirable_d.png'><img src="http://blog.hoardinghopes.com/wp-content/uploads/2008/05/undesirable_d.png" alt="The behaviour that we want to get rid of " title="Undesirable behaviour" class="alignnone size-full wp-image-39" /></a></p>
<p><strong>2. State the need that is being met by the undesirable behaviour, or which drives us putting up with it</strong><br />
On this project, at least, it was crystal clear &#8211; we had no time: we just had to meet the deadlines. Speed was driving slapdash development methods. So that&#8217;s what goes into the box marked B.</p>
<p><a href='http://blog.hoardinghopes.com/wp-content/uploads/2008/05/need_b.png'><img src="http://blog.hoardinghopes.com/wp-content/uploads/2008/05/need_b.png" alt="" title="Need B, which is achieved by the undesirable behaviour" class="alignnone size-full wp-image-40" /></a></p>
<p></p>
<p><strong>3. State the behaviour you desire, which is the opposite of D</strong><br />
Again, straightforward:  I want developers to test their code before they commit/release it. This goes in the box labelled D&#8217; (&#8221;d prime&#8221;).</p>
<p><a href='http://blog.hoardinghopes.com/wp-content/uploads/2008/05/desirable_d.png'><img src="http://blog.hoardinghopes.com/wp-content/uploads/2008/05/desirable_d.png" alt="" title="The behaviour we desire" class="alignnone size-full wp-image-41" /></a></p>
<p></p>
<p><strong>4. The need that the desirable behaviour fulfills</strong><br />
Well, if we&#8217;re testing, we&#8217;re catching bugs during the development phase when it is cheaper/easier to fix them, rather than the later testing phase. That goes in box C.</p>
<p><a href='http://blog.hoardinghopes.com/wp-content/uploads/2008/05/need_c.png'><img src="http://blog.hoardinghopes.com/wp-content/uploads/2008/05/need_c.png" alt="" title="The need met by the desired-for behaviour" class="alignnone size-full wp-image-42" /></a></p>
<p></p>
<p><strong>5. The objective that the needs fulfill by both being present</strong><br />
Need B is meeting the schedule/delivering the project on time; Need C is delivering a high-quality product. Thus the objective we have to put in box A is: delivering a high-quality project on time and budget.</p>
<p><a href='http://blog.hoardinghopes.com/wp-content/uploads/2008/05/objective_a.png'><img src="http://blog.hoardinghopes.com/wp-content/uploads/2008/05/objective_a.png" alt="" title="The objective that we\&#039;re trying to achieve" class="alignnone size-full wp-image-43" /></a></p>
<p></p>
<p>So, put it all together, and you get the conflicting behaviours and the reasons behind them, and a reminder that both reasons are aiming at the same target. Note also that for the objective to be reached, both needs have to be met, i.e. desirable and undesirable behaviour both have the same ultimate goal.</p>
<p><a href='http://blog.hoardinghopes.com/wp-content/uploads/2008/05/completed_conflict.png'><img src="http://blog.hoardinghopes.com/wp-content/uploads/2008/05/completed_conflict.png" alt="" title="The completed conflict" class="alignnone size-full wp-image-44" /></a></p>
<p>I&#8217;ll look at what comes assumptions are revealed from this exercise shortly.</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.flexiblediamond.com%2F2008%2F05%2Fan-evaporating-conflict-cloud%2F';
  addthis_title  = 'An+evaporating+conflict+cloud';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.flexiblediamond.com/2008/05/an-evaporating-conflict-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
