<?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>Differential Progression &#187; Technology</title>
	<atom:link href="http://alex.kavanagh.name/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://alex.kavanagh.name</link>
	<description>Random thoughts, differential progress ...</description>
	<lastBuildDate>Sun, 11 Jul 2010 12:08:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Version Control: developing on branches rather than master/trunk</title>
		<link>http://alex.kavanagh.name/2010/04/version-control-dev-on-branches/</link>
		<comments>http://alex.kavanagh.name/2010/04/version-control-dev-on-branches/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 20:05:27 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://alex.kavanagh.name/?p=95</guid>
		<description><![CDATA[I&#8217;ve changed my mind.  It now seems that it is much more sensible to develop on branches rather than on master or trunk.  What am I on about? Well software source control or version control systems.  I tend to use &#8230; <a href="http://alex.kavanagh.name/2010/04/version-control-dev-on-branches/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve changed my mind.  It now seems that it is much more sensible to develop on branches rather than on master or trunk.  What am I on about?</p>
<p>Well software source control or version control systems.  I tend to use two: subversion and git.  Actually, I tend to use git whenever I can including when I have to use subversion. git svn is, in US terms, <em>awesum</em>.  One debate I have had on and off is whether to:</p>
<ul>
<li>Do development on trunk and put releases in branches &#8212; OR</li>
<li>Do development on branches, merge to trunk, and tag releases (or put them in their own branches).</li>
</ul>
<p>I&#8217;ve previously done the former, but I&#8217;m rapidly shifting to the latter.  My rather simple reasoning is that I want trunk/master to be, to all intents and purposes, a working copy of the latest software.  i.e. the software that is in trunk/master passes its tests, builds and basically does what it says it should on the tin.  The developing software is done on a branch and only merged back to trunk/master when it passes its tests.  Thus the process is:</p>
<ol>
<li>Branch</li>
<li>Develop &amp; test</li>
<li>Merge <em>from </em>trunk/master <em>to</em> the branch (i.e. pull any updates)</li>
<li>Test, test, test</li>
<li>Review code with buddy, senior dev, etc. (depending on your set-up)</li>
<li>Merge back into trunk as a finished feature.</li>
</ol>
<p>Even better, only work on code that is actually described in a ticket, bug, or on something like <a title="Pivotal s/w agile project management system" href="http://www.pivotaltracker.com/" target="_blank">pivotal</a>.  That way you stay focussed and only spend time on developing features/fixing bugs that the &#8216;customer&#8217; actually wants.</p>
<p>The only question then is what you do with releases?  My initial guess is to tag them as a release on trunk/master.   Then if you get a bug and have to maintain the old release then to branch at that point and maintain the release as its own &#8216;master&#8217; release branch.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Falex.kavanagh.name%2F2010%2F04%2Fversion-control-dev-on-branches%2F&amp;linkname=Version%20Control%3A%20developing%20on%20branches%20rather%20than%20master%2Ftrunk"><img src="http://alex.kavanagh.name/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://alex.kavanagh.name/2010/04/version-control-dev-on-branches/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Complex or Complicated?</title>
		<link>http://alex.kavanagh.name/2009/11/complex-or-complicated/</link>
		<comments>http://alex.kavanagh.name/2009/11/complex-or-complicated/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 19:52:53 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Complexity TaaD]]></category>

		<guid isPermaLink="false">http://alex.kavanagh.name/?p=81</guid>
		<description><![CDATA[The recent Think and a Drink (@TaaD) covered the wide ranging topic of Social Networking. There was much to take in and some genuinely useful tips and tricks for &#8216;upping&#8217; your game with regards to social networking from an internet &#8230; <a href="http://alex.kavanagh.name/2009/11/complex-or-complicated/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The recent Think and a Drink (@TaaD) covered the wide ranging topic of Social Networking. There was much to take in and some genuinely useful tips and tricks for &#8216;upping&#8217; your game with regards to social networking from an internet perspective.</p>
<p>However, one presentation tried to tackle the immensely challenging science of networking and attempted to explain the academic difference between complex and complicated.  Whilst the explanation of &#8216;complicated&#8217; was good, &#8216;complex&#8217; was almost just left as being &#8216;not like complicated&#8217;  &#8211; the explanation didn&#8217;t really explore the concept due, most likely, to a lack of time.  I&#8217;m going to try to touch on it here.</p>
<p>(<strong>Update</strong>:  This is about complexity theory, rather than the normal English use of the words.  Sorry for any confusion!)</p>
<p><span id="more-81"></span><strong>Complicated </strong>was described using the Boeing 747 example.  This one often pops up in popular literature as being an example of something that has a huge number of parts that fit together in a staggeringly intricate way.  View a plane as a whole you don&#8217;t see the myriad parts of the engine for example.  &#8220;Wow, that looks complex!&#8221; you might exclaim.  Well, no, it looks complicated.  You could, with sufficient time, completely dissasemble a 747 and lay out all of the constituent part.  You also could understand the purpose and of each and every part and how they fit together.  With time, there would be no mystery why the engine&#8217;s fan blade is shaped a particular way.</p>
<p><strong>Complex</strong> on the other hand, describes an entirely different set of phenomena.  The Boeing 747 is an example of a complicated system, where <strong>system</strong> is used to describe a set of components which together achieve a purpose.  The trouble with analysing <strong>complex</strong> systems is that looking at the parts tells you almost nothing about the system.  That is, you have to look at the <strong>interactions</strong> and <strong>feedback</strong> between the parts and the <strong>emergent</strong> behaviour that the interactions and feedback bring about.</p>
<p>It is probably easier to take a few examples.  Birds flocking and termite colonies are examples complex systems as are organisations and society.</p>
<p>Birds flocking is a bit of a classic and programs have been written to simulate it.  Each agent (or &#8216;bird&#8217;) only has a small set of behavioral characteristics or rules when flocking and completely analysing a bird does not give an inkling of the beauty of the motion that a flock of birds draws in the sky.  The behaviour of the flock emerges from the interactions of the whole and, critically, cannot be predicted by looking separately at the behaviour of each of the birds.</p>
<p>Termites are interesting in that they are quite simple and can be examined from a physical and biological perspective of the individual termite.  However, again, their social functions and mound building can only be studied at the level of the colony the social behaviours only emerge from the non-linear interactions and feedback between the termites which is one of the features of a complex system.</p>
<p>When humans are part of a system, each agent can make their own decisions and they will only do that based on their own partial perspectives of their own understanding of the system.  Hence society and politics.</p>
<p>So complex systems are non linear, involve feedback loops and resist reductive analysis; they can only be analysed at the macro level where the behaviour of the system emerges from it parts.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Falex.kavanagh.name%2F2009%2F11%2Fcomplex-or-complicated%2F&amp;linkname=Complex%20or%20Complicated%3F"><img src="http://alex.kavanagh.name/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://alex.kavanagh.name/2009/11/complex-or-complicated/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
