<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rob@Rojotek &#187; Agile</title>
	<atom:link href="http://www.rojotek.com/blog/blog/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rojotek.com/blog</link>
	<description>Software Development in Brisbane</description>
	<lastBuildDate>Wed, 25 Jan 2012 10:34:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Choosing a data storage format</title>
		<link>http://www.rojotek.com/blog/2009/05/06/choosing-a-data-storage-format/</link>
		<comments>http://www.rojotek.com/blog/2009/05/06/choosing-a-data-storage-format/#comments</comments>
		<pubDate>Wed, 06 May 2009 02:46:56 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[YAML]]></category>

		<guid isPermaLink="false">http://www.rojotek.com/blog/2009/05/06/choosing-a-data-storage-format/</guid>
		<description><![CDATA[In case you haven’t noticed, XML is not a silver bullet. (google xml+silver+bullet). It is not, and should not be an automatic choice when thinking of a data storage format. The ubiquitous libraries for working with XML are often hard to use, and are often overkill for a simple storage format. In today’s world, I’d [...]]]></description>
			<content:encoded><![CDATA[<p>       In case you haven’t noticed, <span class="caps">XML</span> is not a silver bullet. (<a href="http://www.google.com/search?q=xml+silver+bullet">google xml+silver+bullet</a>). It is not, and should not be an automatic choice when thinking of a data storage format. The ubiquitous libraries for working with <span class="caps">XML</span> are often hard to use, and are often overkill for a simple storage format. In today’s world, I’d suggest that the following options should be considered (at least briefly).    </p>
<ol>
<li>        Native Object Serialisation      </li>
<li>        Custom format      </li>
<li>        <span class="caps">XML</span> – Extensible Markup Language      </li>
<li>        <span class="caps">YAML</span> – <span class="caps">YAML</span> Ain’t a Markup Language (obviously created by geeks with the recursive name)      </li>
<li>        <span class="caps">JSON</span> – JavaScript Object Notation      </li>
</ol>
<p>       Join me in having a look at these formats, and I’ll let you know some of the issues to consider. The main problem I’m solving is for data that belongs to your own application. I’m not considering databases or interoperability.    </p>
<h2>       Native Object Serialisation    </h2>
<p>       Consider this briefly before running away. I’m particularly familiar with the idea of Java Object serialisation. I’ve used <a href="http://www.prevayler.org/">Prevayler</a> in the past storing java objects, and xml (So while I’m having a dig at Java Object serialisation in general, I’m not specifically having a go at prevayler).    </p>
<p>       While the use of native object serialisation is often easy, it has costs, making the content unreadable by humans, coupling the data storage to your implementation language, and can create object migration issues. These costs will typically outweigh the benefits. Having human readable data to aid debugging would provide reason for not using native object serialisation if there was nothing else.    </p>
<h2>       Custom Format    </h2>
<p>       The use of a custom simple text format should not be discarded out of hand. The lack of any third party dependancies is a useful feature, and should be considered. That said, if you have a library that does the parsing for you, that should not be sneezed at.    </p>
<h2>       <span class="caps">XML</span>    </h2>
<p>       As wikipedia says, “XML is a general-purpose specification for creating custom mark-up languages” (<a href="http://en.wikipedia.org/wiki/XML">Wikipedia on <span class="caps">XML</span></a>). Parsers and tools exist for many platforms and environments, which makes it a useful tool when you want to share information between different environments. While a good tool, the syntax is verbose, and can be hard for humans to read.    </p>
<p>       <span class="caps">XML</span> has influenced the birth of two of two more recent notations which are useful for data storage: <a href="http://yaml.org/spec/current.html"><span class="caps">YAML</span></a>, and <a href="http://www.json.org/xml.html"><span class="caps">JSON</span></a>    </p>
<h2>       <span class="caps">YAML</span>    </h2>
<p>       <span class="caps">YAML</span> purports to be “a human friendly data serialization standard for all programming languages” (<a href="http://yaml.org/">Yaml.org</a>). It has a well defined specification (<a href="http://yaml.org/spec/current.html"><span class="caps">YAML</span> Spec</a>), and makes for an easy to understand data storage format. Implementations of <span class="caps">YAML</span> exist for a wide range of languages, including Java, C++, Ruby and Javascript. It’s been around for a while, and has a decent amount of uptake. If it wasn’t for <span class="caps">JSON</span>, it would probably be a good default choice.    </p>
<h2>       <span class="caps">JSON</span>    </h2>
<p>       At first glance <span class="caps">JSON</span> seems much less suitable than <span class="caps">YAML</span> for languages other than JavaScript. The kicker against it is that it has “JavaScript” in the name, which has always made people feel icky. That said, it does make for a good cross platform format, it is human readable, and is implemented on a wide range of platforms (<a href="http://www.json.org/">Json.org</a>).    </p>
<p>       <span class="caps">JSON</span> has also has the advantages of having mindshare, and is slightly more familiar to developers than <span class="caps">YAML</span>. Every developer who has had anything to do with the web has done stuff with JavaScript, so the basic format will be familiar to them. Also in <span class="caps">JSON</span>’s favour is the fact that <span class="caps">JSON</span> and <span class="caps">YAML</span> are syntactically very close (<a herf="http://redhanded.hobix.com/inspect/yamlIsJson.html">see Redhanded</a>). <span class="caps">JSON</span> appears to be very close to a subset of <span class="caps">YAML</span>(<a href="http://ajaxian.com/archives/json-yaml-its-getting-closer-to-truth">Ajaxian</a>). In addition, the general applicability of <span class="caps">JSON</span> is higher, particularly for people who are going to be doing Javascript development. Also, if you have any possibility of playing with JavaScript, <span class="caps">JSON</span> is a very good option because of the native support in JavaScript.    </p>
<p>       These factors combine to make <span class="caps">JSON</span> an excellent choice.    </p>
<h2>       Summary    </h2>
<p>       Tim Bray makes a good case for this being an automatic choice based on your circumstances(<a href="http://www.tbray.org/ongoing/When/200x/2006/12/21/JSON">http://www.tbray.org/ongoing/When/200x/2006/12/21/JSON</a> ). You’ll still need to think about the pros and cons of the different technologies for your situation (see <a href="http://webignition.net/articles/xml-vs-yaml-vs-json-a-study-to-find-answers/">http://webignition.net/articles/xml-vs-yaml-vs-json-a-study-to-find-answers/</a>), but you’ll often find that <span class="caps">JSON</span> is a good format to use for data storage.    </p>
]]></content:encoded>
			<wfw:commentRss>http://www.rojotek.com/blog/2009/05/06/choosing-a-data-storage-format/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Can the Government be Agile? &#8211; discussion with a PMP PM</title>
		<link>http://www.rojotek.com/blog/2008/06/22/can-the-government-be-agile-discussion-with-a-pmp-pm/</link>
		<comments>http://www.rojotek.com/blog/2008/06/22/can-the-government-be-agile-discussion-with-a-pmp-pm/#comments</comments>
		<pubDate>Sun, 22 Jun 2008 22:55:05 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.rojotek.com/blog/2008/06/22/can-the-government-be-agile-discussion-with-a-pmp-pm/</guid>
		<description><![CDATA[I’ve enjoyed my relationship with my brother-in-law for a long time. We’ve often talked about business and career, sharing where we are at, and the directions we are taking. Over the past few years Paul has been doing a great job as a project manager in Canberra, in particular his involvement with the Department of [...]]]></description>
			<content:encoded><![CDATA[<p>       I’ve enjoyed my relationship with my brother-in-law for a long time. We’ve often talked about business and career, sharing where we are at, and the directions we are taking.    </p>
<p>       Over the past few years Paul has been doing a great job as a project manager in Canberra, in particular his involvement with the Department of Defence in the successful and ambitious <a href="http://www.defence.gov.au/media/download/video/2007/Nov/20071122/index.htm">e-voting project</a> (<a href="http://www.agimo.gov.au/practice/delivery/awards/2008_e-award">Remote Electronic Voting Federal Election 2007</a>). It has been great hearing about his work, and some of the stories around it. He has also been sharing his growing understanding of project management, and some of the courses and information he has been collecting, and applying. I have been listening with interest, and a degree of skepticism, thinking that much of what he has been learning would not apply directly to me, as it seems to be focused on heavyweight/rigorous methods, and I very much prefer working in Agile environments, where good smart people are encouraged to do great work.    </p>
<p>       So it was with great interest that I was recently listening to him discussing and presenting some of his recent thinking and work around <a href="http://en.wikipedia.org/wiki/Scrum_(development)"><span class="caps">scrum</span></a>. Paul has been looking at how to apply <span class="caps">scrum</span> to government projects, and has some great ideas about this. I was particularly interested to hear what he saw as the strengths that scrum would bring, and the advantages he saw in outcome based results (delivery of working software that meets outcomes) versus delivery based results (traditional waterfall delivery of documentation is part of the results).    </p>
<p>       I look forward to seeing Paul’s work going forward, and to seeing how he continues to apply agile techniques to his work. If you are in Canberra, and are looking for a great contract or consultant project management, it is well worth talking to Paul and the team at <a href="http://www.biom.com.au/">Barton Institute of Management</a>.    </p>
]]></content:encoded>
			<wfw:commentRss>http://www.rojotek.com/blog/2008/06/22/can-the-government-be-agile-discussion-with-a-pmp-pm/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

