<?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>George Dinwiddie's blog &#187; Progress</title>
	<atom:link href="http://blog.gdinwiddie.com/tag/progress/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.gdinwiddie.com</link>
	<description>Effective software development</description>
	<lastBuildDate>Mon, 30 Jan 2012 11:18:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Sad Statements</title>
		<link>http://blog.gdinwiddie.com/2011/11/07/sad-statements/</link>
		<comments>http://blog.gdinwiddie.com/2011/11/07/sad-statements/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 10:28:30 +0000</pubDate>
		<dc:creator>George Dinwiddie</dc:creator>
				<category><![CDATA[Individuals and Interactions]]></category>
		<category><![CDATA[Collaboration]]></category>
		<category><![CDATA[Progress]]></category>

		<guid isPermaLink="false">http://blog.gdinwiddie.com/?p=847</guid>
		<description><![CDATA[I hope this will be done by then. These are sad and scary words to me.  When I hear them in the context of a software development project, I associate them with a project unlikely to meet expectations.  Further, it&#8217;s likely that there is no good indicator of what can be delivered when.  With no [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>I hope this will be done by then.</p></blockquote>
<p>These are sad and scary words to me.  When I hear them in the context of a software development project, I associate them with a project unlikely to meet expectations.  Further, it&#8217;s likely that there is no good indicator of what can be delivered when.  With no hard evidence to tell them what&#8217;s possible, and to judge the effects of changes they try, people fall back on a strategy of hope. They no longer feel in control of the situation.</p>
<blockquote><p>We&#8217;ve done our part.</p></blockquote>
<p>This signals the underlying hopelessness. When you can&#8217;t make things come out the way you want, when you can&#8217;t even predict how they will come out, one natural response is to give up. Often the cultural expectations don&#8217;t allow saying &#8220;this project is in trouble.&#8221; The person who does so is the person who will attract all the scrutiny. Without the clear data to back up the perception of trouble, why stick your neck out? Others should be noticing the same thing; let them call attention to it. And when things don&#8217;t work out as &#8220;hoped,&#8221; if weve &#8220;done our part,&#8221; then someone else will get the blame.</p>
<p>You can&#8217;t solve a problem that no one wants to see. Instead, we&#8217;ve found an acceptable way to fail.</p>
          <img src="http://blog.gdinwiddie.com/?ak_action=api_record_view&id=847&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.gdinwiddie.com/2011/11/07/sad-statements/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>5 Minutes to Process Improvement Success</title>
		<link>http://blog.gdinwiddie.com/2011/10/10/5-minutes-to-process-improvement-success/</link>
		<comments>http://blog.gdinwiddie.com/2011/10/10/5-minutes-to-process-improvement-success/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 12:20:33 +0000</pubDate>
		<dc:creator>George Dinwiddie</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Progress]]></category>

		<guid isPermaLink="false">http://blog.gdinwiddie.com/?p=828</guid>
		<description><![CDATA[Most of my recent writing has not yet been published. That, and work on the upcoming AgileDC Conference and Agile India beyond that, have meant relatively little output on my blog. I apologize for that. I&#8217;d like to share with you an interview conducted by Bill Fox for his 5 Minutes to Process Improvement Success [...]]]></description>
			<content:encoded><![CDATA[<p>Most of my recent writing has not yet been published. That, and work on the upcoming <a title="AgileDC Conference" href="http://agiledc.org/" target="_blank">AgileDC Conference</a> and <a title="Agile India 2012" href="http://agileindia2012.agilealliance.org/" target="_blank">Agile India</a> beyond that, have meant relatively little output on my blog. I apologize for that.</p>
<p>I&#8217;d like to share with you an interview conducted by Bill Fox for his <a title="Bill Fox's 5 Minutes to Process Improvement Success" href="http://5minutespisuccess.com/" target="_blank">5 Minutes to Process Improvement Success</a> project. My interview, &#8220;Measure Progress in a Way that’s Visible and Reliable,&#8221; is found on page 69 of the PDF.  You&#8217;ll also find interesting interviews with Karen Base, Kevin Schaaff, Hillel Glazer, Scott Ambler, Neil Potter, Bob Payne, Mike Bonamassa, Mario Hyland, Jeff Dalton, Paul E. McMahon, Karl Wiegers, Mary Lynn Penn, Ally Gill, Alan Shalloway, and Tom Cagley. And there are more to come in the future.</p>
          <img src="http://blog.gdinwiddie.com/?ak_action=api_record_view&id=828&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.gdinwiddie.com/2011/10/10/5-minutes-to-process-improvement-success/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Virtue of Imprecise Measurements</title>
		<link>http://blog.gdinwiddie.com/2011/07/27/a-virtue-of-imprecise-measurements/</link>
		<comments>http://blog.gdinwiddie.com/2011/07/27/a-virtue-of-imprecise-measurements/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 15:29:36 +0000</pubDate>
		<dc:creator>George Dinwiddie</dc:creator>
				<category><![CDATA[Tools and Techniques]]></category>
		<category><![CDATA[Estimation]]></category>
		<category><![CDATA[Feedback]]></category>
		<category><![CDATA[Progress]]></category>

		<guid isPermaLink="false">http://blog.gdinwiddie.com/?p=756</guid>
		<description><![CDATA[I&#8217;ve talked about The Importance of Precise Estimates. In that post, I said, My advice is to measure your progress watch the trends project the trends tentatively into the future and relax.  It’ll work out the best it can.  False precision won’t make it any better. Now I just read The Virtues of the Imprecisely [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve talked about <a title="The Importance of Precise Estimates" href="http://blog.gdinwiddie.com/2010/04/19/the-importance-of-precise-estimates/">The Importance of Precise Estimates</a>. In that post, I said,</p>
<blockquote><p>My advice is to</p>
<ul>
<li>measure your progress</li>
<li>watch the trends</li>
<li>project the trends tentatively into the future</li>
</ul>
<p>and relax.  It’ll work out the best it can.  False precision won’t make it any better.</p></blockquote>
<p>Now I just read <a title="The Virtues of the Imprecisely Measured Self" href="http://blogs.forbes.com/alexknapp/2011/07/25/the-virtues-of-the-imprecisely-measured-self/" target="_blank">The Virtues of the Imprecisely Measured Self</a> by Alex Knapp at Forbes. He tells the tale of <a title="In Praise of Vagueness Malleability of Vague Information as a Performance Booster" href="http://pss.sagepub.com/content/early/2011/04/15/0956797611407208" target="_blank">a study </a>in the journal <cite><abbr title="Psychological Science">Psychological Science</abbr> April 2011</cite> that indicates that precision, whether false or not, inhibits success.  Alex summarizes,</p>
<blockquote><p>Precision can actually be the enemy of performance goals. To be sure, feedback is definitely a positive thing. But it appears that if you want to keep yourself motivated, it’s best to get a more generalized, imprecise feedback that lets you know you’re heading in the right direction, rather than the precise coordinates of where you are on the path.</p></blockquote>
<p>It&#8217;s something to think about.</p>
<p>&nbsp;</p>
          <img src="http://blog.gdinwiddie.com/?ak_action=api_record_view&id=756&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.gdinwiddie.com/2011/07/27/a-virtue-of-imprecise-measurements/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>3 Legs to Running an Agile Transition</title>
		<link>http://blog.gdinwiddie.com/2010/05/12/3-legs-to-running-an-agile-transition/</link>
		<comments>http://blog.gdinwiddie.com/2010/05/12/3-legs-to-running-an-agile-transition/#comments</comments>
		<pubDate>Wed, 12 May 2010 17:29:08 +0000</pubDate>
		<dc:creator>George Dinwiddie</dc:creator>
				<category><![CDATA[Individuals and Interactions]]></category>
		<category><![CDATA[Responding to Change]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Change]]></category>
		<category><![CDATA[Coaching]]></category>
		<category><![CDATA[Progress]]></category>

		<guid isPermaLink="false">http://blog.gdinwiddie.com/?p=457</guid>
		<description><![CDATA[A while back, I wrote 3 Legs to Standing Up an Agile Project from the perspective of an Agile team just getting started.  Lately, I&#8217;ve been thinking about the same sort of thing, but from the perspective of a coach or an executive that wants to transform the organization.  At first glance, this seems no [...]]]></description>
			<content:encoded><![CDATA[<p>A while back, I wrote <a title="earlier blog post" href="http://blog.gdinwiddie.com/2010/02/18/3-legs-to-standing-up-an-agile-project/">3 Legs to Standing Up an Agile Project</a> from the perspective of an Agile team just getting started.  Lately, I&#8217;ve been thinking about the same sort of thing, but from the perspective of a coach or an executive that wants to transform the organization.  At first glance, this seems no different. Further reflection, however, reveals that this is less about &#8220;how to work in an Agile fashion&#8221; and more about &#8220;how to introduce change in the way people work.&#8221;  The earlier post was a description what an Agile project needs.  This one is a recipe for creating what an Agile project needs.<span id="more-457"></span></p>
<h1>Teamwork</h1>
<p>The fundamental practice of teamwork remains essential.  Agile succeeds in large part by reducing wasted effort, and much wasted effort is the result of various people pulling in different directions.  Even slightly different directions will create enough friction to noticeably slow the project.  It&#8217;s well worth spending some time and effort on building an effective team within the context of the project.  The two practices most essential for supporting teamwork in an Agile transition are working with a <strong>whole team</strong> in a <strong>common area</strong>.</p>
<h2>Whole Team</h2>
<p>While collaborative teamwork among all the developers, for example, is beneficial to any project, it&#8217;s not enough to accomplish a transition to Agile.  At a core, you&#8217;ll need high-bandwidth collaboration between your Product Owner, Scrummaster, and Developers.  This is the minimum, in Scrum terms.  In most organizations, Developers really includes both programmers and testers; in some it includes user experience designers.  Yours may include people with other titles, such as architect, database administrator, security officer, system administrator, operations engineer, technical writer&#8230;.</p>
<p>Your project community will also consist of other stakeholders, such as executives, customers, end users, support personnel, other development teams, facilities maintenance&#8230;. There are a lot of people with interest in the project or the things that the project team is doing.</p>
<p>The boundary between the core team and the rest of the project community is rarely distinct.  One useful distinction is whether a person is focused principally on the project, or whether the project is just one of many things with which the person is concerned.  This distinction is not without peril, however.</p>
<p>All too often an organization will assign multiple projects to people where it would be much better if they were focused on one.  If you give your Product Owner, your programmers, or your testers multiple simultaneous projects, you&#8217;re likely headed for trouble.  You <em>may</em> be headed for trouble if you multi-task in some of the other specialties, but there&#8217;s more variation from one context to another.  As a rule of thumb, if there is any way to let someone focus on only one project, then you should do so.</p>
<h2>Common Area</h2>
<p>Building a team, which is different from a mere work group, takes a lot of work.  With skill, you can facilitate that teambuilding to help it happen more reliably and a little faster.  If you don&#8217;t have a skilled facilitator, though, you&#8217;re still in luck.  People have practiced self-organizing into small groups for their common good for millennia. If they&#8217;re working together for a common goal in a common area, distinct from those working on other goals, they&#8217;ll likely build a gelled team without an outside facilitator.  There are many reasons for this, from trust building to osmotic communication.</p>
<p>&#8220;But we can&#8217;t do that,&#8221; I hear you cry!  Why not?  Is this project, this Agile transition, so unimportant that you can&#8217;t sit together?</p>
<p>&#8220;Our Product Owner has an office elsewhere, and needs to attend to other things.&#8221; Maybe you&#8217;ve chosen the wrong product owner.  Maybe the Product Owner can sit in the team room for part of the day.</p>
<p>&#8220;Our project team is scattered around the globe.&#8221;  Don&#8217;t do that.  While it&#8217;s possible for people scattered around the globe to work together, it&#8217;s much harder.  The odds of making that work <em>while also making an Agile transition</em> are slim to none.  <a title="earlier blog post on distributed development" href="http://blog.gdinwiddie.com/2010/03/31/distributed-development/">If you must do distributed projects</a>, set up a collocated team at each location and minimize the working dependencies between the teams.</p>
<p>&#8220;We don&#8217;t have a space that supports that.&#8221;  Find or make one.  Move furniture.  Take down cube walls.  Set up temporary or movable partitions.  If the furniture arrangement is more important than the project, consider canceling the project.</p>
<h1>Visible Progress</h1>
<p>In order to see whether or not we&#8217;re headed toward our goals, we need visibility into the progress.  Usually, this boils down to the questions &#8220;Are we going to get everything done?&#8221; and &#8220;Are we going to get done in time?&#8221;  If the answer to one or more of these questions is &#8220;no&#8221; then we can make adjustments to how we&#8217;re doing things, how much (and which things) we expect to get done, and what time we expect to have them done.  We can subdivide this visibility into two simple practices: taking <strong>baby steps</strong> and getting things <strong>done</strong>.</p>
<h2>Baby Steps</h2>
<p>Everything we do, from releasing interim versions down to validating the code we write, we should do in small steps.  Working in small steps gives us a much finer-grained view of the progress.  It lets us view the initial trends sooner.  It lets us view changes in the trends sooner.  It gives us more opportunities to make corrections or course changes.  It gives us more practice and comparing where we&#8217;re going with where we want to go, so we get better at doing that.  It requires less work before we see that we&#8217;re doing something wrong, or doing the wrong thing, therefore there is less work to be thrown away and redone.</p>
<h2>Done</h2>
<p>There&#8217;s little point in measuring something as progress unless we know that it actually contributes toward reaching our goal.  Measuring amount of work done doesn&#8217;t tell us that.  Consider this scene from the movie, <a title="Captain Ron on IMDB" href="http://www.imdb.com/title/tt0103924/" target="_blank">Captain Ron</a>:</p>
<blockquote><p><strong>Captain Ron</strong>: We should be okay. &#8216;Cause I know we&#8217;re near land.<br />
<strong>Martin Harvey</strong>: Great, Cap. Great. Ya hear that? We&#8217;re almost there. Explain to the kids how you know that, Captain Ron. Someone translate for General Armando.<br />
<strong>Captain Ron</strong>: Alright, now stay with me: When we left, we had just enough fuel to make it to San Juan. And we are out of fuel.</p></blockquote>
<p>The gap in that logic is immediately obvious, but plan-driven projects attempt the equivalent all the time. We must measure relative to the goal, not relative to the path we&#8217;ve taken.</p>
<p>It&#8217;s important that we measure functional slices. It&#8217;s often tempting to measure tasks that have been accomplished. Sometimes, however, these tasks turn out to be unnecessary, and they don&#8217;t contribute to accomplishing the goal.  Sometimes, while they look right in isolation, they turn out to have flaws when we look at the bigger picture.  Sometimes they don&#8217;t quite meet with other tasks, and there is a gap to be filled between the tasks.  Such a gap in unknown undoneness.</p>
<p>We need ways of seeing progress that won&#8217;t like to us about how much progress we&#8217;ve made, or how much is left to do.  We want to measure functional slices that go <em>all the way</em> through the system.  It&#8217;s easy to neglect some of the things that people think of &#8220;someone else&#8217;s responsibility&#8221; after the system is &#8220;complete.&#8221;  These things might include an installation procedure, or deployment to a different computing environment.  Sometimes people neglect something so basic as testing that the system works.</p>
<p>We want to see functional progress&#8211;something we can demonstrate and test, something we know is desirable.  Expending the amount allotted is not such an indication.  Getting most of the way to the goal is no guarantee that we&#8217;ll get the rest of the way there&#8211;particularly when the remaining part is fundamentally different than what we&#8217;ve been doing.  We want to always, or at least at frequent intervals, be able to stop and have something that can be used, even if incomplete.</p>
<p>Putting these together can be difficult for a team making a transition to Agile.  It&#8217;s hard enough to get everything working, but much more so when you&#8217;re having to do that all the time.</p>
<p>Fortunately there are a lot of well-known engineering practices to support combining baby steps with getting to done at each step.  I&#8217;m starting with the assumption that the team is already capable of creating working software using whatever techniques they already know.  Eventually they&#8217;ll need to learn other practices to support this new way of working, and even to get better in general.</p>
<h1>Continuous Improvement</h1>
<p>Being able to work as a team and measure progress in a visible manner is only the start.  At first, we&#8217;ll do these things in a rather rough manner.  As the system grows in size and complexity, that rough manner won&#8217;t sustain forward progress.  We&#8217;ve got to get better in order to keep moving.</p>
<p>And there&#8217;s no limit to how good we can get.  No matter how practiced we are, there&#8217;s further improvement we can make.  If we conscientiously practice our techniques, we&#8217;ll see places where we can improve them.  We can then practice those improvements, so they become a part of our routine, and we do them even when distracted by the latest disaster.  When things go wrong, it&#8217;s no time to ease off on the practices that make us more effective.</p>
<p>As a team, we need to take stock from time to time to see the longer term trends, both good and bad, and the issues that only become visible in retrospect.  Holding retrospectives at various tempos&#8211;each iteration, each quarter, each release&#8211;will give us various views into what we&#8217;re doing, and result in different insights.  We must use these insights to plan ways in which to improve in the future.</p>
<p>From these starting points of <strong>teamwork</strong> and <strong>visible progress</strong>, and proceeding with a program of <strong>continuous improvement</strong>, we can learn all of the practices that support Agile development.</p>
          <img src="http://blog.gdinwiddie.com/?ak_action=api_record_view&id=457&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.gdinwiddie.com/2010/05/12/3-legs-to-running-an-agile-transition/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Projecting into the Future</title>
		<link>http://blog.gdinwiddie.com/2010/04/22/projecting-into-the-future/</link>
		<comments>http://blog.gdinwiddie.com/2010/04/22/projecting-into-the-future/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 16:34:36 +0000</pubDate>
		<dc:creator>George Dinwiddie</dc:creator>
				<category><![CDATA[Tools and Techniques]]></category>
		<category><![CDATA[Estimation]]></category>
		<category><![CDATA[Progress]]></category>

		<guid isPermaLink="false">http://blog.gdinwiddie.com/?p=426</guid>
		<description><![CDATA[In my recent posting on estimation precision, I briefly mentioned how you can estimate when certain features will be done, or estimate what features will be done by a given date, using a burn-up chart.  Some people don&#8217;t find this an obvious and easy thing to do.  Let me explain in more detail. I&#8217;ll start [...]]]></description>
			<content:encoded><![CDATA[<p>In my recent <a title="The Importance of Precise Estimates" href="http://blog.gdinwiddie.com/2010/04/19/the-importance-of-precise-estimates/">posting on estimation precision</a>, I briefly mentioned how you can estimate when certain features will be done, or estimate what features will be done by a given date, using a burn-up chart.  Some people don&#8217;t find this an obvious and easy thing to do.  Let me explain in more detail.</p>
<p>I&#8217;ll start with the assumption that you have a list of features you want to add to an application.  Some of the things you want to add may not be properly called features&#8211;they might be bug fixes, for example.  And the application might be brand-new, with zero functionality so far.  That&#8217;s OK, we can handle cases like that.  Let&#8217;s walk through how I do this&#8230;<span id="more-426"></span><a rel="attachment wp-att-428" href="http://blog.gdinwiddie.com/2010/04/22/projecting-into-the-future/burnupprojection-1_001/"><img class="alignright size-medium wp-image-428" title="BurnupProjection-1_001" src="http://blog.gdinwiddie.com/wp-content/uploads/2010/04/BurnupProjection-1_001-300x181.jpg" alt="" width="300" height="181" /></a>Here we see a burnup chart showing the development of the first feature of a project. This &#8220;Feature 1&#8243; took the team 4 iterations to complete.</p>
<p>Now we want to develop &#8220;Feature 2.&#8221;  Is it about the same size as Feature 1? Bigger? Smaller? It&#8217;s really hard to say, isn&#8217;t it?</p>
<p>We could head down the path of precision estimates, looking at the detail of the work to implement Feature 1 and the imagined detail of the work to implement Feature 2.  We could measure the person-hours spent on Feature 1, and apply adjustments for sick day, holidays, planned hiring, and a myriad of other factors.  I find that such an approach not only doesn&#8217;t help me answer the questions I have, it distracts me from them.</p>
<p>Instead, I like to estimate features in &#8220;T-shirt sizes.&#8221; A simple range of small, medium, large, and extra-large is &#8220;close enough.&#8221;<a rel="attachment wp-att-429" href="http://blog.gdinwiddie.com/2010/04/22/projecting-into-the-future/burnupprojection-1_002/"><img class="alignright size-medium wp-image-429" title="BurnupProjection-1_002" src="http://blog.gdinwiddie.com/wp-content/uploads/2010/04/BurnupProjection-1_002-300x181.jpg" alt="" width="300" height="181" /></a></p>
<p>When we&#8217;re just starting out on a new project, we don&#8217;t have enough information to make wise choices. So let&#8217;s make quick ones.  I&#8217;m going to call Feature 1 a &#8220;medium&#8221; feature.  Given the lack of detail about Feature 2, let&#8217;s call it &#8220;medium&#8221; also.</p>
<p>So we project another increment of work, the same size, accomplished at the same rate. Surprise, surprise, surprise! We project it will take another 4 iterations.  We didn&#8217;t need a burnup chart to tell us that.</p>
<h3>Pessimism</h3>
<p>It&#8217;s also likely that we don&#8217;t really believe thi<a rel="attachment wp-att-432" href="http://blog.gdinwiddie.com/2010/04/22/projecting-into-the-future/burnupprojection-1_005/"><img class="alignright size-medium wp-image-432" title="BurnupProjection-1_005" src="http://blog.gdinwiddie.com/wp-content/uploads/2010/04/BurnupProjection-1_005-300x181.jpg" alt="" width="300" height="181" /></a>s projection. Sure, it&#8217;s the best information we have at the moment, given that we know so little, but it seems prudent to explore the &#8220;what ifs&#8221; a little.  What if the feature is really 50% bigger?  What if the team is slower this time around?</p>
<p>Yikes! Now we&#8217;re looking at 10 iterations as a pessimistic estimate.</p>
<h3>Optimism and the Zone of Probability</h3>
<p><a rel="attachment wp-att-433" href="http://blog.gdinwiddie.com/2010/04/22/projecting-into-the-future/burnupprojection-1_006/"><img class="alignright size-medium wp-image-433" title="BurnupProjection-1_006" src="http://blog.gdinwiddie.com/wp-content/uploads/2010/04/BurnupProjection-1_006-300x181.jpg" alt="" width="300" height="181" /></a>What if the Feature 2 turns out to be smaller than Feature 1? And the team is more productive because they&#8217;ve got some momentum as a team?</p>
<p>Our most optimistic estimate suggests that we&#8217;ll only take 2 iterations to implement Feature 2. By extending both our feature size and our team velocity estimates, we see the bounds of the Zone of Probability.</p>
<p>A range of 2 iterations to 10 iterations is a pretty wide variation. We&#8217;ve got such a large variation because our uncertainties are large with regard to both the size of the feature and the capacity of the team.  We have these large uncertainties because we&#8217;re extrapolating from a single data point&#8211;the time it took this team to produce Feature 1.</p>
<p>In time, we&#8217;ll have more data and can reduce the range of our uncertainty.  (Or the data will show that we <em>really are</em> that uncertain in our delivery.  Delivering at a more reliable pace is a topic for another day.)  If you want more predictability, sooner, then work in smaller chunks.  If the features are smaller, then the picture comes into focus much more quickly.</p>
<p>For now, I&#8217;ll leave it as an exercise for the reader</p>
<ul>
<li>how to handle Feature 3 and beyond</li>
<li>how to handle features of different sizes</li>
<li>how to sort a large stack of planned features into buckets for different sizes</li>
<li>how to handle uncertainty in size when projecting further into the future</li>
</ul>
<p>and other such issues.  If you have any questions, don&#8217;t hesitate to ask.</p>
          <img src="http://blog.gdinwiddie.com/?ak_action=api_record_view&id=426&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.gdinwiddie.com/2010/04/22/projecting-into-the-future/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Tracking your investments</title>
		<link>http://blog.gdinwiddie.com/2009/12/27/tracking-your-investments/</link>
		<comments>http://blog.gdinwiddie.com/2009/12/27/tracking-your-investments/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 18:57:44 +0000</pubDate>
		<dc:creator>George Dinwiddie</dc:creator>
				<category><![CDATA[Responding to Change]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Progress]]></category>

		<guid isPermaLink="false">http://blog.gdinwiddie.com/?p=310</guid>
		<description><![CDATA[The world is slowly recovering from a major financial meltdown.  People blame the collapse on a number of different things: a bubble of inflated housing prices, relaxed requirements for qualifying for a mortgage, predatory lending practices, greed on the part of mortgage companies and investment banks….  There are certainly many places to point fingers.  Each [...]]]></description>
			<content:encoded><![CDATA[<p>The world is slowly recovering from a major financial meltdown.  People blame the collapse on a number of different things: a bubble of inflated housing prices, relaxed requirements for qualifying for a mortgage, predatory lending practices, greed on the part of mortgage companies and investment banks….  There are certainly many places to point fingers.  Each of these places, however, was doing what seemed logical when looking at a small piece of the puzzle.</p>
<p>As is often the case, we must back up and take a larger systemic view to see further.  Once upon a time, people borrowed money to buy a house, paid it back over time, and ultimately the bank was able to lend that money to someone else.  With the creation of the FNMA (Fannie Mae) in 1938, the income streams of those mortgages being repaid were converted to bonds, so that they could be sold to other investors and the banks to re-lend their money more frequently.  This allowed many more people to afford houses.  In the 1970s, private banks got into the business of creating their own bonds based on debt repayment streams.</p>
<p>Nothing ever stands still, of course.  People continued to look for new wrinkles on these themes to allow them to expand the business, or to increase the profit on the business they had.  Some of these investment vehicles got very complicated, intended only for professional bankers who could understand and evaluate them where the mass public could not.  Or, so went the pitch at the time.<span id="more-310"></span></p>
<p>As it turns out, many of those professional bankers couldn’t fully understand and evaluate these instruments, either.  And this is in spite of reams of financial reporting about the quality of the underlying mortgages, the default rates, and other things that might affect the debt repayment streams.  No one has time to read the reams of financial reporting.  Instead, they simplify it, and boil it down to a relatively few values and ratios that they do read.  These derivative indicators became proxies for a real understanding of the risks and rewards of bonds based on mortgages.  And then there were derivative financial instruments based on the bonds based on the mortgages, and they had their own proxies for the risks and rewards.  I don’t know how many layers there are to this particular onion, but I do know that, at some point, the proxy measurements diverged from the real understanding of the risks and rewards.</p>
<p>Where have I seen this phenomena before?</p>
<p>I’ve seen it in businesses that couldn’t quantify the actual value of the software systems they were building, so they substituted the cost of building them as that value.  I’ve seen it in project managers who couldn’t quantify the actual productivity of their developers, so they substituted proxy measures such as &#8220;hours worked&#8221; and &#8220;lines of code&#8221; as an indication of productivity.  I’ve seen it in project managers who couldn’t quantify the actual progress of a project, so they substituted conformance to their original plan as a proxy.  And for individual items on that plan, when they couldn’t discern the actual progress on an item, they substituted reports of &#8220;percent completion&#8221; as a proxy.</p>
<p>All of this makes perfect sense at the time.  There is some correlation between lines of code and productivity.  And by using proxies that are quantifiable, we can crunch the numbers and come up with a few key indicators to let us know how we’re doing on productivity, progress, and value.  And we can calculate the amount of risk we have, at least, the amount that we’ve anticipated.  We end up with a handful of indicators that make us feel on top of things and in control.</p>
<p>And, like in the financial industry, as long as things keep going well, these numbers seem to work for us.  But we have no way of knowing how much and in what ways our proxy measurements vary from the things that really concern us.  And we have no way of knowing what risks are not included in our numbers.  And we have no way of knowing in what ways the future might differ from our increasingly successful past.</p>
<p>There were those who took a systemic look at the financial industry and predicted that trouble was coming.  As the system mutates over time, it rewards behavior that varies from what we really want.  The increase in that behavior then drives further changes in the system.  It’s a lead-pipe cinch that the future will differ from the past.  But looking at proxy measures won’t tell us that.</p>
<p>&#8220;The prudent mariner will not rely solely on any single aid to navigation, particularly on floating aids.&#8221;  This advice used to be printed on all US nautical charts.  It’s good advice for the prudent manager, also.  Proxy measures are like floating aids to navigation.  They only give an approximate position, as they drift around their anchor point.  And sometimes, unseen by us, the anchors themselves drift from the known location where we set them.  As we reward lines of code or hours worked, these measures drift further and further from a representation of productivity.  As we measure conformance to plan, then that conformance becomes more important and accomplishing the goals that the plan was created to accomplish becomes less immediate.  That conformance then becomes a poor proxy for accomplishing our goals.</p>
<p>So, look around.  Find <a title="Project/Process Evaluation Kit" href="http://blog.gdinwiddie.com/2009/08/18/diy-projectprocess-evaluation-kit/">some other aids to know where you are</a>, and where you’re heading.  Don’t wait until it’s too late to prevent disaster.</p>
          <img src="http://blog.gdinwiddie.com/?ak_action=api_record_view&id=310&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.gdinwiddie.com/2009/12/27/tracking-your-investments/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DIY Project/Process Evaluation Kit</title>
		<link>http://blog.gdinwiddie.com/2009/08/18/diy-projectprocess-evaluation-kit/</link>
		<comments>http://blog.gdinwiddie.com/2009/08/18/diy-projectprocess-evaluation-kit/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 18:27:04 +0000</pubDate>
		<dc:creator>George Dinwiddie</dc:creator>
				<category><![CDATA[Individuals and Interactions]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Feedback]]></category>
		<category><![CDATA[Progress]]></category>

		<guid isPermaLink="false">http://blog.gdinwiddie.com/?p=172</guid>
		<description><![CDATA[From time to time, a discussion rattles around the internet about &#8220;how can you tell how Agile you are?&#8221;  Over and over, I see people tout some variant of the Nokia Test as a way to tell if you&#8217;re Agile enough.  For the most part, I think this is hogwash. Don&#8217;t get me wrong.  I&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<p>From time to time, a discussion rattles around the internet about &#8220;how can you tell how Agile you are?&#8221;  Over and over, I see people tout some variant of the Nokia Test as a way to tell if you&#8217;re Agile enough.  For the most part, I think this is hogwash.</p>
<p>Don&#8217;t get me wrong.  I&#8217;m all in favor of an Agile Team using something like the Nokia Test (or, better, Nationwide&#8217;s &#8220;Agile Tea Leaves&#8221;) as part of a self-examination and retrospection.  But any sort of discussion of conformance to practices is way too low-level for the executive team, or even middle management, of an organization.  Agile is the tool, not the goal.  The goal is to accomplish the things the organization wants to do.  Agile is a tool to allow the organization to accomplish its goals more reliably and in a more timely fashion.<img class="size-full wp-image-171 alignright" title="DIY Project/Process Evaluation Kit" src="http://blog.gdinwiddie.com/wp-content/uploads/2009/08/DIYeval.jpg" alt="DIY Project/Process Evaluation Kit" width="196" height="158" /></p>
<p>With this in mind, I thought about what a high-level manager wants from the organization&#8217;s projects and the process used to develop them.  How can this manager tell if the development staff is doing a good job, or could be doing better?  I came up with this Do-It-Yourself Project and Process Evaluation Kit that such a manager can use, no matter what process the organization uses for development.  I think it will also be useful for Project Managers who need to report upwards.  Report in these terms, not in the details of the development process.</p>
<p>And here it is:<span id="more-172"></span></p>
<h2 style="text-align: center;"><strong>The DIY Project Process Evaluation Kit</strong></h2>
<ul>
<li>How long does it take an idea to be realized and deployed?  A year?  A month?  A week?</li>
<li>What keeps it from being shorter? Budget cycles? Serial processes? Too much work? Bottlenecks?</li>
<li>How do you tell that you&#8217;re working on today&#8217;s highest priority items?</li>
<li>How do you verify that the systems you&#8217;re developing are solving the intended problem? How quickly do you know?</li>
<li>How do you measure progress of system development?  Is this a measure of something you actually want, or is it a surrogate measure?  Is it a reliable progress indicator or does it hide surprises?</li>
</ul>
<p>Will these questions help you?  Are there others you&#8217;d want to add?</p>
<p>I hope you find these questions useful for years into the future.  To that end, I&#8217;ve printed them up on a card that can fit in your wallet.  Look me up at Agile 2009 and I&#8217;ll be glad to give you one.  Or send me your address and I&#8217;ll mail it out to you.</p>
          <img src="http://blog.gdinwiddie.com/?ak_action=api_record_view&id=172&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.gdinwiddie.com/2009/08/18/diy-projectprocess-evaluation-kit/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Agility and Predictability</title>
		<link>http://blog.gdinwiddie.com/2009/01/16/agility-and-predictability/</link>
		<comments>http://blog.gdinwiddie.com/2009/01/16/agility-and-predictability/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 03:37:18 +0000</pubDate>
		<dc:creator>George Dinwiddie</dc:creator>
				<category><![CDATA[Customer Collaboration]]></category>
		<category><![CDATA[Tools and Techniques]]></category>
		<category><![CDATA[Working Software]]></category>
		<category><![CDATA[Progress]]></category>

		<guid isPermaLink="false">http://blog.gdinwiddie.com/?p=106</guid>
		<description><![CDATA[I was reading the latest post on Johanna Rothman&#8217;s Managing Product Development blog.  In it she says, Serial lifecycles provide a (false) prediction. And, boy oh boy, is that prediction comforting to your senior managers. “When will the project be done?” might be their most-asked question. Of course, a serial lifecycle provides a prediction that’s [...]]]></description>
			<content:encoded><![CDATA[<p>I was reading the <a title="Why Your Senior Managers Like Serial Lifecycles" href="http://jrothman.com/blog/mpd/2009/01/why-your-senior-managers-like-serial-lifecycles.html" target="_blank">latest post</a> on Johanna Rothman&#8217;s Managing Product Development blog.  In it she says,</p>
<blockquote><p><strong>Serial lifecycles provide a (false) prediction</strong>. And, boy oh boy, is that prediction comforting to your senior managers. “When will the project be done?” might be their most-asked question. Of course, a serial lifecycle provides a prediction that’s almost guaranteed to be wrong, especially if you use a project scheduling tool. The tool provides you a single-point estimate, which is the first date you can’t guarantee the project won’t be done by–the first possible, optimistic date.</p></blockquote>
<p>I like that characterization of the predicted date.  Another characterization, usually true of serial lifeycles, is that the predicted delivery date is the first day of schedule slip.  I&#8217;ve seen many serial projects get almost to that date before they first admit that they&#8217;re in trouble.<span id="more-106"></span></p>
<p>There was a comment from Pawel Brodzinski to Johanna&#8217;s post saying,</p>
<blockquote><p>About <a title="Pawel Brodzinski's post about Agile and Predictability" rel="nofollow" href="http://blog.brodzinski.com/2008/08/another-advice-about-agile.html">predictability</a> I’d say it doesn’t have to be false. Waterfall project which was properly planned and is properly managed should end around deadline and should deliver functionalities specified in requirements.</p></blockquote>
<p>He&#8217;s right.  It doesn&#8217;t have to be false.  It usually is, however, because a serial lifecycle doesn&#8217;t give you any tools to manage schedule risk.  It <em>only</em> gives a prediction.  Experienced managers will guess the amount of padding to add to the schedule to give themselves a chance of meeting it.  Cautious but less-experienced managers will add a <em>lot</em> of padding, to increase their chances.  Of course, a development team working to meet a highly padded schedule may be so over-confident that they slow down to match, and then still miss the schedule if something unexpected happens.</p>
<p>In Pawel&#8217;s own blog post, he quotes <a title="Steve McConnell's take on Agility and Predictability" href="http://forums.construx.com/blogs/stevemcc/archive/2008/07/29/agile-software-business-impact-and-business-benefits.aspx" target="_blank">Steve McConnell</a> who describes an XP software development project that failed to produce a salable product because Customer (a.k.a. Product Owner, in Scrum terms) didn&#8217;t have a vision for a salable product.  For some reason, probably ignorance about Agile Software Development methods, Steve lays this failure on the development team creating one iteration at a time.  He apparently missed the practice of release planning.  When he says they &#8220;did it by the book,&#8221; they obviously didn&#8217;t use the book <a title="Planning Extreme Programming - on Amazon" href="http://www.amazon.com/exec/obidos/ASIN/0201710919/alberg30-20" target="_blank"><em>Planning Extreme Programming</em></a>, which was published only a year after the first edition of <a title="Extreme Programming Explained: Embrace Change - on Amazon" href="http://www.amazon.com/exec/obidos/ASIN/0201616416/alberg30-20" target="_blank"><em>Extreme Programming Explained: Embrace Change</em></a>.  Surely in two years the team could have read a second book.</p>
<p>Back to the point about Agility and Predictability, Steve says,</p>
<blockquote><p>True agility&#8211;which means adopting a posture that allows you to respond rapidly to changing market conditions and customer demands&#8211;conflicts with predictability. Some businesses value agility, but many businesses value predictability more than they value the ability to change direction quickly. For those businesses, becoming more Agile is a second level consideration; the first level consideration is how to become more predictable.</p></blockquote>
<p>Here, Steve seems to make the common mistake of using the dictionary definition of &#8220;agility&#8221; instead of checking the <a title="Agile Manifesto Values" href="http://agilemanifesto.org/" target="_blank">values</a> and <a title="Agile Manifesto Principles" href="http://agilemanifesto.org/principles.html" target="_blank">principles</a> of the Agile Manifesto.  The &#8220;Agile&#8221; of the manifesto is a brand name, of sorts, to replace the wimpy &#8220;light-weight methodology&#8221; term that was starting to be commonly used at the time.  It&#8217;s a good brand because Agile <em>does</em> allow you to change directions more easily.  But Agile doesn&#8217;t <em>require</em> you to change directions and it certainly does expect you to <em>have</em> a direction.</p>
<p><strong>How does Agile give you a predictable schedule?</strong> By giving you early, frequent, and fine-grained feedback and allowing you to steer the project to that schedule.</p>
<p>Let&#8217;s take a look at the release plan created at the start of the project.  First, write <em>story cards</em> for all of the features you want in your product.  These cards will generally be big stories, a.k.a. <em>epics</em>, and you&#8217;ll want to break them into smaller stories for development.  The big stories will work just fine for release planning, though.  Estimate the size of these cards.  I prefer estimating in <em>story points</em>, a fictional, unitless measure.  Some people like to start with <em>ideal engineering days</em>.  Either way, you have to guess how many of these your devlopment team can accomplish in a short iteration.  (I recommend one or two week iteration lengths.)  Count up the story points, divide by this guess, and you&#8217;ve got the number of iterations it will take to create the software.  This plan is <em>exactly the same</em> as the plan created by a serial lifecycle.  It&#8217;s just a guess&#8211;one made as carefully as our experience will allow&#8211;but still a guess.</p>
<p>Now develop software for one iteration.  How many story points did you accomplish?  Was this different than your guess?  If so, you may want to adjust your prediction to use this value instead of the guess.  Sometimes people may want to wait for three iterations before doing so, to let the team get up to speed, but they&#8217;re put on notice at the end of the very first iteration.  That makes a pretty good prediction, don&#8217;t you think?  And you can refine your prediction at the end of each iteration.  With a serial lifecycle, you&#8217;re either stuck with your original guess, or you get nervous enough that you make a new guess.</p>
<p><em>If wishes were horses, even beggars would ride.</em> My mother used to tell me that when I wanted something that was clearly out of reach.  Sometimes a software development team just can&#8217;t accomplish all of our wishes by the desired date.  We&#8217;ll see this as we replan our schedule at the end of each iteration.  And, unless the desires and capabilities are <em>completely</em> out of whack, Agile Software Development gives us the tools to meet the desired date anyway.</p>
<p>How can we meet the date when there&#8217;s too much to do?  We do the most important things first.  And we do things at a fine-grained level.  Instead of leaving whole features to the end, we leave &#8220;nice to have&#8221; refinements of features to the end.  And we then trim scope to fit the date.</p>
<p>We can do this if we&#8217;re getting each little story <em>done-done</em> as we go.  This includes testing, so we know it works the way we want.  And it includes automated regression tests, so we know it continues to work without getting buried by re-testing.  A serial lifecycle leaves this important feedback to the very end, when there&#8217;s little time to remedy problems that are discovered.  That late discovery leads to the lack of predictability produced by a serial lifecycle.  Agile Software Development gives you <em>more predictability</em> than those carefully planned-up-front project plans can provide.</p>
<p>Oh, and yes, it can provide the dictionary definition of agility, too, should your goals change.</p>
          <img src="http://blog.gdinwiddie.com/?ak_action=api_record_view&id=106&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.gdinwiddie.com/2009/01/16/agility-and-predictability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Advice to a CIO about Agile Development</title>
		<link>http://blog.gdinwiddie.com/2008/02/06/advice-to-a-cio-about-agile-development/</link>
		<comments>http://blog.gdinwiddie.com/2008/02/06/advice-to-a-cio-about-agile-development/#comments</comments>
		<pubDate>Thu, 07 Feb 2008 04:00:46 +0000</pubDate>
		<dc:creator>George Dinwiddie</dc:creator>
				<category><![CDATA[Tools and Techniques]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Progress]]></category>

		<guid isPermaLink="false">http://blog.gdinwiddie.com/2008/02/06/advice-to-a-cio-about-agile-development/</guid>
		<description><![CDATA[Esther Schindler quoted me in her article, Getting Clueful: 7 Things CIOs Should Know About Agile Development, on CIO.com. Unfortunately, my advice got altered a little in the editing process. She says, Consultant George Dinwiddie from iDIA Computing suggests using a burn-down chart to track project progress. I actually recommend a burn-up chart to track [...]]]></description>
			<content:encoded><![CDATA[<p>Esther Schindler quoted me in her article, <a target="_blank" href="http://www.cio.com/article/180402/Getting_Clueful_Things_CIOs_Should_Know_About_Agile_Development"><em>Getting Clueful: 7 Things CIOs Should Know About Agile Development</em></a>, on CIO.com.  Unfortunately, my advice got altered a little in the editing process.  She says,</p>
<blockquote><p>Consultant George Dinwiddie from iDIA Computing suggests using a <a target="_blank" href="http://www.controlchaos.com/about/burndown.php">burn-down chart</a> to track project progress.</p></blockquote>
<p>I actually recommend a burn-up chart to track project progress, and a burn-down chart to track iteration progress.  There are specific reasons that I think a burn-up chart is superior to a burn-down for tracking over the course of a project or release.  I&#8217;ve been meaning to write a long post about this, but haven&#8217;t found the time.  I just wanted to correct the record, in the mean time.</p>
<p>The full comments of my note to Esther:<span id="more-61"></span></p>
<blockquote>
<p style="margin-bottom: 0in">If you don&#8217;t know anything else about Agile, know that it&#8217;s largely based on using feedback to drive the work and keep things on the desired track.</p>
<p style="margin-bottom: 0in">The use of feedback in Agile software development is pervasive. On a project level, if you use a burn-up chart to track the progress of a project, you&#8217;ll see how the progress is converging, or not, on the goal line and can take action if necessary.  That action might be to move the goal line, or to make changes in the way the software is being produced to try to speed it up.  On the lowest level, using Test Driven Development allows a developer to specify the next tiny thing the software is expected to do, and then get feedback when the code meets that expectation.  When a developer asks the business Customer about a feature, he gets feedback on the desired goal.  When the business Customer sees the incrementally growing software, she gets feedback on how well the software is converging on the desired goal.</p>
<p style="margin-bottom: 0in">In every way possible, reality should be tested against what is desired.  The feedback should be generated with as little delay as possible.  Reducing the time between when a decision is made and when it is validated will pay off in reduced waste.</p>
<p style="margin-bottom: 0in">This validation comes in many different forms, at different levels, and from different viewpoints.  This is much more powerful than a single validation that must be perfect to be valuable.</p>
</blockquote>
          <img src="http://blog.gdinwiddie.com/?ak_action=api_record_view&id=61&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.gdinwiddie.com/2008/02/06/advice-to-a-cio-about-agile-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making software visible</title>
		<link>http://blog.gdinwiddie.com/2007/06/10/making-software-visible/</link>
		<comments>http://blog.gdinwiddie.com/2007/06/10/making-software-visible/#comments</comments>
		<pubDate>Mon, 11 Jun 2007 00:57:36 +0000</pubDate>
		<dc:creator>George Dinwiddie</dc:creator>
				<category><![CDATA[Working Software]]></category>
		<category><![CDATA[Information Radiators]]></category>
		<category><![CDATA[Progress]]></category>

		<guid isPermaLink="false">http://blog.gdinwiddie.com/2007/06/10/making-software-visible/</guid>
		<description><![CDATA[I was reading Jerry Weinberg&#8217;s book, Quality Software Management: Vol. 2, First-Order Measurement, and came across the following: Software&#8217;s nature is to be invisible, unless we work to make it visible&#8230;. During a construction project, we can see the building rising; but during a software project, all we may be able to see is a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/gp/product/0932633242/ref=as_li_ss_il?ie=UTF8&#038;tag=alberg30-20&#038;linkCode=as2&#038;camp=217145&#038;creative=399369&#038;creativeASIN=0932633242"><img class="alignright" src="http://ws.assoc-amazon.com/widgets/q?_encoding=UTF8&#038;Format=_SL160_&#038;ASIN=0932633242&#038;MarketPlace=US&#038;ID=AsinImage&#038;WS=1&#038;tag=alberg30-20&#038;ServiceVersion=20070822" ></a>I was reading Jerry Weinberg&#8217;s book, <a title="View product details at Amazon" href="http://www.amazon.com/gp/product/0932633242/ref=as_li_ss_tl?ie=UTF8&#038;tag=alberg30-20&#038;linkCode=as2&#038;camp=217145&#038;creative=399369&#038;creativeASIN=0932633242">Quality Software Management: Vol. 2, First-Order Measurement</a>, and came across the following:</p>
<blockquote><p>Software&#8217;s nature is to be invisible, unless we work to make it visible&#8230;.  During a construction project, we can see the building rising; but during a software project, all we may be able to see is a programmer staring at a screen.</p></blockquote>
<p>This got me to thinking, as Jerry&#8217;s writing generally does.  <span id="more-35"></span>I recall reading sometime in the early 1980s, in some trade magazine, something to the effect that</p>
<blockquote><p>You can see the progress of an electronic hardware project by the stack of revised schematics being generated.  When you see a growing stack of program listings for the associated hardware, however, you can bet the project is stuck.</p></blockquote>
<p>You cannot view the progress being made in a software development project by looking at the effort being expended.  The progress can only be determined by the output achieved.  And I can think of no better output to measure than <a href="http://www.xprogramming.com/xpmag/jatRtsMetric.htm">Running Tested Features</a>.   That is, the software does what you, and the Customer, want&#8211;in increasing amounts&#8211;in a way that is measurable.</p>
<p>This is the purpose of &#8220;Acceptance Tests&#8221; in Agile Software Development.  They don&#8217;t, as testing professionals often point out, prove that the software is completely correct.  They don&#8217;t even force the Customer to accept the software and release it.  But they do provide a measure of the progress in producing software behavior that is desired.  They make the software visible.  Then you can see the progress.</p>
          <img src="http://blog.gdinwiddie.com/?ak_action=api_record_view&id=35&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.gdinwiddie.com/2007/06/10/making-software-visible/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

