<?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>Gojko Adzic &#187; bsm</title>
	<atom:link href="http://gojko.net/tag/bsm/feed/" rel="self" type="application/rss+xml" />
	<link>http://gojko.net</link>
	<description>Building software that matters</description>
	<lastBuildDate>Thu, 29 Jul 2010 22:37:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>The Billboard over Moscow</title>
		<link>http://gojko.net/2010/02/10/the-billboard-over-moscow/</link>
		<comments>http://gojko.net/2010/02/10/the-billboard-over-moscow/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 20:37:16 +0000</pubDate>
		<dc:creator>gojko</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[accelinnova]]></category>
		<category><![CDATA[bsm]]></category>
		<category><![CDATA[moscow]]></category>
		<category><![CDATA[purpose alignment model]]></category>

		<guid isPermaLink="false">http://gojko.net/?p=1614</guid>
		<description><![CDATA[Effective prioritisation is key to delivering value with a software project. The MoSCoW model, splitting features into Must have, Should have, Could have and Would like (really Won&#8217;t have), theoretically does the trick. However, I found it very hard to apply in practice &#8211; too many things end up in the Must category. I recently [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://gojko.s3.amazonaws.com/billboard.jpg" align="left" style="width:400px;border:1px solid black; margin:5px 5px 5px 5px" />Effective prioritisation is key to delivering value with a software project. <a href="http://en.wikipedia.org/wiki/MoSCoW_Method" target="_blank">The MoSCoW model</a>, splitting features into Must have, Should have, Could have and Would like (really Won&#8217;t have), theoretically does the trick. However, I found it very hard to apply in practice &#8211;  too many things end up in the Must category. I recently came across an alternative model that seems to solve that problem.<span id="more-1614"></span></p>
<p>The MoSCow model, at least when I tried to implement it, suffered from the <i>Priority 1 Paradox</i>: </p>
<blockquote><p>The more we ask customers to narrow down priority 1 features the more they&#8217;ll be scared to leave anything out of that category.</p></blockquote>
<p>The complaint is always the same: everything must be there &#8211; especially all the old functionality when replacing a legacy system. Prioritising so that most of the stuff ends up as &#8216;Must&#8217; pretty much defeats the point of the exercise.</p>
<p>I am currently reading <a target="_blank" href="http://www.amazon.com/gp/product/0321572882?ie=UTF8&#038;tag=swingwiki-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0321572882">Stand Back and Deliver: Accelerating Business Agility</a><img src="http://www.assoc-amazon.com/e/ir?t=swingwiki-20&#038;l=as2&#038;o=1&#038;a=0321572882" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> by Niel Nickolaisen and colleagues from <a href="http://www.accelinnova.com/">Accelinova</a>. Among other interesting ideas, I found a real gem. This book advises aligning business processes (equally applicable to software features) along two axes: mission critical and market differentiation. Nickolaisens calls this the <a target="_blank" href="http://www.informit.com/articles/article.aspx?p=1384195&#038;seqNum=2">Purpose Alignment Model</a>:</p>
<p><img src="http://gojko.s3.amazonaws.com/pam.png" style="border:1px solid black; margin:5px 5px 5px 5px" /></p>
<p>In a case study, the authors describe a discussion with a stakeholder who claimed that their IP protection was a differentiating factor. The authors then asked the VP of sales &#8216;<i>When was the last time you sealed a deal by touting Lifebrands&#8217; excellence in IP protection? When was the last time you felt you should include the IP protection process in sales presentations and collateral?</i>&#8216; (pp 36) They also offer a simpler version of this rule of thumb as a <i>Billboard filter</i>: </p>
<blockquote><p>Would you put this feature on a billboard?</p></blockquote>
<p>If so, the feature is obviously differentiating and should be invested in. If not, this feature falls into the parity category at best. The introduction of the parity category which, as the authors repeatedly point out, holds mission-critical features which are not billboard material, seems as a great way to avoid the Priority 1 paradox. This is to intentionally avoid the feeling that anything not Priority 1 won&#8217;t be delivered. The system must have these things too offer a full service, but it just isn&#8217;t worth investing too much or being too creative there. Nickolaisen and co-authors suggest that the Parity category is where companies should apply industry best practices and streamline processing. </p>
<p>Overdoing it in this category might actually be damaging to the bottom line. In another case study, the authors describe a project to automate complicated pricing rules. After it was identified that complex pricing isn&#8217;t really billboard material, the project was completely turned on its head. Instead of implementing a complex rule engine, the pricing system was streamlined using industry best practices. It turned out that customers were actually happier with the new model, so simplifying a parity process increased  the revenue. This was possible because the stakeholders agreed that while the company must have an automated pricing system, it wasn&#8217;t a core differentiating factor.</p>
<p><a href="http://www.infoq.com/presentations/strategic-design-evans" target="_blank">Strategic design</a> ideas of Eric Evans also suggest some good guidelines what to do with such software: if the thing is available off the shelf (generic domains), buy it. If not, possibly get a third party to develop and maintain it. Evans calls these domains supporting, and they are prime candidates for outsourcing.</p>
<p><i>This article is part of my <a href="/tag/bsm">Building software that matters</a> series. <a href="/tag/bsm">See other articles here</a></i></p>
<p><b>Btw, I&#8217;ve created a <a target="_blank" href="http://groups.google.com/group/buildingsoftwarethatmatters">mailing list</a> for this topic so rather than commenting here, post your comments to the <a href="http://groups.google.com/group/buildingsoftwarethatmatters">Building Software That Matters</a> mailing list and let&#8217;s discuss them!</b> </p>
<p><i>Image credits:<a href="http://www.flickr.com/photos/ari/300233979/">Steve Rhodes</a></i></p>
]]></content:encoded>
			<wfw:commentRss>http://gojko.net/2010/02/10/the-billboard-over-moscow/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Building software that matters: two books you absolutely have to read</title>
		<link>http://gojko.net/2010/01/18/building-software-that-matters-two-books-you-absolutely-have-to-read/</link>
		<comments>http://gojko.net/2010/01/18/building-software-that-matters-two-books-you-absolutely-have-to-read/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 11:20:17 +0000</pubDate>
		<dc:creator>gojko</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[book reviews]]></category>
		<category><![CDATA[bsm]]></category>

		<guid isPermaLink="false">http://gojko.net/?p=1570</guid>
		<description><![CDATA[I recently came across two books that fit the Building software that matters theme perfectly, and deserve to be read by anyone managing a software project, running a development team or generally serious about delivering software. Both books tackle topics so difficult that development teams often just push the responsibility for them to the customer, [...]]]></description>
			<content:encoded><![CDATA[<p>I recently came across two books that fit the <a href="/tag/bsm">Building software that matters</a> theme perfectly, and deserve to be read by anyone managing a software project, running a development team or generally serious about delivering software. Both books tackle topics so difficult that development teams often just <a href="http://gojko.net/2009/10/01/the-mythical-customer-problem/">push the responsibility for them to the customer, expecting some kind of magical resolution</a>. <span id="more-1570"></span></p>
<blockquote><p>Developers prefer to talk in terms of value generation without developing related revenue projections. Business stakeholders usually don&#8217;t realize that delivery sequences and architectural options have a significant impact on project level ROI. Clearly, software development requires a more financially responsible approach […]. This situation clearly calls for a close collaboration between developers and business stakeholders.</p></blockquote>
<p>The previous paragraph pretty much sums up the basic idea of <a href="http://www.amazon.com/gp/product/0131407287?ie=UTF8&#038;tag=swingwiki-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0131407287">Software by Numbers: Low-Risk, High-Return Development</a><img src="http://www.assoc-amazon.com/e/ir?t=swingwiki-20&#038;l=as2&#038;o=1&#038;a=0131407287" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> by Mark Denne and Jane Cleland-Huang. Iterative delivery and fast roll-out to production makes perfect sense and I do not think that anyone can doubt that, but can you actually put a value on it? Can you compare two alternative delivery plans for the same project? Denne and Cleland-Huang set to do exactly that. By developing a financial model to evaluate and compare delivery plans, the authors show how to make an informed decision about prioritisation on a project so that it maximises the desired financial effect, either reducing risk, optimising cash-flow or return on investment. </p>
<p>Denne and Cleland-Huang explain how to identify and evaluate the financial impact of Minimum Marketable Features, including “intanglibles” such as brand value or customer retention. Then they develop a system of heuristics that combines this information with technical and architectural constraints, prerequisites and timing constraints to come up with the best possible delivery plan, depending on what you want to achieve. Through several case studies, they show how just choosing the next most important thing isn&#8217;t as nearly as effective as considering the financial impact of the entire delivery plan. Somewhere in the middle, they also come up with a way to estimate the financial impact of the project by forces other than black magic which helps us answer a key question: should we do this at all or should we do something else?</p>
<p><a href="http://www.amazon.com/gp/product/8763001764?ie=UTF8&#038;tag=swingwiki-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=8763001764">Effect Managing It</a><img src="http://www.assoc-amazon.com/e/ir?t=swingwiki-20&#038;l=as2&#038;o=1&#038;a=8763001764" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, by Mijo Balic and Ingrid Ottersten, deals with things that happen even earlier in the process – coming up with a list of features to achieve the desired business effect. Instead of focusing on functionality, Balic and Ottersten look at software projects as agents of business transformation. The authors argue that the ultimate goal of software projects is to achieve a business change, and that one of the key reasons for failure of so many projects is that the focus is often on the wrong things. They explain a model of structuring requirements analysis in a way that ensures achieving the desired business effect. That focus on business impact, not functionality or technology, is what they call “Effect Managing”. </p>
<p>Effect Managing shares many key ideas with behaviour-driven development and agile acceptance testing, but deals with things that are much earlier in the development cycle.  Balic and Ottersten base their model on first considering who can deliver the desired change (stakeholders in the BDD lingo), then thinking about how these people can deliver it and what the software needs to do to support that that. Organising all these ideas in a hierarchy which they call an “Effect Map”,  this model provides visibility similar to the <a href="gojko.net/2006/10/22/magic-of-goals/">Goals-Features-Requirements</a> model, but in my opinion much more effective because it is visual. After trying out effect maps on two projects, I&#8217;m astonished how they open up a discussion and provide structure to the process of selecting the features for a project and probably equally important throwing away features that are less important. </p>
<p>Be warned, though, that both books are relatively hard to read. Although they are short, less than 200 pages each, the flow of ideas in both books is a bit hard to follow. Effect Managing IT at times reads like a literal translation (from what I understand, the original book was written in Swedish) and Software by Numbers is full of financial tables and formulas. Nevertheless, I think that both books have such great value that getting through them is well worth it.</p>
]]></content:encoded>
			<wfw:commentRss>http://gojko.net/2010/01/18/building-software-that-matters-two-books-you-absolutely-have-to-read/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Building software that matters, part two</title>
		<link>http://gojko.net/2009/12/10/building-software-that-matters-part-two/</link>
		<comments>http://gojko.net/2009/12/10/building-software-that-matters-part-two/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 09:35:34 +0000</pubDate>
		<dc:creator>gojko</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[bsm]]></category>
		<category><![CDATA[xpday]]></category>

		<guid isPermaLink="false">http://gojko.net/?p=1470</guid>
		<description><![CDATA[This week at the XPDay 09 conference in London, I facilitated a discussion on practices, ideas and tools that help us focus on building software that matters. We started by quickly going over the conclusions from a similar workshop held in august during the Alt.NET UK conference. We then started an open discussion on new [...]]]></description>
			<content:encoded><![CDATA[<p><img src="/images/866529_feedback_form_excellent.jpg" style="margin:5px 5px 5px 5px" align="left"/> This week at the <a href="/tag/xpday">XPDay 09</a> conference in London, I facilitated a discussion on practices, ideas and tools that help us focus on building software that matters. We started by quickly going over the conclusions from a similar workshop held in <a href="http://gojko.net/2009/08/03/building-software-that-matters/">august during the Alt.NET UK conference</a>. We then started an open discussion on new ideas. Unlike the Alt.NET workshop where most people in the room seemed to be server-side developers, this time web developers were the majority, so the discussion was often centered around mass-market software. The main theme of this workshop turned out to be feedback as a tool for focusing projects on things that matter.<span id="more-1470"></span></p>
<h2>Quality over speed</h2>
<p>Although most agile literature focuses on fast feedback as the primary idea to align software with customers&#8217; needs, it seems to me from the discussion that the quality of feedback is more important than the speed. A good idea to improve quality of feedback was to invite passionate users to join in, giving them early access and allowing them to influence the product. Another good idea was to observe how the software is actually used (I proposed that as the <a href="http://gojko.net/2008/01/09/returning-favour/">new year&#8217;s resolution in 2008</a> on this blog, and considering that the new year is coming soon again, maybe it&#8217;s time to repeat that proposal). </p>
<h2>Release and then measure</h2>
<p>Of course, this doesn&#8217;t mean that quick feedback is not important. Finding whether we&#8217;re going in the right direction quickly is key to successful software development. One idea to improve this is to focus early deliveries on the smallest chunks of software that could provoke and provide meaningful feedback. Expanding on that idea, we discussed rapid prototyping instead of analysis. I must admit, I&#8217;m not completely in favour of that idea (and I recently wrote <a href="http://gojko.net/2009/11/23/the-danger-of-releasing-too-early/"> against releasing unpolished software</a>), but this might work better for mass-market than in-house software which I mostly do.</p>
<p>This led to a discussion on the idea of releasing a bunch of features quickly and then asking the users to choose which ones they like and which ones should be binned. 37 Signals and Twitter were mentioned as examples for this, releasing and then dropping many features that didn&#8217;t work. The key to do this successfully for mass-market applications such as web sites is to have good monitoring on feature usage. <a href="http://tealeaf.com/">Tealeaf customer experience monitoring </a>was mentioned as a tool to support this. </p>
<p>Another idea on how to improve the quality of feedback is to build feature partitioning into the system, enabling features to be turned on and off on demand. This supports measuring effects of individual features. It also allows the system to gracefully degrade services if it starts running out of capacity. <a href="http://mixcloud.com">Mixcloud</a> was mentioned as a good example of this in practice.  </p>
<h2>The right sample</h2>
<p>As an idea how to improve the amount of feedback we can get from end-users, we discussed giving something in exchange for feedback. This is probably most applicable to web sites where you can give users small gifts or virtual goods in exchange for filling in a form. </p>
<p>We also discussed how choosing the right sample was crucial to get good feedback. An idea that I especially liked was to align the sample with user personae chosen for the project. Clearly defining the target market before a project starts and basing the feedback sample on that is one of those things that seem common sense but are yet to be adopted by software community at large. Another key idea for mass-market software was gradually growing the sample. An example of what can happen if you only listen to early feedback of a small group is the <a href="http://en.wikipedia.org/wiki/Vegemite#Vegemite_Cheesybite:_new_recipe">ISnack 2.0 blunder</a>. Kraft foods chose ISnack 2.0 as a new name of their Cheesybite product based on positive feedback from focus groups, which provoked <a href="http://www.brisbanetimes.com.au/business/kraft-cans-isnack-20-20090930-gc9u.html">&#8220;Facebook hate groups, blogs and angry Tweets [..] and T-shirts trashing the name&#8221;</a> when it went public and finally causing the company to admit defeat and bin the name. </p>
<p>Here&#8217;s the updated mind map with all the ideas from both workshops:</p>
<p><iframe width="600" height="400" frameborder="0" src="http://www.mindmeister.com/maps/public_map_shell/35612924/building-software-that-matters?width=600&#038;height=400&#038;zoom=1" scrolling="no" style="overflow:hidden"></iframe></p>
<h2>Some more food for thought</h2>
<p><a href="http://www.oshineye.com/theAbode.html">Adewale Oshineye</a> spoke about one of his earlier projects (from what I remember, for Dixons) where an uncaught security bug turned out to be a very important feature allowing stores to share information. This reminded me of one of my projects where a feature essentially developed for easier testing of a network flow algorithm proved to be a key selling point for a system (I wrote about this already, see <a href="http://gojko.net/2007/01/31/blinded-by-the-user-interface/">Blinded by the user interface</a>). <a href="http://agileproductdesign.com/blog/index.html">Jeff Patton</a> said that both these stories are examples of value produced by accident, and then raised probably the most provoking question of the session: <i>How do we intentionally discover features that users have not even thought of but that could bring a lot of value?</i> This question was, unfortunately, left without an appropriate answer. Round 3 of this discussion is scheduled for the <a href="http://www.spaconference.org/spa2010/sessions/session251.html">SPA conference next year in May</a>, and this will surely be one of the major themes of that workshop.    </p>
<p><i>See other articles from <a href="/tag/xpday">XP Day 09</a></i></p>
]]></content:encoded>
			<wfw:commentRss>http://gojko.net/2009/12/10/building-software-that-matters-part-two/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building software that matters</title>
		<link>http://gojko.net/2009/08/03/building-software-that-matters/</link>
		<comments>http://gojko.net/2009/08/03/building-software-that-matters/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 10:05:33 +0000</pubDate>
		<dc:creator>gojko</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[acceptance testing]]></category>
		<category><![CDATA[alt.net]]></category>
		<category><![CDATA[bsm]]></category>
		<category><![CDATA[ddd]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[lean]]></category>

		<guid isPermaLink="false">http://gojko.net/?p=1051</guid>
		<description><![CDATA[We had a fantastic discussion on delivering value with software yesterday at Alt.NET UK, centred around two proposed topics: “From concept to cash” and “Building software that matters”. Starting with questions on how do we get to cash quicker, how do we make sure that we&#8217;re building the most valuable software possible and how do [...]]]></description>
			<content:encoded><![CDATA[<p>We had a fantastic discussion on delivering value with software yesterday at Alt.NET UK, centred around two proposed topics: “From concept to cash” and “Building software that matters”. Starting with questions on how do we get to cash quicker, how do we make sure that we&#8217;re building the most valuable software possible and how do we measure progress, this open space discussion touched upon some very interesting ideas to improve software processes.<span id="more-1051"></span></p>
<h2>Increasing visibility</h2>
<p>A common topic in the discussion was increasing visibility, both the visibility of business value to developers and visibility of developer progress to business. We discussed different metrics to increase visibility of the progress, but this turned out to be quite a tricky subject. One interesting metric mentioned was cycle time, how much it takes to get a story from the backlog into production. This would require that stories have a fairly normalised size though. The conclusion for me is that metrics make it very easy to slide towards efficiency but not effectiveness (with the example of a hamster in a cage which might spin the wheel very efficiently, but going nowhere), which also lead us to the fact that teams should be aware where does the value come from and define what success looks like before a project starts. Ensuring that everyone knows the answers to these questions would significantly increase the value visibility and help people prioritise better. </p>
<p>Some interesting examples of what companies do to increase visibility were estimating technical debt with monetary value (how much will it cost to fix it) and assigning monetary value to stories (how much benefit will it bring) and implementation estimates (how much will it cost to make it). Although everyone agreed that getting these figures right would be a challenge, even rough estimates can help immensely to set the priorities and ensure that we&#8217;re building the thing of greatest value. </p>
<p>Another challenge mentioned is actually measuring how much value features bring when they are in production and do they justify the cost of maintenance. We all agreed that it is very hard to measure effects of individual features, but A-B testing was suggested as a way to to measure this. In A-B testing, a part of the system runs with a feature and a part of the system runs without it, and then the results are compared to determine the effectiveness of that particular feature. This approach has additional management overheads and risks involved though.</p>
<h2>Waste</h2>
<p>Unsurprisingly, the discussion often touched upon lean software development principles and looking at what causes waste in the process. Two good books mentioned about this were Implementing Lean Software Development: From Concept to Cash by Mary and Tom Poppendieck (<a href='http://www.amazon.co.uk/Implementing-Lean-Software-Development-Addison-Wesley/dp/0321437381'>ISBN 0321437381 Addison-Wesley 2006</a>) and Agile Management For Software Engineering by David Anderson (<a href='http://www.amazon.co.uk/Agile-Management-Software-Engineering-Constraints/dp/0131424602'> ISBN 0131424602, Prentice-Hall 2003</a>). Anderson is also apparently working on a new book related to this subject. Additional suggested resources for Lean Software development included <a href='http://www.sep.com/lk2009'>Lean Conference 2009 videos</a>,  <a href='http://www.agilemanagement.net/'>David Anderson&#8217;s blog</a> , <a href='http://availagility.wordpress.com/'>Karl Scotland&#8217;s blog</a> , <a href='http://leanandkanban.wordpress.com/'>David Joyce&#8217;s blog</a> and the <a href='http://agileinaction.com/'>Agile in action Blog</a>.</p>
<p>A common theme in the discussion on waste was building too much software, where people did not know whether they really needed it. As a possible solution for the problem we talked about the DDD core domain idea, where companies should focus on identifying a very small core of the system that makes it worth building, something that brings direct competitive advantage, and source the rest from external providers or buy off-the-shelf solutions. Core domain is explained more in Domain-driven Design: Tackling Complexity in the Heart of Software by Eric Evans (<a href='http://www.amazon.co.uk/Domain-driven-Design-Tackling-Complexity-Software/dp/0321125215'>ISBN 0321125215, Addison-Wesley 2003</a>).</p>
<p>Another source of waste was building “nice to have” features suggested by the business but not really bringing any value. As a possible solution for this, we talked about the Goals-Features-Requirements breakdown (a variant of which is Goals-Stories-Acceptance tests) where each feature introduced into the system has to be connected directly to a stated project goal, and each requirement has to be directly connected to a feature. If the person suggesting a requirement cannot name a feature (or likewise someone suggesting a feature cannot justify it by naming a goal), this gives us ground to push back and reject scope creep. This idea comes from The Art of Project Management by Scott Berkun (<a href='http://www.amazon.co.uk/Project-Management-Theory-Practice-OReilly/dp/0596007868'>ISBN 0596007868 O&#8217;Reilly 2005</a>).</p>
<p>The development counterpart of this is just-in-case code, something that developers decided to put in because they think it is needed. This was called the biggest source of waste by Mary Poppendieck in the Lean Software Development book. As possible solutions for this, we discussed specification workshops and agile acceptance testing – explained in my book Bridging the Communication Gap Specification By Example and Agile Acceptance Testing (<a href='http://www.amazon.co.uk/Bridging-Communication-Gap-Specification-Acceptance/dp/0955683610/'>ISBN 0955683610, Neuri 2009</a>). As the answer to the problem &#8216;we know that we&#8217;ll need it soon&#8217;, we discussed a fine line between making the system flexible to accept a future change and actually building in flexibility. The former would involve isolating a piece of code that we know is going to change, the latter would involve actually building in a very flexible framework to start with. The conclusion was that very often these complex flexible frameworks don&#8217;t pay off as requirements might change and the requested flexibility never actually makes it into the product.   </p>
<p>The fourth related cause of waste was working on a problem that people don&#8217;t know enough about and identifying that too late. Specification workshops are also a solution for that.</p>
<p>UI design and redesign was also perceived as a common source of waste, perhaps because all the people in the room were developers. Someone suggested <a href='http://developer.yahoo.com/ypatterns/'> Yahoo&#8217;s UI design pattern library</a> as a good source of information to make this process quicker and easier.</p>
<h2>Prioritisation</h2>
<p>The last major theme of this discussion was prioritisation – how do we actually decide what to build first and how to deliver value quickest. Value visibility certainly helps, and assigning monetary value to features and costs of production might help prioritise. There was a concern though that only low-risk features would ever get implemented by this, but we concluded that this would probably be pushed back to the business and they would be able to decide how much risk they want to take. </p>
<p>We also discussed the difference between iterative and incremental development and how that helps with prioritisation – rather than asking customers to prioritise between a car door and an engine, for example, we could ask them to prioritise between a car with a poor door system but a great engine and a car with great doors and a poor engine, delivering a car that they could use in any case. This is explained in a lot more detail by <a href='http://www.agileproductdesign.com/blog/dont_know_what_i_want.html'>Jeff Patton</a> (also see <a href='http://alistair.cockburn.us/Incremental+means+adding,+iterative+means+reworking'>Alistair Cockburn&#8217;s response</a> and <a href='http://gojko.net/2007/12/04/waterfall-trap/'>my write-up of Patton&#8217;s keynote at XPDay 07</a>).</p>
<p>Having a map of goals to stories and tests makes it easier to prioritise as well, because business should be able to prioritise goals and we can derive priorities of lower levels based on that. </p>
]]></content:encoded>
			<wfw:commentRss>http://gojko.net/2009/08/03/building-software-that-matters/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
