<?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; project failure</title>
	<atom:link href="http://www.burgess.co.nz/law/tag/project-failure/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>Thu, 02 Sep 2010 20:44:04 +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>0</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>
