<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>DevGorilla - not your average coding monkey</title>
	<atom:link href="http://devgorilla.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://devgorilla.wordpress.com</link>
	<description>A blog on the trials and tribulations encountered within the development jungle</description>
	<lastBuildDate>Tue, 13 Jan 2009 12:39:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='devgorilla.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>DevGorilla - not your average coding monkey</title>
		<link>http://devgorilla.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://devgorilla.wordpress.com/osd.xml" title="DevGorilla - not your average coding monkey" />
	<atom:link rel='hub' href='http://devgorilla.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Velocity and Stories: Agile Development</title>
		<link>http://devgorilla.wordpress.com/2009/01/12/velocities-and-stories-using-agile/</link>
		<comments>http://devgorilla.wordpress.com/2009/01/12/velocities-and-stories-using-agile/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 20:22:11 +0000</pubDate>
		<dc:creator>DevGorilla</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[iteration]]></category>
		<category><![CDATA[iterative approach]]></category>
		<category><![CDATA[spec]]></category>
		<category><![CDATA[specification]]></category>

		<guid isPermaLink="false">http://devgorilla.wordpress.com/?p=18</guid>
		<description><![CDATA[&#8220;We missed that in the spec &#8211; never mind, we&#8217;ll create a new story to cover it!&#8221; Recently,  I got the chance to work on a project which is using some of the principles from Agile Methodologies that are out there. The last time I mentioned we were using it,  I was watching Agile from an outsiders [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgorilla.wordpress.com&amp;blog=3450187&amp;post=18&amp;subd=devgorilla&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em><strong>&#8220;We missed that in the spec &#8211; never mind, we&#8217;ll create a new story to cover it!&#8221;</strong></em></p>
<p>Recently,  I got the chance to work on a project which is using some of the principles from Agile Methodologies that are out there. The last time <a title="Now, Where the hell is THAT in the spec?" href="http://devgorilla.wordpress.com/2008/04/18/now-where-the-hell-is-that-mentioned-in-the-spec/" target="_blank">I mentioned we were using it</a>,  I was watching Agile from an outsiders perspective. Now that I&#8217;m experiencing Agile for myself, I have to say its been quite interesting and indeed enjoyable.</p>
<p>So, heres the lowdown on how we&#8217;ve been doing it&#8230;.<span id="more-18"></span></p>
<p><strong>Agile: Our Story</strong></p>
<p> The first eight weeks consisted of 1 project leader and 3 developers (though this varied based on staff holidays and other immediate requirements). The idea was to create a new module which will be used to manage business processes, and to trial Agile Processes to assist in the development. The project is still ongoing, but has already started to bring tangible results, and indeed benefits to the team.</p>
<p>I won&#8217;t go into the technical details, save to say it involves c#, ASP. Net and C++ with SQL and Oracle Database back-end on an existing mature system.</p>
<p><strong>Iteratively Speaking</strong></p>
<p>There were several stages we went through,used a lot of new terms, and we were introduced a way of thinking which goes against traditional development processes.  Essentially the process used an <em>iterative</em> <em>approach</em>  which evolves over time. So much so, even the process itself has evolved to suit the needs of the team. I know this is not a new approach, but it is groundbreaking for the company I work for!</p>
<p>Work is carried out in <strong>iterations </strong>which usually last about 2 working weeks. what kind of processes typically happened during this follows.</p>
<p><strong>Development Review: &#8220;Whats next?&#8221;</strong></p>
<p>This process, usually  right at the start of an iteration allows the team to discuss, and come up with improvements and suggestions to the original &#8220;idea&#8221;and/or specification. This also allows the team to concentrate on a specific area of functionality, which can be driven by the needs of stake holders and the project  leader.</p>
<p>In this phase, which can take usually a day or 2, <strong>User Stories </strong>are generated. This is based on discussions over what is required as priority of this iteration. In our case included a already defined framework-specification which was to evolve over a period of time.  This doesn&#8217;t need to be the case, however e.g. &#8220;back of a cigarette packet&#8221; approach to the spec.</p>
<p><strong>&#8220;A long time ago, in a galaxy far far away&#8230;&#8221;<br />
User Stories </strong>are generally written on cards for ease of handling, they consist of 3 card types to make them up:</p>
<p><strong>Storys<br />
</strong>What a user of the system needs to do to achieve a goal. This equates to 1 functional unit, and usually comes in the form:</p>
<blockquote><p>As an <em>&lt;Actor in the system&gt;</em></p>
<p>I Want to <em>&lt;Do Something&gt;</em></p>
<p>So that <em>&lt;the Actor can achieve some goal&gt;</em></p></blockquote>
<p>This is useful for stake holders to see what is required by a specific functional unit, and also guides the developer in the right direction to achieve the functional goal. This card also holds the total estimated units and the story number on it.</p>
<p><strong>Tasks </strong></p>
<p>These are the estimated steps a developer needs to do. Generally the idea is to keep the units of work in the range of 0.5 &#8211; 3 units. The guideline is that if its too much more than this, then it s too big a task and needs to be split out. If its too small it should be incorporated into another task. These are designated with S<em>tory number.Task Number (e.g. 33.1) </em>.</p>
<p><strong>Acceptance Tests</strong></p>
<p>An acceptance test is the test done by a project leader to verify that the work carried out in the tasks is complete.<br />
This gave the steps needed to carry out the test and the expected outcome. there can be several acceptance tests, which when accepted by the project leader sign off the work. These are designated with letters i.e. <em>Story Number.Test Letter (e.g. 33.B)</em></p>
<p> <strong>Estimates: More than just a finger in the air&#8230;..</strong></p>
<p>This development review allows a rough estimate to be placed.  Estimates are not done in actual time units rather an imaginary unit. (as chosen by the team &#8211; e.g. &#8220;bananas&#8221;).  The estimates are based on a collaborative  discussion between the members of the team. The idea is that a developer day is not always a full working day,  as developers can be distracted, disturbed, or can be pulled into other work. This is where the idea of <strong>Velocity </strong>comes in, to allow a gauge of speed of the development.</p>
<p><strong>Velocity: Its Not Terminal&#8230;..</strong></p>
<p>defined as how many imaginary units (e.g. &#8220;bananas&#8221; ) that a developer would do in an average day.</p>
<p>The Idea is that at the start you estimate the velocity as being low (e.g. 0.5 or 50%) to allow the team to get used to the project.  Then enough stories are put into to match the total units for the Iteration that have been estimated into the future work pile.  this is calculated as:</p>
<blockquote><p> <em>Velocity * days in iteration * developers</em></p></blockquote>
<p>As each iteration is completed, the velocity is increased a bit for the next, to get the velocity closer to 1. generally this doesn&#8217;t hit 1, but ideally (and as has happened on our project) the value gets to 0.7 when at full stretch.</p>
<p><strong>Ouch! That hurts&#8230;</strong></p>
<p>But what about things that cant be dealt with as a user story i hear you ask ? Typically the kind of things I&#8217;ve seen that fall into this category include:</p>
<ul>
<li>Clarification on how something is supposed to function, as it is not currently clear from discussions or from speccing it.</li>
<li>Investigation of the use of a potential technology to aid in productivity and the user experience.</li>
<li>Omissions (where a spec is involved) that need to be fleshed out.</li>
</ul>
<p>this is where a <strong>Spike </strong>comes in.</p>
<p><strong> </strong>This is an item which cannot be answered straight away and needs further guidance. This allows someone to go and get an answer, or to investigate. This is also estimated, to allow it to be put into the development cycle.</p>
<p>The next phase is to actually to get on with it<strong>.</strong></p>
<p><strong>Do the work! </strong></p>
<p>The developers take the discussed tasks and stories and develop. The self organising nature of  the team allows each member to decide which unit of work to do next. This means they can develop to their strengths, and can concentrate on areas of interest and or priority.</p>
<p>At the start of the iteration, User Stories are placed in one of the following phases:</p>
<ol>
<li><strong>Future  Work</strong>: This is work that will not be in the current iteration unless the current list of tasks have been completed.</li>
<li><strong>Current Iteration</strong>: this is the work that is currently in the iteration to be done</li>
<li><strong>Awaiting Sign-off</strong>: this is work completed, but not yet signed off.</li>
<li><strong>Completed Work</strong>: Work that has been acceptance tested and signed off.</li>
</ol>
<p>The rule is (generally) that a developer should only be working on one task in the current iteration. To keep track of progress a daily briefing meeting known as a <strong>Stand-up </strong>takes place to keep track of progress during the iteration</p>
<p><strong>Standing room only</strong></p>
<p>The team gets together daily to discuss essential development points since the previous meeting / stand-up. The idea is that standing up keeps the meeting to a minimum, because it&#8217;s generally uncomfortable to stand around too long. This keeps focus on important points.  Everyone is then aware of the progression of the team towards the end goal.</p>
<p>The typical things discussed are:</p>
<ul>
<li>What has been done since last meeting (each member)</li>
<li>What is going to be done for next</li>
<li>What problems and challenges encountered</li>
<li>Status from external stakeholders on specific functional issues</li>
</ul>
<p>This in our case meant that stand ups only last around a few minutes, unless there is a significant technical issue. These were usually handled as a separate technical discussion, between developers and not with the project leader unless it affected functionality.</p>
<p><strong>Why Agile Works for us?</strong></p>
<ul>
<li>Allows flexibility to be put into the design.</li>
<li>The functions evolve as iterations pass and work is reviewed.</li>
<li>A collaborative approach engages all relevant members of the team and the stakeholders.</li>
<li>The work is in easily digestible units.</li>
<li>Developers Feel ownership over their work.</li>
<li>Better estimations of tme taken to complete the work.</li>
<li>Early sign off of work, close to the development time.</li>
</ul>
<p><strong>So what do I think?</strong></p>
<p>I&#8217;m sure there&#8217;s more that can be done to make this truly agile,  For example:</p>
<ul>
<li>Shorter release to market times.  <em>In reality this might not have been possible on our product due to the nature of our customers and the maturity of the product. Also the module is some way off being available for RTM.</em></li>
<li>Agile from the requirements phase. this means the design would then be driven directly by stakeholders</li>
</ul>
<p>I&#8217;m sure I&#8217;ve only scratched the surface of the tools and methodologies available, but hopefully this gives an idea of how we used it and the benefits of using Agile Software Development.</p>
<p>The use agile methods can be controversial and sparks a great deal of debate. Needless to say I&#8217;ve become a proponent of this so far. I recommend that you research more into Agile and what this means, so that you can use the available tools to suit your needs.</p>
<p><strong>Further Reading</strong></p>
<p>This <a title="Agile software development " href="http://en.wikipedia.org/wiki/Agile_software_development" target="_blank">wikipedia page</a> gives a good starting point for reading up on it. Any more links that you can find would also be helpful!</p>
<br />Posted in Agile Development, Requirements Tagged: Agile, Development, iteration, iterative approach, Requirements, spec, specification <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devgorilla.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devgorilla.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devgorilla.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devgorilla.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/devgorilla.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/devgorilla.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/devgorilla.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/devgorilla.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devgorilla.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devgorilla.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devgorilla.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devgorilla.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devgorilla.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devgorilla.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgorilla.wordpress.com&amp;blog=3450187&amp;post=18&amp;subd=devgorilla&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devgorilla.wordpress.com/2009/01/12/velocities-and-stories-using-agile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3e3ff798b8b168d2322dee461642a98c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">DevGorilla</media:title>
		</media:content>
	</item>
		<item>
		<title>Doing Maintenance on ASP sucks!</title>
		<link>http://devgorilla.wordpress.com/2008/09/30/doing-maintenance-on-asp-sucks/</link>
		<comments>http://devgorilla.wordpress.com/2008/09/30/doing-maintenance-on-asp-sucks/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 22:41:55 +0000</pubDate>
		<dc:creator>DevGorilla</dc:creator>
				<category><![CDATA[development rants]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://devgorilla.wordpress.com/?p=15</guid>
		<description><![CDATA[RANT WARNING! Firstly a whinge about ASP classic and yet another case of failing to keep pace.  Whilst I understand there are loads of classic asp pages out there (and these can be quite good), sometimes I wish things would move along with the times.  What I mean is no-one has really maintained the pile of cr*p pages [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgorilla.wordpress.com&amp;blog=3450187&amp;post=15&amp;subd=devgorilla&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>RANT WARNING!</strong></p>
<p>Firstly a whinge about ASP classic and yet another case of failing to keep pace.  Whilst I understand there are loads of classic asp pages out there (and these can be quite good), sometimes I wish things would move along with the times.  What I mean is no-one has really maintained the pile of cr*p pages I&#8217;ve been lumbered with (for the 2nd time!),  save where a functional change is required. No Housekeeping has ever been performed, so it has become more difficult to maintain. its totally frustrating!!<span id="more-15"></span></p>
<p>Heres why I hate the way this particular &#8220;web app&#8221; is structured:</p>
<ol>
<li><strong>Easy To Break:</strong> Changing something simple can break some other function that worked previously extremely easily, i.e. changing something like the format of data coming out can break other things.</li>
<li><strong>Lack Of Modularity</strong>: i.e. it isn&#8217;t written in a way you can alter parts of it without affecting others significantly, and it is written in a scripting style.</li>
<li><strong>Post-back Data Difficult to keep</strong>: Adding your own session handling is a labourious task, especially between post-backs.</li>
<li><strong>it is a Security Nightmare for the DB:</strong> especially when considering the asp web in question has a place to put your own sql, leaving it open to SQL injection attacks galore! &#8211; <em>I have raised this as a concern with management but the as the system is internal they do not think its a threat. (a bit naive I think on their part&#8230;.as this would allow anyone, if you knew what you were doing, blatantly to hack our live database!) </em></li>
<li><strong>Poorly Maintained: </strong>any functional changes to this code have been &#8220;Bodged&#8221; , wthout any proper thought. Unfortunately this breeds the &#8220;Bodge&#8221; Approach so that the application never really becomes clean.</li>
</ol>
<p>I think I&#8217;ve been lumbered with the functional changes, because none of the other developers will or are inclined to touch it with a barge pole. The insulting part is that I&#8217;m in the process of becoming an MCPD Enterprise Applications in .Net 2.0 (with 3.5 to follow), having already qualified as Windows Developer. So I feel it&#8217;s totally wasting the skills I&#8217;ve picked up. As you can imagine this can be demoralising.  </p>
<p>Now before you go &#8220;stop moaning, Why don&#8217;t you Migrate it to .Net?&#8221; &#8230; I have also suggested and looked into it but because &#8220;it&#8217;s an internal application&#8221;, I&#8217;m told it doesn&#8217;t warrant a proper and much needed face-lift, so won&#8217;t be given the time.</p>
<p>Also, I reckon at first glance, the conversion would probably take around 4-6 man weeks and some testing besides to complete. Time unfortunately I don&#8217;t have spare (I do have a life!),</p>
<p><em>But i&#8217;m willing to look at ways the problems can be resolved incrementally.</em></p>
<p>So,  bearing in mind that this is an Internal Application not directly affecting the customer, but helps in internal functions i.e. support and development, the question is this; should it stay on classic ASP, because it works and has done for 10 years? Or does the application need to be migrated, to bring the benefits of having better support,  quicker to write new functionality, additional modularity and security features? </p>
<p>Also, What arguments are there for migrating and against? And could there be a way to migrate slowly? For example could the classic ASP Pages hook off a serviced component written in .Net, rather than VB6 MTS ? Something to think about&#8230;</p>
<br />Posted in development rants, Uncategorized  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devgorilla.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devgorilla.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devgorilla.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devgorilla.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/devgorilla.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/devgorilla.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/devgorilla.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/devgorilla.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devgorilla.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devgorilla.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devgorilla.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devgorilla.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devgorilla.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devgorilla.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgorilla.wordpress.com&amp;blog=3450187&amp;post=15&amp;subd=devgorilla&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devgorilla.wordpress.com/2008/09/30/doing-maintenance-on-asp-sucks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3e3ff798b8b168d2322dee461642a98c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">DevGorilla</media:title>
		</media:content>
	</item>
		<item>
		<title>Just a quick note&#8230;</title>
		<link>http://devgorilla.wordpress.com/2008/09/27/just-a-quick-note/</link>
		<comments>http://devgorilla.wordpress.com/2008/09/27/just-a-quick-note/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 23:49:07 +0000</pubDate>
		<dc:creator>DevGorilla</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://devgorilla.wordpress.com/?p=12</guid>
		<description><![CDATA[Its been a  very long while, and Typically i&#8217;ve been a bit rubbish on this&#8230; but I&#8217;m going to stop procrastinating and start posting my ramblings, albeit about Dev type stuff, a lot more often!  I&#8217;m going to attempt to tackle subjects, some of which I still need to get my head round. These will be coming up soon on this blog. Hopefully..and in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgorilla.wordpress.com&amp;blog=3450187&amp;post=12&amp;subd=devgorilla&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Its been a  very long while, and Typically i&#8217;ve been a bit rubbish on this&#8230; but I&#8217;m going to stop procrastinating and start posting my ramblings, albeit about Dev type stuff, a lot more often! </p>
<p>I&#8217;m going to attempt to tackle subjects, some of which I still need to get my head round. These will be coming up soon on this blog. Hopefully..and in no particular order, they may include:</p>
<ul>
<li>Agile Process pilot  -observations of what worked and what didn&#8217;t?</li>
<li>Test Driven Development -  in simple terms</li>
<li>C# feature of the week - Lambda functions (I think the c# feature of the week might actually turn into a regular post !)</li>
<li>Design Pattern for Dummies (Another Idea for regular feature!)</li>
<li>A brief overview of Windows Workflow Foundation</li>
</ul>
<p>I&#8217;m using the blog to help me learn and understand, as well as help others. We&#8217;ll see how successful that is&#8230;..</p>
<br />Posted in Uncategorized  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devgorilla.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devgorilla.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devgorilla.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devgorilla.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/devgorilla.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/devgorilla.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/devgorilla.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/devgorilla.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devgorilla.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devgorilla.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devgorilla.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devgorilla.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devgorilla.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devgorilla.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgorilla.wordpress.com&amp;blog=3450187&amp;post=12&amp;subd=devgorilla&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devgorilla.wordpress.com/2008/09/27/just-a-quick-note/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3e3ff798b8b168d2322dee461642a98c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">DevGorilla</media:title>
		</media:content>
	</item>
		<item>
		<title>Now, where the hell is THAT mentioned in the Spec???</title>
		<link>http://devgorilla.wordpress.com/2008/04/18/now-where-the-hell-is-that-mentioned-in-the-spec/</link>
		<comments>http://devgorilla.wordpress.com/2008/04/18/now-where-the-hell-is-that-mentioned-in-the-spec/#comments</comments>
		<pubDate>Fri, 18 Apr 2008 18:19:20 +0000</pubDate>
		<dc:creator>DevGorilla</dc:creator>
				<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[spec]]></category>
		<category><![CDATA[specification]]></category>

		<guid isPermaLink="false">http://devgorilla.wordpress.com/?p=3</guid>
		<description><![CDATA[This will be my first actual Posting related to what I do, so please be gentle! DISCLAIMER Firstly, I&#8217;d like to say that this article is not intended to to have a pop at individuals, rather the problems with processes which can give developers cause for frustration. They&#8217;re just my generalised opinions, and examples are [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgorilla.wordpress.com&amp;blog=3450187&amp;post=3&amp;subd=devgorilla&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This will be my first actual Posting related to what I do, so please be gentle!</p>
<h3>DISCLAIMER</h3>
<p>Firstly, I&#8217;d like to say that this article is not intended to to have a pop at individuals, rather the problems with processes which can give developers cause for frustration.  They&#8217;re just my generalised opinions, and examples are here just to put my blog entry into context.</p>
<h3>Cups and Lids&#8230; man I&#8217;m thirsty!</h3>
<p>I&#8217;ve just read a recent, albeit small, <a title="Development Cycle 2.0" href="http://koder.wordpress.com/2008/04/16/development-cycle-20/" target="_blank">Blog entry</a> which highlighted the gap between stakeholders requirements and end products delivered within the software process. They summed it up in BASIC code&#8230;.it was typically succinct but it made a valid point.</p>
<p>It got me thinking about a lunchtime conversation I had with a fellow colleague who summed the way the traditional lifecycle works for many places, and indeed my current workplace. So I thought I&#8217;d have a go at writing about it.</p>
<p>He analogised with a Drinks Cup from a Fast food Restaurant. To Protect the guilty, we&#8217;ll call it FFS  or Fast Food Stores, or make up your own acronym of course!</p>
<p>I&#8217;m paraphrasing and adding artistic license, but here&#8217;s that  fictional conversation between a PM and a Developer they created in that analogy, which I hope sums up the problem&#8230;<span id="more-3"></span></p>
<blockquote><p><span style="color:#000000;"><strong>PM</strong>: Ok! For our Customers, FFS , We&#8217;d like a Soft Drinks Cup, as specified here&#8230; and we want it in X days&#8230;.</span></p>
<p><em><span style="color:#000000;">&lt; time passes&#8230;&gt;</span></em><br />
<span style="color:#000000;"><strong>Dev</strong>:  OK&#8230;Heres the Soft Drinks Cup you asked for&#8230;..</span></p>
<p><span style="color:#000000;"><strong>PM</strong>: The Cup is good but we just realised need a lid..</span></p>
<p><span style="color:#000000;"><strong>Dev</strong>: OK &#8230; thats wasn&#8217;t on was the original spec&#8230;. so you want a Lid? OK .. I&#8217;ll go make a lid</span></p>
<p><em><span style="color:#000000;">&lt;more time passes&#8230;&gt;</span></em></p>
<p><span style="color:#000000;"><strong>Dev</strong>: OK, So i&#8217;ve done the Lid. </span></p>
<p><span style="color:#000000;"><strong>PM</strong>: This isn&#8217;t the kind of lid we want.. it doesnt have button to signify if the contents are Diet..</span></p>
<p><span style="color:#000000;"><strong>Dev</strong>: but you asked for a lid, so I made a lid!</span></p>
<p><span style="color:#000000;"><strong>PM</strong>: but we want this too&#8230;oh and its missing a straw hole&#8230;. and we would like it in the time we allocated for Cup&#8230;oh&#8230; The deadline for getting the cups out to FFS was yesterday&#8230;.</span></p>
<p><span style="color:#000000;"><strong>Dev</strong>: <em>&lt;bangs head against the wall several times&gt;</em></span></p></blockquote>
<p>All too often, this is the kind of the problem I&#8217;ve seen in my relatively short career in the industry, and not just in a Dilbert Cartoon.</p>
<p>The problem is, you might think as a developer you&#8217;ve met the requirements with the end product, but then the requirements that were set out originally:</p>
<ul>
<li><strong>Did not cover important aspects which were core to the solution being realised.</strong></li>
<li><strong>Didn&#8217;t consider adequately the impact on dependant or legacy systems.</strong></li>
<li><strong>Changed mid flow due to stakeholder pressure.</strong></li>
<li><strong>Didn&#8217;t cover what the customer needs correctly early on in the process.</strong></li>
</ul>
<p>The list above is probably not exhaustive, are just 4 of the kinds of things I&#8217;ve seen.</p>
<h3>&#8220;It&#8217;s OK&#8230;.We&#8217;ll make it up as we go along&#8230;.&#8221;</h3>
<p>in particular, I&#8217;ve had recent experience of the first and the second point.</p>
<p>For example, I&#8217;ve seen a spec document was so sparse, that in many cases one line of notes became the spec for a large chunk of functionality!</p>
<p>This meant that when the document was picked up by the dev team after initial development review and the development was started, It needed several pages of amendments in a section reserved for development decisions. This a section which should be kept to a minimum, for small decisions.</p>
<p>These additions were just to cover all the scenarios not fully thought out, and to allow the new system to work with existing legacy system&#8217;s functionality. It meant some radical changes, which had there been more awareness of these, less work may have been needed and more understanding of the requirement would have been gained.</p>
<p>This suggested to me, that the spec <strong>really needed a further review before proceeding</strong>, involving at least the lead developer of the team working. This is could have been done once the existing functionality and dependencies had been reviewed within the development environment.</p>
<p>Or it could be that the process of gathering requirements, speccing it up, and development may not be appropriate to the environment.</p>
<p>Now I&#8217;m aware that the problems I&#8217;ve seen in practice may be unavoidable, and that can sometimes be necessary to work in this way. But I&#8217;m sure there&#8217;s got to be something out there could reduce this, which is  why I&#8217;m watching a recent development at work with some considerable interest&#8230;</p>
<h3>Into Agile, The (Not So) new way of thinking&#8230;.</h3>
<p>One of the guys has managed to persuade the boss to allow them to trial Agile Development methodologies (e.g. Xtreme Programming) on one of the projects in the department, which is looking promising.</p>
<p>It appears to give a much more incremental approach to the development life cycle, with shorter times between reviews. It appears be far more collaborative in nature, that engages the participants and gives a better understanding of the requirement.</p>
<h3>The Agile story so far&#8230;</h3>
<p>The project has been running for a little while. There was some initial resistance to this approach, as there always is to new things within a well established and, in this case, traditionally minded software company. But, now most of those new to the approach seem to be keener on it as it&#8217;s being used. Its highlighted some of the weaknesses above, along with other things like underestimates in Timescales.  Whether there is a more permanent change in the mindset of those involved remains to be seen, but I for one look forward to working with this in anger in the near future.</p>
<p>No doubt I&#8217;ll keep the blog posted on how its going&#8230;..</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/devgorilla.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/devgorilla.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devgorilla.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devgorilla.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devgorilla.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devgorilla.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/devgorilla.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/devgorilla.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/devgorilla.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/devgorilla.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devgorilla.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devgorilla.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devgorilla.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devgorilla.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devgorilla.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devgorilla.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgorilla.wordpress.com&amp;blog=3450187&amp;post=3&amp;subd=devgorilla&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devgorilla.wordpress.com/2008/04/18/now-where-the-hell-is-that-mentioned-in-the-spec/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3e3ff798b8b168d2322dee461642a98c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">DevGorilla</media:title>
		</media:content>
	</item>
		<item>
		<title>Welcome!</title>
		<link>http://devgorilla.wordpress.com/2008/04/11/welcome/</link>
		<comments>http://devgorilla.wordpress.com/2008/04/11/welcome/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 13:53:40 +0000</pubDate>
		<dc:creator>DevGorilla</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Welcome to DevGorilla, the blog that looks at the hairier side of C# Development. I&#8217;m going to use this blog to express opinions on some of the things I&#8217;ve picked up in the C# world, and to allow others to give their thoughts. More to follow soon!    <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgorilla.wordpress.com&amp;blog=3450187&amp;post=1&amp;subd=devgorilla&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Welcome to <strong>DevGorilla</strong>, the blog that looks at the hairier side of C# Development.</p>
<p>I&#8217;m going to use this blog to express opinions on some of the things I&#8217;ve picked up in the C# world, and to allow others to give their thoughts.</p>
<p>More to follow soon!</p>
<p> </p>
<p> </p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/devgorilla.wordpress.com/1/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/devgorilla.wordpress.com/1/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devgorilla.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devgorilla.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devgorilla.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devgorilla.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/devgorilla.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/devgorilla.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/devgorilla.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/devgorilla.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devgorilla.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devgorilla.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devgorilla.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devgorilla.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devgorilla.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devgorilla.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devgorilla.wordpress.com&amp;blog=3450187&amp;post=1&amp;subd=devgorilla&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devgorilla.wordpress.com/2008/04/11/welcome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3e3ff798b8b168d2322dee461642a98c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">DevGorilla</media:title>
		</media:content>
	</item>
	</channel>
</rss>
