<?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>ryan norris &#187; Consulting</title>
	<atom:link href="http://www.ryannorris.com/category/consulting/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ryannorris.com</link>
	<description>managing software teams and delivering great results</description>
	<lastBuildDate>Fri, 25 Jun 2010 13:44:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Technology Grudges and the Cult of Building Your Own Software</title>
		<link>http://www.ryannorris.com/2010/01/05/technology-grudges-and-the-cult-of-building-your-own-software/</link>
		<comments>http://www.ryannorris.com/2010/01/05/technology-grudges-and-the-cult-of-building-your-own-software/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 04:36:28 +0000</pubDate>
		<dc:creator>Ryan Norris</dc:creator>
				<category><![CDATA[Building Better Software]]></category>
		<category><![CDATA[Building It Better]]></category>
		<category><![CDATA[Consulting]]></category>

		<guid isPermaLink="false">http://www.ryannorris.com/?p=141</guid>
		<description><![CDATA[It has come to pass that in my travels, I have been introduced to or worked with people with certain grudges in the technology realm.  Myself included, it is pretty simple to run into a problem in an experience that sours you on a particular tool.  Hell, my father-in-law held a pretty decent grudge against [...]]]></description>
			<content:encoded><![CDATA[<p>It has come to pass that in my travels, I have been introduced to or worked with people with certain grudges in the technology realm.  Myself included, it is pretty simple to run into a problem in an experience that sours you on a particular tool.  Hell, my father-in-law held a pretty decent grudge against Honda automobiles until the early 90&#8242;s.  The reason&#8217;s for his slight towards the maker of the Accord was a bit different from the people I come across who hold technologies in low regard &#8211; the people who roll their eyes at Java, the religious fanatics who loathe all things Microsoft, the experienced programmers who will never touch Perl.  We tend to be shaped more by our poor experiences than our positive ones.  The technologist &#8220;grudge&#8221; is the burden some people carry with them for a lifetime after a poor experience, and while it&#8217;s understandable and to an extend prudent to adopt a <em>once bitten, twice shy </em>perspective, it is more valuable to take that experience and either improve the subject technology (particularly in the instances of community software) or evaluate alternatives that exist.</p>
<p>But some of the weary techies I&#8217;ve worked with (particularly middle-management types, for some reason) go off the deep end.  I like to say that when you encounter a technical challenge &#8211; there&#8217;s likely someone else who has also needed to solve a similar problem.  In the instances where that isn&#8217;t the case &#8211; you&#8217;re in a pretty good position to gain something from solving it yourself.  But truth be told, there are very few large problems out there that people aren&#8217;t solving.  And yet IT organizations continue to re-invent the wheel &#8211; even when economics and time tell them that they should look for an off-the-shelf solution.  This only leaves one real driver for making the build decision when the buy decision is so apparent: politics.  And often it&#8217;s the politics of the grudge.</p>
<p>I firmly believe that every shop I&#8217;ve walked into that has rolled their own MVC framework, or RIA framework, or rules framework contains an individual who truly believes that the cost of supporting, maintaining, and continuously developing that software is still less than the cost of taking a turnkey solution &#8211; either one that is commercial or open source.  I recently had a manager tell me that there was an increasing drive through the IT management structure that the enterprise should own the source and rights to all of the systems that it supports.  This was a crazy notion &#8211; are their boundaries to this doctrine?  Will we be writing our own application servers?  RDBMS?  Messaging systems?  Where does this cult draw the line?  And with a little more digging, and without much surprise &#8211; I found that this manager had spearheaded a campaign to adopt a particular Javascript framework for client development that ultimately failed and cost the company several millions of dollars.  His dogma seemed crazy, and it was. But it was completely motivated out of fear that technology selection, no matter where the accountability lay &#8211; was an avoidable cost of enterprise IT, even if it meant adopting the more extensive cost of building all solutions from the ground up whenever the need arose.</p>
<p>I guess the moral of the story is really that as an IT manager, it&#8217;s important to recognize the power of the crowd (the community if you will) and the value it can add at virtually no cost to your organization.  That it&#8217;s important to understand why a 3rd party tool has been selected.  That it&#8217;s general limitations are known early on.  That your organization is prepared to adopt the tool as if it were it&#8217;s very own.  This means hiring experts who have used those technologies.  And above and beyond anything else, that when you fail &#8211; the goal must be to marginalize the cost of that failure.  You can hedge your bets, you can reduce risk.  But when the dust settles and a selected technology has failed the organization &#8211; be sure to take a good hard look in the mirror and be open about where the selection process has failed.</p>
<p>Sometimes it is the captain, and not the ship.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ryannorris.com/2010/01/05/technology-grudges-and-the-cult-of-building-your-own-software/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Does GWT Harkon the End of Javascript?</title>
		<link>http://www.ryannorris.com/2009/11/20/does-gwt-harkon-the-end-of-javascript/</link>
		<comments>http://www.ryannorris.com/2009/11/20/does-gwt-harkon-the-end-of-javascript/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 12:07:45 +0000</pubDate>
		<dc:creator>Ryan Norris</dc:creator>
				<category><![CDATA[Building Better Software]]></category>
		<category><![CDATA[Consulting]]></category>

		<guid isPermaLink="false">http://www.ryannorris.com/?p=109</guid>
		<description><![CDATA[Javascript isn&#8217;t going away. But neither are 1&#8242;s and 0&#8242;s.  But one has to wonder what type of project or team that was looking to grow and build web-based, rich-client applications would actively choose to use Javascript on it&#8217;s own now. For my part, there&#8217;s only so much patience I have taking on the burden [...]]]></description>
			<content:encoded><![CDATA[<p>Javascript isn&#8217;t going away.  But neither are 1&#8242;s and 0&#8242;s.  But one has to wonder what type of project or team that was looking to grow and build web-based, rich-client applications would actively choose to use Javascript on it&#8217;s own now.</p>
<p>For my part, there&#8217;s only so much patience I have taking on the burden of supporting multiple browsers and dealing with performance issues.  Particularly if I&#8217;m Agile, and I&#8217;m focusing on delivering so much value so quickly, it&#8217;s very hard to explain to a client that the underlying technology creates significant overhead that adds drag to the project.  This is an even tougher sell &#8211; particularly when you&#8217;re open with your client, when alternatives that meet the non-functional needs exist.</p>
<p>For your standard web applications that aren&#8217;t as client-centric as today&#8217;s RIA applications, it&#8217;s certainly true that you are barking up the wrong tree with GWT.  Rails, Grails, and Zend can all give you the non-enterprise delivery tools that accelerate development from the server-side and leave the Javascript problem to be solved in a less holistic, more tactical way.</p>
<p>But it&#8217;s hard to argue now that anything short of the compilation semantics of GWT is useful in the RIA realm (without the need for a intermediate runtime, of course.)  Javascript is too costly and too brittle in large-scale applications to be subject to human hands.  If you&#8217;ve hired a contractor to build you a web-based RIA and they&#8217;re not using GWT &#8211; it&#8217;s well worth your wallet to ask them why.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ryannorris.com/2009/11/20/does-gwt-harkon-the-end-of-javascript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Some free advice to independent software contractors</title>
		<link>http://www.ryannorris.com/2009/02/28/some-free-advice-to-independent-software-contractors/</link>
		<comments>http://www.ryannorris.com/2009/02/28/some-free-advice-to-independent-software-contractors/#comments</comments>
		<pubDate>Sat, 28 Feb 2009 23:38:48 +0000</pubDate>
		<dc:creator>Ryan Norris</dc:creator>
				<category><![CDATA[Consulting]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[delivery]]></category>
		<category><![CDATA[estimation]]></category>
		<category><![CDATA[freelancing]]></category>
		<category><![CDATA[target cost]]></category>

		<guid isPermaLink="false">http://www.ryannorris.com/?p=51</guid>
		<description><![CDATA[Whether you're moonlighting or you are looking to or currently make your living by being your own boss, here's some fine advice from a professional software consultant on how to take on the best jobs and minimize your risk.]]></description>
			<content:encoded><![CDATA[<p>I saw a post on Craigslist this morning for a software gig that made me shake my head.</p>
<p><em>&#8220;I have been outsourcing and modifying an Open Source project. There is about 50-100hrs of scoped development. Let me know your availability and rate.&#8221;</em></p>
<p>Jobs like this one are poison that really puts all of the burden on your shoulders.  I&#8217;ve been a consultant for several firms, and have lead delivery of many large and small projects.  Here are a few tips to make it so that you maximize the shared risk in a project, maximize your revenue, and ensure the highest possible customer satisfaction.</p>
<p><strong>Always Price on Your Own Estimates</strong></p>
<p>You&#8217;re the one doing the work, and you know how long it might take you to complete a given project.  If a potential client hands you an amount of scope and a timeline (like the real-world example above), I would always request to assess the scope yourself and provide your own estimate before committing to anything.  If the prospect is amenable to this, then it serves you well to give them a good faith estimate and some solutions in the case that your estimate is different.  If the prospect is time sensitive, then work with them on adjusting the scope.  If the scope is driving the project, then encourage them to consider an additional investment of time to ensure the completion of the full scope.  Be willing to make concessions on your rate in these cases &#8211; flexibility from the client should be greeted mutually with your ability to discount your own rate.</p>
<p>If the client is not going to be flexible, then your best bet is to walk away or mitigate your risk through a more premium rate.  Likely even in the latter case, a less saavy contractor will underbid you and find themselves in trouble.  Better them than you.</p>
<p><strong>Avoid Fixed Price/Fixed Time Projects</strong></p>
<p>Clients love fixed price/fixed time projects.  It removes almost all of their risk in the project and places you in the position of likely pulling quite a few late nights and reducing your hourly rate.  Large consulting shops, particularly offshore ones &#8211; have the ability to enter into these arrangements and blend their rate accordingly to account for the need for additional resources in the case that the project falls behind schedule.  For them, the cost of working a project beyond the deadline is significantly higher than it is to simply add more horsepower.  Project management and technical oversight adds overhead in the project, and vendors are more than happy to not keep them on an engagement any longer than they need to.</p>
<p>That said, <em>time and materials</em> (hourly) arrangements are the best for the independent contractor.  They place all of the burden to manage scope upon the client, and the client has to trust the vendor to report hours accordingly and honestly.  Always aim for these projects, but do be honest with your client about hours and estimates around the cost of the engagement to them.  Be willing to discount when your estimates are inaccurate.</p>
<p>Another option is a middle ground called <em>target cost</em>, but these types of projects are typically the result of significant trust between client and vendor.  Simply put, you bill at your hourly rate for the agreed upon scope and any additional scope, and a discounted rate for defects and enhancements.  This typically keeps both parties honest.  Clients look to control scope for the same reasons they do in T&amp;M, and it&#8217;s in your interest to finish on time as to avoid continuing work at a discounted rate (when you could be taking on new projects at your standard rate).</p>
<p><strong>Request Right of First Refusal</strong></p>
<p>Clients are fickle.  No matter how good your work is, when times are tight (as they are now), they will search for less expensive options.  Many times when negotiating with clients, I have asked for <em>right of first refusal</em> in whatever contract we agree to as to ensure exclusivity.  This makes you the preferred vendor and allows you to take all work that you are interested in before it is made available to competing contractors.  Often times, this will require that you discount your rate.  Additionally, this is usually only received well once you have established a track record of delivery with a client.  But if you can negotiate this clause, it can go a long way to ensure you a consistent revenue stream and source of work.</p>
<p>At the end of the day, your client&#8217;s satisfaction will be the best way to maintain business and build a stable relationship built on trust.  Be open and flexible, but protect your position and never take on more risk than is neccessary, regardless of how desperately you want to land a gig.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ryannorris.com/2009/02/28/some-free-advice-to-independent-software-contractors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
