<?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>Now here's a thought &#187; Programming</title>
	<atom:link href="http://rick.measham.id.au/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://rick.measham.id.au</link>
	<description>Random thoughts from a random brain</description>
	<lastBuildDate>Sat, 11 Jun 2011 07:54:45 +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>I listen to Joel Spolsky and Jeff Atwood on the Stack Overflow Podcast and yell at the radio.</title>
		<link>http://rick.measham.id.au/200909/i-listen-to-joel-spolsky-and-jeff-atwood-on-the-stack-overflow-podcast-and-yell-at-the-radio/</link>
		<comments>http://rick.measham.id.au/200909/i-listen-to-joel-spolsky-and-jeff-atwood-on-the-stack-overflow-podcast-and-yell-at-the-radio/#comments</comments>
		<pubDate>Sat, 19 Sep 2009 13:21:16 +0000</pubDate>
		<dc:creator>RickMeasham</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://rick.measham.id.au/?p=160</guid>
		<description><![CDATA[From comments they&#8217;ve made, I&#8217;m sure I&#8217;m not the only one. Here&#8217;s an open letter to them:
Dear Joel and Jeff,
You lauched Server Fault for SysAdmins, but you admit to not knowing that crowd as well as you know the programming crowd. That&#8217;s fine. But you need to find someone who does understand that crowd &#8212; [...]]]></description>
			<content:encoded><![CDATA[<p>From comments they&#8217;ve made, I&#8217;m sure I&#8217;m not the only one. Here&#8217;s an open letter to them:</p>
<blockquote><p>Dear Joel and Jeff,</p>
<p>You lauched Server Fault for SysAdmins, but you admit to not knowing that crowd as well as you know the programming crowd. That&#8217;s fine. But you need to find someone who does understand that crowd &#8212; and preferably already has the credibility you two have with programmers. Then you need to get him (or her) to co-host the podcast.</p>
<p>At the moment, your podcast does you no favours in promoting Server Fault: You constantly show little understanding of such things. The entire argument on hosting your own DNS on the most recent podcast is a perfect example.</p>
<p>I&#8217;m sure nobody minds if you don&#8217;t know everything, but to gain credibility for Server Fault, it needs a &#8217;sponsor&#8217; that can join your team &#8212; at least on the podcast.</p>
<p>Cheers!<br />
Rick Measham</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://rick.measham.id.au/200909/i-listen-to-joel-spolsky-and-jeff-atwood-on-the-stack-overflow-podcast-and-yell-at-the-radio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geek Herding</title>
		<link>http://rick.measham.id.au/200908/geek-herding/</link>
		<comments>http://rick.measham.id.au/200908/geek-herding/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 14:31:16 +0000</pubDate>
		<dc:creator>RickMeasham</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://rick.measham.id.au/?p=153</guid>
		<description><![CDATA[
Forgive me reader, for I have sinned. It&#8217;s been some time since I last posted to this site.
I haven&#8217;t stopped writing, but instead have been trying to &#8217;seed&#8217; my new site with content. There&#8217;s only so many words in my head at any one time! Anyway, it&#8217;s now ready to be revealed to the world.
A [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Geek Herding" href="http://geek-herding.com/?utm_source=here's%2Ba%20thought&amp;utm_medium=image&amp;utm_campaign=launch" target="_blank"><img src="http://geek-herding.com/images/geek_herding_explorations_in_the_art_of_managing_software_developers.png" alt="Geek Herding" /></a></p>
<p>Forgive me reader, for I have sinned. It&#8217;s been some time since I last posted to this site.</p>
<p>I haven&#8217;t stopped writing, but instead have been trying to &#8217;seed&#8217; my <a href="http://geek-herding.com/?utm_source=here's%2Ba%20thought&amp;utm_medium=text&amp;utm_campaign=launch" target="_blank">new site</a> with content. There&#8217;s only so many words in my head at any one time! Anyway, it&#8217;s now ready to be revealed to the world.</p>
<p>A year and a half ago I was promoted into management at the company I work for. And then I was left to work it out for myself. Thrown in the deep end.</p>
<p>I&#8217;m a resourceful kind of guy so I managed to find many resources to help me become the best manager I could. The more I studied the topic, the more I wanted to have my say on it too. I wanted especially to talk about people management (leadership) from the &#8216;vertical&#8217; slice of Software Development. That&#8217;s what I&#8217;ve done as a career for many years, and it&#8217;s who I&#8217;m now leading. So, without further ado, I present <a href="http://geek-herding.com/?utm_source=here's%2Ba%20thought&amp;utm_medium=url&amp;utm_campaign=launch" target="_blank">http://geek-herding.com</a></p>
<p>While this blog will continue, I&#8217;m going to be restricting it to thinks that aren&#8217;t work related as I want to really push <a href="http://geek-herding.com/?utm_source=here's%2Ba%20thought&amp;utm_medium=text&amp;utm_campaign=launch" target="_blank">Geek Herding</a>.</p>
<p>I&#8217;m interested in your feedback, though if you&#8217;re not in the software development industry, or interested in leadership and people management, it might be a little bit boring.</p>
<p>On the other hand, if you&#8217;re interested in either topic, I&#8217;d love it if you:</p>
<ul>
<li>Read the articles</li>
<li>Commented on the articles</li>
<li>Promoted the articles (if you&#8217;re tweeting, please use #geekherding so I find the tweet!)</li>
</ul>
<p>Even better, I&#8217;m going to be looking for Guest Bloggers soon, so have a think if you have anything you might have to say on the topic.</p>
]]></content:encoded>
			<wfw:commentRss>http://rick.measham.id.au/200908/geek-herding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Announcing a release day before you build</title>
		<link>http://rick.measham.id.au/200904/announcing-a-release-day-before-you-build/</link>
		<comments>http://rick.measham.id.au/200904/announcing-a-release-day-before-you-build/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 07:33:23 +0000</pubDate>
		<dc:creator>RickMeasham</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://rick.measham.id.au/?p=137</guid>
		<description><![CDATA[When there's an idea mooted, a lot needs to be considered before going to market. But if you were to write a detailed spec for everything  --  including mockups for every screen and functional detail for every action -- without discussing the basic concept with every stake holder, you'd often waste a lot of time.]]></description>
			<content:encoded><![CDATA[<p>January 22, a boardroom somewhere:</p>
<p style="padding-left: 30px;"><strong>Marketing</strong>: I have an idea for a new product, how long will it take to build?</p>
<p style="padding-left: 30px;"><strong>Developer</strong>: We&#8217;d need a more complete spec.</p>
<p style="padding-left: 30px;"><strong>Marketing</strong>: OK, but just putting your finger in the air ..</p>
<p style="padding-left: 30px;"><strong>Developer</strong>: Maybe two weeks, so call it four.</p>
<p>January 23, in the customer newsletter:</p>
<p style="padding-left: 30px;"><strong>Marketing</strong>: Our new product will be released on Feb 28th! Huzzah!</p>
<p>Sound familiar? I&#8217;m sure this happens again and again in software development companies the world over. I&#8217;ve certainly experienced it many times.</p>
<p>The problem, of course, is made up of many issues. Here&#8217;s three obvious issues:</p>
<ol>
<li>Marketing just have an idea for a product. There&#8217;s no detailed spec. There&#8217;s no screens, no functional spec. yet they expect an estimate.</li>
<li>The developer provided an estimate without qualification</li>
<li>Despite a long history of &#8216;bad&#8217; estimates from developers, marketing believed the estimate and passed it on to customers.</li>
</ol>
<p>And here&#8217;s two more not-so-obvious, but very real issues:</p>
<ol>
<li>The estimate give by the developer is given in isolation. Even if accurate, it totally ignores existing workload.</li>
<li>A new product (or feature or enhancement) isn&#8217;t just about writing code.</li>
</ol>
<h2>Fixing the problem</h2>
<p>Let&#8217;s break the problem down into the listed issues and explore each of them.</p>
<h3>No detailed spec.</h3>
<p>When there&#8217;s an idea mooted, a lot needs to be considered before going to market. But if you were to write a detailed spec for everything  &#8211;  including mockups for every screen and functional detail for every action &#8212; without discussing the basic concept with every stake holder, you&#8217;d often waste a lot of time.</p>
<p>So the normal practice is to discuss the idea with each stake-holder to get a basic understanding of the project.</p>
<p>Imagine you rang someone to build you a pergola and you had not measured the size you wanted or considered any of the details like materials. Before you go ahead and research all that detail, you need to know if the project is even feasible. So you ring a random builder. What&#8217;s the best way to get an estimate without tying each other down to price? I like to call it the zeroes method. ie, &#8220;how many zeroes&#8221;?  Will it cost two-zeroes? $0 to $99? Or three? $100 to $999? Four? Five?</p>
<p><em>For development, I think the best question (at this stage) is what time-unit are we looking at? Is it days? Weeks? Months or Years?</em></p>
<h3>The developer gave an estimate without qualification</h3>
<p>OK, so it&#8217;s what was asked of him. And we do like to please. At first the developer doesn&#8217;t want to give an estimate. After all, he hasn&#8217;t seen the full scope. But then he figures that marketing aren&#8217;t dumb, they know that without a full scope there&#8217;s no way the estimate can be anywhere near accurate. So he caves in and thinks about the product.</p>
<p>The developer&#8217;s initial thought is &#8216;2 weeks&#8217;. But he&#8217;s aware that things never go as planned and so ups that to a month. (Note that he&#8217;s switched units .. when you hear that happen, it&#8217;s a good sign that the estimate is just a guestimate)</p>
<p>At this point the developer should have said: <em>I cannot give you any reasonable estimate that will assist with product planning without a full spec.. But I understand that you don&#8217;t want to spend the time writing a full spec if the development time isn&#8217;t feasible. From what you&#8217;ve told me *thus far*, we would be looking at weeks rather than months. That said, I&#8217;d be happy to give you a proper estimate once the full spec is clarified.</em></p>
<h3>Marketing believed the estimate</h3>
<p>This is probably the biggest mistake in this scenario. Marketing always want estimates. Developers give estimates. Development always takes longer.</p>
<p>There&#8217;s a two-fold problem here:</p>
<p>First, marketing treated the estimate as an actual estimate rather than as a finger-in-the-air estimate based on a totally inadequate solution description.</p>
<p>Second, they compound this mistake by believing the number. The developer knows that estimates are always wildly optimistic, so he says &#8220;Maybe two weeks, so make it four&#8221;. But marketing should, by now, also know that anything the developer says is wildly optimistic and say to themselves &#8220;It&#8217;s always under, so let&#8217;s make it 8&#8243;.</p>
<p><em>Once both parties have over-estimated, we now have enough information </em>to write a full spec <em>but not enough to to to market.</em></p>
<p style="text-align: center;"><em>* </em><em>* </em><em>*<br />
</em></p>
<p>Now, let&#8217;s consider those other two issues that compound the problem. The<em></em>se two issues exist even when the developer is making an educated estimate based on a fully delivered spec.</p>
<h3>The estimate is given in isolation</h3>
<p>When a developer is asked how long something will take to write, even if he has every bit of information he needs, the answer will be given in man-time, not clock-time. This means that a four-week development job will take four man-weeks. Or 20 developer-days if you prefer.</p>
<p>An estimate of four weeks only means &#8220;in four weeks time&#8221; when:</p>
<ul>
<li>he is sitting around waiting for the next project to start</li>
<li>the previous project has no outstanding bugs that will need fixing</li>
<li>he doesn&#8217;t need to provide assistance to customer service</li>
<li>he doesn&#8217;t have meetings with his manager or team or company</li>
<li>he doesn&#8217;t need to help the boss set up his new laptop</li>
<li>his brain isn&#8217;t also worrying over the global financial crisis</li>
<li>there are no public holidays and he has no annual leave booked</li>
<li>he doesn&#8217;t get sick</li>
<li>&#8230; and probably another thousand or so caveats.</li>
</ul>
<p><em>When marketing is given an estimate from a developer, they need to consider scheduling as well as the actual estimate. They need to consider that the estimate is in man-days rather than calendar days.</em></p>
<h3>A new product isn&#8217;t just code</h3>
<p>This issue has nothing to do with the developer, but has everything to do with communication between marketing and the product owner (or whatever your company calls the person who manages the entire product).</p>
<p>If a developer estimates (once given a full spec) four weeks and the scheduler says it will start in two weeks and the developer will have around 80% of his time to give to the project, then the estimated date for completion of development is in 7 weeks time.</p>
<p>But that isn&#8217;t a go-to-market date. That is the date at which the documentation team can start to prepare the new user manuals. It&#8217;s the date that customer service can begin to learn how to support the product. It&#8217;s the date that user acceptance testing can begin. It&#8217;s the date from which the accounts team can get their billing systems ready. It&#8217;s certainly not the date that the product is going live.</p>
<p>In order to estimate the go-to-market date, every one of these (and many other) tasks need to be similarly spec&#8217;d and estimated. Will user-acceptance testing take two weeks? What if there&#8217;s serious usability problems? Does the acconts department need the developers to do some extra coding in order to be able to properly bill the service? If there&#8217;s any changes to the service after UAT, what does that mean for documentation.</p>
<p>So, given all that, why is only the development team expected to estimate the time to build before there&#8217;s any sort of spec? And even after there&#8217;s a spec, why isn&#8217;t anyone else expected to talk about time estimates?</p>
<h2>Wrapping it all up</h2>
<p>Before there&#8217;s a complete spec, any estimates are finger-in-the-air. This should never be assumed, both parties need to agree on this every time:</p>
<p style="padding-left: 30px;"><em>&#8220;I&#8217;ll give you a finger-in-the-air estimate, but I need you to understand that it is no way binding or anywhere near accurate&#8221;</em></p>
<p>Give finger-in-the-air estimates as a time unit:</p>
<p style="padding-left: 30px;"><em>&#8220;Weeks rather than months&#8221;</em></p>
<p>If there must be a number, over estimate until you have every bit of detail &#8212; on both ends:</p>
<p style="padding-left: 30px;"><em>&#8220;I think two weeks, so I&#8217;ll say four&#8221;</em></p>
<p style="padding-left: 30px;"><em>&#8220;He said four, so I&#8217;ll think eight&#8221;</em></p>
<p>Agree that once there is a full spec, a tighter estimate will be given, but that it is given in isolation:</p>
<p style="padding-left: 30px;"><em>&#8220;Now I have the full spec, I&#8217;ve mapped it out to take about 12 weeks to write the code. However this is 12 weeks in isolation. Experience shows that between everything else that happens, I get the equivilent of 60% of my time I can dedicate to a single project, therefore you should expect the project to go to UAT in 20 weeks.&#8221;</em></p>
<p>Acknowledge over and over again that development isn&#8217;t the only part of the project:</p>
<p style="padding-left: 30px;"><em>&#8220;While I&#8217;m happy to give you this estimate based on the full spec, we need to agree that after I&#8217;ve finished writing it there will be an undefined amount of time required to do user acceptance testing as well as sales, support and accounts product training and anything else that needs to happen before the product goes to market.&#8221;</em></p>
<p>If I haven&#8217;t made it clear already: Never assume the other party is thinking about things in a complete and rational manner. Even if you&#8217;re &#8220;just a developer&#8221;, make a list of things that need to happen after you&#8217;ve finished, before the product is released, and ask how preparation is going for each of them. You&#8217;ll earn a lot of kudos for knowing to think about these external things as well as possibly saving yourself (and the company) a lot of grief.</p>
]]></content:encoded>
			<wfw:commentRss>http://rick.measham.id.au/200904/announcing-a-release-day-before-you-build/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Give Up and Use Tables</title>
		<link>http://rick.measham.id.au/200901/give-up-and-use-tables/</link>
		<comments>http://rick.measham.id.au/200901/give-up-and-use-tables/#comments</comments>
		<pubDate>Sat, 24 Jan 2009 12:41:45 +0000</pubDate>
		<dc:creator>RickMeasham</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://rick.measham.id.au/?p=116</guid>
		<description><![CDATA[(If you don&#8217;t write HTML, you can skip this post. It doesn&#8217;t concern you and will just confuse you. Basically: there&#8217;s a weird bunch of people who want to avoid a particularly useful way to lay out a web page just because they hold to this notion that &#8220;tables are for data&#8221;, and the fact [...]]]></description>
			<content:encoded><![CDATA[<p><em>(If you don&#8217;t write HTML, you can skip this post. It doesn&#8217;t concern you and will just confuse you. Basically: there&#8217;s a weird bunch of people who want to avoid a particularly useful way to lay out a web page just because they hold to this notion that &#8220;tables are for data&#8221;, and the fact that they make page layout a breeze is immaterial.)</em></p>
<p>I hereby promise not to rant. Much.</p>
<p>Hey all you zealots .. <a href="http://giveupandusetables.com/">give up and use tables</a>.</p>
<p>If you have to have a meaningless &lt;div&gt;, you&#8217;re no longer semantic .. <a href="http://giveupandusetables.com/">give up and use tables</a>.</p>
<p>If you have to use Microsoft&#8217;s conditional comments just to get it to work in Internet explorer .. <a href="http://giveupandusetables.com/">give up and use tables</a>.</p>
<p>If you have to ask a chat room or forum how to get your three-column layout to work .. <a href="http://giveupandusetables.com/">give up and use tables</a>.</p>
<p>If you need to vertically center one piece of content against another .. <a href="http://giveupandusetables.com/">give up and use tables</a>.</p>
<p>If you spend more time arguing with someone than you can save by avoiding tables .. <a href="http://giveupandusetables.com/">give up and use tables</a>.</p>
<p>If you care so much about avoiding tables that you don&#8217;t have any time left to help people with their actual problem  .. <a href="http://giveupandusetables.com/">give up and use tables</a>.</p>
<p>If you end up with classes in your CSS that are designed to give you the benefits of tables without using a table tag .. <a href="http://giveupandusetables.com/">give up and use tables</a>.</p>
<p>Seriously folks, you&#8217;re spending too much time avoiding them and proselytizing about your avoidance of them and not enough time creating useful content that the semantic nature of that content is worthless.</p>
<h2>Update:</h2>
<p>Woohoo! I just got banned from #html on freenode because I argued for using tables. There was no argument and no discussion. (OK, so I was mocking his inability to justify his contention, but seriously? banned?) BTW: I&#8217;m &#8216;Woosta&#8217;, &#8216;[wito'] is the zealot in question.</p>
<blockquote><p>[22:53] &lt;to_&gt; which tag would you use to wrap &lt;label&gt; + &lt;input&gt; tags in a form?<br />
[22:53] &lt;[wito]&gt; to_: I&#8217;m a fan of &lt;fieldset&gt;&lt;label&gt;&lt;span&gt;Text:&lt;/span&gt; &lt;input/&gt;&lt;/label&gt;&lt;/fieldset&gt;<br />
[22:54] &lt;Woosta&gt; I think it would be best defined by the design<br />
[22:55] &lt;to_&gt; [wito]: but if you want to make input floating to the right of label in a 2 columns presentation layout, don&#8217;t you use a wrapping tag to clear float ?<br />
[22:56] &lt;[wito]&gt; to_: actually, I use a display:table hierarchy<br />
[22:58] &lt;Woosta&gt; just use a table<br />
[22:59] &lt;[wito]&gt; Woosta: WRONG<br />
[22:59] &lt;Woosta&gt; no: it works and it&#8217;s fast<br />
[22:59] &lt;Woosta&gt; piss farting around with CSS is a poor use of your time<br />
[23:00] &lt;[wito]&gt; Woosta: protip: you don&#8217;t argue with me. <img src='http://rick.measham.id.au/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /><br />
[23:00] &lt;Woosta&gt; Bwahahahahha<br />
[23:00] &lt;[wito]&gt; Especially not when I tell you to stop offering destructive, counterproductive advice as you are now<br />
[23:01] &lt;Woosta&gt; Zealots make me laugh<br />
[23:01] &lt;[wito]&gt; How about you spend some time in the quiet corner?<br />
[23:02] &lt;Woosta&gt; Why me? I have plenty of time up my sleeve. I think you need the time out so you can get some work done as your stupid-ass CSS crap takes you 20 times longer than a simple table would.<br />
[23:03] [Notice] -ChanServ- You have been quieted on #html by [wito] (wito)<br />
[23:03] *** ChanServ sets a ban on __________.<br />
[23:03] &lt;[wito]&gt; Let&#8217;s have some quiet time for Woosta</p></blockquote>
<h2>Update 2:</h2>
<p>Found <a href="http://www.zazzle.com/css_is_awesome_mug-168716435071981928">this funny mug</a> on Zazzle</p>
]]></content:encoded>
			<wfw:commentRss>http://rick.measham.id.au/200901/give-up-and-use-tables/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Black Triangle: A name for the event described by the 80/20 rule</title>
		<link>http://rick.measham.id.au/200901/black-triangle-8020-rule/</link>
		<comments>http://rick.measham.id.au/200901/black-triangle-8020-rule/#comments</comments>
		<pubDate>Sat, 24 Jan 2009 12:27:56 +0000</pubDate>
		<dc:creator>RickMeasham</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://rick.measham.id.au/?p=123</guid>
		<description><![CDATA[What Black Triangles can you celebrate this week? When you find one, savor it and celebrate it. Even if nobody else understands.]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve all heard the 80/20 rule right? The theory that 80% of the work results in 20% of the result and the other 20% of the work results in 80% of the result? It&#8217;s called the <a href="http://en.wikipedia.org/wiki/Pareto_principle">Pareto Principle</a> or the <em>law of the vital few</em> or the <em>principle of factor sparsity</em>.</p>
<p>It&#8217;s a nice neat truism, that strangely bears itself out in the real world. Approximately 20% of the population pay 80% of the tax in most economies &#8212; 80% of the reward coming from 20% of the populace. <a href="http://www.crn.com/security/18821726">Microsoft say that</a> if they can fix 20% of the bugs, 80% of people would be happy &#8212; 20% of the effort resulting in 80% of the reward.</p>
<p>It even works with the most mundane of matters. Think about your wardrobe and compare it to what you wear. If you&#8217;re like most people, you wear 20% of your clothes 80% of the time and the other 80% of your clothes you wear just 20% of the time.</p>
<p>But I digress. <a href="http://en.wikipedia.org/wiki/Pareto_principle">Read more about the Pareto Principle over at Wikipedia</a>.</p>
<p>Here&#8217;s the thing: When you&#8217;re working on some sort of project that has a finite scope, at the time you have done 80% of the work, there is only 20% of the final result in any tangible form. It&#8217;s discouraging if you only look at the result obtained, but <em>hugely</em> encouraging if you focus on the work left to do.</p>
<p>Consider all the effort that goes into planning a wedding: there&#8217;s nothing to show for it other than a pile of tick-boxes on a todo list until the Big Day when all that effort suddenly bears its fruit.</p>
<p>Think about installing blinds: 80% of the effort is to get the fixings in place. At this time, there&#8217;s no shade being provided by the blind, and all you can see is a pile of brackets screwed to the wall.</p>
<p><strong>Be encouraged: This moment in time, when you have completed 80% of the work, is huge</strong>. Before now, every percentage of effort resulted in just 0.25% of result. From now on, every percentage of effort will result in an average of 4% of result. So it&#8217;s worth celebrating.</p>
<p>And if it&#8217;s worth celebrating, it&#8217;s worth naming. Therefore, let me present the story of a software development team, making a game. The story goes (<a href="http://www.rampantgames.com/blog/2004/10/black-triangle.html">you can read it at Tales of the Rampant Coyote</a>) that the development team spent much effort (80%) just to get to the point where a triangle was rendered on a monitor. Those not on the team just saw a black triangle. They couldn&#8217;t understand how the many months of development resulted in something so simple. Even more, they couldn&#8217;t understand why the development team were so happy. But we know, right? 80% of the effort. That triangle was the 20% of result. After finally getting the triangle to render, the rest of the development was easy. As they say &#8220;It&#8217;s all downhill from here&#8221;.</p>
<p>So I propose that we take this story as a great example of the 80/20 rule in action and use the Black Triangle as the name for that point at which you have &#8216;broken the camel&#8217;s back&#8217;.</p>
<p><strong><em>What Black Triangles can you celebrate this week?</em> When you find one, savor it and celebrate it. Even if nobody else understands.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://rick.measham.id.au/200901/black-triangle-8020-rule/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RSII: An update</title>
		<link>http://rick.measham.id.au/200712/rsii-an-update/</link>
		<comments>http://rick.measham.id.au/200712/rsii-an-update/#comments</comments>
		<pubDate>Sat, 08 Dec 2007 02:57:08 +0000</pubDate>
		<dc:creator>RickMeasham</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://rick.measham.id.au/200712/rsii-an-update/</guid>
		<description><![CDATA[Back on November 7th, I wrote about RSII: Reverse Signatures for Insecure Identification. Since then I&#8217;ve discovered http://www.gravatar.com/. It basically implements RSII where your email address is the key and without the theorizing I&#8217;ve given to the concept.
My RSII avatar is now also my gravatar, and it&#8217;s let me add my other email addresses to [...]]]></description>
			<content:encoded><![CDATA[<p>Back on November 7th, <a href="http://rick.measham.id.au/200711/rsii-reverse-signatures-for-insecure-identification/">I wrote about RSII: Reverse Signatures for Insecure Identification</a>. Since then I&#8217;ve discovered <a href="http://www.gravatar.com/">http://www.gravatar.com/</a>. It basically implements RSII where your email address is the key and without the theorizing I&#8217;ve given to the concept.</p>
<p>My RSII avatar is now also my gravatar, and it&#8217;s let me add my other email addresses to the one account. So now my <a href="http://search.cpan.org/~rickm/">CPAN modules</a> all show my RSII Gravatar. When you look at CPAN, you&#8217;ll know that the Rick Measham over there, is the same as the Rick Measham over here. Now if only we can convince more sites to implement gravatar-managed avatars!</p>
<p>I&#8217;ve just installed gravatars on my blog here, so if you have a gravatar it will show up next to your comment. If you don&#8217;t have a gravatar, you&#8217;ll get the default silhouette.</p>
]]></content:encoded>
			<wfw:commentRss>http://rick.measham.id.au/200712/rsii-an-update/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>If programmers built planes</title>
		<link>http://rick.measham.id.au/200711/if-programmers-built-planes/</link>
		<comments>http://rick.measham.id.au/200711/if-programmers-built-planes/#comments</comments>
		<pubDate>Thu, 08 Nov 2007 22:37:44 +0000</pubDate>
		<dc:creator>RickMeasham</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://rick.measham.id.au/200711/if-programmers-built-planes/</guid>
		<description><![CDATA[I just stumbled across this video on YouTube that&#8217;s supposed to be an advertisement for some business management rubbish but, ignoring that, is a great analogy of modern programming (lack of) principles:
Most of today&#8217;s online development work is build-it-as-you-fly. Even with passengers on board.
In the early days when the plane is just flyable but has [...]]]></description>
			<content:encoded><![CDATA[<p>I just stumbled across this video on YouTube that&#8217;s supposed to be an advertisement for some business management rubbish but, ignoring that, is a great analogy of modern programming (lack of) principles:</p>
<!-- start insertion by YouTube Brackets, robertbuzink.nl --><span class="youtube"><object width="425" height="350" type="application/x-shockwave-flash" data="http://www.youtube.com/v/UZq4sZz56qM"> <param name="movie" value="http://www.youtube.com/v/UZq4sZz56qM" /><param name="wmode" value="transparent" /></object></span><!-- end Youtube Brackets insertion -->
<p>Most of today&#8217;s online development work is build-it-as-you-fly. Even with passengers on board.</p>
<p>In the early days when the plane is just flyable but has no seats, windows or walls you stick up a sign that says &#8216;Beta&#8217; and welcome people on board. If you&#8217;re nice, you only invite your friends and called it a &#8216;Closed Beta&#8217;.</p>
<p>Then once you have the seats, windows and walls you call it &#8216;gamma&#8217; or &#8216;release 1.0&#8242; and welcome the public. There&#8217;s no flight attendants and certainly no parachutes yet, but it initially feels like it&#8217;s all done.</p>
<p>The problem is that at about this time, someone notices that the windows could do with shutters, but that means replacing them. So that&#8217;s where development priorities go: back to the windows, while we&#8217;re still flying, and while we still don&#8217;t have flight attendants or parachutes.</p>
<p>This all works rather well, and (thankfully!) people are now so used to it that you hardly even need to apologize when something goes wrong. But we really need to change this. Rapid prototyping should just be that: it should never get outside the company. Once it does, the sales and marketing types will start to sell it as finished-or-nearly-finished.</p>
<p>Instead we need to take our rapid prototypes as being as useful to the final product as a scrawl on a whiteboard. They&#8217;re a proof of concept, or something you can show your VC partners at the same time you show them your napkin sketches.</p>
<p>Just because our programs won&#8217;t kill people if they&#8217;re not finished properly when we invite passengers aboard doesn&#8217;t mean we shouldn&#8217;t treat is just as seriously.</p>
]]></content:encoded>
			<wfw:commentRss>http://rick.measham.id.au/200711/if-programmers-built-planes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Measham&#8217;s Law: Godwin&#8217;s Law for Open Source development</title>
		<link>http://rick.measham.id.au/200710/meashams-law-godwins-law-for-open-source-development/</link>
		<comments>http://rick.measham.id.au/200710/meashams-law-godwins-law-for-open-source-development/#comments</comments>
		<pubDate>Wed, 10 Oct 2007 22:37:46 +0000</pubDate>
		<dc:creator>RickMeasham</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://rick.measham.id.au/?p=46</guid>
		<description><![CDATA[Godwin&#8217;s Law states:
As an online discussion grows longer, the probability of a comparison involving Nazis or Hitler approaches one.
I now introduce Measham&#8217;s Law:
As an online discussion regarding the features of a piece of open source software grows longer, the probability of someone saying &#8220;It&#8217;s open source, you write it&#8221; approaches one.
]]></description>
			<content:encoded><![CDATA[<p>Godwin&#8217;s Law states:</p>
<blockquote><p><a href="http://en.wikipedia.org/wiki/Godwin%27s_law"><em>As an online discussion grows longer, the probability of a comparison involving Nazis or Hitler approaches one.</em></a></p></blockquote>
<p>I now introduce Measham&#8217;s Law:</p>
<blockquote><p><em>As an online discussion regarding the features of a piece of open source software grows longer, the probability of someone saying &#8220;It&#8217;s open source, </em>you<em> write it&#8221; approaches one.</em></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://rick.measham.id.au/200710/meashams-law-godwins-law-for-open-source-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sausage damnit!</title>
		<link>http://rick.measham.id.au/200709/sausage-damnit/</link>
		<comments>http://rick.measham.id.au/200709/sausage-damnit/#comments</comments>
		<pubDate>Thu, 20 Sep 2007 21:23:10 +0000</pubDate>
		<dc:creator>RickMeasham</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://rick.measham.id.au/?p=32</guid>
		<description><![CDATA[The term &#8216;bacn&#8217; was coined by the folks at PodCamp Pittsburgh and is on the rise as a term for email that isn&#8217;t spam, but it isn&#8217;t ham. PodCamp considers email notifications from Facebook, Jaiku, Flickr, etc. to be &#8216;bacn&#8217;. You want to get the notificiations so it isn&#8217;t spam. But then, the messages aren&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://rick.measham.id.au/wp-content/uploads/2007/09/citaliansausage.jpg" title="Sausage" alt="Sausage" align="left" height="125" width="169" />The term &#8216;bacn&#8217; <a href="http://en.wikipedia.org/wiki/Bacn_%28electronic%29">was coined by the folks at PodCamp Pittsburgh</a> and is on the rise as a term for email that isn&#8217;t spam, but it isn&#8217;t ham. PodCamp considers email notifications from Facebook, Jaiku, Flickr, etc. to be &#8216;bacn&#8217;. You want to get the notificiations so it isn&#8217;t spam. But then, the messages aren&#8217;t that exciting so they&#8217;re not really ham.</p>
<p><strong>Bacn is the wrong term.</strong></p>
<p>Bacon is the king of porcine produce. Bacon is smoked, fried, savored. If someone offered me ham or bacon, I&#8217;d take the bacon every day. Almost everyone I&#8217;ve spoken to has the same reaction. There is no better way to eat pig than thick slices of double smoked bacon. So why on earth would PodCamp decide that it was the right word for messages that come between ham and spam?</p>
<p><strong>I don&#8217;t know, but I plan to stop it.</strong></p>
<p>These message should be called &#8216;Sausage&#8217;. A pork sausage is still an enjoyable way to eat pig, but it&#8217;s grissly and made from the parts of the pig you&#8217;d prefer to not talk about (seriously, if you ever try a saussage made from prime-cuts, you&#8217;ll hate it!)</p>
<p>A sausage, like notification email, is nice. But it isn&#8217;t the best. It&#8217;s not full of useful or enjoyable information, gossip or photos from friends, but is made by a machine to tell you something you may or may not overly care about.</p>
<p>From now on, I plan to append the words &#8220;Sausage Damnit!&#8221; to any posts I see that relate to so called &#8216;Bacn&#8217;.</p>
<p><strong>Please join me</strong> (and feel free to link it to this article if you don&#8217;t want to write your own!)</p>
]]></content:encoded>
			<wfw:commentRss>http://rick.measham.id.au/200709/sausage-damnit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript Color picker</title>
		<link>http://rick.measham.id.au/200606/javascript-color-picker/</link>
		<comments>http://rick.measham.id.au/200606/javascript-color-picker/#comments</comments>
		<pubDate>Thu, 29 Jun 2006 03:44:20 +0000</pubDate>
		<dc:creator>RickMeasham</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://wp.rick.measham.id.au/?p=19</guid>
		<description><![CDATA[Having seen various color pickers that ask you to click on a tiny sample to select a color, I decided it was time to do something more useful. First I wrote color.js, a library for creating, converting and using colors in various ways. Then I got my scrollcontrol.js that uses a scrollbar to select a [...]]]></description>
			<content:encoded><![CDATA[<p>Having seen various color pickers that ask you to click on a tiny sample to select a color, I decided it was time to do something more useful. First I wrote <a href="http://rick.measham.id.au/paste/color.js" target="_blank">color.js</a>, a library for creating, converting and using colors in various ways. Then I got my <a href="http://rick.measham.id.au/paste/scrollcontrol.js" target="_blank">scrollcontrol.js</a> that uses a scrollbar to select a numerical value between two points. Used many scroll controls to select values for colors, plus added a mixer and created my <a href="http://rick.measham.id.au/paste/colorpoc.htm" target="_blank">colorpoc.htm</a>. Currently it works best on Firefox. KHTML has a problem with the scroll control that&#8217;s not really on the radar to fix (though patches are always welcome). IE doesn&#8217;t hide the RGB/HSV mixers correctly (why can&#8217;t it just behave?)</p>
]]></content:encoded>
			<wfw:commentRss>http://rick.measham.id.au/200606/javascript-color-picker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

