<?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>Law and technology &#187; Software Development</title>
	<atom:link href="http://www.burgess.co.nz/law/category/software-development/feed" rel="self" type="application/rss+xml" />
	<link>http://www.burgess.co.nz/law</link>
	<description>A blog on law and technology issues in New Zealand</description>
	<lastBuildDate>Tue, 13 Dec 2011 11:10:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Contracting for success or failure?</title>
		<link>http://www.burgess.co.nz/law/contracting-for-success-or-failure</link>
		<comments>http://www.burgess.co.nz/law/contracting-for-success-or-failure#comments</comments>
		<pubDate>Wed, 14 Apr 2010 20:58:40 +0000</pubDate>
		<dc:creator>Guy Burgess</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[contract]]></category>
		<category><![CDATA[project failure]]></category>

		<guid isPermaLink="false">http://www.burgess.co.nz/law/?p=574</guid>
		<description><![CDATA[Gareth Morgan has written an interesting article (a follow up to this one) discussing the &#8220;systemic failure to be more successful in using IT to capture material productivity improvements&#8221;:
By focusing on the technical weakness inherent within the job specification that the client has signed off on, and forcing variation to contracts as they work their [...]]]></description>
			<content:encoded><![CDATA[<p>Gareth Morgan has written an <a href="http://www.nzherald.co.nz/business/news/article.cfm?c_id=3&amp;objectid=10637969&amp;pnum=0">interesting article</a> (a follow up to <a href="http://www.nzherald.co.nz/business/news/article.cfm?c_id=3&amp;objectid=10636493&amp;pnum=0">this one</a>) discussing the &#8220;systemic failure to be more successful in using IT to capture material productivity improvements&#8221;:</p>
<blockquote><p>By focusing on the technical weakness inherent within the job specification that the client has signed off on, and forcing variation to contracts as they work their way through, even though the supplier knew at the start that they could not meet timeframes and delivery targets, the multinational easily arm-wrestles the hapless customer to fund excess profitability. These projects follow the same pattern over and over again, they become five to six times over budget &#8211; a $20 million project can turn into a $120 million one. The supplier knows that walking away is not an option for these clients.</p></blockquote>
<p>While Gareth addresses a broader issue, many of the problems he discusses arise from poor contacting. There are a number of problems endemic in IT project contracting:</p>
<ul>
<li>The project is simply contracted far too large.</li>
<li>The contract relies on the <a href="http://www.agilemodeling.com/essays/bmuf.htm">often faulty</a> assumption of <a href="http://en.wikipedia.org/wiki/Big_Design_Up_Front">Big Design Up Front</a>.</li>
<li>The contract is prepared as if it were a construction contract.</li>
<li>The contract is only seen as &#8220;safe&#8221; if it nails down every last detail, and only allows changes through variations, which as Gareth says usually produce <a href="http://www.informit.com/articles/article.aspx?p=169512">poor results</a>.</li>
<li>The contract imposes completely unrealistic and ineffective &#8220;project management and control procedures&#8221;, that are either never used or are simply &#8220;caught up&#8221; on from time-to-time.</li>
<li>The contract is usually in conflict with the &#8220;agile intention&#8221; of the project (whether or not an <a href="http://en.wikipedia.org/wiki/Agile_software_development">agile methodology</a> is actually going to be adopted).</li>
</ul>
<p>I have written about some of these problems (and overcoming them) here: <a href="http://www.burgess.co.nz/law/contracting-in-an-agile-world-part-1">Contracting in an agile world</a> (<a href="http://www.burgess.co.nz/law/contracting-in-an-agile-world-pt-2">part 2 here</a>). The solutions are not complicated, but when contracting is seen as a contest (which party can tie the other up the most?) the result can be a contract that&#8217;s more useful when the project actually fails, than facilitating the project&#8217;s success.</p>
<p>When the cost of IT failure in New Zealand is <a href="http://computerworld.co.nz/news.nsf/management/54-billion-a-year-the-cost-of-it-failure-in-nz?Opendocument">$5.4 billion a year</a>, it pays to get the comparatively small matter of contracting right.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.burgess.co.nz/law/contracting-for-success-or-failure/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Firewalling your intellectual property from creditors</title>
		<link>http://www.burgess.co.nz/law/firewalling-your-intellectual-property-from-creditors</link>
		<comments>http://www.burgess.co.nz/law/firewalling-your-intellectual-property-from-creditors#comments</comments>
		<pubDate>Thu, 19 Nov 2009 10:33:59 +0000</pubDate>
		<dc:creator>Guy Burgess</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[intellectual property]]></category>

		<guid isPermaLink="false">http://www.burgess.co.nz/law/?p=308</guid>
		<description><![CDATA[In this week&#8217;s Computerworld, I have written an article on how intellectual property can be protected from trading risks. Software developers and tech companies in particular should consider implementing this sort of model. It is common for businesses in other industries to do so, but technology firms for some reason often do not.
An important thing [...]]]></description>
			<content:encoded><![CDATA[<p>In this week&#8217;s Computerworld, I have written an <a href="http://computerworld.co.nz/news.nsf/devt/CE4C76D0C4901730CC25767100684C26" target="_blank">article</a> on how intellectual property can be protected from trading risks. Software developers and tech companies in particular should consider implementing this sort of model. It is common for businesses in other industries to do so, but technology firms for some reason often do not.</p>
<p>An important thing to remember: it is often a lot easier to implement this model at the start of a business / project than once it is in place. It is usually not difficult per se to achieve after the business / IP is up &amp; running, but there can be tax &amp; accounting issues to deal with.</p>
<ul>
<li><a href="http://computerworld.co.nz/news.nsf/devt/CE4C76D0C4901730CC25767100684C26">Article: Firewalling your intellectual property from creditors (Computerworld 18/11/09)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.burgess.co.nz/law/firewalling-your-intellectual-property-from-creditors/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Source available != open source</title>
		<link>http://www.burgess.co.nz/law/source-available-open-source</link>
		<comments>http://www.burgess.co.nz/law/source-available-open-source#comments</comments>
		<pubDate>Thu, 24 Sep 2009 12:02:08 +0000</pubDate>
		<dc:creator>Guy Burgess</dc:creator>
				<category><![CDATA[Licensing]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[escrow]]></category>
		<category><![CDATA[shared source]]></category>

		<guid isPermaLink="false">http://www.burgess.co.nz/law/?p=275</guid>
		<description><![CDATA[Someone recently asked what open source licence would enable them to provide their customers with source code, but prevent the customer from redistributing or reselling that code.
They had a commercial model, in that they sold their software and did not want to “give it away” as open source just yet. But they still wanted to [...]]]></description>
			<content:encoded><![CDATA[<p>Someone recently asked what open source licence would enable them to provide their customers with source code, but prevent the customer from redistributing or reselling that code.</p>
<p>They had a commercial model, in that they sold their software and did not want to “give it away” as open source just yet. But they still wanted to be able to provide their customers with the source code – not because their customers actually needed it, but in order to be “transparent” and provide customers the assurance of having the source code.</p>
<p>Two points came to mind:</p>
<ol>
<li> “Source available” != open source. Not for any reason of semantics (semantically, I think it’s acceptable to say open source == source available), just that open source now has a fairly well understood <a href="http://en.wikipedia.org/wiki/Open_Source_Definition" target="_blank">meaning</a> which includes redistribution and other rights. It could be confusing to customers to label a restricted “source available” model as open source. I wouldn’t go as far as calling it misleading and deceptive, but I would recommend using an alternative term if what is being provided is outside of a commonly accepted meaning of open source.</li>
<li> If all you want to do is provide your customers with source code for your proprietary software, there is no need to use a “standard licence” (and little point). There are a few such licences in use – the <a href="http://www.microsoft.com/resources/sharedsource/referencesourcelicense.mspx" target="_blank">Microsoft Reference Source License</a> probably being the most common – but these are very basic (which is all they need to be) and not comparable to the GPL, Apache, etc.  A few extra sentences in your standard proprietary license can do the trick just fine.</li>
</ol>
<p>The growth of open source means that the source available model (I&#8217;ll stick with that term for now) will become increasingly common for proprietary software. Probably the best example is Microsoft’s <a href="http://en.wikipedia.org/wiki/Shared_source" target="_blank">shared source</a> initiative, which has been around for a couple of years now, although this does provide more liberal licensing than the example I&#8217;ve given.</p>
<p>Source available will also, in most cases, supersede the little-used (but often cited) <a href="http://en.wikipedia.org/wiki/Source_code_escrow" target="_blank">code escrow</a> model. Except for special/high-end situations, code escrow has become increasingly irrelevant and has probably long been <a href="http://escrow101.net/source-code-escrow-are-you-just-following-the-herd.php" target="_blank">more hassle than it’s worth</a>. (<a href="http://www.nakedlaw.com/2009/01/is-software-escrow-worthwhile.html" target="_blank">Has anyone actually called on a code escrow?</a> If so, what did they do with the code?)</p>
<p>So why would a proprietary software developer want to supply their source code on a no-redistribution basis? Three reasons are:</p>
<ul>
<li>To      give customers the ability to audit their code (or at least to know it is      auditable).</li>
<li>To      give customers some assurance of being able to fix their code and modify/ /integrate      the code for in-house purposes (the code escrow purpose).</li>
<li>To improve interoperability.</li>
</ul>
<p>The down side is that the developer would generally lose any <em>technical</em> ability to control distribution or copying of their code, whether or not that is legally permitted by the licence.  This may be critical where the code itself constitutes a <a href="http://www.med.govt.nz/templates/MultipageDocumentPage____28284.aspx" target="_blank">trade secret</a>, such as for high-end complex applications, code implementing proprietary algorithms / processes, and applications with significant market value.  In such cases, if the developer nevertheless still wants to provide the source code, a contractual indemnity (i.e. requiring the customer to indemnify the developer for the customer’s breach) may be appropriate.</p>
<p>However, in some cases this &#8220;down side&#8221; should be weighed against the decreasing costs of development. The barriers to entry for software development are continually lowering. Free IDE’s and platforms and better tools and libraries continue to make software development quicker, easier and (supposedly) cheaper. Open source development provides vast free resources to projects.</p>
<p>As a result, some proprietary source is <a href="http://opensource.openmirrors.org/node/364.html" target="_blank">not the asset it used to be</a>. Consequently the commercial value of maintaining source code as a trade secret has decreased; not yet to any critical degree – there is no question that proprietary software continues to be an exceptionally successful industry model – but enough to make <a href="http://en.wikipedia.org/wiki/Software_plus_services" target="_blank">services</a> and subscriptions an important strategy for many proprietary developers. It may make commercial sense to accept some of the downside risk for the up-side benefits.</p>
<h3>Key points</h3>
<p>Some key points for licensing on a source available, no redistribution basis:</p>
<ol>
<li>If      you do not intend the customer to disclose the source (if you did, you      probably want an <a href="http://en.wikipedia.org/wiki/Open_source_license" target="_blank">open source licence</a>), make sure it is covered by a      confidentiality provision.</li>
<li>As      with all confidentiality agreements, make sure the “confidential      information” is properly defined. A classic mistake is to impose an      obligation of confidence over ill-defined (or even undefined) material.</li>
<li>Specify      what the customer is and isn’t allowed to do with the source. Can the      customer create and distribute derivative works? Can the customer adapt      the work in-house? Must the customer provide any improvements back to you?</li>
<li>The      source code should not be assignable, sub-licensable, etc, without prior written consent.</li>
<li>The      licence should be “collapsible”, i.e. the licence should automatically terminate      upon certain events such as insolvency of the customer.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.burgess.co.nz/law/source-available-open-source/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The consumer liability of software developers</title>
		<link>http://www.burgess.co.nz/law/the-consumer-liability-of-software-developers</link>
		<comments>http://www.burgess.co.nz/law/the-consumer-liability-of-software-developers#comments</comments>
		<pubDate>Fri, 12 Jun 2009 12:55:19 +0000</pubDate>
		<dc:creator>Guy Burgess</dc:creator>
				<category><![CDATA[Legislation]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[consumer rights]]></category>
		<category><![CDATA[Open source]]></category>

		<guid isPermaLink="false">http://www.burgess.co.nz/law/?p=167</guid>
		<description><![CDATA[Should software developers be liable for their code? While the EU is currently debating this question as part of a proposal to extend consumer guarantee laws to cover to software, New Zealand has had such a law in place for over 5 years.
Since 2003, the Consumer Guarantees Act 1993 (NZ&#8217;s primary &#8220;consumer protection&#8221; law) has [...]]]></description>
			<content:encoded><![CDATA[<p>Should software developers be liable for their code? While the <a href="http://news.zdnet.co.uk/software/0,1000000121,39649689,00.htm" target="_blank">EU is currently debating this question</a> as part of a proposal to extend consumer guarantee laws to cover to software, New Zealand has had such a law in place for over 5 years.</p>
<p>Since 2003, the <a href="http://www.legislation.govt.nz/act/public/1993/0091/latest/DLM311053.html" target="_blank">Consumer Guarantees Act 1993</a> (NZ&#8217;s primary &#8220;consumer protection&#8221; law) has specifically included software in the definition of &#8220;<a href="http://www.legislation.govt.nz/act/public/1993/0091/latest/DLM311058.html#DLM311068" target="_blank">goods</a>&#8220;. This means that software developers (as &#8220;manufacturers&#8221;) must provide the same consumer warranties as makers of physical goods. At first, this does not seem too surprising. After all, why should a customer <strong>not</strong> have these rights when they buy software for domestic use? If the Consumer Guarantees Act applies to computer hardware,  why not the software that comes with it?</p>
<p>Among the warranties that the Consumer Guarantees Act imposes on software developers:</p>
<ol>
<li>A guarantee that the software is 	of &#8220;acceptable quality&#8221; (what this means will depend on the 	circumstances &#8211; it is highly improbable that software would need 	to work perfectly to be of &#8220;acceptable quality&#8221;);</li>
<li>A guarantee that the software will 	comply with any description provided by (or with the consent of) the 	developer (this could include statements on the developer&#8217;s 	website or in a manual);</li>
<li>A guarantee that the developer 	will take ensure there are &#8220;facilities for repair of the goods&#8221; 	(i.e. fix the software &#8211; this is an example of the Act, which was 	intended for physical goods, sometimes requiring awkward 	interpretation and a small amount of artistic license to accommodate 	scenarios involving software)</li>
</ol>
<p>The above rights are only the consumer&#8217;s rights against the developer. Consumers have additional rights against the supplier (e.g. in the case of commercial/retail software, the shop where you bought it), and the supplier will usually be the first point of redress.  For consumer (i.e. non-business) purposes, the Consumer Guarantees Act cannot (in most part) be contracted out of, and it is an <a href="http://www.legislation.govt.nz/act/public/1993/0091/latest/DLM312859.html" target="_blank">offence to attempt to do so</a>.</p>
<p>While the extension of the Consumer Guarantees Act to apply to software passed without much fanfare, the EU&#8217;s proposal to do the same thing has created some small controversy.  The EU proposal has been criticised by the Business Software Alliance, representing major software makers including IBM, Apple and Microsoft. The <a href="http://news.zdnet.co.uk/software/0,1000000121,39649689,00.htm" target="_blank">BSA has stated</a>:</p>
<p style="padding-left: 30px;">&#8220;Digital content is not a tangible good and should not be subject to the same liability rules as toasters&#8230; Unlike tangible goods, creators of digital content cannot predict with a high degree of certainty both the product&#8217;s anticipated uses and its potential performance.&#8221;</p>
<p>These are valid concerns. The unique nature of software makes it inappropriate to simply apply &#8220;faulty product&#8221; rules that apply to physical goods. As software is entirely intangible, it only &#8220;exists&#8221; within a virtual environment. The software developer cannot necessarily control the hardware, drivers, libraries, settings and other parts of the environment that their code needs to run properly. If their software does not work correctly, who determines if it is actually a bug in their software, or a bug or malfunction or misconfiguration in some other part of the environment? And who says it&#8217;s a bug &#8211; it may be a <a href="http://www.codinghorror.com/blog/archives/001189.html" target="_blank">feature request</a>!</p>
<p>Of course, virtually all software has genuine bugs and vendors / maintainers are usually very open about them; such is the nature of software development. Patches and updates are commonplace, and a consumer could certainly not reasonably complain if they fail to keep their system up to date.</p>
<p>But where a product does have a significant bug, is it reasonable for the consumer to have legal rights under the Consumer Guarantees Act against the developer? Opponents are not against having some consumer rights for commercial consumer software. The concern is that a poorly drafted law (such as an amendment like that made in New Zealand to the Consumer Guarantees Act) may force software developers to, in effect, support other companies&#8217; software and hardware, and continue to provide support for obsolete products (either their own or someone else&#8217;s).</p>
<p>The amendment to our Consumer Guarantees Act in 2002 gained little attention and, to date, has had little known impact on software developers. This is partly because New Zealand is a relatively small market for the (mainly) US-based software vendors. More importantly, New Zealand does not have an established &#8220;<a href="http://en.wikipedia.org/wiki/Class_action" target="_blank">class action</a>&#8221; legal process. In a recent New Zealand case the Court of Appeal <a href="http://www.nzlawyermagazine.co.nz/Archives/Issue109/109N4/tabid/1661/Default.aspx" target="_blank">noted its concerns</a> at the &#8220;lack of development&#8221; in this area, and proposed a law change to improve the situation. By contrast, in Europe and in the US, class action <a href="http://arstechnica.com/apple/news/2008/08/apple-hit-with-class-action-lawsuit-over-3g-iphone-flakiness.ars" target="_blank">lawsuits</a> have proven lucrative for consumers &#8220;harmed&#8221; by a product &#8211; and very costly for manufactures. An amount of damages multiplied by (potentially) millions of consumers equates to serious money.</p>
<p>Another interesting angle is the impact on open source development. Under the Consumer Guarantees Act, the fact that software is provided for free by a non-commercial body is irrelevant &#8211; the Act still applies. It is hoped that if the EU proposal moves ahead, this is not the case. In 2007, key Linux kernel hacker Alan Cox <a href="http://news.zdnet.co.uk/security/0,1000000189,39285532,00.htm" target="_blank">appeared before the House of Lords</a> to argue that open source developers should not be liable for their code. Given that much more open source development occurs in EU nations than most other places, the impact could be significant.</p>
<p>If the EU proposal moves ahead, the extent to which it impacts software developers &#8211; commercial and open source &#8211; will take some time to be seen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.burgess.co.nz/law/the-consumer-liability-of-software-developers/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Copyright ownership and software development</title>
		<link>http://www.burgess.co.nz/law/copyright-ownership-and-software-development</link>
		<comments>http://www.burgess.co.nz/law/copyright-ownership-and-software-development#comments</comments>
		<pubDate>Sun, 22 Mar 2009 09:54:44 +0000</pubDate>
		<dc:creator>Guy Burgess</dc:creator>
				<category><![CDATA[Copyright]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[commissioning rule]]></category>
		<category><![CDATA[copyright act]]></category>
		<category><![CDATA[intellectual property]]></category>
		<category><![CDATA[software reuse]]></category>

		<guid isPermaLink="false">http://www.burgess.co.nz/law/?p=64</guid>
		<description><![CDATA[New Zealand&#8217;s copyright laws contain an important feature known as the &#8220;commissioning rule&#8221;. Software developers &#8211; whose stock in trade is intellectual property &#8211; need to beware of this rule.
Note: the Government is proposing to repeal this rule. As of April 2009, the amending Bill (carried over from the previous Labour-led Government)  sits at number [...]]]></description>
			<content:encoded><![CDATA[<p>New Zealand&#8217;s copyright laws contain an important feature known as the &#8220;commissioning rule&#8221;. Software developers &#8211; whose stock in trade is intellectual property &#8211; need to beware of this rule.</p>
<p>Note: the Government is proposing to repeal this rule. As of April 2009, the amending Bill (carried over from the previous Labour-led Government)  sits at number 18 on the <a href="http://www.parliament.nz/en-NZ/ThisWk/OrderPaper/" target="_blank">Government&#8217;s Order Paper</a> (right after the Dog Control Amendment Bill), so the rule may not be repealed for some time.</p>
<p><span id="more-64"></span></p>
<h3>The commissioning rule &#8211; who owns 1<sup>st</sup> copyright in code?</h3>
<p>If a software developer is hired (i.e. &#8220;commissioned&#8221;) by a customer to develop some code, an important question is who owns the copyright in the resulting code &#8211; the customer or the developer? The rule that governs who owns commissioned works is known as the <strong>commissioning rule</strong>, which in New Zealand is contained in <a href="http://www.legislation.govt.nz/act/public/1994/0143/latest/DLM345930.html" target="_blank">section 21 of the Copyright Act 1994</a>. Under that rule, the answer will typically be one of the following scenarios:</p>
<ol>
<li>If the software developer is a person (as opposed to a company) who was hired as an <strong>employee</strong> (part time or full time) by the customer, then the <strong>customer</strong> (i.e. employer) will own the copyright in any original code produced by the developer.</li>
<li>If the software developer (either a person or a company) is <strong>contracted</strong> by the customer to produce some code, and is to be paid for it, then the &#8220;default rule&#8221; is that, again, the <strong>customer</strong> will own the copyright in any original code produced by the developer. Importantly, the customer will have ownership of the software whether or not they have actually paid the developer for it.</li>
<li>If the software developer (either a person or a company) is <strong>contracted</strong> by the customer to produce some code, and both agree that the developer will own the copyright, then the <strong>developer</strong> will own the copyright in the code they develop for that customer. The agreement would usually be in writing (though it need not be a formal, or even signed, contract). A verbal agreement will suffice, though without any written evidence, it may be difficult to prove what was agreed.</li>
</ol>
<p>The simple rule is that <span style="text-decoration: underline;">if the software developer and the customer agree in advance as to who will own the copyright, then that agreement will prevail</span>.</p>
<p>However, in reality as many will know, the contracting/paperwork side of software development can be a bit of a mess. Projects are started without contracts being place, undocuments variations and &#8220;sub-projects&#8221; may emerge, &#8220;interim&#8221; off-contract solutions are implemented, and final agreements may never be signed.</p>
<p>In particular, with the increasing use of <a href="http://en.wikipedia.org/wiki/Agile_software_development" target="_blank">agile development methodologies</a>, the emphasis is even more on delivering working code than negotiating contractual terms &#8211; though as always, getting a contract in place <em>before </em>starting is highly recommended.</p>
<p>When the parties have not agreed (usually in writing) who will own the copyright, then the &#8220;default rule&#8221; is that the customer will own the copyright (scenario 2 above).</p>
<h3>Copyright ownership and code reuse</h3>
<p>Copyright ownership is of particular importance to software developers who reuse code &#8211; which means virtually all developers. Simply, unless a developer owns copyright in some particular code (or obtains an appropriate licence), they are not entitled to reuse that code anywhere else. This applies even if the developer wrote the code themselves &#8211; no copyright ownership, no reuse. If the developer does not own the copyright, then the copyright owner&#8217;s approval (or their authorised licensee) must be obtained.</p>
<p>This is the basis on which open source software works. Under the <a href="http://www.gnu.org/licenses/gpl-3.0.html" target="_blank">GPL version 3</a>, for example, a developer is licensed to reuse the code as they see fit (subject to some conditions). The developer does not actually <em>own </em>the copyright of the open source code they are reusing, but they are licensed by the copyright owner(s) to reuse the software in their projects.</p>
<p>For in-house code libraries, it is essential that the developer retains copyright in the relevant code they develop. Often, this code will not be of particular commercial value to any one else but the developer who wrote it, but it is very valuable to the developer to be able to reuse it in other projects.  It should be noted that if a developer <strong>already owns</strong> copyright in code that is used in a customer project, then the developer will not be at risk of losing that existing copyright. But if the code library is modified, then the copyright in those modifications may be be deemed to be owned by the customer. It is easy to imagine how this could potentially result in complex, tangled situations.</p>
<p>Unfortunately, it is not possible to retrospectively &#8220;claw back&#8221; ownership of code that has been developed for and owned by another customer. In this situation, the developer would need to get the customer to assign (e.g. transfer ownership of) the copyright to them. If the customer wants to own the copyright of code they have paid for &#8211; which is perfectly reasonable &#8211; then the developer may want to either separate out and retain ownership of common, generic code that they intend to reuse on other projects, or license back such code.</p>
<p>In any case, it is much easier to deal with these issues at the outset of the project, in the form of a clear, easily understood contract.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.burgess.co.nz/law/copyright-ownership-and-software-development/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Joint Ventures in Software Projects, part 1</title>
		<link>http://www.burgess.co.nz/law/joint-ventures-in-software-projects-part-1</link>
		<comments>http://www.burgess.co.nz/law/joint-ventures-in-software-projects-part-1#comments</comments>
		<pubDate>Sun, 15 Mar 2009 09:36:59 +0000</pubDate>
		<dc:creator>Guy Burgess</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[joint venture]]></category>

		<guid isPermaLink="false">http://www.burgess.co.nz/law/?p=25</guid>
		<description><![CDATA[&#8220;The road to hell is paved with good intentions&#8221;.
A software project that starts life as an informal &#8220;plan&#8221; between friends has the potential to become problematic, if essential terms are not decided at the beginning. Often, the informal and casual nature of a software project, which at first is an advantage, becomes the source of [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>&#8220;The road to hell is paved with good intentions&#8221;.</em></p>
<p>A software project that starts life as an informal &#8220;plan&#8221; between friends has the potential to become problematic, if essential terms are not decided at the beginning. Often, the informal and casual nature of a software project, which at first is an advantage, becomes the source of problems once money (income or expenditure) is involved.</p>
<p><span id="more-25"></span></p>
<p>When two people come together specifically to work on a software project, there is a good chance that they have created what the law terms a <strong>joint venture</strong>. People often think of a joint venture as a large project between big companies. But joint ventures can arise in many situations, from the very large to the very small.</p>
<p>A joint venture is not recognised as a separate legal entity such as a company or a partnership. But it is recognised by the law. The term &#8220;joint venture&#8221; describes a relationship between parties working together to achieve a common objective and may be as formal or informal as the participants want.</p>
<h3>How is a joint venture established?</h3>
<p>A joint venture can be formed by contract, but it can also be formed automatically when two (or more) people begin working together on a common project. There is no need for any written documentation between the parties. The key requirement is that the parties intended to form a joint venture:</p>
<p style="padding-left: 30px;">&#8220;The essence of a joint venture which is not yet contractual is that it is an arrangement or understanding between two or more parties that they will work together towards achieving a common objective. &#8230; A joint venture will come into being once the parties have proceeded to the point where, pursuant to their arrangement or understanding, they are depending on each other to make progress towards the common objective.&#8221;</p>
<p style="padding-left: 30px;"><em><a href="http://www.courtsofnz.govt.nz/cases/wynston-alexander-cecil-chirnside-and-anor-v-richard-elmore-fay/" target="_blank">Chirnside v Fay</a></em> (6 September 2006, NZ Supreme Court)</p>
<p>It does not matter how formal or informal the arrangement was. As long as the elements described above are present, the law may recognise that a joint venture exists.</p>
<h3>So I&#8217;m in a joint venture &#8211; what difference does that make?</h3>
<p>In general, joint ventures impose a <strong>relationship of trust and confidence </strong>on the parties to act in good faith towards the objectives of the venture.</p>
<p style="padding-left: 30px;">&#8220;[Each] party is entitled to expect from the others loyalty to the joint cause, loose as the formalities of the joint venture may still be&#8221;.</p>
<p style="padding-left: 30px;"><em>Chirnside v Fay</em> (above)</p>
<p>In practice, this means:</p>
<ul>
<li>A party must not compete against the joint venture;</li>
<li>A party must not undermine the joint venture;</li>
<li>A party must not exclude another party from the venture, act disloyally or misappropriate the work product that the parties had developed; and</li>
<li>A party must keep the commitments they have promised to the venture (e.g. to spend a certain amount of time on the venture).</li>
</ul>
<p><strong>To put it bluntly: <em>you can&#8217;t screw over your partner</em>.</strong></p>
<p>If you have been working with a friend on a software project joint venture, it may come as a surprise to find out that you are &#8220;bound&#8221; by legal duties, especially if you have not signed anything or put anything in writing. But it is a mistake to think that our legal system only operates on strict black-and-white lines.</p>
<p>Our Courts retain what is called an <a href="http://en.wikipedia.org/wiki/Equity_(law)" target="_blank">equitable jurisdiction</a> which (as the name suggests) is founded on principles of <em>equity</em>. A primary objective of the law of equity is fairness. If you have put in a lot of time on a joint venture with a friend, how fair would it be for your &#8220;friend&#8221; to walk out at the last minute and set up a competing venture, using all of your commonly developed ideas and know-how?</p>
<p>This is what happened in the case of <em>Chirnside v Fay </em>(above).</p>
<p>Similarly, the law can prevent one party in a joint venture from free-loading off the work of the other. If you had committed to put a reasonable amount of time and effort into the venture and didn&#8217;t, then you probably cannot complain if your joint venture partner wants to continue the project by him or herself. This is an example of the law of equity&#8217;s &#8220;<a href="http://en.wikipedia.org/wiki/Unclean_hands" target="_blank">clean hands doctrine</a>&#8220;. This says that &#8220;one who comes to equity must come with clean hands&#8221;. That is, you must have acted fairly yourself in order to obtain a remedy against the other person.</p>
<p>However, much depends upon what the parties are taken to have intended. If it is clear that the parties never intended to form a joint venture, or only intended a very limited co-operation, then the parties will have lesser duties to the joint venture.</p>
<p>Similarly, participating in a joint venture does not prevent the parties from have existing businesses or jobs. Indeed, many joint ventures are set up as &#8220;side projects&#8221; and are intended to be performed in the parties&#8217; spare time. In such cases, there is likely to be only a low level of time and effort required by the parties to meet their commitments to the joint venture.</p>
<p>My next post will talk about how to avoid these risks at the outset.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.burgess.co.nz/law/joint-ventures-in-software-projects-part-1/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Contracting in an agile world, part 2</title>
		<link>http://www.burgess.co.nz/law/contracting-in-an-agile-world-pt-2</link>
		<comments>http://www.burgess.co.nz/law/contracting-in-an-agile-world-pt-2#comments</comments>
		<pubDate>Sun, 15 Feb 2009 11:25:13 +0000</pubDate>
		<dc:creator>Guy Burgess</dc:creator>
				<category><![CDATA[Contracts]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[project failure]]></category>

		<guid isPermaLink="false">http://www.burgess.co.nz/wordpress/?p=9</guid>
		<description><![CDATA[For part 1 of this post, click here

The emergence of agile development
Agile development emerged during the mid 1990&#8217;s and early 2000&#8217;s as a grass-roots reaction to the problems of traditional development experienced in many projects. There is no official definition but rather a set of principles, the most authoritative text being the Agile Manifesto.

Principles contained [...]]]></description>
			<content:encoded><![CDATA[<p><em>For part 1 of this post, </em><a href="contracting-in-an-agile-world-part-1"><em>click here</em><br />
</a></p>
<h3>The emergence of agile development</h3>
<p>Agile development emerged during the mid 1990&#8217;s and early 2000&#8217;s as a grass-roots reaction to the problems of traditional development experienced in many projects. There is no official definition but rather a set of principles, the most authoritative text being the <a href="http://agilemanifesto.org/" target="_blank">Agile Manifesto</a>.</p>
<p><span id="more-9"></span></p>
<p>Principles contained in the Agile Manifesto include:</p>
<ul>
<li>Customer satisfaction through early, continuous delivery of working software;</li>
<li>Welcoming changing requirements, even late in development;</li>
<li>Clients and developers working together throughout a project;</li>
<li>Regarding working software as the primary measure of progress.</li>
</ul>
<p>This requires a significant departure from the structured processes of traditional development. It allows developers and clients to adapt a project as it progresses. It allows software to be delivered and used continuously and problems corrected early and often. It encourages large projects to be broken into smaller projects, with functionality being added incrementally. It allows developers and clients to provide ongoing feedback and refinement as the system is developed. This dynamic can be invaluable in today&#8217;s business environment where businesses must be ready to adapt their business processes to meet market conditions and new technologies.</p>
<p>On the technical front, agile development encourages flexible system design through the use of software patterns, standards and best practices. Project management models have been created specifically for agile development and a range of sub-methodologies under the &#8220;agile&#8221; umbrella have emerged.</p>
<p>Agile development is not intended to replace traditional development but is an alternative methodology. Traditional development is still used on many projects and has many benefits. However, agile development has become increasingly popular, and by some estimates (see <a href="http://www.infoq.com/news/2008/05/agile-adoption-survey-2008" target="_blank">here</a> and <a href="http://www.eweek.com/c/a/Application-Development/Finding-What-Developers-Want/" target="_blank">here</a>) is now the predominant development methodology in use today.  It appears to be successful.  The Standish Group&#8217;s <a href="http://www.infoq.com/articles/Interview-Johnson-Standish-CHAOS" target="_blank">2006 Chaos Report</a> attributed the decreasing failure rate to 19% in part to agile development.  <a href="http://www.ddj.com/architect/202800777" target="_blank">Other evidence</a> supports this conclusion.</p>
<h3>Contrasting traditional versus agile development</h3>
<p>The following table contrasts key elements of traditional versus agile development.</p>
<table border="1">
<tbody>
<tr>
<td><strong>Traditional development</strong></td>
<td><strong>Agile development</strong></td>
</tr>
<tr>
<td>Locked-in requirements at the start.</td>
<td>Expect and welcome in-project requirement changes.</td>
</tr>
<tr>
<td>Formalised change process.</td>
<td>Less formal change process.</td>
</tr>
<tr>
<td>Strict timetables.</td>
<td>Smaller deliverables with flexible, incremental timetables and continuous delivery.</td>
</tr>
<tr>
<td>Segregation of responsibilities.</td>
<td>Collaboration.</td>
</tr>
<tr>
<td>Sign-off &amp; handover.</td>
<td>Working software delivered frequently.</td>
</tr>
</tbody>
</table>
<p>These elements are discussed below.</p>
<h3>Continuous delivery</h3>
<p>It is common for software development contracts to define deliverables to be handed over at the end of a project. For example, the deliverables may be a functioning system meeting the contract specifications together with completed documentation and other supporting artefacts.</p>
<p>In contrast, agile development promotes continuous delivery throughout a project where incrementally updated versions of a system are delivered as they are available, with the objective being to enable the client to begin using the software as soon as possible, even if only for a subset of the final intended functionality. In this way, flaws in system design can be detected and remedied earlier than would be otherwise possible and feedback can be acted upon.</p>
<p>At this point, it is worth asking &#8220;why would anyone want to use an incomplete system?&#8221; The answer is, by breaking large projects into smaller projects, it can be possible for even a very complex system to be delivered incrementally. How each interim delivery should be used depends on the project, with options ranging from production use to basic testing, and go-live risk management provisions should always be in place. Ultimately the extent and manner in which continuous delivery is viable and sensible for a given project is a commercial decision.</p>
<h4>In-project requirement changes</h4>
<p>Every software development project needs some up-front requirements analysis. The extent and formality of the initial analysis phase will vary project by project. Traditional development relies on heavy up-front requirements analysis (Big Design Up Front) which is typically incorporated into a contractually binding specification. It is not intended that continuous or major changes be made to the specification during the project.</p>
<p>In contrast, agile development expects, and even welcomes, changing requirements during a project, even at a late stage. This is essential to agile development. It allows the project to develop and evolve incrementally and respond to changes in business processes that it seeks to implement.</p>
<p>This may appear contractually problematic, even dangerous, and indeed it would be if it were allowed to be uncontrolled. A sensible change process must always be defined, together with parameters to control project scope including technical direction, timelines and cost. There is no reason why agile development projects cannot utilise common contractual elements for controlling scope while still allowing the desired flexibility for regular requirement changes.</p>
<h3>Collaboration</h3>
<p>Collaboration in the sense of agile development means the process of ongoing, regular, formal and informal communication and co-operation between the client and the developer, even to the extent of working together on a daily basis throughout a project. This contrasts with the customer-vendor model of traditional development, where the developer works on a project off the specifications largely in isolation from the client and &#8220;hands over&#8221; the finished product at the end of the project.</p>
<p>While traditional development often utilises control groups, steering committees, scheduled reviews and the like as effective forms of client-developer collaboration, agile development seeks to go much further. Agile development advocates having representatives of the client and the developer working together constantly throughout the project. This raises potentially thorny legal issues such as representations, authorisations and estoppel. These are issues which must be considered both practically and legally in all software development projects and there is no reason why an agile development project cannot utilise the protections against these risks commonly found in traditional development contracts.</p>
<p>Again, the manner and extent of collaboration is a commercial decision for each project and the practicalities of this arrangement should be clearly defined at the start of a project.</p>
<h3>Finally, in conclusion&#8230;</h3>
<p>To lawyers, agile development may appear an unattractive or even counter-intuitive option when compared to a highly structured traditional development project. After all, how can a contract accommodate informal requirement changes, continuous delivery, close collaboration and other &#8220;agile&#8221; processes while still providing the clarity, safeguards and controls required in commercial dealings?</p>
<p>It must be remembered that it is the problematic rigidity of traditional development that agile development specifically seeks to avoid. This is not for the purpose of reducing liability of any party, but to reduce the risk of project failure. A heavyweight, rigid contract may provide greater advantages to a party in the event of litigation, but for some projects may actually increase the likelihood of litigation.</p>
<p>Whether or not to use agile development on any given project is ultimately a commercial decision. It is one that incurs a risk versus return trade-off like anything else and clients must be in a position to make an informed decision.</p>
<p>The key issue where agile development is desired is that the contract supports the necessary agile processes. Contracts used in agile development projects must be drafted to ensure that the agile processes are not curtailed by a contractual regime better suited to traditional development. This does not mean that contracts should be any less clear and precise than they otherwise might be, nor does it require the diminution of standard commercial safeguards and time and cost controls. But it does place a greater onus on the drafters of contracts to ensure that clients and developers can reap the benefits of agile development under a contract supportive of that methodology.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.burgess.co.nz/law/contracting-in-an-agile-world-pt-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Contracting in an agile world, part 1</title>
		<link>http://www.burgess.co.nz/law/contracting-in-an-agile-world-part-1</link>
		<comments>http://www.burgess.co.nz/law/contracting-in-an-agile-world-part-1#comments</comments>
		<pubDate>Sun, 08 Feb 2009 11:01:21 +0000</pubDate>
		<dc:creator>Guy Burgess</dc:creator>
				<category><![CDATA[Contracts]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[project failure]]></category>

		<guid isPermaLink="false">http://www.burgess.co.nz/wordpress/?p=5</guid>
		<description><![CDATA[Are your contracts agile? If you are involved in contracting software development it is worth asking that question.
Agile development is a relatively new methodology for software development which has rapidly gained popularity. Much has been written on agile development in the technology media, however there is little mention at present in legal circles. Perhaps this [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Are your contracts agile? If you are involved in contracting software development it is worth asking that question.</strong></p>
<p>Agile development is a relatively new methodology for software development which has rapidly gained popularity. Much has been written on agile development in the technology media, however there is little mention at present in legal circles. Perhaps this is due to the subject being regarded as a technical issue best left to the IT crowd.</p>
<p>Lawyers involved in contracting for software development need to be aware of this now common methodology. This article outlines agile development and some of the contractual issues it raises.</p>
<p><span id="more-5"></span></p>
<h3>Traditional software development</h3>
<p>Software development has traditionally been viewed as a structured process, sometimes known as the &#8220;waterfall model&#8221;, where each phase of the project is clearly defined as part of a linear sequence. A typical project may be look like this:</p>
<ul>
<li>Phase 1: Requirements specification;</li>
<li>Phase 2: Design;</li>
<li>Phase 3: Programming;</li>
<li>Phase 4: Testing and debugging;</li>
<li>Phase 5: Deployment.</li>
</ul>
<p>A project such as this, with discrete steps capable of clear definition and sequencing, is well suited to a structured contractual framework. Common elements of a contract supporting this model are:</p>
<ul>
<li>Comprehensive, detailed specifications;</li>
<li>Formalised processes such as control groups and regulated variations;</li>
<li>Segregation of responsibilities between the developer/vendor and the client;</li>
<li>Strict timetables;</li>
<li>Deliverables;</li>
<li>Sign-off and handover processes.</li>
</ul>
<p>While there are as many variants of software development contracts as there are projects, in this article a traditional software development contract is one taken to include the above as well as the usual commercial terms and exclusions.</p>
<h3>Problems with traditional software development</h3>
<p>As practitioners involved with IT and followers of IT media will doubtless be aware, software projects have historically failed at terrible rate. Way back in 1995, US consultancy <a href="http://www.standishgroup.com/" target="_blank">The Standish Group</a> conducted its inaugural &#8220;Chaos Report&#8221;, an annual study into development project failure. The first study reported that 31% of all development projects failed &#8211; that is, are cancelled and scrapped at some point &#8211; while only 16% were on-time and on-budget. The remainder are termed &#8220;challenged&#8221;, where the project is eventually completed, but is over-budget, over-cost or cut down from the original plan.</p>
<p>Through such studies and industry analysis, it soon became accepted that the &#8220;heavyweight&#8221; processes of traditional development are not always compatible with the highly dynamic modern business and technical environment. From a contractual viewpoint, the formalised specifications, processes and deadlines mandated for a project often conflict with the informal, complex and constantly evolving business requirements they seek to implement.</p>
<p>The problem as it relates to custom software development has even been judicially noted:</p>
<p style="padding-left: 30px;">&#8220;[There] is a significant risk that a non-standard software product, ‘customised&#8217; to meet the particular marketing, accounting or record-keeping needs of a substantial and relatively complex business &#8230; may not perform to the customer&#8217;s satisfaction&#8221;.</p>
<p style="padding-left: 30px;"><a href="http://www.bailii.org/ew/cases/EWCA/Civ/2001/317.html" target="_blank"><em>Watford Electronics Ltd v Sanderson CFL Ltd</em></a> [2001] EWCA Civ 137</p>
<p>Of particular importance is the challenge of obtaining detailed and complete specifications at the beginning of a project. This is known as <a href="http://www.agilemodeling.com/essays/bmuf.htm" target="_blank">Big Design Up Front</a>, and the output of the design is often used to form the basis of a contract.  In such cases, the success or failure of the project is dependent on the quality of the contracted specifications.</p>
<p>Unfortunately this has in many cases proved highly problematic. [For an early influential paper (1986) on the challenges of design see “<a href="web.cs.wpi.edu/~gpollice/cs3733-b05/Readings/FAKE-IT.pdf" target="_blank">A rational design process: how and why to fake it</a>”]</p>
<p>While there are many causes of project failure and disputes, inadequate requirements are regularly cited as a leading cause.  Key problems, simply stated, include:</p>
<ul>
<li>Difficulties in documenting complex abstract business processes;</li>
<li>Inability to completely specify requirements at the beginning of a project;</li>
<li>Requirements changing during the course of the project (particularly for long duration projects).</li>
</ul>
<p><a href="contracting-in-an-agile-world-pt-2">Part 2 of this post</a> discusses how agile development aims to address these issues, and the challenges for contracting such projects.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.burgess.co.nz/law/contracting-in-an-agile-world-part-1/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

