<?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>Conceptric &#187; agile</title>
	<atom:link href="http://www.conceptric.co.uk/tag/agile/feed" rel="self" type="application/rss+xml" />
	<link>http://www.conceptric.co.uk</link>
	<description>Ideas and Applications</description>
	<lastBuildDate>Thu, 11 Feb 2010 20:51:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Can humanity buck the trend?</title>
		<link>http://www.conceptric.co.uk/can-humanity-buck-the-trend.htm</link>
		<comments>http://www.conceptric.co.uk/can-humanity-buck-the-trend.htm#comments</comments>
		<pubDate>Thu, 03 Dec 2009 16:00:44 +0000</pubDate>
		<dc:creator>James Whinfrey</dc:creator>
				<category><![CDATA[Personal Perspectives]]></category>
		<category><![CDATA[adaptation]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[evolution]]></category>

		<guid isPermaLink="false">http://www.conceptric.co.uk/?p=317</guid>
		<description><![CDATA[We evolved to be adaptable as a response to environmental uncertainty. Have we created a social structure that neutralises this attribute for avoiding extinction?]]></description>
			<content:encoded><![CDATA[<p>It&rsquo;s a pattern that&rsquo;s played out time after time throughout the fossil record: complex dominant species almost always lose out in the event of rapid environmental changes. It&rsquo;s their very nature that excludes the flexibility needed to survive. </p>
<p>During resulting <a href="http://en.wikipedia.org/wiki/Extinction_event">extinction events</a>, the number of higher species is radically reduced, along with the number of individuals of the surviving species, making more space for evolution to act in the context of the prevailing environmental conditions.</p>
<p>It&rsquo;s this relationship with our environment that may be the reason we evolved into our current form. Given our complexity and attendant vulnerability, the evolutionary response to our unpredictable world was to produce a more adaptable and flexible form. </p>
<p>Walking upright freed our hands and coupled to a bigger brain has allowed us to develop existing tool use and problem solving skills. In the natural world we&rsquo;re puny creatures, but adaptation is our greatest asset, but one that can be applied in two ways.</p>
<p>Millions of years have passed and we&rsquo;ve become accustomed to altering the inconvenient parts of our environment rather than adapting to new conditions, but one day we&rsquo;ll come to a point where the magnitude of change is too great. </p>
<p>It&rsquo;s inevitable that the <a href="http://www.guardian.co.uk/environment/2009/nov/30/era-of-climate-stability-end">current abnormal period of climate stability will come to an end</a>, and my concern is that we&rsquo;ve become too numerous and rigid in our social organisation to apply the fruits of our evolution to the task of rapid adaptation. </p>
<p>We&rsquo;ve become optimisers rather than innovators, trying to extract every last drop instead of searching for different solutions. We assess everything in terms of it&rsquo;s cash price and expend our efforts in developing new regulations. We fail to find the important solutions when we need them, should we be surprised? </p>
<p>Imagination is the best part of being human, and it needs time and intellectual freedom to thrive, commodities I&rsquo;ve found to be increasingly rare in our modern world. A return to uncertainty may be what our species really needs to rediscover it&#8217;s full potential.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.conceptric.co.uk/can-humanity-buck-the-trend.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What about Agile politics?</title>
		<link>http://www.conceptric.co.uk/what-about-agile-politics.htm</link>
		<comments>http://www.conceptric.co.uk/what-about-agile-politics.htm#comments</comments>
		<pubDate>Tue, 13 Jan 2009 17:22:32 +0000</pubDate>
		<dc:creator>James Whinfrey</dc:creator>
				<category><![CDATA[Everything]]></category>
		<category><![CDATA[Personal Perspectives]]></category>
		<category><![CDATA[Posts]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[government]]></category>
		<category><![CDATA[refactoring]]></category>

		<guid isPermaLink="false">http://www.conceptric.co.uk/?p=135</guid>
		<description><![CDATA[Whilst I'm on the topic of Agility across disciplines, what about the administration of the whole Country?]]></description>
			<content:encoded><![CDATA[<p>It seems to me that the Government would benefit from implementing the simplest thing that could possibly work.</p>
<p>Tax credits were an obscure approach to returning public money to those most in need, but often the least likely to understand how get them. The system complexity justifies a <a href="http://www.hmrc.gov.uk/TAXCREDITS/">tax credits section</a> in the Revenue and Customs website.</p>
<p><a href="http://news.bbc.co.uk/1/hi/uk_politics/7745340.stm">Cutting <acronym title="Value Added Tax">VAT</acronym> by 2.5%</a> in order to stimulate the economy never seemed very likely to work. Unless &#8216;work&#8217; is defined as creating additional work for businesses that need to cut cost. Several market analysts speculated this tax cut was administratively simpler than trying to get the Treasury to work out how to give tax refunds.</p>
<p>Finally, there&#8217;s the latest plan to <a href="http://www.independent.co.uk/news/uk/politics/pound2500-for-employing-longterm-jobless-1302489.html">encourage the employment of long term unemployed</a> by offering employers &pound;2500 for each individual. On Bloomberg this morning, Hugo Sellert &#8212; Head of Economic research at Monster Worldwide &#8212; was less than convinced. He was a little concerned about skewing the labour market: shouldn&#8217;t individual employment be determined on experience and skills, not whether there&#8217;s a handout?</p>
<p>My thoughts turned to another key discipline of Agile development, <a href="http://www.refactoring.com/">refactoring</a>: leaving code cleaner, and easier to understand, than you found it. This isn&#8217;t done as a separate activity. Whenever you&#8217;re working on a particular piece of code, look at it as a whole and ask yourself, &#8220;<em>could this be improved</em>&#8221;?</p>
<p>Refactoring the legislative system of the Country would be a huge job, but done incrementally not impossible. Take an Agile approach and one day we might find we have a much less buggy society.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.conceptric.co.uk/what-about-agile-politics.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why I like to be Agile</title>
		<link>http://www.conceptric.co.uk/why-i-like-to-be-agile.htm</link>
		<comments>http://www.conceptric.co.uk/why-i-like-to-be-agile.htm#comments</comments>
		<pubDate>Fri, 07 Nov 2008 20:25:11 +0000</pubDate>
		<dc:creator>James Whinfrey</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Posts]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://www.conceptric.co.uk/?p=109</guid>
		<description><![CDATA[I've practised traditional project management techniques in Heavy Engineering, studied their use in Software Engineering, and found problems throughout. Why am I so interested in Agile techniques?]]></description>
			<content:encoded><![CDATA[<p>Let&#8217;s face the reality that no matter how clear the project goals seemed at inception, they rarely look the same by the end. I&#8217;ve worked on projects where the whole scope of the project changed between the initial planning phase and the start of the technical work. What&#8217;s more the timescale tends to shift on a daily basis and your management keep &#8216;borrowing&#8217; your resources for other vital work. This is the primary reason why I now prefer a more responsive approach; essential in a unstable world! </p>
<p>The Agile approach is more adaptable with respect to three key project variables; only the last of which, in my experience, is considered flexible in the waterfall world of engineering.</p>
<ul>
<li>Scope.</li>
<li>Time.</li>
<li>Resources.</li>
</ul>
<h3>Scope contraction.</h3>
<p>Scope flexibility is something of a taboo subject. Scope is something that is added to in both a controlled manner &#8212; providing additional revenue &#8212; or uncontrolled creep. But the point of any project is delivering something that achieves the customers business goals. This is not necessarily the product that they, or the development team, initially envisaged. </p>
<p>One uncomfortably overspent project lead to the realisation that I could have achieved the business objective well under budget by actually drastically reducing the scope. It wouldn&#8217;t have delivered exactly what the customer expected, but it would easily have achieved their goal. </p>
<p>Which is more important, expectation or results? If you have a customer representative on the team it&#8217;s much easier to explain your rationale, and the chances are they&#8217;ll like the idea of results with less work as much as you do.</p>
<h3>Timescales.</h3>
<p>If you have a customer that doesn&#8217;t mind when you deliver, you&#8217;re a rare and lucky project manager, though you&#8217;ll never actually finish anything; deadlines do provide focus. So set plenty of deadlines, that&#8217;s what iterations and releases are about. </p>
<p>Try to answer the most pressing question as quickly as possible. Leave refinements and those ever present scope changes to the next iteration, it&#8217;s probably only a few days away. </p>
<p>This rapid cycle provides useful results, whilst allowing the flexibility to quickly change direction without that wasteful churn: just tidy this up a bit then I&#8217;ll be with you.</p>
<h3>And the resources?</h3>
<p>I&#8217;m afraid the project manager has to earn their money too. Line management will always have the urge to reassign any of your key people they feel aren&#8217;t being fully employed. It&#8217;s important to emphasise that the productivity of any team depends on preventing this happening.</p>
<p>Agile teams don&#8217;t strictly segregate workload on the basis of job descriptions, that&#8217;s why you need versatile individuals. Unfortunately, these are exactly the type of individuals that those managers will want to steal away. Removing the demarcation of tasks will help ensure everyone is kept busy and that work is conducted using the minimum number of people.</p>
<h3>Better than the Waterfall.</h3>
<p>I&#8217;ve found actual project goals shift too frequently for effective use of the Waterfall approach to project management. Using iterations within this framework always felt unnatural; how do you decide how may there will be and when will you actually deliver something?</p>
<p>An Agile approach perversely leaves me feeling more in control by worrying less about control. There are a huge array of Agile software development techniques, many of which can be adapted to other engineering disciplines. </p>
<p>For Software Engineering, I would recommend reading <a href="http://www.amazon.co.uk/Art-Agile-Development-James-Shore/dp/0596527675/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1226088721&#038;sr=8-1"><cite>The Art of Agile Development</cite></a>. The <a href="http://www.agilealliance.org/home">Agile Alliance</a> promote the use of Agile techniques, so take a look at the <a href="http://www.agilemanifesto.org/"><cite>Manifesto for Agile Software Development</cite></a> upon which it&#8217;s all based.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.conceptric.co.uk/why-i-like-to-be-agile.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming from a different angle</title>
		<link>http://www.conceptric.co.uk/programming-from-a-different-angle.htm</link>
		<comments>http://www.conceptric.co.uk/programming-from-a-different-angle.htm#comments</comments>
		<pubDate>Fri, 15 Feb 2008 21:25:52 +0000</pubDate>
		<dc:creator>James Whinfrey</dc:creator>
				<category><![CDATA[Everything]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[ant]]></category>
		<category><![CDATA[simpletest]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.jameswhinfrey.co.uk/programming-from-a-different-angle.htm</guid>
		<description><![CDATA[I don&#8217;t feel I&#8217;ve got the programming experience I&#8217;d like for my future plans. So, I&#8217;ve got one of those personal project &#8212; the type that you never seem to get round to &#8212; in mind to provide me with a good workout.
Which programming platform to use for the server-side application? Whilst I have to [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t feel I&#8217;ve got the programming experience I&#8217;d like for my future plans. So, I&#8217;ve got one of those personal project &#8212; the type that you never seem to get round to &#8212; in mind to provide me with a good workout.</p>
<p>Which programming platform to use for the server-side application? Whilst I have to admit that I&#8217;m not the greatest fan of PHP, it&#8217;s definitely the best option. Why? Because I need to run this application locally on a minimal server and PHP is available wherever you find Apache, and the skills should have some commercial value.</p>
<p>I&#8217;ve recently read a great deal about agile development, <abbr title="Test Driven Development">TDD</abbr> and employing software design patterns. As part of this project I&#8217;d like to apply some of what I&#8217;ve learned.</p>
<h3>A test framework.</h3>
<p>Now I&#8217;m going to need a testing framework, and I&#8217;ve gone for <a href="http://simpletest.org/">SimpleTest</a>. This framework not only provides unit testing, but the ability to create tests for web pages. I prefer to run my test suites from the command line, which is relatively easy to arrange with the TextReporter object. I&#8217;ve combined the whole thing with <a href="http://ant.apache.org/">Apache Ant</a> to automate most of the tasks in the project, including deployment.</p>
<p>Unfortunately, it appears that SimpleTest doesn&#8217;t play particularly well with PHP5, although they&#8217;re in the process of making the transition. </p>
<p>I&#8217;ve encountered the mass of error messages generated as the result of <code>E_STRICT</code>. This is easily solved by using a customised php.ini file as an option at the command prompt when executing the test code. Once this is done you can see the actual test messages!</p>
<p>A more significant problem is that the Mock object code cannot be called as static class methods in the way the documentation suggests. A little snooping through the code leads me to think that it&#8217;s due to PHP4 without the <code>static</code> keyword in the method headers required by PHP5. I don&#8217;t have a work-round for this, and I don&#8217;t want to have to alter all this code. I hope they address this as the transition to PHP5 continues, but at the moment my code is simple enough for me to write my own mocks.</p>
<p>When all is said and done, if you know how to use any of the xUnit test frameworks, SimpleTest is very easy to set-up and use.</p>
<h3>Driving with tests.</h3>
<p>Simple the tests may be, but using them to steer the direction of your coding effort takes a different mindset. The hardest part is learning which questions to ask when developing your tests. Asking the right questions about functionality will result in clean, precise code.</p>
<p>There&#8217;s always a temptation add just a little more functionality, but resist it. The point is to remain in control of the code at all times. When it&#8217;s not working, it must be because you&#8217;ve added new tests describing new functionality. The code should never contain functionality that hasn&#8217;t been demanded by a test. Good refactoring can produce beautiful code without breaking the tests &#8212; still in control.</p>
<p>I think I&#8217;m getting the hang of it in relatively simple cases, but there&#8217;s much more to learn. I&#8217;ve found it a very liberating way to develop software, whilst remaining in total control &#8212; you are using version control?</p>
<h3>Patterns in the code</h3>
<p>Whilst there are loads of <abbr title="Model&#8212;View&#8212;Controller">MVC</abbr> based frameworks out there, I want to know how it works first hand. This topic is worth an article of it&#8217;s own, and that&#8217;s what I&#8217;ll give it.</p>
<p>There&#8217;s a good chance that the core application model will need to implement a facade pattern, but lets not make any assumptions.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.conceptric.co.uk/programming-from-a-different-angle.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
