<?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>The Web Gambit &#187; development</title>
	<atom:link href="http://webgambit.com/tag/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://webgambit.com</link>
	<description>Thoughts on Software Development from Karthik Hariharan</description>
	<lastBuildDate>Sun, 07 Mar 2010 16:06:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Mastering the Hand-off</title>
		<link>http://webgambit.com/2008/02/12/mastering-the-hand-off/</link>
		<comments>http://webgambit.com/2008/02/12/mastering-the-hand-off/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 08:10:14 +0000</pubDate>
		<dc:creator>Karthik Hariharan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://www.webgambit.com/?p=65</guid>
		<description><![CDATA[Most consulting engagements usually end with a hand-off of the project&#8217;s deliverables to the client&#8217;s resources during the last few days of the consultant being in contact with the client.&#160; This is often referred to as the &#8220;knowledge transfer&#8221; and can involve walking the client through the finished code artifacts and any documentation around it.
Most [...]]]></description>
			<content:encoded><![CDATA[<p>Most consulting engagements usually end with a hand-off of the project&#8217;s deliverables to the client&#8217;s resources during the last few days of the consultant being in contact with the client.&nbsp; This is often referred to as the &#8220;knowledge transfer&#8221; and can involve walking the client through the finished code artifacts and any documentation around it.</p>
<p>Most consultants dread this part of the process as it often requires mounds of documentation and tons of meetings with seemingly little accomplished.&nbsp; Even after the process is completed, many consultants will still get a follow up call from the client six months later when the developer who was supposed to take over their project has left for greener pastures.</p>
<p>There are many reasons why consultant-developed software often follows this pattern.&nbsp; Firstly, most clients are plagued with the inability to identify a suitable maintenance resource in a timely manner.&nbsp; Often this important task is put off until the last minute thus reducing the quality of resources that can be found to take over the project.&nbsp; Also if the client&#8217;s resource is tasked with learning the code base in a very short time, they often don&#8217;t get enough information and are overwhelmed when they are expected to deliver a round of enhancements soon after the consultant leaves. </p>
<p>To increase the chances of a successful hand off, the client resource should be identified soon after the project enters its testing phase to ensure that they have sufficient time to get up to speed.&nbsp; Also it can help to let the hand-off resource take a crack at some of the lower priority bugs that inevitably creep up so that they get familiar with the code.&nbsp; Having them get their hands dirty when the consultant is still around to support them can be extremely valuable to the client.</p>
<p>Consultants should also make every effort to develop a maintainable solution that can easily be transitioned.&nbsp; A complex custom application framework, a cutting edge technology, or an unfamiliar platform can all reduce the client&#8217;s chances of successfully maintaining their shiny new application.&nbsp; While it can be appealing to try a new technology or build a new skill set, such decisions often create unnecessary risks for the client and their resources. </p>
<p>So does this mean that consultants should simplify their architectures to <a href="http://www.hanselman.com/blog/PermaLink.aspx?guid=d88f7539-10d8-4697-8c6e-1badb08bb3f5" target="_blank">Typed DataSets</a> and drag-and-drop <a href="http://aspnet.4guysfromrolla.com/articles/031506-1.aspx" target="_blank">GridViews</a>?&nbsp; Not necessarily.&nbsp; </p>
<p>Even with the most non-technical clients, a consultant should take the time to explain the important architectural decisions in ways where the risks and rewards are absolutely clear to the client. If a technical decision is made that reduces development time but requires a specialized resource, then the risks and reward of such a decision should be clearly communicated to the client before it&#8217;s too late to turn back.&nbsp; Projects often fail because of technical decisions that were made up front later on became extremely costly to support and were ultimately irreversible without re-writing large parts of the application.</p>
<p>Finally, consultants should beware of clients that expect to just pay an invoice and get some working software with very little personal involvement in the project.&nbsp; No matter how much they may profess that they &#8220;just want something that works&#8221; they will have always opinions on how it should work. So a consultant is better off setting their expectations of the client&#8217;s involvement as early as possible. This will ensure both a healthy development cycle for the project and help transition it to a capable maintenance resource that can support any future needs.</p>
]]></content:encoded>
			<wfw:commentRss>http://webgambit.com/2008/02/12/mastering-the-hand-off/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
