<?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>Irie, Inc. &#187; working software</title>
	<atom:link href="http://www.irie-inc.com/tag/working-software/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.irie-inc.com</link>
	<description>Agile Software Development Consulting</description>
	<lastBuildDate>Wed, 16 Dec 2009 18:16:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Frequent and Functional Deliveries</title>
		<link>http://www.irie-inc.com/2009/10/27/frequent-and-functional-deliveries/</link>
		<comments>http://www.irie-inc.com/2009/10/27/frequent-and-functional-deliveries/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 23:44:13 +0000</pubDate>
		<dc:creator>jarrowwx</dc:creator>
				<category><![CDATA[Agile Training]]></category>
		<category><![CDATA[Principles]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[business value]]></category>
		<category><![CDATA[feedback]]></category>
		<category><![CDATA[frame of reference]]></category>
		<category><![CDATA[paradigm shift]]></category>
		<category><![CDATA[perspective]]></category>
		<category><![CDATA[waste]]></category>
		<category><![CDATA[working software]]></category>

		<guid isPermaLink="false">http://www.irie-inc.com/?p=28</guid>
		<description><![CDATA[Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. ]]></description>
			<content:encoded><![CDATA[<blockquote><p>Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.</p></blockquote>
<p>
The goal of every sprint should be to create something that gives the business a sense of perspective, a frame of reference to use to direct future activities.  What you deliver needs to work, at least in some respect or with some limitations, in order to offer the business that sense of perspective.  If what you deliver can not be seen by the business, it adds no value.
</p>
<p>
&#8220;But it adds value to the development effort!&#8221; you might be thinking.  Sure, assuming that your understanding of the direction that you need to go is correct.
</p>
<p>
Note that you are not simply taking a traditional development project and breaking it into 2-week chunks of work.  You are creating a functional piece of software.  It is all too easy to fall into the trap of breaking things down functionally, and then trying to map your functional decomposition into a backlog.  Too often, you end up with pieces which can not stand alone, which do not deliver value to the business.  The business can&#8217;t prioritize those kinds of things.
</p>
<p>
The problem is diving too deep.  It&#8217;s so easy to do, too.  You want to understand the problem, so you divide and clarify, divide and clarify, and at some point you magically and invisibly have gone beyond <i>what</i> you are trying to accomplish and have transitioned into the <i>how</i> of accomplishing it.
</p>
<p>
Therein is the secret of making sure your backlog includes only items that add value:  They only tell you what it must do for the business, it does not specify how it is done.  Review every user story, and ask yourself: &#8220;Is this telling me what the system needs to do, or is it telling me how the system works?&#8221;  If it is the latter, change it to be the former.  If you can&#8217;t, then you probably broke down the functionality too far, and that story needs to be rolled into another one that it supports.
</p>
<p>
It takes discipline, and maybe even a shift in ways of thinking, but you need to deliver something that &#8220;works&#8221; every time.  It may be a mock-up or a prototype, it may not do everything it needs to do when initially delivered, but it is something that the business can see and wrap their brains around.  The purpose of this is to empower the business to give their guidance sooner rather than later, and save everyone the frustration of wasted effort.
</p>
<p>
&#8220;But isn&#8217;t a prototype a waste of time?&#8221;  Not really.  Build it right and you can simply refactor it as necessary to make it into what it needs to be.  And in the worst case, if you have to throw the whole thing away, you still ended up with valuable understanding of the problem, and that all-important frame of reference for the business to guide forward progress.
</p>
<p>
So, deliver working software.  But deliver it often.  Very often.  Here&#8217;s why:
</p>
<ul>
<li> If you have a term paper due in six months, what is the likelihood that you will finish it tomorrow?  What is the likelihood that you will do the bulk of the work the night before it is due?  The longer the sprint length, the more this tendency might rear its ugly head.</li>
<li> The bigger the sprint backlog, the more overwhelming it can feel, whether there is any reason for it or not.  So, the longer the sprint, the bigger the sprint backlog, the harder it is to focus, for some people.</li>
<li> <b>The shorter the duration, the sooner the business can give its feedback, the more Agile you become.</b></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.irie-inc.com/2009/10/27/frequent-and-functional-deliveries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Value Proposition</title>
		<link>http://www.irie-inc.com/2009/10/26/the-value-proposition/</link>
		<comments>http://www.irie-inc.com/2009/10/26/the-value-proposition/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 18:26:38 +0000</pubDate>
		<dc:creator>jarrowwx</dc:creator>
				<category><![CDATA[Agile Training]]></category>
		<category><![CDATA[Principles]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[business value]]></category>
		<category><![CDATA[feedback]]></category>
		<category><![CDATA[frame of reference]]></category>
		<category><![CDATA[roi]]></category>
		<category><![CDATA[working software]]></category>

		<guid isPermaLink="false">http://www.irie-inc.com/?p=18</guid>
		<description><![CDATA[Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. ]]></description>
			<content:encoded><![CDATA[<blockquote><p>Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.</p></blockquote>
<p>A basic tenet of Agile software is to deliver Value to the business.  The challenge is to do this in the face of continuously changing priorities and/or requirements.<br />
Part of what causes the priorities or requirements to change is a basic truth in psychology: it&#8217;s easier to see what is in front of you than it is to operate mentally on a figment of your imagination.  The more concrete things become, the more the definition seems to change.</p>
<p>What this also means is that the more frequently you deliver something that works, the faster the business gets to see the truth of what they had asked for.  This allows them to evaluate it in a concrete way, and thereby be empowered to offer meaningful feedback on it.</p>
<p>But delivering something that &#8216;works&#8217; is only half of the equation.  What works should be something that adds value.  Time spent working on something that no one will use is time wasted.  Delivering something that costs more to create than it will earn or save for the company is also time wasted.  There may come a point in the project where there is still plenty to work on, but none of it adds enough value to be worth the investment.  A good product owner will recognize that point, and the project will end.  A good team will help identify when that point is reached.</p>
<p>When breaking down the work that is to be done, keep this in mind.  If it doesn&#8217;t add value by itself, don&#8217;t deliver it by itself.  If something else adds more value, do that first.  But don&#8217;t fall into the trap of needing to deliver everything all at once.  Really, all &#8216;features&#8217; are not created equal.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.irie-inc.com/2009/10/26/the-value-proposition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Agile Manifesto</title>
		<link>http://www.irie-inc.com/2009/10/25/the-agile-manifesto/</link>
		<comments>http://www.irie-inc.com/2009/10/25/the-agile-manifesto/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 21:32:30 +0000</pubDate>
		<dc:creator>jarrowwx</dc:creator>
				<category><![CDATA[Agile Training]]></category>
		<category><![CDATA[agile manifesto]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[burndown]]></category>
		<category><![CDATA[change]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[contracts]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[working software]]></category>

		<guid isPermaLink="false">http://www.irie-inc.com/?p=11</guid>
		<description><![CDATA[Uncovering better ways of developing software, and helping others do it, too.]]></description>
			<content:encoded><![CDATA[<blockquote>
<p>We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:</p>
<p>
<b>Individuals and interactions</b> over processes and tools<br />
<b>Working software</b> over comprehensive documentation<br />
<b>Customer collaboration</b> over contract negotiation<br />
<b>Responding to change</b> over following a plan
</p>
<p>That is, while there is value in the items on the right, we value the items on the left more.</p>
</blockquote>
<p><b>Individuals and interactions over processes and tools</b></p>
<p>
Burndown charts are tools.  Obviously, they are valuable.  But they are only valuable insofar as they help individuals engage one another.  A burndown chart reveals where the team is compared to what they committed to.  It reveals whether the team over-committed or over-estimated.  But ultimately, it is a tool to encourage communication.  It is a signal when things are wrong, or when there are opportunities for positive change.  But the tool has no value if no one is looking at it.  It has no value if no one knows how to interpret it.  The tool has value only as a means to an end, that end being the constructive dialogue of the team, and the continuous improvement of the process.
</p>
<p>
Scrum is a framework, a &#8216;process&#8217;. It is the most popular implementation of Agile software development.  Obviously, it is valuable.  But what gives it that value?  The dialogue between the team members that happens on a daily basis.  The dialog that happens between the team and the customer on a regular basis.  The way in which it reveals shortcomings in the way the team or the company works.  But all of the trappings of Scrum are of none effect if they do not lead to continuous discussion and improvement.  Again, the process serves to highlight the need for communication, and creates a context for it to take place.  But having the trappings of Scrum without the dialogue and the evolution of the team that it facilitates, and you get very little from it.
</p>
<p><b>Working software over comprehensive documentation</b></p>
<p>Documentation is valuable as a tool for communication.  Its purpose is to help everyone get on the same page.  Of course, having everybody together in the same room, having a lively discussion, getting all of the details out, all this yields the same results, in a fraction of the time, and with significantly higher value.  The other value of documentation is to convey information to those that could not be there for that meeting.  Of course, being able to point to what was built and say &#8220;That&#8217;s what we built&#8221; is just as good as pointing to a document and saying &#8220;that tells you about what we built&#8221;, in most cases.  That&#8217;s not to say that documentation has no place.  If it is hard to wrap your brain around it, document it, save someone else from having to spend as much time doing so.  But if it is self-evident, documenting it is a case of putting the process before the results the process is intended to achieve.  Like mindlessly serving a tyrant king.
</p>
<p>
Besides, at the end of the day, customers don&#8217;t use your process documentation.  They use the working software.  If you have to stop half way through the project, and all you have is documentation, you have nothing of value.
</p>
<p><b>Customer collaboration over contract negotiation</b> </p>
<p>
&#8220;That&#8217;s not what you asked for!&#8221; &#8220;But that&#8217;s what I <i>need</i>!&#8221;  Contracts are important because they set expectations, and they define roles.  But they can also serve as a pair of handcuffs.  The customer doesn&#8217;t win when they can&#8217;t get what they want because they didn&#8217;t ask for it up front.  And the team doesn&#8217;t win when the customer is dissatisfied.  In a customer service organization, which ultimately every development organization ultimately is, your success and longevity is determined by how well you can serve the needs of the customer.  The contracts that you negotiate should help you do that, not hinder it.
</p>
<p><b>Responding to change over following a plan</b></p>
<p>
Plans are essential.  Even in Agile development, you need to plan your work and work your plan.  But circumstances change.  The plan needs to change, too.  It&#8217;s a lot of work to create a plan that lays out the next 2 years.  Having to go back to the drawing board after six weeks is demoralizing, and a huge waste of effort.  Refusing to go back to the drawing board, even though you should, will ruin you.  The further out in time you plan, the less detailed your plans should be, so that effort is not wasted as you adapt to the inevitable changes that come your way.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.irie-inc.com/2009/10/25/the-agile-manifesto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
