<?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>RiskHeads &#187; Insurance Software Development</title>
	<atom:link href="http://www.RiskHeads.org/category/insurance-software-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.RiskHeads.org</link>
	<description>Musings on technology and corruption in insurance and finance.</description>
	<lastBuildDate>Tue, 29 Nov 2011 15:12:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>The human brain thumb post &#8211; musings on insurance software rule engines</title>
		<link>http://www.RiskHeads.org/human-brain-thumb-post-musings-insurance-software-rule-engines/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=human-brain-thumb-post-musings-insurance-software-rule-engines</link>
		<comments>http://www.RiskHeads.org/human-brain-thumb-post-musings-insurance-software-rule-engines/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 16:34:25 +0000</pubDate>
		<dc:creator>Adam Bishop</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[Insurance Software Development]]></category>

		<guid isPermaLink="false">http://www.riskheads.com/?p=275</guid>
		<description><![CDATA[The human brain is a marvellous thing. I&#8217;ve been typing a lot today, so much so that my thumb has started to hurt. So I&#8217;ll keep this short. What amazes me is that I was able to think &#8216;OK, so I&#8217;ll just stop using my right thumb&#8217; and I then continued typing for the next [...]]]></description>
			<content:encoded><![CDATA[<p></p><p style="text-align: center;"><img class="aligncenter" src="http://www.RiskHeads.org/wp-content/uploads/2009/11/brain-1.png" alt="" width="256" height="256" /></p>
<p style="text-align: center;"><strong>The human brain is a marvellous thing.</strong></p>
<p style="text-align: center;">
<p>I&#8217;ve been typing a lot today, so much so that my thumb has started to hurt.  So I&#8217;ll keep this short.</p>
<p>What amazes me is that I was able to think &#8216;OK, so I&#8217;ll just stop using my right thumb&#8217; and I then continued typing for the next hour without using it, without creating loads of mistakes or even slowing down too much.  How exactly?</p>
<p>Working on the rules engine for our <a href="http://www.InsuranceAgencySoftware.net">insurance software</a> today makes me appreciate just how extraordinary it is that the brain can accept rules into the subconscious and then start processing them without so much as a hickup, any formal, lengthy definition, or any forethought or planning.  The rules we give our brain on a whim can cover just about anything and almost always work perfectly.  In fact, we can make them work better by thinking harder: if I want to make sure I type 100% correctly without using my thumb I can do it, or I can type really fast and the rule is only loosely applied.  It&#8217;s like there&#8217;s an Importance level we set for these ad-hoc rules.</p>
<p>They even work at times like this where they affect a completely subconscious activity like typing.  Does that mean I could learn to breath differently?  Probably. There are plenty of people that learn to <a rel="nofollow" href="http://www.youtube.com/watch?v=IqhlQfXUk7w">walk in silly ways</a>.</p>
<p>I&#8217;m certain that with our rules engine we need to emulate the brain; that&#8217;s our real competition, not other software systems.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.RiskHeads.org/human-brain-thumb-post-musings-insurance-software-rule-engines/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why you must never add resource to a late software project</title>
		<link>http://www.RiskHeads.org/add-resource-late-software-project/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=add-resource-late-software-project</link>
		<comments>http://www.RiskHeads.org/add-resource-late-software-project/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 15:54:00 +0000</pubDate>
		<dc:creator>Adam Bishop</dc:creator>
				<category><![CDATA[Best Posts]]></category>
		<category><![CDATA[Insurance Software Development]]></category>

		<guid isPermaLink="false">http://www.riskheads.com/?p=265</guid>
		<description><![CDATA[Never add resource to a late software project&#8230; Many of those new to insurance software development assume that adding programmers to a late project is the right thing to do in order to finish as quickly as possible. WRONG! This is almost always the absolute worst thing you can do. It will not only not [...]]]></description>
			<content:encoded><![CDATA[<p></p><h1>Never add resource to a late software project&#8230;</h1>
<p>Many of those new to insurance software development assume that adding programmers to a late project is the right thing to do in order to finish as quickly as possible.</p>
<p><strong>WRONG!</strong> This is almost always the absolute worst thing you can do.  It will not only not help but will actually make things worse, often much worse.  You&#8217;ll probably never work in software again.</p>
<h2><span id="more-265"></span>Why?</h2>
<p>The reason for this is simple: communicating software ideas on even the simplest project is frightfully expensive and rises exponentially with the number of team members.</p>
<p>In our industry, even the most elegant <a title="Insurance software" href="http://www.InsuranceAgencySoftware.net">insurance software</a> is complex at its heart.  We deal in increasingly complex mathematical and emergent algorithms; we can&#8217;t get everything across in a single utterance, this is actuarial science.</p>
<p>With each developer you assign to a project (at any time in its lifecycle) you increase the vectors of communication, often considerably, and the average communication burden for each team member goes up.</p>
<h2>To explain more clearly&#8230;</h2>
<p>A <strong>1 man team</strong> communicates within her head, so no problem there.</p>
<p>In a <strong>2 man team</strong>, there are two vectors for communication. When Hildergard (eh?) writes code that Bartholemew (who?) doesn&#8217;t understand, he interrupts her <em>flow </em>to ask about it, and visa-versa.</p>
<p>In a <strong>3 man-team</strong>, there are 6 vectors for communication, whilst in a <strong>5 man team</strong>, there are <em>20</em> vectors for communication.  When Jonah writes a new routine that he wants people to use he tells the team leader Archibald.  Archy tells everyone to <a title="Code refactoring" rel="nofollow" href="http://en.wikipedia.org/wiki/Refactor">refactor</a> their code to use the new routine but they&#8217;re all very busy, and it&#8217;s not the first time someone has told them how to make their lives harder.  Consequently, many of them forget, realise too late, can&#8217;t even remember where to find the routine or how to use it, or never took their headphones off in the first place.  Consequently, sporadic conversations break out between all team members: Jake and Ben talk about optimisation, Phil and Lindsey argue about nomenclature, Ben and Lindsey agree that Roger, Jake and Derek have usage all wrong.  In the end everyone speaks to everyone about it, and after all the chinese whispers subside, Jonah wishes he was in a 1-man team like the good-old days: no one has used his <a title="The cure for everything" rel="nofollow" href="http://en.wikipedia.org/wiki/Panacea">panacea</a> routine properly and some not at all.  Now he has to rewrite everything, and hold a mini conference to sort things out.  Again.  Just like yesterday, which was his birthday and nobody remembered.  Jonah decides to cut his losses and quits.</p>
<h2>The Theory</h2>
<p>Fred Brookes (the immortal God of software development theory), defines the number of vectors thus, where n is the number if developers on a project, and v the result:</p>
<blockquote><p><strong> v = n(n &#8211; 1)</strong></p></blockquote>
<p>So, with a <a title="The insurance dream team" href="http://www.admnetwork.com">6 man team</a> there are 30 vectors for communication, and with a 10 man team *gulp* there are 90.</p>
<h2>So what?</h2>
<p>When you add techies to a late project, you screw everything up.  Software development isn&#8217;t like building a house, it&#8217;s much more like designing it, only harder.  Let&#8217;s say you add 2 people to a 3 man team, right at the end of the project.  At this point your programmers are working day and night, sleeping under their desks and eating with one hand.  The team leader is living and breathing code, has a caffeine drip and never stops muttering to himself in binary.  He&#8217;s getting email questions every second.  That&#8217;s when you choose to increase the chat traffic vectors from 6 to 20 and bring in a couple of clowns who <em>keep asking stupid questions</em>. And when they finally do some real work, they bring the whole precious house of cards fluttering to the ground. What you&#8217;ve done here is invite a couple of wet monkeys in to dance on the architect&#8217;s blueprints.</p>
<h2>You pay peanuts&#8230;</h2>
<p>The thing is, even programmers sent by God Himself<a href="#ref1"><sup>[i]</sup></a> need things explaining if they&#8217;re new to the project, and even then they still screw things up for a while (a year usually).  That&#8217;s even if you have great documentation (and you all obviously have that&#8230; right?).</p>
<h2>You can actually make the project go backwards.</h2>
<p>What?! Yes, if you get a situation where the team doesn&#8217;t have time to explain everything to the newbie, he starts guessing, and changing code he doesn&#8217;t understand.</p>
<p>If your poor junior is left to work on rating matrices or something that affects billing or reports, you can kiss your insurance operation goodbye.  By the time you find the bugs, it might be too late.</p>
<h2>Holy cow. Whatever will I do?</h2>
<ol>
<li> Don&#8217;t add programmers to a late project (well yeah).</li>
<li>No really, don&#8217;t ever do it.</li>
<li>Study software development theory: start by reading <a rel="nofollow" href="http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1255783947&amp;sr=1-1">this</a> and <a rel="nofollow" href="http://www.amazon.com/Rapid-Development-Taming-Software-Schedules/dp/1556159005/ref=sr_1_1?ie=UTF8&amp;qid=1255783967&amp;sr=1-1-spell">this</a> and <a rel="nofollow" href="http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1255783915&amp;sr=1-1">this</a>.</li>
<li>Set realistic deadlines (easier said than done &#8211; more on this in a future post).</li>
<li>Encourage group communication; ever heard of <a rel="nofollow" title="Scrum software development techniques" href="http://en.wikipedia.org/wiki/Scrum_(development)">scrum</a>? It&#8217;s important to have well organised, poignant, productive group discussions.</li>
<li>Expand your software ambitions <em>horizontally</em>.  This means putting new programmers on new projects, creating complimentary projects that all work perfectly and get finished on time.  <em>Wise men know nothing can be done fast.</em> It becomes another thing entirely when done differently, faster. Piling resource onto something you want done faster than it can be done is silly vertical horseplay, it will end in a heap of burn outs and angry developers who no longer trust you.</li>
</ol>
<h2>Show me the money. What&#8217;s the quick way?</h2>
<p>Hmm, there&#8217;s no pleasing some people.  Well you could always take a leaf out of Google&#8217;s book: buy your programmers pizza, make the vending machines free, and give everyone a share in the profits.  Make the office so friggin&#8217; cool they forget where they live.  Take all the door knobs off and put in a disco ball.  Never run out of coffee.</p>
<p style="padding-left: 30px;"><strong>Did you like this post?  Leave a comment below&#8230;</strong></p>
<p><a name="ref1"></a><br />
* Like Einstein said, _He_ doesn&#8217;t play dice.  God built the world in 7 days with C++. Being perfect, he has no need for managed code.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.RiskHeads.org/add-resource-late-software-project/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

