<?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>Global Beach &#187; Development</title>
	<atom:link href="http://www.globalbeach.com/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.globalbeach.com</link>
	<description>Intelligent Interaction</description>
	<lastBuildDate>Wed, 21 Apr 2010 11:55:52 +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>Here we go gathering requirements in&#8230; October</title>
		<link>http://www.globalbeach.com/2008/10/24/here-we-go-gathering-requirements-in-october/</link>
		<comments>http://www.globalbeach.com/2008/10/24/here-we-go-gathering-requirements-in-october/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 15:57:35 +0000</pubDate>
		<dc:creator>Stuart</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[IA]]></category>
		<category><![CDATA[Project Management]]></category>

		<guid isPermaLink="false">http://blog.globalbeach.com/?p=43</guid>
		<description><![CDATA[I managed to get sight of a proposal from a competitor last week for a piece of development work that we eventually won and was suprised that they were advocating a waterfall style approach with a pretty comprehensive up-front requirements gathering and specification writing stage.  Now whatever you may feel about the pros and cons [...]]]></description>
			<content:encoded><![CDATA[<p>I managed to get sight of a proposal from a competitor last week for a piece of development work that we eventually won and was suprised that they were advocating a waterfall style approach with a pretty comprehensive up-front requirements gathering and specification writing stage.  Now whatever you may feel about the pros and cons of <a href="http://agilemanifesto.org" target="_blank">Agile</a>, surely nobody really still believes that months of requirements gathering and specification writing is the most cost-effective way to build a web site?</p>
<p>The process of gathering requirements and system design is always thought of as a pretty linear process.  The theory goes that as you gather more and more requirements you are better equipped to organise them and create the perfect system.  Basically the relationship between understanding and time is one-to-one.  A bit like the graph below.</p>
<div id="attachment_44" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.globalbeach.com/wp-content/uploads/2008/10/itn_chart_02.jpg"><img class="size-medium wp-image-44" title="itn_chart_linear" src="http://blog.globalbeach.com/wp-content/uploads/2008/10/itn_chart_02.jpg" alt="Linear requirements process" width="300" height="225" /></a><p class="wp-caption-text">Linear requirements process</p></div>
<p>If this was the case then it would make sense to spend the necessary time gaining a complete understanding of the system.  Not only is each quanta of time (let&#8217;s say a day) worth the same, if you spend enough of them you will eventually get to a state of perfect understanding which will allow you to go off and employ a team of developers to build the perfect system without any further thought.</p>
<p>Now everybody knows that this doesn&#8217;t actually work in practice and however much effort you spend designing a system there will always be things that for whatever reason don&#8217;t quite work in the real world.  Not everyone is quite so keen to admit that the theory is flawed so normally the blame is put on the implementation of the process:</p>
<p style="text-align: center;"><em>&#8220;We really must make sure our design is more comprehensive next time.&#8221;</em></p>
<p style="text-align: center;">
<p style="text-align: center;">
<p>In reality the process of gathering requirements and system design is not linear.  There&#8217;s normally a pretty steep curve at the beginning of the process as you get an idea of the core requirements and this tends to level off the more time that is spent.  Arguably you never really get complete understanding and you can certainly never design the perfect system.</p>
<p>I think the curve looks a bit like this one:</p>
<div id="attachment_45" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.globalbeach.com/wp-content/uploads/2008/10/itn_chart_01.jpg"><img class="size-medium wp-image-45" title="exponential requirements gathering" src="http://blog.globalbeach.com/wp-content/uploads/2008/10/itn_chart_01.jpg" alt="Actual requirements process" width="300" height="225" /></a><p class="wp-caption-text">Actual requirements process</p></div>
<p>So, there comes a point where it&#8217;s not really worth gathering any more requirements or spending any more effort designing the system as each day that is spent brings less and less extra knowledge.</p>
<p>Common sense tells you that you should stop trying to increase understanding at a point when the curve starts to level off and start building something.</p>
<div id="attachment_46" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.globalbeach.com/wp-content/uploads/2008/10/itn_chart_04.jpg"><img class="size-medium wp-image-46" title="Requirements gathering and build" src="http://blog.globalbeach.com/wp-content/uploads/2008/10/itn_chart_04.jpg" alt="When to start building" width="300" height="225" /></a><p class="wp-caption-text">When to start building</p></div>
<p>The trick is knowing how long it&#8217;s going to take to reach that point, recognising that you&#8217;ve got there and knowing what to do next&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalbeach.com/2008/10/24/here-we-go-gathering-requirements-in-october/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
