<?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>Principia &#187; ITSLM</title>
	<atom:link href="http://blog.principia-it.co.uk/category/itslm/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.principia-it.co.uk</link>
	<description>Power from Simplicity</description>
	<lastBuildDate>Tue, 07 Feb 2012 07:40:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.principia-it.co.uk' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/6f78c9f4917c134dd89eb02c5ec6e5d8?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Principia &#187; ITSLM</title>
		<link>http://blog.principia-it.co.uk</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.principia-it.co.uk/osd.xml" title="Principia" />
	<atom:link rel='hub' href='http://blog.principia-it.co.uk/?pushpress=hub'/>
		<item>
		<title>Why you&#8217;re wrong&#8230;</title>
		<link>http://blog.principia-it.co.uk/2011/06/28/why-youre-wrong/</link>
		<comments>http://blog.principia-it.co.uk/2011/06/28/why-youre-wrong/#comments</comments>
		<pubDate>Tue, 28 Jun 2011 17:45:17 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[CMCrossroads]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[ITSLM]]></category>
		<category><![CDATA[Plain Old Blog]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[CM]]></category>
		<category><![CDATA[cm definition]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM definition]]></category>

		<guid isPermaLink="false">http://blog.principia-it.co.uk/?p=942</guid>
		<description><![CDATA[&#8230;if you think build, change, or release management are part of configuration management. Bob Aiello lit the blue touch paper (again) on the debate about &#8216;what is configuration management?&#8217; and, once again, he seems to be trying to redefine configuration management to fit the role of Configuration Manager identified (incorrectly) in many organisations. This is absolutely the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.principia-it.co.uk&amp;blog=8032610&amp;post=942&amp;subd=principiait&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>&#8230;if you think build, change, or release management are part of configuration management.</p>
<p>Bob Aiello <a href="http://www.cmcrossroads.com/forums?func=view&amp;amp;catid=3&amp;amp;id=101750#101751">lit the blue touch paper</a> (again) on the debate about &#8216;what is configuration management?&#8217; and, once again, he seems to be trying to redefine configuration management to fit the role of Configuration Manager identified (incorrectly) in many organisations. This is absolutely the worst way to define configuration management.</p>
<p>Let&#8217;s now look at Bob&#8217;s list of things he want to dump on CM&#8217;s lawn.</p>
<blockquote><p>I often describe that there is a big CM and a little CM.</p>
<p>Big CM is the field of Configuration Management which I suggest includes:<br />
* Source Code Management<br />
* Build Engineering<br />
* Environment Configuration<br />
* Change Control (seven different types)<br />
* Release Management (coordination and engineering)<br />
* Deployment</p>
<p>while little CM refers to Configuration Control (of interfaces).</p>
<p style="text-align:right;">From Bob&#8217;s original post to <a href="http://www.cmcrossroads.com/forums?func=view&amp;amp;catid=3&amp;amp;id=101750#101751">this</a> thread</p>
</blockquote>
<p>This is simplifying CM?  In this article I hope to show why this redefinition is unnecessary, flawed, and ultimately damaging to CM.</p>
<p>If we were to accept that a discipline is correctly defined by looking at the roles identified in organisations then we would never get anywhere (much like this debate). I for example often have the role named &#8216;Configuration Manager&#8217; and yes  I also do builds, releases, etc as identified in Bob&#8217;s list. But then I also fetch coffee for the team and I do the odd bit of development or testing, I write technical documentation, perform product evaluations, project management, risk assessment, and I assist in problem solving for production systems—and yes, sometimes these things (with the exception of fetching the coffee) are part of my official role (although given the current economic climate, who knows). Does that mean these too are defining features of configuration management? No. This is a silly way to define a discipline. Even if you observe that &#8216;many&#8217; organisations lump the things together it <em>still </em>would not justify redefining configuration management because there&#8217;s absolutely nothing to gain, and much to lose, from doing so.</p>
<p>Configuration management (the discipline) has a perfectly sound definition (all together now); identification, change control, status accounting, and auditing. To change this definition is to define something other than configuration management and I have no objection to defining an umbrella term to cover all the disciplines identified by Bob; in fact I do, I call them Development Support Services.</p>
<p>Yes, we could do more to clearly communicate what CM is. Although, I cannot recall a time when I was ever confused by what the the four core activities were, the difficulty always stemmed from more subtle issues like &#8216;how do I select good configuration items&#8217; and Bob&#8217;s redefinition does precisely zero to address these problems. Adding more complexity by mixing in a load more disciplines is hardly likely to aid clarity.</p>
<p>If the idea is that by lumping all of these disciplines under the CM heading we can make CM appear more useful or make it an easier sell to management, then I think that&#8217;s horribly misguided too.</p>
<p style="padding-left:30px;"><strong>You:</strong> We want to introduce CM.<br />
<strong>Manager:</strong> What&#8217;s that when it&#8217;s at home?<br />
<strong>You:</strong> Oooh. Loads of good stuff. Build, release, change&#8230;.<br />
<strong>Manager:</strong> Hang on. We do most of that stuff already.<br />
<strong>You:</strong> Ah. But we&#8217;ll pull it all together under one heading. Make it more coherent. Make it better.<br />
<strong>Manager:</strong> Create a bottleneck you mean.<br />
<strong>You:</strong> No. No. No. We&#8217;d be specialists.<br />
<strong>Manager:</strong> So CM is just all this stuff under one team?<br />
<strong>You:</strong> Oh no. We also do identification, change control, status&#8230;. *noticing manager slip into comma* Oh, wait. Remember the ITIL course you went on?<br />
<strong>Manager:</strong> Oh yeah. That was a great couple of week. Great evenings&#8230;. Oh. I mean, yes, very valuable.<br />
<strong>You:</strong> And you remember them saying you needed a good CMDB?<br />
<strong>Manager:</strong> Yeees?<br />
<strong>You:</strong> Well that&#8217;s what we&#8217;ll do.<br />
<strong>Manager:</strong> As well as all this other stuff?<br />
<strong>You:</strong> Sure.<br />
<strong>Manager:</strong> And what about all the people already doing the other stuff?<br />
<strong>You:</strong> They&#8217;ll be part of my team.<br />
<strong>Manager:</strong> Hang on. Your team?<br />
<strong>You:</strong> Of course. They&#8217;ll be under the CM team.<br />
&#8230;. and so on&#8230;</p>
<p>Obviously I&#8217;m being slightly facetious, but hopefully you see my point; why complicate things? The manager is now more confused about what CM is than he was at the start. Sure, you&#8217;ve made a pitch to create a service team supporting development, but you&#8217;re not closer to furthering the CM cause than you would have been had you just reminded the manager about his ITIL course in the first place. You&#8217;ve made no real progress in explaining CM, you&#8217;ve just hidden it amongst a load of other stuff, possibly to the point of obscuring it completely.</p>
<p>&#8216;But we should move with the times&#8217; is a common enough response. I agree. Let&#8217;s draw a parallel to show how it&#8217;s unnecessary to abandon the existing definition of CM but still move with the times.</p>
<p>Science is decomposed into disciplines. Physicist will often joke (and in some cases only half-jokingly) that all other sciences are ultimately reducible to physics and therefore physics is the only science we need. This seems to be what those who want to lump all these other disciplines into configuration management are set on doing, lumping all the other disciplines into one. And, just as with the science example, it&#8217;s a bad idea.</p>
<p>Continuing the parallel between CM and science. Just because scientists resist the temptation to mangle all their disciplines together hardly means they&#8217;re not moving with the times. Biological science is unrecognisable from fifty years ago, but it&#8217;s still Biology. Similarly, configuration management&#8217;s scope has increased as we have more powerful tools we can realistically monitor and control to a finer and finer degree of detail. Where in the past a configuration item&#8217;s scope would be limited by the capacity of a paper system to realistically track it, we can now declare almost every file in a system to be a CI if we so choose.</p>
<p>What Bob (and I&#8217;ll use Bob as a proxy for all those who support the view that CM should absorb all these other disciplines) seems to be proposing is something like the following (I&#8217;ve reduced the list to just build and release management to keep the diagrams simple, my point is still made I think).</p>
<p><a href="http://principiait.files.wordpress.com/2011/06/post1.png"><img class="aligncenter size-full wp-image-943" title="CM as aggregator" src="http://principiait.files.wordpress.com/2011/06/post1.png?w=450" alt=""   /></a></p>
<p>Or, heaven forbid, the following.</p>
<p><a href="http://principiait.files.wordpress.com/2011/06/post2.png"><img class="aligncenter size-full wp-image-944" title="CM as container" src="http://principiait.files.wordpress.com/2011/06/post2.png?w=450" alt=""   /></a></p>
<p>In the first case build and release management become intrinsic parts (aggregate into) configuration management. In the second (shudder) they become inner classes, only accessible through the configuration management wrapper.</p>
<p>Both of these system architectures are&#8230; well. They&#8217;re terrible design. If a software engineer came to me with this design I&#8217;d fire his ass. (If people are sufficiently interested in me expanding this claim, I will do so in another post.)</p>
<p><a href="http://www.cmcrossroads.com/forums?func=view&amp;catid=3&amp;id=101750#101772">One observation</a>, made by Joe Townsend, was that the four activities that constitute configuration management are still to be performed within many of the sub-discplines identified by Bob. If this is so, then why not keep the CM discipline separate and have these disciplines use it rather than mangling them all together? What possible benefit is accrued by redefining CM in this way? &#8216;Oh well, CM is still a part of some of the disciplines we want to put under the CM banner. Erm. No. Wait. The &#8216;four activities formerly known as CM&#8217; as now part of some, but not all, of the disciplines that now make up CM&#8217;. It just makes no sense. It&#8217;s adding insult to injury. It&#8217;s muddying the waters. You get the idea; you&#8217;re doing nothing at all to help clarify CM and your piling in a load of additional stuff that does not belong in there.</p>
<p>Let me be clear. If you want to be called &#8216;Configuration Manager&#8217; and cover all the disciplines Bob identifies, good luck to ya. You won&#8217;t be the first, or the last, to do that. Heck, you can take the title &#8216;Lord of all he surveys&#8217; if you like. Makes no odds to me. My gripe is about redefining the discipline of Configuration Management in these terms.</p>
<p>The following diagram shows how build and release management simply use configuration management. A much more elegant structure and one that benefits from modularity, making it much simpler to explain each discipline—also making it simpler to &#8216;debug&#8217; the processes involved. (The benefits of such modularity should be obvious, but if people are keen for me to expand I will do so at another time.)</p>
<p><a href="http://principiait.files.wordpress.com/2011/06/post3.png"><img class="aligncenter size-full wp-image-945" title="CM" src="http://principiait.files.wordpress.com/2011/06/post3.png?w=450" alt=""   /></a></p>
<p>It&#8217;s simple. It&#8217;s elegant. It&#8217;s modular. It&#8217;s scalable. And IT&#8217;S WHAT WE HAVE NOW! (Well, those who have not polluted the well.)</p>
<p>Another objection is that this combination of disciplines under the CM rubric is only done for Software Configuration Management (SCM). What! Why? Why do people insist on making this asinine distinction? SCM is &#8216;Configuration Management of Software&#8217;, which, according to the correct definition of CM is precisely the same discipline as, for example, &#8216;Configuration Management of automotive engineering&#8217;, &#8216;Configuration Management of hardware&#8217;, or &#8216;Configuration Management of X&#8217; for whatever &#8216;X&#8217; you care to put in there.</p>
<p>If you accept the universality of CM principles then the multi-discipline agglomeration proposed by Bob makes even less sense. Most engineering CM systems, for example, have no build discipline within them; the CM discipline is used by fabrication plants to provide reference material (engineering specification, computer controlled tool programs and the like) from which the fabrication plant build the items. The closest these CM teams get to performing a build is assembling a baseline to be passed to the fabrication teams. It is simply coincidental that people labelled &#8216;configuration manager&#8217; in the software business tend to be qualified to do build management. This is not sufficient justification for putting build management under the CM (or even SCM) banner.</p>
<p>Even if you claim justification for putting these other disciplines under the CM banner by saying something along the lines, &#8216;oh, well CM does not &#8216;do&#8217; the builds necessarily, they&#8217;re just responsible for ensuring they are done&#8217; I say that road leads to perdition. You could justify the inclusion of almost anything you want under the CM discipline using that argument, and you&#8217;d be wrong every time.</p>
<br />Filed under: <a href='http://blog.principia-it.co.uk/category/cmcrossroads/'>CMCrossroads</a>, <a href='http://blog.principia-it.co.uk/category/itslm/configuration-management/'>Configuration Management</a>, <a href='http://blog.principia-it.co.uk/category/itslm/'>ITSLM</a>, <a href='http://blog.principia-it.co.uk/category/plain-old-blog/'>Plain Old Blog</a>, <a href='http://blog.principia-it.co.uk/category/itslm/configuration-management/software-configuration-management/'>Software Configuration Management</a> Tagged: <a href='http://blog.principia-it.co.uk/tag/cm/'>CM</a>, <a href='http://blog.principia-it.co.uk/tag/cm-definition/'>cm definition</a>, <a href='http://blog.principia-it.co.uk/tag/configuration-management/'>Configuration Management</a>, <a href='http://blog.principia-it.co.uk/tag/scm/'>SCM</a>, <a href='http://blog.principia-it.co.uk/tag/scm-definition/'>SCM definition</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/principiait.wordpress.com/942/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/principiait.wordpress.com/942/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/principiait.wordpress.com/942/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/principiait.wordpress.com/942/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/principiait.wordpress.com/942/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/principiait.wordpress.com/942/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/principiait.wordpress.com/942/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/principiait.wordpress.com/942/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/principiait.wordpress.com/942/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/principiait.wordpress.com/942/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/principiait.wordpress.com/942/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/principiait.wordpress.com/942/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/principiait.wordpress.com/942/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/principiait.wordpress.com/942/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.principia-it.co.uk&amp;blog=8032610&amp;post=942&amp;subd=principiait&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.principia-it.co.uk/2011/06/28/why-youre-wrong/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/41c439c6892b6a1b53ea8c1686324b4c?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Principia IT</media:title>
		</media:content>

		<media:content url="http://principiait.files.wordpress.com/2011/06/post1.png" medium="image">
			<media:title type="html">CM as aggregator</media:title>
		</media:content>

		<media:content url="http://principiait.files.wordpress.com/2011/06/post2.png" medium="image">
			<media:title type="html">CM as container</media:title>
		</media:content>

		<media:content url="http://principiait.files.wordpress.com/2011/06/post3.png" medium="image">
			<media:title type="html">CM</media:title>
		</media:content>
	</item>
		<item>
		<title>Building a CM system using Atlassian</title>
		<link>http://blog.principia-it.co.uk/2011/05/07/building-a-cm-system-using-atlassian/</link>
		<comments>http://blog.principia-it.co.uk/2011/05/07/building-a-cm-system-using-atlassian/#comments</comments>
		<pubDate>Sat, 07 May 2011 15:17:30 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Build Management]]></category>
		<category><![CDATA[Change Management]]></category>
		<category><![CDATA[CMCrossroads]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Plain Old Blog]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Software Configuration Management]]></category>

		<guid isPermaLink="false">http://blog.principia-it.co.uk/?p=911</guid>
		<description><![CDATA[I&#8217;m usually somewhat reluctant to make recommendations about specific tools, but every now and then something impresses me so much I feel I should at least draw attention to it. In the course of helping a client look for tools to support their development process I recalled that a couple of years ago I looked [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.principia-it.co.uk&amp;blog=8032610&amp;post=911&amp;subd=principiait&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m usually somewhat reluctant to make recommendations about specific tools, but every now and then something impresses me so much I feel I should at least draw attention to it.</p>
<p>In the course of helping a client look for tools to support their development process I recalled that a couple of years ago I looked briefly at <a href="http://www.atlassian.com/software/jira/">JIRA</a> when building a change control system for another client. So, I suggested we look at JIRA as a possible tool for this new system.</p>
<p>Having looked around the JIRA site I noticed that Atlassian had also taken <a href="http://www.atlassian.com/software/fisheye/">FishEye</a> (a tool I had used before for providing viewing and analysis tools on repositories) into their stable. And they also support a whole suite of integrated tools that can be used individually or together.</p>
<p>I suggested we take a closer look. So, we set about creating a very simple demonstration of the tools.</p>
<p>I have to say, &#8216;I&#8217;m impressed&#8217;.</p>
<p>These are great looking, well integrated, easy to use, easy to set up and very competitively priced tools. Based on a couple of months playing around with them, I&#8217;d have absolutely no difficulty recommending them to organisations of almost any size—certainly they should be on your list of tools to look at.</p>
<p>Not only are the tools themselves very flexible and easy to configure but the company seems very keen to hear from their customers. They have open beta programmes and actively encourage users to take part in product development (they really do want to know what their customers want). They also provide really low cost licenses; up to 90 days evaluation licenses and then for small teams (or individuals) they offer 10 user licenses for $10. Seriously! This is a brilliant move. It means freelance consultants (such as your&#8217;s truly) can actually use their tools and develop for them, without needing to remortgage the house to obtain licenses. (The tools also don&#8217;t require a massive hardware commitment—in fact I&#8217;m running a system on a Linux virtual machine on my Mac Pro  and it works great for development and creating documentation/training material.)</p>
<p>Oh, and if you&#8217;re a non-profit or open source organisation they will let you have unlimited licenses for free! Genius.</p>
<p>Can&#8217;t be bothered with all that setup? Atlassian offer a hosted solution for many of their tools too. (Although I can&#8217;t comment on these as I have not tried them, but if they&#8217;re anything like as good as what I have seen so far, they&#8217;re probably worth looking at if you want a hosted solution.)</p>
<p>The price apart, the tools really are very good. And if they don&#8217;t do exactly what you want you can always write your own extensions. Atlassian publish comprehensive developer information and the tools all communicate through open web interfaces and all support a plugin architecture (which I understand Atlassian are working hard to make simpler to use).</p>
<p>Another promising sign is that Atlassian &#8216;eat their own dog food&#8217;. They user all their own tools internally and pride themselves on being the guinea pigs for all their product development. Their own website and online documentation is all run through their own products.</p>
<p>Even better! Atlassian let their product speak for itself. No annoying salespeople calling, no pressure to come along and &#8216;do a demo&#8217;. They just provide you with a really simple way to download their product, get an evaluation license, and then let the product do the selling (no kidding I had downloaded, installed and licensed JIRA in about ten minutes—it took about a day to install, license and integrate the entire suite). Brilliant! [Note to all vendors: if you're product is good then let it speak for you. If you're product needs to be explained, then make it better, provide good online documentation, and provide help when it's requested. I understand that some customer like a demo, but many just want to try out your product for themselves. After all, if it can't be setup and used by their own staff, what hope is there for the future? They just end up being highly dependent on your consulting services. Oh. I think I get it now.]</p>
<p>If, as seems likely, the client goes ahead with this solution I&#8217;ll be sure to report back on how these products perform under real life conditions, but for now, <a href="http://altassian.com">go take a look</a>.</p>
<br />Filed under: <a href='http://blog.principia-it.co.uk/category/itslm/build-management/'>Build Management</a>, <a href='http://blog.principia-it.co.uk/category/itslm/change-management/'>Change Management</a>, <a href='http://blog.principia-it.co.uk/category/cmcrossroads/'>CMCrossroads</a>, <a href='http://blog.principia-it.co.uk/category/itslm/configuration-management/'>Configuration Management</a>, <a href='http://blog.principia-it.co.uk/category/plain-old-blog/'>Plain Old Blog</a>, <a href='http://blog.principia-it.co.uk/category/reviews/'>Reviews</a>, <a href='http://blog.principia-it.co.uk/category/itslm/configuration-management/software-configuration-management/'>Software Configuration Management</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/principiait.wordpress.com/911/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/principiait.wordpress.com/911/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/principiait.wordpress.com/911/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/principiait.wordpress.com/911/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/principiait.wordpress.com/911/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/principiait.wordpress.com/911/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/principiait.wordpress.com/911/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/principiait.wordpress.com/911/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/principiait.wordpress.com/911/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/principiait.wordpress.com/911/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/principiait.wordpress.com/911/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/principiait.wordpress.com/911/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/principiait.wordpress.com/911/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/principiait.wordpress.com/911/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.principia-it.co.uk&amp;blog=8032610&amp;post=911&amp;subd=principiait&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.principia-it.co.uk/2011/05/07/building-a-cm-system-using-atlassian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/41c439c6892b6a1b53ea8c1686324b4c?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Principia IT</media:title>
		</media:content>
	</item>
		<item>
		<title>Contingent Configuration Management</title>
		<link>http://blog.principia-it.co.uk/2011/03/21/contingent-configuration-management/</link>
		<comments>http://blog.principia-it.co.uk/2011/03/21/contingent-configuration-management/#comments</comments>
		<pubDate>Mon, 21 Mar 2011 10:01:55 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[CMCrossroads]]></category>
		<category><![CDATA[Configuration Management]]></category>

		<guid isPermaLink="false">http://blog.principia-it.co.uk/?p=866</guid>
		<description><![CDATA[We find, among all the terminology in the configuration management arena, many terms being added to the basic CM acronym; Agile CM, Product CM, Software CM, Traditional/Classic CM, and so on. Well, I&#8217;d like to offer my own—Contingent CM. The problem with many of the other terms is their absolutism; &#8216;this is the right way&#8217;, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.principia-it.co.uk&amp;blog=8032610&amp;post=866&amp;subd=principiait&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We find, among all the terminology in the configuration management arena, many terms being added to the basic CM acronym; Agile CM, Product CM, Software CM, Traditional/Classic CM, and so on. Well, I&#8217;d like to offer my own—Contingent CM.</p>
<p>The problem with many of the other terms is their absolutism; &#8216;this is the right way&#8217;, a sort of &#8216;here is the solution, not what was the problem&#8217; attitude. I say, &#8216;no&#8217;. I say that the correct approach is always &#8216;it depends&#8217;.</p>
<p>Contingent CM emphasises that there is no one solution, there is no &#8216;best&#8217; way to do CM and the core CM discipline is independent of the method, process, approach or dogma to which it is being applied. You should learn the underlying principles of CM, then you can apply it in any arena.</p>
<br />Filed under: <a href='http://blog.principia-it.co.uk/category/cmcrossroads/'>CMCrossroads</a>, <a href='http://blog.principia-it.co.uk/category/itslm/configuration-management/'>Configuration Management</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/principiait.wordpress.com/866/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/principiait.wordpress.com/866/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/principiait.wordpress.com/866/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/principiait.wordpress.com/866/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/principiait.wordpress.com/866/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/principiait.wordpress.com/866/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/principiait.wordpress.com/866/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/principiait.wordpress.com/866/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/principiait.wordpress.com/866/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/principiait.wordpress.com/866/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/principiait.wordpress.com/866/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/principiait.wordpress.com/866/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/principiait.wordpress.com/866/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/principiait.wordpress.com/866/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.principia-it.co.uk&amp;blog=8032610&amp;post=866&amp;subd=principiait&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.principia-it.co.uk/2011/03/21/contingent-configuration-management/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/41c439c6892b6a1b53ea8c1686324b4c?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Principia IT</media:title>
		</media:content>
	</item>
		<item>
		<title>CM discussion group</title>
		<link>http://blog.principia-it.co.uk/2011/02/17/cm-discussion-group/</link>
		<comments>http://blog.principia-it.co.uk/2011/02/17/cm-discussion-group/#comments</comments>
		<pubDate>Thu, 17 Feb 2011 17:19:08 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Body of Knowledge]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[ITSLM]]></category>
		<category><![CDATA[Parallel Development Principles]]></category>
		<category><![CDATA[Plain Old Blog]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[Version Control]]></category>

		<guid isPermaLink="false">http://blog.principia-it.co.uk/?p=844</guid>
		<description><![CDATA[At the end of last year I ran an experimental &#8216;live discussion&#8217; under the banner &#8216;The Watercooler&#8217;. This was intended to help spark conversation with the hope of encouraging people of all abilities to contribute to the body of knowledge wiki. Given the modest success of that experimental session, I have planned a series of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.principia-it.co.uk&amp;blog=8032610&amp;post=844&amp;subd=principiait&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>At the end of last year I ran an experimental &#8216;live discussion&#8217; under the banner &#8216;The Watercooler&#8217;. This was intended to help spark conversation with the hope of encouraging people of all abilities to contribute to the <a href="http://itslmbok.com/wiki">body of knowledge wiki</a>. </p>
<p>Given the modest success of that experimental session, I have planned a series of similar events (details can be found <a href="http://www.principia-it.co.uk/community/upcoming-events">here</a>). </p>
<p>Currently planned are:</p>
<ul>
<li>&#8220;What is a configuration Item?&#8221; &#8211; Friday 4th March 2011</li>
<li>&#8220;Version control for beginners&#8221; &#8211; Friday 18th March 2011</li>
<li>&#8220;Branching. What, when, and how&#8221; &#8211; Thursday 31st March 2011</li>
<li>&#8220;Parallel development. What, when and how&#8221; &#8211; Friday 15th April 2011</li>
<li>&#8220;Selling configuration management&#8221; &#8211; Friday 29th April 2011</li>
</ul>
<p>All meetings are free to attend and are currently planned for 20:00GMT (There really is no good time that covers all time-zones. If enough people ask I may repeat meetings at other times to cover other timezones—better yet, why not organise one yourself <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .)</p>
<p>I&#8217;ll certainly be chatting for half an hour at least (if no one else steps up to contribute I can certainly talk about any of these topics for at least that long <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ) but I&#8217;ve allowed two hours for each session and am happy for sessions roll on beyond this if there is enough interest.</p>
<p>These are informal discussion groups intended for any level of expertise (although obviously some are aimed primarily at beginners I would welcome input from experienced users too). I will probably make some opening remarks to get things rolling, but I am hoping enough people are interested to make for some real discussion.</p>
<p>You can contribute through the text &#8216;chat&#8217; on the site or better yet if you have a mic (and video camera if you like) you can step up and present your ideas that way.</p>
<p>Come along if you have questions, are just interested in the topic, or have something to say on the topic being discussed.</p>
<br />Filed under: <a href='http://blog.principia-it.co.uk/category/itslm/body-of-knowledge/'>Body of Knowledge</a>, <a href='http://blog.principia-it.co.uk/category/itslm/configuration-management/'>Configuration Management</a>, <a href='http://blog.principia-it.co.uk/category/itslm/'>ITSLM</a>, <a href='http://blog.principia-it.co.uk/category/itslm/configuration-management/software-configuration-management/parallel-development-principles/'>Parallel Development Principles</a>, <a href='http://blog.principia-it.co.uk/category/plain-old-blog/'>Plain Old Blog</a>, <a href='http://blog.principia-it.co.uk/category/itslm/configuration-management/software-configuration-management/'>Software Configuration Management</a>, <a href='http://blog.principia-it.co.uk/category/itslm/configuration-management/software-configuration-management/version-control/'>Version Control</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/principiait.wordpress.com/844/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/principiait.wordpress.com/844/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/principiait.wordpress.com/844/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/principiait.wordpress.com/844/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/principiait.wordpress.com/844/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/principiait.wordpress.com/844/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/principiait.wordpress.com/844/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/principiait.wordpress.com/844/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/principiait.wordpress.com/844/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/principiait.wordpress.com/844/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/principiait.wordpress.com/844/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/principiait.wordpress.com/844/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/principiait.wordpress.com/844/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/principiait.wordpress.com/844/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.principia-it.co.uk&amp;blog=8032610&amp;post=844&amp;subd=principiait&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.principia-it.co.uk/2011/02/17/cm-discussion-group/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/41c439c6892b6a1b53ea8c1686324b4c?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Principia IT</media:title>
		</media:content>
	</item>
		<item>
		<title>Challenges in community communication</title>
		<link>http://blog.principia-it.co.uk/2011/02/17/challenges-in-community-communication/</link>
		<comments>http://blog.principia-it.co.uk/2011/02/17/challenges-in-community-communication/#comments</comments>
		<pubDate>Thu, 17 Feb 2011 13:10:10 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Body of Knowledge]]></category>
		<category><![CDATA[CMCrossroads]]></category>

		<guid isPermaLink="false">http://blog.principia-it.co.uk/?p=833</guid>
		<description><![CDATA[I do not think I am alone in finding it challenging to keep up with communities, even one as apparently specialised as software configuration management. This challenge is doubled when one is trying to contribute to these communities (and hold down a paying job). Perhaps my greatest personal challenge is a need to respond in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.principia-it.co.uk&amp;blog=8032610&amp;post=833&amp;subd=principiait&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I do not think I am alone in finding it challenging to keep up with communities, even one as apparently specialised as software configuration management. This challenge is doubled when one is trying to contribute to these communities (and hold down a paying job).</p>
<p>Perhaps my greatest personal challenge is a need to respond in full to forum posts. Lengthy responses are often unwelcome (of even impossible on some forums). People so often want a &#8216;simple&#8217; answer to a quite complex question. Seldom are there such simple answers and even when there is a simple answer I feel the need to discuss options, to point out fundamentals, and to get the questioner to <em>think</em> about the problem rather than simply adopt some rote implementation based on a simplified reply. I feel strongly that people must understand <em>why</em> an answer is appropriate, otherwise nothing has been learned beyond the most superficial &#8216;getting it done&#8217; answer. If I don&#8217;t feel able to spend time giving a full answer that would satisfy myself, I tend not to offer one at all.</p>
<p>Of course, some technical questions and answers demand such direct and simple handling but again, without understanding, the questioner is simply following a script and when subsequent complications occur they have no idea how to deal with them. Inevitably they return to the forum with a stream of follow-up questions (a sure sign that someone has not understood the answer but is simply following it rote).</p>
<p>Then there is the question of how one keeps up with all the sites that offer community facilities. It&#8217;s simple enough to monitor most blogs and forums (well, those wise enough to offer RSS feeds) even though it takes time to read and comprehend what the author is trying to communicate. Other facilities, such as groups on CM Crossroads or web sites without RSS feeds (or some sort of notification system like mailing list), require me to visit them regularly to see whether anything interesting has happened (great for the site&#8217;s hit count, sucks for taking up my time). Frankly, it&#8217;s hard enough to to keep up anyway without needing to keep cycling through checking for updates. The result of this demand is that I just don&#8217;t do it; both I and the community lose out.</p>
<p>Then there are more dynamic community resources like IRC or Twitter. I tend to have an IRC and Twitter client open on one screen just to keep an eye on various resources I find useful or I feel I can contribute to. Mercifully, these tend to be, by their very nature, places where people point to more comprehensive resources or ask very straightforward technical questions. I have occasionally been drawn into protracted exchanges, but generally these resources provide a great way of finding new information without committing too much time. (Of course, the follow up of reading the indicated information can be time consuming <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).</p>
<p>This all on top of reading books, journals, and keeping up to date on published papers.</p>
<p>And I still see people comment that &#8216;there is not much information available&#8217;. Where are these people looking?</p>
<br />Filed under: <a href='http://blog.principia-it.co.uk/category/itslm/body-of-knowledge/'>Body of Knowledge</a>, <a href='http://blog.principia-it.co.uk/category/cmcrossroads/'>CMCrossroads</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/principiait.wordpress.com/833/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/principiait.wordpress.com/833/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/principiait.wordpress.com/833/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/principiait.wordpress.com/833/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/principiait.wordpress.com/833/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/principiait.wordpress.com/833/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/principiait.wordpress.com/833/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/principiait.wordpress.com/833/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/principiait.wordpress.com/833/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/principiait.wordpress.com/833/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/principiait.wordpress.com/833/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/principiait.wordpress.com/833/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/principiait.wordpress.com/833/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/principiait.wordpress.com/833/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.principia-it.co.uk&amp;blog=8032610&amp;post=833&amp;subd=principiait&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.principia-it.co.uk/2011/02/17/challenges-in-community-communication/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/41c439c6892b6a1b53ea8c1686324b4c?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Principia IT</media:title>
		</media:content>
	</item>
		<item>
		<title>Conversations and workshops</title>
		<link>http://blog.principia-it.co.uk/2010/12/10/conversations-and-workshops/</link>
		<comments>http://blog.principia-it.co.uk/2010/12/10/conversations-and-workshops/#comments</comments>
		<pubDate>Fri, 10 Dec 2010 15:01:19 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Body of Knowledge]]></category>
		<category><![CDATA[CMCrossroads]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[ITSLM]]></category>
		<category><![CDATA[Plain Old Blog]]></category>
		<category><![CDATA[Principia Notifications]]></category>
		<category><![CDATA[Tools &#039;n&#039; Tips]]></category>

		<guid isPermaLink="false">http://blog.principia-it.co.uk/?p=811</guid>
		<description><![CDATA[I have, for some time, considered the possibilities of the Internet for the real-time exchange of ideas around the lifecycle management subject (config, change, release, problem, and project management, among others). In particular I have been pondering how to start a useful dialogue about the Lifecycle Management Body of Knowledge. I suspect that one of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.principia-it.co.uk&amp;blog=8032610&amp;post=811&amp;subd=principiait&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have, for some time, considered the possibilities of the Internet for the real-time exchange of ideas around the lifecycle management subject (config, change, release, problem, and project management, among others). In particular I have been pondering how to start a useful dialogue about the <a href="http://itslmbok.com/">Lifecycle Management Body of Knowledge</a>.</p>
<p>I suspect that one of the reasons for a lack of contributions to the body of knowledge is people feel rather vulnerable offering opinions in writing on a public forum. Committing your untested view to writing can be a daunting prospect, especially when you lack confidence in your ability to clearly express yourself in writing and your audience is well informed and apparently well established on the forum/site. I know I&#8217;d benefit greatly from such a forum, even though I contribute to blogs and forum debates now.</p>
<p>While it is satisfying to exchange ideas in forums or through blogs, it is not quite the same as a more real-time interactive session. There is simply no substitute for sitting down in a relaxed informal environment and talking over a subject that interests you. Things like the <a href="http://www.cmcrossroads.com/alm-expo">ALM Expo</a> help but I think they are still too formal and often little more than a series of marketing pitches by vendors, which is not what I&#8217;m looking for. I want a sort of &#8216;watercooler&#8217; or &#8216;drinks in the bar&#8217; exchange of ideas.</p>
<p>I want to move away from a stultifying formal environment, where we feel our every word is being judged and consequently we feel the need to be &#8216;professional&#8217; at all times, into a more relaxed environment where we can have a proper conversation.</p>
<p>To this end I have looked at a number of possible mechanisms for sharing and interacting in real-time. </p>
<p>One obvious method is the webinar. Most webinars I have seen get the format horribly wrong (or rather, they corrupt the format into something so far removed from a webinar that it&#8217;s unrecognisable). A webinar should be like a face-to-face seminar (a host makes a short presentation on the topic at hand to stimulate participation, followed by an extended period of dialogue between participants). Most &#8216;webinars&#8217; that I have attended are little more than a marketing pitch in which the host presents their product (sometimes thinly veiled behind some more general question) followed by one or two selected questions. This format is more like a lecture but would be more accurately described as &#8216;ad-inars&#8217;. Completely useless for what I want, which is a dialogue, an exchange of ideas—in other words, what I would expect from a seminar/webinar.</p>
<p>Then there are broadcast forums such as <a href="http://blogtv.com">BlogTV</a>. Again, while this is primarily a broadcast medium, the interactive chat available to all viewers does provide the audience with a means to direct the &#8216;show&#8217; by asking questions and challenging the presenter. So, perhaps a little more of the dialogue I am looking for; a chance for people to ask questions and challenge the host&#8217;s views. BlogTV also has the opportunity to co-host, allowing for the interesting possibility of debates, interviews and the like. BlogTV&#8217;s non-commercial nature also, in my opinion, makes it more relaxed and less formal than some other formats.</p>
<p>Another interesting possibility is the chat room style interaction offered by services like <a href="http://stickam.com">Stickam</a> or <a href="http://youcams.com">YouCams</a>. These allow several people to interact via audio/video links while others contribute in chat format. People can &#8220;step up to the mic&#8221; when a slot is released, making for a fairly dynamic interaction.</p>
<p>These five modes (blogs, forums, webinars, broadcast, and video chat-room) each has merits and shortcomings. I already participate in most of these formats but only the first two in a professional capacity. I find myself dissatisfied with the interactions provided by the forum and blog formats (it&#8217;s like having a conversation in slow motion and it takes too long to write the post and then spend time clarifying and resolving misunderstandings that could be cleared up in seconds face to face). So, what about the other formats?</p>
<p>Well, the most obvious problem with each of the other three is precisely their real-time nature. At what time should I offer to take part in them? I have good conversations with people in India, Europe, and the US and these cover a wide range of time zones. To cover all of them would require several sessions. Then there is the matter of when people can take part. Some of you can access audio or video at work, others cannot. Some are willing to take part in these sorts of conversations in your spare time, others are not. To reach as wide an audience as possible, to discuss the topic with as many people as possible and benefit from different viewpoints means running multiple sessions but obviously I want to make each session as relevant and accessible as I can.</p>
<p>How many people want to spend their spare time talking about their profession? When I first thought about this my reaction was &#8216;not many&#8217;, but then I thought, &#8216;but you want to, there must be others like you&#8217;. But maybe I&#8217;m just strange? We shall see.</p>
<p>All of this musing lead me to the conclusion that the only way to proceed was to &#8216;give it a go&#8217;. So, over the coming months I will be setting up some open webinars, doing some <a href="http://www.blogtv.com/people/Principia">BlogTV</a>, and coordinating some video chat-room sessions. Some will start with a specific topic, others will be more open-ended. I will try to run sessions at different times in the hope you can join in at least one of them.</p>
<p>If you are interesting in making your own presentation at a webinar (I want people willing to present a 10-15 minute introduction, a well framed question would make a good introduction, to stimulate dialog—no vendor style &#8216;ad-inars&#8217;), or you want to co-host a blogTV session, then<a href="http://www.principia-it.co.uk/contact/mark-bools"> contact me</a> and we&#8217;ll sort something out. If you want to participate but cannot find a suitably timed session then <a href="http://www.principia-it.co.uk/contact/mark-bools">contact me</a> and let me know your time zone and when would be a better time for you (no promises, I do have to work and sleep too <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ).</p>
<p>Oh, and if you have any suggestions for topics for these sessions,<a href="http://www.principia-it.co.uk/contact/mark-bools"> let me know</a> and I&#8217;ll see what I can do.</p>
<p>I will <a href="http://blog.principia-it.co.uk">blog</a>, <a href="http://twitter.com/PrincipiaIT">tweet</a>, post to the <a href="http://www.cmcrossroads.com/forums?func=showcat&amp;catid=50">CM Forum</a>, and announce on the <a href="http://itslmbok.com/">ITSLM Body of Knowledge web site</a> all of the sessions.</p>
<p>Whether I continue with these will depend upon whether people are interested in participating (there&#8217;s no point in them if people don&#8217;t take part).</p>
<p>I hope to speak with many of you in the near future.</p>
<br />Filed under: <a href='http://blog.principia-it.co.uk/category/itslm/body-of-knowledge/'>Body of Knowledge</a>, <a href='http://blog.principia-it.co.uk/category/cmcrossroads/'>CMCrossroads</a>, <a href='http://blog.principia-it.co.uk/category/tools-n-tips/general/'>General</a>, <a href='http://blog.principia-it.co.uk/category/itslm/'>ITSLM</a>, <a href='http://blog.principia-it.co.uk/category/plain-old-blog/'>Plain Old Blog</a>, <a href='http://blog.principia-it.co.uk/category/principia-notifications/'>Principia Notifications</a>, <a href='http://blog.principia-it.co.uk/category/tools-n-tips/'>Tools &#039;n&#039; Tips</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/principiait.wordpress.com/811/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/principiait.wordpress.com/811/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/principiait.wordpress.com/811/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/principiait.wordpress.com/811/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/principiait.wordpress.com/811/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/principiait.wordpress.com/811/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/principiait.wordpress.com/811/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/principiait.wordpress.com/811/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/principiait.wordpress.com/811/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/principiait.wordpress.com/811/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/principiait.wordpress.com/811/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/principiait.wordpress.com/811/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/principiait.wordpress.com/811/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/principiait.wordpress.com/811/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.principia-it.co.uk&amp;blog=8032610&amp;post=811&amp;subd=principiait&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.principia-it.co.uk/2010/12/10/conversations-and-workshops/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/41c439c6892b6a1b53ea8c1686324b4c?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Principia IT</media:title>
		</media:content>
	</item>
		<item>
		<title>Keeping configuration separate in ANT</title>
		<link>http://blog.principia-it.co.uk/2010/10/21/keeping-configuration-separate-in-ant/</link>
		<comments>http://blog.principia-it.co.uk/2010/10/21/keeping-configuration-separate-in-ant/#comments</comments>
		<pubDate>Thu, 21 Oct 2010 11:21:19 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[ANT]]></category>
		<category><![CDATA[Build Management]]></category>
		<category><![CDATA[Plain Old Blog]]></category>

		<guid isPermaLink="false">http://blog.principia-it.co.uk/?p=788</guid>
		<description><![CDATA[Actually, this advice holds for any software system, but in this article I am focussing on ANT. One often sees, in ANT scripts, something like this at the head of the build.xml file. So far, so good. The author of this ANT script has thought to define properties that control the script&#8217;s behaviour at the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.principia-it.co.uk&amp;blog=8032610&amp;post=788&amp;subd=principiait&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Actually, this advice holds for any software system, but in this article I am focussing on ANT.</p>
<p>One often sees, in ANT scripts, something like this at the head of the <span class="code">build.xml</span> file.</p>
<p><pre class="brush: xml;">
&lt;project name=&quot;myproj&quot;&gt;
    &lt;property name=&quot;buildroot.dir&quot; location=&quot;${basedir}/..&quot;/&gt;
    &lt;property name=&quot;source.dir&quot; location=&quot;${buildroot.dir}/src&quot;/&gt;
    &lt;property name=&quot;bin.dir&quot; location=&quot;${buildroot.dir}/bin&quot;/&gt;

    &lt;property name=&quot;bld.package&quot; value=&quot;true&quot;&gt;
</pre></p>
<p>So far, so good. The author of this ANT script has thought to define properties that control the script&#8217;s behaviour at the start of the script. This means that, should circumstances change, it is relatively easy to change the script&#8217;s behaviour. So, should it be decided that the <span class="code">bin</span> directory should be moved to another location, we simply change the definition of the <span class="code">bin.dir</span> property and no other changes are necessary in the script.</p>
<p>Another, not so obvious, advantage of this approach is that these properties can be easily changed by defining the properties outside the script (passed on the command line, e.g. <span class="code">ant -Dbin.dir=special/bin</span> or by some client script, e.g. a call from CruiseControl), either way, the property defined will not be overridden by the script because <span class="code">&lt;property&gt;</span> never redefines a property once it is set. Neat.</p>
<p>The problem with putting properties in the <span class="code">build.xml</span> file itself makes them more difficult to access from other ANT scripts.</p>
<p>Suppose I have another ANT script that I want to interact with the same build system. I want to ensure that the script can pick up the configuration information (things like the directories the build system is using or settings that dictate build behaviour like the <span class="code">bld.package</span> property). If these are defined in the <span class="code">build.xml</span> then accessing them is tricky. If, however, they are defined in their own file I can simply load that &#8216;configuration&#8217; file separate to the <span class="code">build.xml</span> but be confident that the settings are the same as were used by the build itself.</p>
<p>There are two approaches to isolating configuration from the scripts that use them; use another ANT file and <span class="code">&lt;include&gt;</span> or <span class="code">&lt;import&gt;</span> it, or I can use a property file, e.g. <span class="code">build.properies</span> and <span class="code">&lt;property file=&quot;build.properties&quot;&gt;</span> or <span class="code">&lt;loadproperties srcfile=&quot;build.properties&quot;&gt;</span> it into a script. The approach you take will depend upon the sort of information you want in your configuration, where you are likely to use it, and how much flexibility you need.</p>
<p>Personally I prefer <span class="code">&lt;loadproperties srcfile=&quot;build.properties&quot;&gt;</span> for most purposes and I use <span class="code">&lt;include&gt;</span> as a wrapper when I need special configuration that is not accessible through the more direct <span class="code">build.properies</span> format.</p>
<p>So, I might have the following in my main <span class="code">build.xml</span>.</p>
<p><pre class="brush: xml;">
&lt;project name=&quot;myproj&quot;&gt;
    &lt;include file=&quot;config.xml&quot;/&gt;
</pre></p>
<p>And then, in the <span class="code">config.xml</span> I might have the following.</p>
<p><pre class="brush: xml;">
&lt;project name=&quot;myproj.config&quot;&gt;
    &lt;loadproperties srcfile=&quot;build.properties&quot;/&gt;

    &lt;defaultexcludes add=&quot;**/*.bak&quot;&gt;
&lt;/project&gt;
</pre></p>
<p>The <span class="code">defaultexcludes</span> would me more difficult to set using a properties file, so I use the <span class="code">config.xml</span> here. I am using <span class="code">&lt;loadproperties&gt;</span> here, but could have used <span class="code">&lt;properties file=&quot;&quot;&gt;</span>.  <span class="code">&lt;loadproperties&gt;</span> provides some extra flexibility because it supports filterchains, but that&#8217;s a topic for another post. I just feel that  <span class="code">&lt;loadproperties&gt;</span> describes better what the script is doing, but as I say, in this case, it&#8217;s a matter of personal preference.</p>
<p>And finally, in the <span class="code">build.properties</span> I might have the following.</p>
<p><pre class="brush: plain;">
buildroot.dir=${basedir}/..
source.dir=${buildroot.dir}/src
bin.dir=${buildroot.dir}/bin

bld.package=true
</pre></p>
<p>Now the <span class="code">build.properties</span> are available in a simple form to be loaded into any script that needs this project&#8217;s main configuration. The <span class="code">config.xml</span> provides additional configuration that I may want to load but is not available in the property file format, and is often not relevant to basic configuration information such as locations. I can also use the <span class="code">config.xml</span> to perform more advanced scripting of configuration if needed.</p>
<div class="sidebar">
A note of caution: when using this approach you need to be careful that the <span class="code">basedir</span> property is correctly set before loading the <span class="code">build.properties</span>, otherwise all your paths will be wrong.
</div>
<p>I find that this approach of breaking out configuration into separate files according to both its function and how I think it will be accessed has saved me a lot of work over the years. It also disciplines me into thinking about how my builds should be configured and encourages me to keep all the configuration information in one place (if I find myself tempted to use a <span class="code">&lt;property&gt;</span> to define a location or simple string in my main <span class="code">build.xml</span> I ask myself, would this be better in the <span class="code">build.properties</span>? It generally is.)</p>
<p>Keeping configuration separate also makes the main <span class="code">build.xml</span> much easier to reuse. Just copy the build system into the new project, change the <span class="code">build.properties</span> and, assuming you&#8217;ve written your <span class="code">build.xml</span> well, everything should work without further change.</p>
<br />Filed under: <a href='http://blog.principia-it.co.uk/category/tools-n-tips/ant/'>ANT</a>, <a href='http://blog.principia-it.co.uk/category/itslm/build-management/'>Build Management</a>, <a href='http://blog.principia-it.co.uk/category/plain-old-blog/'>Plain Old Blog</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/principiait.wordpress.com/788/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/principiait.wordpress.com/788/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/principiait.wordpress.com/788/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/principiait.wordpress.com/788/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/principiait.wordpress.com/788/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/principiait.wordpress.com/788/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/principiait.wordpress.com/788/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/principiait.wordpress.com/788/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/principiait.wordpress.com/788/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/principiait.wordpress.com/788/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/principiait.wordpress.com/788/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/principiait.wordpress.com/788/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/principiait.wordpress.com/788/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/principiait.wordpress.com/788/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.principia-it.co.uk&amp;blog=8032610&amp;post=788&amp;subd=principiait&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.principia-it.co.uk/2010/10/21/keeping-configuration-separate-in-ant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/41c439c6892b6a1b53ea8c1686324b4c?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Principia IT</media:title>
		</media:content>
	</item>
		<item>
		<title>When is a change a change?</title>
		<link>http://blog.principia-it.co.uk/2010/06/12/when-is-a-change-a-change/</link>
		<comments>http://blog.principia-it.co.uk/2010/06/12/when-is-a-change-a-change/#comments</comments>
		<pubDate>Sat, 12 Jun 2010 17:27:04 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Build Management]]></category>
		<category><![CDATA[Change Management]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Plain Old Blog]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[Version Control]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[change]]></category>
		<category><![CDATA[CM]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[SCM]]></category>

		<guid isPermaLink="false">http://blog.principia-it.co.uk/?p=624</guid>
		<description><![CDATA[A change can be viewed in two ways; conceptually or literally. What I mean by this distinction is that when I say the requested change is to &#8220;correct spelling mistakes in the poem&#8221; I am specifying conceptually what the change is to achieve (and after the fact, what the change achieved). On the other hand [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.principia-it.co.uk&amp;blog=8032610&amp;post=624&amp;subd=principiait&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A change can be viewed in two ways; conceptually or literally. What I mean by this distinction is that when I say the requested change is to &#8220;correct spelling mistakes in the poem&#8221; I am specifying conceptually what the change is to achieve (and after the fact, what the change achieved). On the other hand we are used to dealing with change in a more literal sense of as set of revisions, for example, &#8220;I edited file1 in this change&#8221;. In this post I discuss some of the issues and implications of these two views of change.<span id="more-624"></span></p>
<p>Let&#8217;s put this into concrete terms.</p>
<p>Suppose the original change request is something like, &#8220;correct the spelling mistakes in the poem&#8221; and the poem is held in two files. </p>
<p><span class="code">file1.txt</span> contains the following text.<br />
<pre class="brush: plain;">Mary hard a litl lamb,
It's fles was wite as snow,</pre></p>
<p>And <span class="code">file2.txt</span> contains the following text.<br />
<pre class="brush: plain;">And everywere that Mary went,
That lam was sure to go.</pre></p>
<p>&nbsp;</p>
<p>We correct these two file to the following using a change record <span class="code">CR1</span>.<br />
<pre class="brush: plain;">Mary hard a little lamb.
It's fleece was white as snow</pre><br />
And<br />
<pre class="brush: plain;">And everywhere that Mary went,
That lamb was sure to go.</pre></p>
<p>&nbsp;</p>
<p>Here then is my first build (<span class="code">build1</span>).<br />
<div id="attachment_742" class="wp-caption aligncenter" style="width: 310px"><a href="http://principiait.files.wordpress.com/2010/06/buildintegrity.png"><img src="http://principiait.files.wordpress.com/2010/06/buildintegrity.png?w=300&#038;h=266" alt="" title="Initial build" width="300" height="266" class="size-medium wp-image-742" /></a><p class="wp-caption-text">Initial build: conceptual and literal change equivalent</p></div><br />
This build has integrity because it contains the content of all valid changes nominated to the build as <em>known at the time the build was constructed</em>, but it is not correct because <span class="code">CR1</span> fails to satisfy the original request to &#8220;correct the spelling mistakes in the poem&#8221;.</p>
<p>So, not bad, but the still have &#8220;hard&#8221; instead of &#8220;had&#8221; in the first line of <span class="code">file1.txt</span>. This does not change the integrity of <span class="code">build1</span>, but does make another build (<span class="code">build2</span>) necessary to include a correction to the erroneous work submitted into <span class="code">build1</span>. </p>
<p>There are different ways we might choose to track the correction of the defect arising from <span class="code">build1</span>.</p>
<table class="wit indent">
<tbody>
<tr>
<td>Reuse&nbsp;CR1</td>
<td>
<p>Regress <span class="code">CR1</span> to a lifecycle state where the developer can add to it. Allow changes to be associated with <span class="code">CR1</span>, and then resubmit <span class="code">CR1</span> into a new build.</p>
<p>This approach, while simple, may be misleading. When revisiting <span class="code">build1</span> we need to be sure that we look at <span class="code">CR1</span> as it was when the build was executed, not as it is after the correction is applied. This can make metrics collection unnecessarily complex.</p>
</td>
</tr>
<tr>
<td>Create a new&nbsp;change</td>
<td>
<p>Treat the defect resolution as a separate change. This could be a new change or a special &#8216;defect&#8217; record.</p>
<p>This has the benefit of keeping track of the revisions that correct the defect in the original change separate to the original change. A feature potentially useful in simplifying metrics collection.</p>
</td>
</tr>
<tr>
<td>Create a separate but subsidiary change</td>
<td>
<p>We create a separate change record to track the specific revisions created to correct the defect, but we relate it to the original change request in a child-parent relationship (the original change being the parent.</p>
<p>This has the benefit of keeping track of the specific revisions that correct the defect while maintaining a link to the original change.</p>
</td>
</tr>
</tbody>
</table>
<p>Each approach has its own merits but, from the perspective of build integrity, they share an the important feature; when dealing with the conceptual change &#8220;correct the spelling mistakes in the poem&#8221;, they are semantically equivalent. For <span class="code">build2</span> to have integrity it must include both the revisions associated with the original change and all new revisions associated with the correction to the change, regardless of how that correction is controlled.</p>
<p>We correct the defect in <span class="code">build1</span> with an additional change to <span class="code">file1.txt</span> to produce the following.<br />
<pre class="brush: plain;">Mary had a little lamb,
It's fleece was white as snow,</pre></p>
<p>The following illustration shows <span class="code">build2</span> (in this case I have re-used <span class="code">CR1</span> to correct the defect). I should be obvious that missing any revision associated with <span class="code">CR1</span> has the potential to break the build&#8217;s integrity (we may have only part of <span class="code">CR1</span> in the build).<br />
<div id="attachment_745" class="wp-caption aligncenter" style="width: 310px"><a href="http://principiait.files.wordpress.com/2010/06/buildintegrityfix.png"><img src="http://principiait.files.wordpress.com/2010/06/buildintegrityfix.png?w=300&#038;h=234" alt="" title="Second build using reworked change" width="300" height="234" class="size-medium wp-image-745" /></a><p class="wp-caption-text">Fix Build: Conceptual change implemented with reworked literal change</p></div><br />
Using a separate change record to control the defect does not really solve this problem, it merely makes it less apparent. Consider the following illustration, it shows the same situation but this time I have used another change record (<span class="code">D1</span>) to control the defect.<br />
<div id="attachment_744" class="wp-caption aligncenter" style="width: 310px"><a href="http://principiait.files.wordpress.com/2010/06/buildintegrityfix1.png"><img src="http://principiait.files.wordpress.com/2010/06/buildintegrityfix1.png?w=300&#038;h=234" alt="" title="Second build with separate change" width="300" height="234" class="size-medium wp-image-744" /></a><p class="wp-caption-text">Fix build: Conceptual change now implemented with two literal changes</p></div><br />
Although I can exclude the defect resolution from the build configuration and, in this special case, claim to have maintained build integrity, it is difficult to justify semantically as I have not really included the sum of the conceptual change — the change is supposed to achieve a specific effect upon the system (the spelling correction), something it failed to do with the original literal <span class="code">CR1</span> in <span class="code">build1</span> but we hope it does with the combination of literal changes managed by change records <span class="code">CR1</span> and <span class="code">D1</span>.</p>
<p>And this is the point. Yes, the literal changes <span class="code">CR1</span> and <span class="code">D1</span> are, in one sense, changes. In practical terms though each on its own fails to achieve the objective of the original change request and consequently they are little more than sets of revisions. The two literal changes controlled by records <span class="code">CR1</span> and <span class="code">D1</span>, taken together, achieve the original goal of the change request &#8220;correct spelling mistakes in the poem&#8221;. It is this latter type of change (what I have called conceptual change) that is more interesting to configuration management and build integrity is maintained through these conceptual changes rather than the less significant literal changes.</p>
<p>This distinction between the conceptual change and literal change becomes increasingly important as we consider configuration integrity, a subject I shall discuss in more detail in subsequent posts.</p>
<br />Filed under: <a href='http://blog.principia-it.co.uk/category/itslm/build-management/'>Build Management</a>, <a href='http://blog.principia-it.co.uk/category/itslm/change-management/'>Change Management</a>, <a href='http://blog.principia-it.co.uk/category/itslm/configuration-management/'>Configuration Management</a>, <a href='http://blog.principia-it.co.uk/category/plain-old-blog/'>Plain Old Blog</a>, <a href='http://blog.principia-it.co.uk/category/itslm/configuration-management/software-configuration-management/'>Software Configuration Management</a>, <a href='http://blog.principia-it.co.uk/category/itslm/configuration-management/software-configuration-management/version-control/'>Version Control</a> Tagged: <a href='http://blog.principia-it.co.uk/tag/build/'>build</a>, <a href='http://blog.principia-it.co.uk/tag/change/'>change</a>, <a href='http://blog.principia-it.co.uk/tag/cm/'>CM</a>, <a href='http://blog.principia-it.co.uk/tag/development-2/'>development</a>, <a href='http://blog.principia-it.co.uk/tag/scm/'>SCM</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/principiait.wordpress.com/624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/principiait.wordpress.com/624/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/principiait.wordpress.com/624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/principiait.wordpress.com/624/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/principiait.wordpress.com/624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/principiait.wordpress.com/624/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/principiait.wordpress.com/624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/principiait.wordpress.com/624/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/principiait.wordpress.com/624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/principiait.wordpress.com/624/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/principiait.wordpress.com/624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/principiait.wordpress.com/624/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/principiait.wordpress.com/624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/principiait.wordpress.com/624/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.principia-it.co.uk&amp;blog=8032610&amp;post=624&amp;subd=principiait&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.principia-it.co.uk/2010/06/12/when-is-a-change-a-change/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/41c439c6892b6a1b53ea8c1686324b4c?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Principia IT</media:title>
		</media:content>

		<media:content url="http://principiait.files.wordpress.com/2010/06/buildintegrity.png?w=300" medium="image">
			<media:title type="html">Initial build</media:title>
		</media:content>

		<media:content url="http://principiait.files.wordpress.com/2010/06/buildintegrityfix.png?w=300" medium="image">
			<media:title type="html">Second build using reworked change</media:title>
		</media:content>

		<media:content url="http://principiait.files.wordpress.com/2010/06/buildintegrityfix1.png?w=300" medium="image">
			<media:title type="html">Second build with separate change</media:title>
		</media:content>
	</item>
		<item>
		<title>Toward a CM Ontology</title>
		<link>http://blog.principia-it.co.uk/2010/05/22/toward-a-cm-ontology/</link>
		<comments>http://blog.principia-it.co.uk/2010/05/22/toward-a-cm-ontology/#comments</comments>
		<pubDate>Sat, 22 May 2010 10:39:51 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[CMCrossroads]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Information Management]]></category>
		<category><![CDATA[SCM Tool]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[CM]]></category>
		<category><![CDATA[ontology]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Semantic Web]]></category>

		<guid isPermaLink="false">http://blog.principia-it.co.uk/?p=675</guid>
		<description><![CDATA[As I suggested in a previous post, I think the future of CM (and most especially SCM) lies substantially with the semantic web. My reasoning is simple; CM is about information management and this information needs to be shared, controlled and updated across increasingly more diverse organisations and systems. To provide this facility we need [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.principia-it.co.uk&amp;blog=8032610&amp;post=675&amp;subd=principiait&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As I suggested in a <a href="http://blog.principia-it.co.uk/2010/04/07/absence-cm-tool-identities-and-some-thoughts-on-the-future-of-cm/">previous post</a>, I think the future of CM (and most especially SCM) lies substantially with the <a href="http://semanticweb.org/wiki/Main_Page">semantic web</a>. My reasoning is simple; CM is about information management and this information needs to be shared, controlled and updated across increasingly more diverse organisations and systems. To provide this facility we need a <em>lingua franca</em>, a common means to control and consolidate information between disparate sources. The semantic web provides the means to achieve this information management and exchange.</p>
<p>The great advantage of semantic web over efforts such as the now defunct Application Lifecycle Framework (<a href="http://www.eclipse.org/archived/index.php">ALF</a>) is that it requires no agreement between vendors (beyond using semantic web technology). The weakness of efforts such as ALF is always that they demand buy-in from the main tool vendors. A substantial number need to agree to develop and support the new standard.</p>
<p>Certainly semantic web is no panacea, but at least if Vendor A chooses one semantic representation of CM information and Vendor B chooses another they can still communicate by creating a correspondence rule set between the two representations (a little like XSLT can transform one XML into another — only a little though, semantic web has much more to offer).</p>
<p>So vendors need to agree to use and provide semantic web representations for CM information? No, not really. Most tools provide APIs that would allow this information to be interpreted from, or added to, any existing tool. Certainly a non-trivial effort, but one that is at least feasible. Better still, if multiple implementations are created for any tool these can again be consolidated using semantic web techniques.</p>
<p>The real power of semantic web technology comes from two sources; the abstraction of information semantics, and the ability to draw inferences from this information. Once you have an ontology, some inference rules and semantic relationships between ontologies, your inference rules will work across ontologies — neat. What does all the gobbledy-gook mean? It means that if Vendor A develops an ontology with a set of inference rules (rules for extracting more information from the underlying information) then Vendor B can map their ontology onto Vendor A&#8217;s and use Vendor A&#8217;s inference rules too. Actually it&#8217;s even better. User X can extend the rules and have them apply to Vendor A and/or Vendor B&#8217;s information sets equally, even if the original inference rules were designed for only Vendor A.</p>
<p>Brilliant. Problem solved then? Sadly, no. Although this all offers promise of a way forward there remains a lot of work to establish these semantic descriptions and, as many have discovered before, agreeing on the precise meaning of each semantic element is nontrivial in its own right. Not that this should stop us attempting the task.</p>
<br />Filed under: <a href='http://blog.principia-it.co.uk/category/cmcrossroads/'>CMCrossroads</a>, <a href='http://blog.principia-it.co.uk/category/itslm/configuration-management/'>Configuration Management</a>, <a href='http://blog.principia-it.co.uk/category/itslm/information-management/'>Information Management</a>, <a href='http://blog.principia-it.co.uk/category/development/scm-tool/'>SCM Tool</a>, <a href='http://blog.principia-it.co.uk/category/itslm/configuration-management/software-configuration-management/'>Software Configuration Management</a> Tagged: <a href='http://blog.principia-it.co.uk/tag/cm/'>CM</a>, <a href='http://blog.principia-it.co.uk/tag/ontology/'>ontology</a>, <a href='http://blog.principia-it.co.uk/tag/scm/'>SCM</a>, <a href='http://blog.principia-it.co.uk/tag/semantic-web/'>Semantic Web</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/principiait.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/principiait.wordpress.com/675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/principiait.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/principiait.wordpress.com/675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/principiait.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/principiait.wordpress.com/675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/principiait.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/principiait.wordpress.com/675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/principiait.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/principiait.wordpress.com/675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/principiait.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/principiait.wordpress.com/675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/principiait.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/principiait.wordpress.com/675/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.principia-it.co.uk&amp;blog=8032610&amp;post=675&amp;subd=principiait&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.principia-it.co.uk/2010/05/22/toward-a-cm-ontology/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/41c439c6892b6a1b53ea8c1686324b4c?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Principia IT</media:title>
		</media:content>
	</item>
		<item>
		<title>Absence, CM Tool, identities, and some thoughts on the future of CM</title>
		<link>http://blog.principia-it.co.uk/2010/04/07/absence-cm-tool-identities-and-some-thoughts-on-the-future-of-cm/</link>
		<comments>http://blog.principia-it.co.uk/2010/04/07/absence-cm-tool-identities-and-some-thoughts-on-the-future-of-cm/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 18:00:34 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[CMCrossroads]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[ITSLM]]></category>
		<category><![CDATA[Plain Old Blog]]></category>
		<category><![CDATA[SCM Tool]]></category>

		<guid isPermaLink="false">http://blog.principia-it.co.uk/?p=658</guid>
		<description><![CDATA[Some of you may have noticed a bit of an hiatus in my posts. I&#8217;ve been a bit under the weather, feeling lethargic and run down, and not in a good frame of mind for writing. Lucky you, I am in the mood now. Remember a few posts back I mentioned working on a CMS [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.principia-it.co.uk&amp;blog=8032610&amp;post=658&amp;subd=principiait&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Some of you may have noticed a bit of an hiatus in my posts. I&#8217;ve been a bit under the weather, feeling lethargic and run down, and not in a good frame of mind for writing. Lucky you, I am in the mood now.</p>
<p>Remember <a href="http://blog.principia-it.co.uk/2010/02/11/cms-tool-high-level-architecture/">a few posts back</a> I mentioned working on a CMS reporting tool? Well, I&#8217;ve been working with a client on a tool for managing parallel development, which is closely related to the type of reporting I had in mind for the CMS reporting tool. The client&#8217;s focus is on Dimensions, but in the interests of creating a flexible system I&#8217;ve been designing with other underlying in mind (although, as is often the way, timescales and pragmatism mean the implementation is sometimes more tool specific than the original design). The result of this has been some extended mental gymnastics that have resulting in some useful and hopefully interesting thoughts that I would like to share with you now.</p>
<p>The parallel development tool needs to both report, analyse and, ultimately, update the host SCM database. There are a number of special considerations that I won&#8217;t go into now, but these created much candle burning and banging of my head on desks, walls and other solid objects as I struggled to resolve some apparently simple problems that turned out to be rather tricky. (The sad thing is, as is often the case with these things, once I had an answer it turned out to be deceptively simple.) The upshot of all this cranial damage covers a wide variety of topics, too many for a single post, but we can make a start.</p>
<h2>Identification</h2>
<p>How do we identify things?</p>
<p>Each tool has its own method of identifying the things it controls. In Dimensions items are ultimately identified by some sort of unique specification; files are identifies by an Object Spec, projects (worksets) are identified by Project Specs and so on. Each of these Specs. provides a unique reference within the context of a specific Dimension base database. Subversion identifies things by their position in it virtual file system; path and revision. Again, Subversion references are qualified by the repository in which they are held. Since Subversion repositories can be referred to by any number of methods there is no one unique &#8216;name&#8217; for an item in Subversion once you step beyond the bound of the repository (I can, for example, use several host names to refer to the same repository).</p>
<p>With this in mind, how can we uniquely refer to a single controllable entity (I shall  use the term &#8216;Artefact&#8217; to represent a uniquely identifiable thing). For simplicity we&#8217;ll focus our attention on a file, after all with software configuration management (SCM) this is the most common sort of Artefact we want to control. As I discussed briefly in <a href="http://blog.principia-it.co.uk/2010/03/17/items-have-history/">a previous post</a>, files exist along two histories; the Revision History (in which new Artefacts are created for each revision of the file), and the Lifecycle History (in which an Artefact may undergo change without changing its revision, without becoming a new Artefact). Dimensions does a nice job of recording these two histories, but our challenge here is to differentiate identities.</p>
<p>Do we assign the identity to the Artefact&#8217;s revisions, or do we assign the identity to each Lifecycle historic state?</p>
<p>To illustrate, consider <span class="code">file1.txt</span>. This file will be subject to the simple lifecycle illustrated below. </p>
<div id="attachment_662" class="wp-caption aligncenter" style="width: 206px"><a href="http://principiait.files.wordpress.com/2010/04/very-simple-lifecycle.png"><img src="http://principiait.files.wordpress.com/2010/04/very-simple-lifecycle.png?w=450" alt="" title="Very simple lifecycle"   class="size-full wp-image-662" /></a><p class="wp-caption-text">A very simple lifecycle</p></div>
<p>Starting in the state <span class="code">NEW</span> we assign the <span class="code">file1.txt</span> Artefact a revision of <span class="code">1</span>. The Artefacts two histories and its change log are illustrated below.</p>
<div id="attachment_665" class="wp-caption aligncenter" style="width: 460px"><a href="http://principiait.files.wordpress.com/2010/04/simple-change-log1.png"><img src="http://principiait.files.wordpress.com/2010/04/simple-change-log1.png?w=450&#038;h=231" alt="" title="Simple Change Log" width="450" height="231" class="size-full wp-image-665" /></a><p class="wp-caption-text">file1.txt - a simple change log</p></div>
<p>The developer chooses to change the original <span class="code">file1.txt</span> but while in lifecycle state <span class="code">NEW</span> we do not require a new Artefact, the resulting edited version of <span class="code">file1.txt</span> remains revision <span class="code">1</span>. The lifecycle state also remains <span class="code">NEW</span>, so although we have travelled the <span class="code">In-place Edit</span> path in the lifecycle, the result is an edit event but no change in either the state or the revision of <span class="code">file1.txt</span>. Using state and revision to identity the Artefacts (the one before the edit and the one after the edit) is therefore not sufficient to account for the two different edited versions of <span class="code">file1.txt<span>.</p>
<p>We could simple state that we are not interested in such edits or we could also simply assign some &#8216;point&#8217; revision to distinguish these intra-state revisions. Both of these options have been adopted by tools in the past, but when trying to generalise a solution we need to accommodate as many possibilities as we can. Generalising a solution should allow us to sit atop any underlying implementation. To arrive at a generalisation we need to explore the problem domain further.</p>
<h3>Derived Identities</h3>
<p>Perhaps the answer lies in <a href="http://valerieaurora.org/monkey.html">content-based addressing</a> (CBA). With CBA we identify Artefacts by creating a signature based upon intrinsic attributes of the item itself. This works very well for electronic data (in our case, files). There are many CBAs available and they are widely used in peer-to-peer systems for identifying files. The current darling of the CBA world is the <a href="http://en.wikipedia.org/wiki/SHA-2">SHA-2</a> family of hashing functions. These hashing functions process the stream of bytes in a file (or any other source of data), producing a single &#8216;summary&#8217; string of characters which is much shorter than the original (often 64, 128, or 256 bits long).</p>
<p>CBA has huge appeal for our purpose in uniquely identifying an Artefact. A CBA is almost guaranteed to be unique to the data being encoded (I say almost because any CBA will ultimately collide — two data sets produce the same hash — since a potentially infinite set of data is being mapped onto a finite set of hash codes). A CBA is intimately related to the Artefact&#8217;s characteristics and so no assignment authority is required (see <a href="#Assigned%20Identities">Assigned Identities</a> a little later). This also means that given an Artefact we can work out its unique identity, providing we know the hash function and the attributes used for identification (a files data, for example).</p>
<p>CBAs work very well for electronic data. Unfortunately, CBAs do not work well for the general case. How, for example, might we assign a CBA to a physical Artefact?</p>
<p><a name="Assigned Identities"></a><br />
<h3>Assigned Identities</h3>
<p>This brings us to assigned identities. An assigned identity is one that, unsurprisingly, is assigned by some agent. Examples of assigned identities are legion. The <a href="http://en.wikipedia.org/wiki/Isbn">ISBN</a> you find on any book you buy is an assigned identity, not for that specific book, but for the data and form of that book (hardback version of the first edition of XYZ). Similarly, almost all products have a <a href="http://en.wikipedia.org/wiki/Universal_Product_Code">UPC</a> (Universal Product Code) — the one that you find encoded in bar codes. Again, UPCs are assigned to a &#8216;type&#8217; rather than the specific item; so the UPC code 50036 90803 refers to JBL Duet speakers, but not to the specific pair of JBL speakers sitting on my desk.</p>
<p>To ensure the uniqueness of assigned identities two conditions must be met: the scope of the identity must be well defined (ISBNs apply only to books, UPCs apply only to products, and not, for example, to ideas or patents), and there must be some central agency who defines and issues codes (or at least issues blocks of codes to be issued by approved agents).</p>
<p>Assigned identities are not derived from the Artefact that they represent, so there is no way, when presented with an Artefact, to establish that Artefact&#8217;s identity, other than by reference to some catalogue to see whether it already has an assigned identity. This could be a very long process if we relied on the data as a whole. ISBNs for example, can be looked up using the books format, title, and edition. These three attributes for the key by which the ISBN can be referenced in a catalogue. This presumes the existence and universal availability of a definitive catalogue.</p>
<p>Another form of assigned identity is the <a href="http://en.wikipedia.org/wiki/UUID">Universally Unique Identifier</a> (UUID). UUIDs also use hashing functions to condense a set of attributes to a string of 128 bits, but the source data is not the file&#8217;s content but a series of attributes that are themselves (hopefully) unique. There are many implementations of the UUID scheme and they use different attributes to generate the UUID itself. Like CBA, a UUID is <em>almost</em> guaranteed to be unique — certainly sufficiently unique for most practical purposes.</p>
<h3>So where does all this leave us?</h3>
<p>An identity based on CBA is great for known data sets because the identity is generated from the data itself. We can therefore recreate the identity independent of any central authority. We can take a file and work out its unique identity and then use this unique identity within our tools. This, as we shall see in coming weeks, has significant advantages to resolving configuration data across distributed databases.</p>
<p>The problems with CBAs are that they do not translate well into the physical realm (we need to establish some characteristic of the physical object that can be uniquely selected for encoding into data and subsequently used to generate the CBA), and they are quite costly to generate (we need to read and process the entire data set to create the CBA).</p>
<p>Assigned identities that rely on an assigning authority (like the ISBN) require significant organisation and coordination. Each assigning authority must be organised to ensure that each identity is assigned uniquely. And here we run into another question related to the other form of assigned identity, UUIDs.</p>
<p>What do we mean by &#8216;uniquely assigned&#8217;? Suppose I create a file containing the text &#8216;The quick brown fox jumped over the lazy dog&#8217; and I assign it a UUID. Some time later, you create a file with identical content and assign it a UUID. The two UUIDs will be different. Are we then dealing with two Artefacts?</p>
<p>In one sense we are. They are two distinct incarnations of the file. But in any useful sense, we are not. They are in fact the same file. Just as if I took my original file and copied it to another location in my file system I would consider it the same file. Or if you copied your file to my file system I would be unable to distinguish your file from mine. They are the same &#8216;thing&#8217;, but we have assigned different identities.</p>
<p>This is the problem with all assigned identities; how to ensure that the &#8216;thing&#8217; being identified has no identity already assigned.</p>
<h2>Is there an answer?</h2>
<p>Yes and no. The work currently underway with the <a href="http://semanticweb.org/wiki/Main_Page">semantic web</a> project (quick overview <a href="http://en.wikipedia.org/wiki/Semantic_Web">here</a>) offers some hope. There is still a reliance on &#8216;authority&#8217; to assign identities, but I think there is much to be learned from the general approach and using a combination of derived and assigned identities will allow easy reconciliation of information between CM datasources. I see the problem of configuration management (and particularly identification) as a special case of identification within the semantic web project.</p>
<p>This is a fascinating area (well, it is to me) of research and one that I believe will be increasingly important as CM moves into &#8216;the cloud&#8217;. As the distinction between CM data under your direct control and that controlled by proxy through service providers and third parties is eroded the need to consolidate CM information across disparate tool sets and managed by different agencies will become increasingly important. This is a problem that we must solve.</p>
<p>I spent some time a couple of years back considering <a href="http://en.wikipedia.org/wiki/Topic_Maps">Topic Maps</a> and <a href="http://en.wikipedia.org/wiki/Resource_Description_Framework">Resource Description Framework</a> (RDF) as possible SCM schema. Although they are functionally equivalent, RDF seems to have won out in the standards battle. If you are interested in seeing where I think information management is going in the 21st century (and where CM must also go), check out the semantic web.</span></span></p>
<br />Filed under: <a href='http://blog.principia-it.co.uk/category/cmcrossroads/'>CMCrossroads</a>, <a href='http://blog.principia-it.co.uk/category/itslm/configuration-management/'>Configuration Management</a>, <a href='http://blog.principia-it.co.uk/category/itslm/'>ITSLM</a>, <a href='http://blog.principia-it.co.uk/category/plain-old-blog/'>Plain Old Blog</a>, <a href='http://blog.principia-it.co.uk/category/development/scm-tool/'>SCM Tool</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/principiait.wordpress.com/658/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/principiait.wordpress.com/658/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/principiait.wordpress.com/658/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/principiait.wordpress.com/658/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/principiait.wordpress.com/658/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/principiait.wordpress.com/658/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/principiait.wordpress.com/658/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/principiait.wordpress.com/658/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/principiait.wordpress.com/658/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/principiait.wordpress.com/658/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/principiait.wordpress.com/658/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/principiait.wordpress.com/658/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/principiait.wordpress.com/658/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/principiait.wordpress.com/658/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.principia-it.co.uk&amp;blog=8032610&amp;post=658&amp;subd=principiait&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.principia-it.co.uk/2010/04/07/absence-cm-tool-identities-and-some-thoughts-on-the-future-of-cm/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/41c439c6892b6a1b53ea8c1686324b4c?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Principia IT</media:title>
		</media:content>

		<media:content url="http://principiait.files.wordpress.com/2010/04/very-simple-lifecycle.png" medium="image">
			<media:title type="html">Very simple lifecycle</media:title>
		</media:content>

		<media:content url="http://principiait.files.wordpress.com/2010/04/simple-change-log1.png" medium="image">
			<media:title type="html">Simple Change Log</media:title>
		</media:content>
	</item>
	</channel>
</rss>
