<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Cooper Systems</title>
	
	<link>http://www.coopersystems.com.au</link>
	<description>Delving into systems, security and society.</description>
	<lastBuildDate>Fri, 24 Feb 2012 23:33:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/CooperSystems" /><feedburner:info uri="coopersystems" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>What is agile?</title>
		<link>http://feedproxy.google.com/~r/CooperSystems/~3/kgI1juYnm1Y/</link>
		<comments>http://www.coopersystems.com.au/what-is-agile/#comments</comments>
		<pubDate>Fri, 24 Feb 2012 23:29:47 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.coopersystems.com.au/?p=258</guid>
		<description><![CDATA[There&#8217;s a lot of confusion around the concept of agile, and particularly when it should be used. Basically, agility is a property of a class of business methodologies. Being agile is great, given the choice between agile and cumbersome who wouldn&#8217;t choose agility? But the thing to realise is that you might be accepting other [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a lot of confusion around the concept of agile, and particularly when it should be used. Basically, agility is a property of a class of business methodologies. Being agile is great, given the choice between agile and cumbersome who wouldn&#8217;t choose agility? But the thing to realise is that you might be accepting other trade offs.</p>
<p>A good analogy is a military air craft. Agility is a great thing to have depending on the role. As it turns out, for a fighter jet agility is one of the most important properties you can have. Dog fighting involves a tight decision loop and the faster you can react and<span id="more-258"></span> out manoeuvre the opponent the better your odds of winning. Fighter jets need to be agile.</p>
<p>But what about a bomber? In a one to one fight a bomber is never going to be as agile as a fighter jet. The role of a bomber is not to provide combat power int the air but to provide a strike capability on the ground. For a bomber characteristics like range, payload and stealth are more important, agility almost doesn&#8217;t enter the picture. Would you waste time building an agile bomber?</p>
<p><strong>Software</strong><br />
When it comes to engineering a software system traditionally a very large process (known as the waterfall methodology) is followed, for government it goes like this:</p>
<ul>
<li>Get the project mandate,</li>
<li>derive operational operational needs,</li>
<li>work down to functional requirements,</li>
<li>put it out to an open tender,</li>
<li>a bunch of people respond,</li>
<li>analyse tenders by set of predefined criteria,</li>
<li>functional requirements form basis of contract (deliver all these functions and we pay you),</li>
<li>contractor writes up a big design,</li>
<li>validate design,</li>
<li>deliver system,</li>
<li>test system,</li>
<li>authorities approve system,</li>
<li>transition into service,</li>
<li>sustain it</li>
</ul>
<p>What a pain, we have to go through all those steps just to get a system?</p>
<p>Well there are really two main steps:<br />
- Build something<br />
- See if it works</p>
<p>If it works, bingo! If it doesn&#8217;t, go back to step 1. Except the thing is, evey time you go back you compromise the system. All or part of what you built in step 1 is now waste. Not only that, but the architectural decisions made while building step 1 now have to be revisited, and the design won&#8217;t be as good as if it had been rearchitected from the start. The design will have bandaids all over it.</p>
<p>So what we want to do to keep cost down and improve the design is to get it right the first time. Waterfall methodology does all the thinking up front. Work out exactly what the user wants, design the system, build it to the plan, test that it met the original design and introduce it. Waterfall is like a sniper. He chooses his time and place, identifies the target, gets permission to take the shot, tests the wind, makes adjustments, fires&#8230;.. and confirms the kill. He gets it right the first time.</p>
<p>Or does he?</p>
<p>What if our sniper can only fire once, but now he&#8217;s trying to hit a man with a rocket pack at 200 meters from a moving train. He shoots, he misses! All that planning, all that setup for nothing, the solution was the most efficient one possible for a static target, but once things get crazy he needs a new plan.</p>
<p>And that new plan is agile.</p>
<p>Agile is the heat seeking missile. From atop that train he quickly locks in on the man and fires the missile. The man flying around, dodging and weaving and all the while the missile keeps adjusting trajectory to move toward where he is, but eventually hits the target.</p>
<p>So which solution was more efficient? It depends on the scenario. It scenario one the sniper rifle was obviously more efficient, the heat seeking missile was overkill. But in scenario 2 the sniper missed, all that effort wasted. Even though it used more fuel and cost a hell of a lot more overall, at least with the agile missile we hit the target.</p>
<p>So there we have the two methodologies, the sniper and the missile.</p>
<p>It turns out that in the commercial sector agile is the most effective strategy. Yes it&#8217;s more expensive, but only if the waterfall method hits the target spot on the first time, which considering how fast the market moves and how fickle customers can be is pretty damn hard. Agile works on iterations, continually testing and adjusting the solution.</p>
<p>Agile works quite well for commercial and small projects, so where does waterfall come in? Waterfall is great for large projects, where we can&#8217;t afford to be agile and the solution can be very well conceptualised ahead of time. You wouldn&#8217;t agile design a space shuttle. Imagine designing something that you think looks pretty good, sending it off into space only to have it blow up. Oops! Let&#8217;s do another one and tweak that failure point. It gets a little higher then blows up again. Great job.</p>
<p>The same is also true of large software systems. Sometimes these systems are just so huge, particularly with considerations like change management, transition plans and engineering hours spent in development that you just can&#8217;t afford to be building the wrong thing. You only get one shot and the problem isn&#8217;t going anywhere, so it makes sense to do the analysis up front and get it right the first time.</p>
<p>So there you have the two methodologies. Next time you&#8217;re presented with the choice: agile vs waterfall stop and think. Is the target nice and still or will it move slightly before I&#8217;m finished aiming? I want the rocket launcher, but can I afford it?</p>
<p>Whichever you choose it will be a matter of waste. Do I want to risk wasting the shot, or do I want to waste time and fuel on readjusting.</p>
<p>&nbsp;</p>
<img src="http://feeds.feedburner.com/~r/CooperSystems/~4/kgI1juYnm1Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.coopersystems.com.au/what-is-agile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.coopersystems.com.au/what-is-agile/</feedburner:origLink></item>
		<item>
		<title>Documenting a Startup Episode 3</title>
		<link>http://feedproxy.google.com/~r/CooperSystems/~3/nsmZl9FNo3s/</link>
		<comments>http://www.coopersystems.com.au/documenting-a-startup-episode-3/#comments</comments>
		<pubDate>Sun, 12 Feb 2012 11:54:15 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.coopersystems.com.au/?p=234</guid>
		<description><![CDATA[After uploading the version 1 How Do You Feel app, and feeling pretty good about it (no pun intended) I decided to do some work (just an hour or two here and there after work) to pretty it up a bit. I can&#8217;t have something horrible floating around on the web with my name on [...]]]></description>
			<content:encoded><![CDATA[<p>After uploading the version 1 How Do You Feel app, and feeling pretty good about it (no pun intended) I decided to do some work (just an hour or two here and there after work) to pretty it up a bit. I can&#8217;t have something horrible floating around on the web with my name on it surely? It looks like this personal experiment (continuous integration) is actually working, as even the smallest changes are pretty rewarding to see on the live URL, making me more motivated to keep making them instead of just reading Hacker News or learning some wanky programming language I&#8217;ll probably never use until bed time.</p>
<p><strong>Progress</strong></p>
<p><strong><em>Version 1 &#8211; The debut</em><br />
<a href="http://www.coopersystems.com.au/wp-content/uploads/2012/02/howdoyoufeelv1resized5.png"><img class="alignnone size-medium wp-image-244" title="HowDoYouFeel.org Version 1" src="http://www.coopersystems.com.au/wp-content/uploads/2012/02/howdoyoufeelv1resized5-300x169.png" alt="" width="300" height="169" /></a></strong></p>
<p>The concept here is that there&#8217;s a simple question, how are you feeling today?</p>
<p>There are two axis you can <span id="more-234"></span>vote along and no words, just pictures. Right to left is happiness, up and down is exitement. So you can be happy and exited (overbearingly happy), happy and unexited (content), or unhappy but neutrally exited (simple depression), or some combination (there&#8217;s 9 total).</p>
<p>Clicking on an element takes you to the next screen which says which one you chose, and then goes and gets the aggregate happiness for the entire site, so it immediately gives a sense that you&#8217;re connected to something bigger.</p>
<p>The whole idea is that it&#8217;s about the user. How do <em>you</em> feel? And it&#8217;s such a subjective question that you&#8217;re compelled to answer it, knowing that there is no wrong answer. The phrase <em>how do you feel</em> was determined by using the <a href="https://adwords.google.com.au/o/Targeting/Explorer">Google Keyword Tool</a>, which scored high on traffic and low on competition.</p>
<p>The foundation for the app is GWT and it&#8217;s written in Java. Some people say Java is too verbose but I&#8217;m a fast typist (again, no pun intended!) and I absolutely love the way Eclipse can check and auto complete code as you type. Sure Python might be faster and it interrupts your mental flow a bit less by not getting in the way as much, but it&#8217;s pretty damn cool to be able to code the same language throughout the entire application stack.</p>
<p>On the backend I&#8217;ve used the appengine datastore and <a href="http://code.google.com/p/objectify-appengine/">Objectify</a>. The datastore is treated pretty much like a giant hashmap. You just take an object, pass it from client to server (all transport is abstracted away once the interfaces are defined), then objectify.push(object) it straight into the datastore, love it. I do quite like relational databases (more than NoSQL) for the record, but the idea of mass scalability and the novelty of not having to write queries to get or store data (speeding up development) seemed intriguing enough to at least try the datastore out for this app.</p>
<p><strong><em>Version 2</em></strong></p>
<p><a href="http://www.coopersystems.com.au/wp-content/uploads/2012/02/howdoyoufeelv21.png"><img class="alignnone size-medium wp-image-245" title="HowDoYouFeel.org Version 2" src="http://www.coopersystems.com.au/wp-content/uploads/2012/02/howdoyoufeelv21-300x173.png" alt="" width="300" height="173" /></a></p>
<p><em><br />
</em>The site gets a little more complicated with the addition of geolocation code. It checks your IP and uses a free API to get the city the user is from (url: http://api.hostip.info/get_html.php?ip=). Some testing though proved it to be not quite accurate enough. It worked well on my computer, but using my phone it said I was in Sydney instead of Melbourne. The description of the API said it accepts user submissions of location based on blocks of IPs, so I&#8217;m guessing the company my phone is with (Optus) is assigned to Sydney, even though they use some of their available IPs in Melbourne. Either that or I&#8217;ve heard that mobile networks sometimes NAT the entire network, so maybe all phone&#8217;s appear as the same or at least a very small set of IPs to any external website, making the per city functionality useless for mobile devices.</p>
<p>The other option was to use HTML5 geolocation, but the problem with that is it asks the user to confirm they want to share their location. We don&#8217;t want the users exact position down to the metre and asking for permissions disrupts the flow of the user experience. Instead I kept the hostip.info API but changed the app to get location by country. Broad enough that no personal information is requested but precise enough to be useful and accurate.</p>
<p style="text-align: left;"><strong><em>Version 3</em></strong></p>
<p><a href="http://www.coopersystems.com.au/wp-content/uploads/2012/02/howdoyoufeelv31.png"><img class="alignnone size-medium wp-image-246" title="HowDoYouFeel.org Version 3" src="http://www.coopersystems.com.au/wp-content/uploads/2012/02/howdoyoufeelv31-300x273.png" alt="" width="300" height="273" /></a></p>
<p><em><br />
</em>The most immediate change is that we&#8217;ve <em>simplified</em>. Rather than having two axis of happiness, a concept that itself needs to be explained, there are just three faces to choose from. Your country is automatically selected for you, and a map of how the world is going is displayed right away.</p>
<p>Between version&#8217;s 2 and 3 I also read the book <a href="http://www.amazon.com/Lean-Startup-Entrepreneurs-Continuous-Innovation/dp/0307887898">The Lean Startup</a> by Eric Ries, which was a real eye opener into the management principles you&#8217;ll need to survive in the modern world. His basic premise is that <a href="http://en.wikipedia.org/wiki/Scientific_management">scientific management</a>, pioneered by Frederick Taylor in 1910 has been taken too far, and used as an excuse to make the workplace too rigid and unable to change. This is probably because the companies at the top of the food chain want to maintain the status quo and just stay profitable forever (and who wouldn&#8217;t want that), but the world is changing. Disruption is the new buzzword and the rate of change is never going to decrease. The<a href="http://en.wikipedia.org/wiki/Lean_manufacturing"> lean manufacturing</a> movement was pioneered by Toyota decades ago to somewhat counter the trend towards inflexibility and waste, and Eric Ries takes the ideas into the world of software where they thrive as useful tools to turn today&#8217;s behemoths into tomorrows agile (but still large) organisations.</p>
<p>I&#8217;ve started applying it to this experimental startup by thinking of every change not as a feature to be implemented, but as a hypothesis to be tested. In thinking lean we want to minimise waste, and there&#8217;s no greater waste than working diligently to a plan that was wrong to begin with. Every plan makes assumptions and leaps of faith, so the idea is to make changes as small as possible and to test them with real data as quickly as possible to tighten the feedback loop. Although it&#8217;s slightly more effort, Ries argues that it is far, far less wasteful than wasting valuable engineering hours on a perfectly flawed, unverified plan.</p>
<p>I&#8217;ve added a link to my <a href="https://www.pivotaltracker.com/projects/470115">pivotal tracker</a> to the website, which is where I&#8217;ll store the hypothesis to be validated. There&#8217;s also a feedback link to capture any input from existing users.</p>
<p><strong><em>Version 4</em></strong></p>
<p><a href="http://www.coopersystems.com.au/wp-content/uploads/2012/02/howdoyoufeelv81.png"><img class="alignnone size-medium wp-image-248" title="HowDoYouFeel.org Version 4" src="http://www.coopersystems.com.au/wp-content/uploads/2012/02/howdoyoufeelv81-300x230.png" alt="" width="300" height="230" /></a></p>
<p>After watching a user struggle to use the website I made a few basic changes, and it&#8217;s clear that there will be many more required in the future. What&#8217;s the deal with the colours, how do they relate to the faces? So I&#8217;ve added a colour gradient beneath the faces and given them words, so a user knows exactly what they&#8217;re getting when they click it. The colours also relate to the map, yellow is happy, blue is sad, and green is somewhere in the middle according to the gradient.</p>
<p>And how are we going with validating hypothesis? Well, the overall hypothesis of &#8216;I think people will want to see how the world is feeling&#8217; is not yet proven positive, because there&#8217;s been almost no visitors. To be fair, no one knows about the site except the facebook visitors, and they got version 1, so you wouldn&#8217;t exactly expect them to return.</p>
<p>To be even fairer, the site does need more to it. For a start, you can click a face as many times as you like and they all count as valid votes. Who can trust the data when that&#8217;s the case? So if I was being true to the method, I&#8217;d have to say that we&#8217;re not actually to the &#8216;testing&#8217; part, we&#8217;re still in implementation.</p>
<p>I&#8217;m currently reading a book on design called <a href="http://www.amazon.com/Non-Designers-Design-Book-Robin-Williams/dp/0321534042">The Non-Designers Design Book</a> which is proving to be full of the most immediately useful design ideas around (the low hanging fruit), perfect. Maybe it&#8217;s time I had a look at the site from the design point of view before coming back to implementing a single vote mechanism.</p>
<p>The best way to validate one vote per user per day would be through a login method, but I think that forcing users to login at this stage would interfere with any testing activities. I&#8217;ve only had a couple of visitors do this, but even coming to the site and spamming votes shows there&#8217;s some interest. Ideally it would support Google, Facebook and Twitter login, and I could easily do Google login, but what&#8217;s the point of doing any login system if the idea itself is fundamentally flawed? I&#8217;m quite prepared to pivot, and until the idea as a whole is validated as useful I don&#8217;t think it&#8217;s worth doing any long term engineering work, especially with such scarce hours (maybe 1 per day on a good week) to contribute to it and this blog series. So unless it becomes critical for testing, login will have to wait, hopefully I&#8217;ll have a better idea to validate the idea behind the site in the mean time.</p>
<p><strong>Scale Fail<br />
</strong>I also ran into my first engineering constraint with app engine. Every &#8216;vote&#8217; is stored in the database as an individual record, and when getting the overall score for a country (done once per vote, and once per country every time the map is loaded) you have to extract every relevant record from the database.</p>
<p>If you vote &#8216;happy&#8217; on Australia and it returns that there are currently 300 votes with an average score of &#8216;happy&#8217;, that&#8217;s 300 read operations it&#8217;s had to do to get that result. And every time you click vote, it does 301 more, 302 more, 303 more. The world map is even worse because it does every vote in the world for the last 24 hours. I had a user or two spam votes until the map just stopped showing up.</p>
<p>Logging into the AppEngine backend it showed that I had exhausted the daily quota for reads which is 50,000. This wouldn&#8217;t be a problem on a relational database as you could use an aggregate function to average it for you on the server and simply return the result. However, that&#8217;s the point of AppEngine, that would take up processing time on the database and that means as the app grows you&#8217;re going to need more database servers, which is pretty wasteful. So with AppEngine, you can&#8217;t do that.</p>
<p>What the answer needs to be is that for every vote it looks up the current score and updates the average, so the server only needs to pull the current average out for every hit. For the world score it can contain the average of each country as separate properties in one record, so getting all that data out is still only one &#8216;read&#8217;. I&#8217;ll setup a cron job to recalculate the averages from scratch every 15 minutes or so.</p>
<p>Looking forward to polishing off this iteration to see if it&#8217;s a winner or a dud that can be pivoted. Either way it&#8217;s just great to keep learning about GWT, AppEngine and lean startups.</p>
<img src="http://feeds.feedburner.com/~r/CooperSystems/~4/nsmZl9FNo3s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.coopersystems.com.au/documenting-a-startup-episode-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.coopersystems.com.au/documenting-a-startup-episode-3/</feedburner:origLink></item>
		<item>
		<title>Documenting a Startup Episode 2</title>
		<link>http://feedproxy.google.com/~r/CooperSystems/~3/skpKZnDvwHg/</link>
		<comments>http://www.coopersystems.com.au/documenting-a-startup-episode-2/#comments</comments>
		<pubDate>Sat, 11 Feb 2012 10:08:50 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.coopersystems.com.au/?p=227</guid>
		<description><![CDATA[In one little action I&#8217;d completely humiliated my fiance. After fiddling with GWT for a few hours my amazing app howdoyoufeel.org was ready to share, complete with a horrible color scheme and some very &#8216;special&#8217; to say the least faces. I post it on my facebook feed for laughs and my ever supportive fiance, without [...]]]></description>
			<content:encoded><![CDATA[<p>In one little action I&#8217;d completely humiliated my fiance.</p>
<p>After fiddling with GWT for a few hours my amazing app howdoyoufeel.org was ready to share, complete with a horrible color scheme and some very &#8216;special&#8217; to say the least faces.</p>
<p>I post it on my facebook feed for laughs and my ever supportive fiance, without even realizing what she was linking to put it on her feed as &#8216;probably the best thing ever&#8217;.</p>
<p>The next day I&#8217;m chuckling over how crap version 1 was but how liberating to have it out in the wild free and from my own fears of not meeting the expectations of others, having thoroughly lowered them. While checking the visitor analytics, I idly comment  that there are actually quite a few users from Canada and Sri Lanka. She freezes.</p>
<p>Canada and Sri Lanka? Those are her home countries, and therefore her friends who clicked her link! She rushes to the website hoping that it&#8217;s the inspired genius she&#8217;d expect from her can-do-no-wrong fiance.</p>
<p>Sorry babe, it&#8217;s version one, the minimum viable product, as crap as it gets ; )</p>
<p>&#8220;I hate you&#8221;</p>
<p>The occupational hazards of a startup!</p>
<img src="http://feeds.feedburner.com/~r/CooperSystems/~4/skpKZnDvwHg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.coopersystems.com.au/documenting-a-startup-episode-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.coopersystems.com.au/documenting-a-startup-episode-2/</feedburner:origLink></item>
		<item>
		<title>Can I make money online?</title>
		<link>http://feedproxy.google.com/~r/CooperSystems/~3/qRQ9nF_zgKc/</link>
		<comments>http://www.coopersystems.com.au/can-i-make-money-online/#comments</comments>
		<pubDate>Sat, 14 Jan 2012 04:46:31 +0000</pubDate>
		<dc:creator>jay</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.coopersystems.com.au/?p=211</guid>
		<description><![CDATA[Talking about making money on the internet has a bit of a stigma about it these days. This is probably because of all the hyped up &#8216;get rich quick&#8217; schemes that are advertised so heavily on so many less than desirable sites, however, the fact of the matter is &#8211; Yes, you can make money [...]]]></description>
			<content:encoded><![CDATA[<p>Talking about making money on the internet has a bit of a stigma about it these days. This is probably because of all the hyped up &#8216;get rich quick&#8217; schemes that are advertised so heavily on so many less than desirable sites, however, the fact of the matter is &#8211; Yes, you can make money on the internet. It&#8217;s a multi-billion dollar industry.</p>
<p>Now before I continue: Don&#8217;t worry I&#8217;m not going to try and sell you anything. There&#8217;s no affiliate links, no CPA products, no ebooks, nothing. The only way we will profit off this blog is if we one day decide to advertise.</p>
<p>So now with that little disclaimer done, lets get to the reality of the situation. As much as would-be internet millionaires who try program after program trying to make their millions so they can live on a beach and never have to work again don&#8217;t like to believe, for all intents and purposes making money on the internet is just like running any other business except, you guessed it, on the net.</p>
<p>There are several ways people can do this, whether gaming Google with blackhat SEO techniques (not recommended!), eBooks (which can range from extremely informative to just plain rubbish), selling products on eBay, or mastering the art of getting cheap google AdWords traffic through split testing and optimisation; at some point along the line you&#8217;re going to realise &#8220;Hey, this is hard work!&#8221;.</p>
<p>You&#8217;re going to be making spreadsheets and entering all sorts of data to calculate which of your numerous split tests is performing the best and deserves your full budget. You&#8217;re going to be sending and receiving emails every day to customers, product suppliers, or content writers. You&#8217;re going to be carefully managing your finances because every time you run that $10,000 campaign you stand to lose thousands of dollars.</p>
<p>But the news isn&#8217;t all bad, you&#8217;ll get to work your own hours, be your own boss, and be able to tell people that you <em>are</em> that guy who actually did it. Also, being that you are by definition an entrepreneur you&#8217;re not constrained by the chains of a &#8216;salary&#8217; and can stand to add a couple of zero&#8217;s to that bank balance and pay off the mortgage. </p>
<p>There are of course two distinct reasons why you&#8217;d take a normal business and put it on the internet.<br />
1. The increased connectedness brings together people with niche interests in a way that they never before could. If there&#8217;s a cat collar enthusiast community, suddenly it might become profitable to create luxury cat collars and sell them to the community. The product has nothing to do with the internet, but it&#8217;s being on the internet that makes the entire business viable.<br />
2. Internet ads are much more efficient than the old print and television ads. You can target very specific demographics including individual users who have visited your site before but not purchased. And once targetted you can measure the exact performance of your ads with statistics as useful as dollars spent vs dollars made (if you give the formula the value of a sale). The power of online advertising is killing traditional media and bringing normal non-internet industries online.</p>
<p>Your limit rests only on that one factor, how hard are you willing to work for it? This scares off 99% of the people who are typically attracted to internet riches. The ones who are attracted to it for the wrong reasons. The question is: which type of person are you?</p>
<p><strong>Your turn</strong><br />
If you&#8217;re just starting out leave us a comment with a question about anything at all, we have heaps of experience and want to see new players succeed. Also feel free to sign up to our <a href="feeds.feedburner.com/CooperSystems" title="rss">rss</a></p>
<p>Good luck</p>
<img src="http://feeds.feedburner.com/~r/CooperSystems/~4/qRQ9nF_zgKc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.coopersystems.com.au/can-i-make-money-online/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.coopersystems.com.au/can-i-make-money-online/</feedburner:origLink></item>
		<item>
		<title>How to open a business in eight easy steps</title>
		<link>http://feedproxy.google.com/~r/CooperSystems/~3/ZJsM46LzRoo/</link>
		<comments>http://www.coopersystems.com.au/how-to-open-a-business-in-eight-easy-steps/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 23:08:20 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.coopersystems.com.au/?p=199</guid>
		<description><![CDATA[So you want to open a business. Great! Maybe you&#8217;re even most of the way there. But like it or not, there are eight steps you&#8217;ll need to follow. Skip any and you&#8217;ll probably find that no one will want to buy what you&#8217;re selling. Luckily, they&#8217;re pretty easy. Remember when you open a business, [...]]]></description>
			<content:encoded><![CDATA[<p>So you want to open a business. Great! Maybe you&#8217;re even most of the way there. But like it or not, there are eight steps you&#8217;ll need to follow. Skip any and you&#8217;ll probably find that no one will want to buy what you&#8217;re selling. Luckily, they&#8217;re pretty easy.</p>
<p>Remember when you open a business, if you&#8217;re not returning value for the money you receive then you&#8217;re either receiving charity from someone (which is ok for a little while) or stealing from them. The more people you help, the more value you&#8217;re creating, and the more money you deserve. The skill is turning a problem into an income.</p>
<p>So to get money, let&#8217;s create some value. The eight steps are:<span id="more-199"></span></p>
<ol>
<li><strong>Find a problem or opportunity</strong></li>
<li><strong>Find out how how big the problem is (is it worth solving?)</strong></li>
<li><span style="color: #000000;"><strong>Think up the solution</strong></span></li>
<li><strong>Position your solution in the market</strong></li>
<li><strong>Implement the solution and create the product</strong></li>
<li><strong>Test and adjust your solution</strong></li>
<li><strong>Test and adjust the price</strong></li>
<li><strong>Spread the word</strong></li>
</ol>
<div><span style="color: #000000; font-size: small;"><span style="line-height: 24px;">The point of writing a business plan is basically to cover these steps in your own head (it can also be presented to potential financiers to prove you&#8217;ve thought these through). However you don&#8217;t always need to write a business plan, skimming through these steps first should be the first thing you do when evaluating any opportunity.</span></span></div>
<p><strong>1. Find a problem or opportunity</strong></p>
<p>This must always be the first step. Even if you find the solution first, you should always backtrack and think to yourself what is the problem this product is solving? If there is no problem or opportunity for improvement, then there is no market to purchase what you&#8217;re selling. This is the most important one, <span style="text-decoration: underline;"><em>every business must be solving a problem.</em></span></p>
<p>This is the most fundamental mistake. You only have to turn on an episode of <a href="http://en.wikipedia.org/wiki/Dragons'_Den">Dragons Den</a> to see just how many solutions looking for problems there are out there. Once again, you have to start with a problem to solve! What&#8217;s the problem that&#8217;s being solved for your current product? (or conversely what opportunity is being created?) If it&#8217;s a problem that you yourself have had then you may have done this step somewhat intuitively, which isn&#8217;t necessarily a bad thing, but can you think of one other person who also has the same problem?</p>
<p>Also note that it need not be a fundamental, huge problem, it can be an incremental one. Google didn&#8217;t invent the search engine, they just made it incrementally better and in doing that took the entire search market. They realised that search engine&#8217;s just weren&#8217;t useful enough (a problem), and they had a solution. The problem could be that business analytics are too confusing, and your solution will simplify them, or that no coffee store in your area uses ethically sourced coffee beans. You don&#8217;t need to invent something fundamentally new like a jetpack or flying car (in fact what problem would 60 second flight jetpack solve anyway?), incremental problems are just as good.</p>
<p><strong>2. Find out how how big the problem is<br />
</strong>This step isn&#8217;t nearly as hard as the first one as you have direction now, but it&#8217;s also often missed. This is basically a large deal of what is called &#8216;marketing&#8217;. You need to know how big your target market is, or how many people would potentially be interested in your product. For example if you&#8217;re selling basketball shoes, you&#8217;d want to find out how many basketballers there are in the areas you&#8217;re planning on selling the product to, and how often they buy shoes.</p>
<p>If you&#8217;re selling basketball shoe insoles, you might consider what percentage of the population require insoles, and take that percentage of the number of basketball shoes sold per year. That&#8217;s how big the problem is. Say 20,000 basketballers, x 2 pairs per year, 20% of which need insoles = 8,000 potential customers per year. These can be pretty rough, off the top of your head if necessary, but each time you do that you lose accuracy. Once you have these figures, you simply need to ask yourself whether the problem is big enough to be solved.</p>
<p>This will depend on the price of your product, but if you identify a target market size of only a thousand people and the maximum you could possibly charge for your product is $20, then it follows that the most money you could possibly make is $20,000. Is that enough to justify starting an entire company, marketing the product, paying the production cost on every item and converting every single potential customer into an actual customer?  (hint: often you&#8217;d be extremely lucky to get just 5% of the target market). Often the answers to this question will send you back to step 1 to redefine the problem.</p>
<p><strong>3. Think up a solution<br />
</strong>This step comes most naturally. You&#8217;ve identified a problem, now what&#8217;s the solution? It could be a physical item, it could be a website, an app, an ebook, a service, insurance, etc. A solution solves a need or problem.</p>
<p>Most people will immediately be able to give an answer, but you can iterate solutions also. Is that solution really the best one? Just for argument&#8217;s sake, why not force yourself to think up five more solutions to the problem (even though you&#8217;ve already found the one you like best). Then look through each of them and ask yourself which one really does best solve the problem. Often you&#8217;ll find your first answer wasn&#8217;t actually the best solution at all. It&#8217;s this kind of thinking that brings some out of the box answers that can really take the market by storm.</p>
<p><strong>4. Position yourself in the market<br />
</strong>So you&#8217;ve got yourself a technical solution. People who don&#8217;t like chopping veggies will get their snap chop. Confused people who can&#8217;t handle their money will get financial consulting services. The elderly will get their lawns mowed, you&#8217;ve got products. It&#8217;s time to fine tune both the market selection and the solution by positioning yourself in that market.</p>
<p>The problem is that there may be other people who provide the exact same solution as you, and the answer is to differentiate yourself within the market. Are you going to be the fastest solution? Are you going to offer the best customer service? Will you have the <em>cheapest</em> product? Will it be the most <em>customisable</em>? Will it be have the highest <em>quality</em>? Ideally you&#8217;d pick just one or two characteristics and focus on them, they&#8217;ll form the culture of your company and be part of the message you send to your customers when dealing with them.</p>
<p>Let&#8217;s say Freddy wants to start an accounting firm. He&#8217;s got 15 years training as an accountant and he knows that there will always be people out there who don&#8217;t want to do their taxes, a classic problem for him to step in and provide a solution to, with a large market to sell to. But there are already accountants out there. He sees a huge firm that guarantees to be the cheapest, in fact they guarantee a (modest) return for every customer. Another firm has the fastest turn around, they&#8217;ll do your accounting in 2 days flat or it&#8217;s free.</p>
<p>Freddy picks customer service. He&#8217;ll have the best customer service of any company in the area. He&#8217;ll really think about his customer&#8217;s problems and be proactive in offering solutions, give quick replies to email and will always go above and beyond to make every customer delighted. He won&#8217;t be the cheapest, or the quickest, or maybe even the most thorough, but his company will give service with a smile, quick replies by email and keep the client base small to really get to know them. And everyone will know that if you want the best customer service you go to Freddy.</p>
<p><strong>5. Implement the solution and create the product<br />
</strong>This step can involve anything. It can mean flying to China to start widget manufacturing, getting your hands dirty writing HTML code, or turning on your camera and creating the film you&#8217;ve been dreaming of, or running dress rehearsals of the services you will provide. Whatever your solution is, you need only the skills to make it a reality. Of course, you can also outsource this step, just make sure you have a rough but conservative estimate of the final price you will charge first to make sure you can afford to pay the supplier in the future. It&#8217;s also pretty standard to break even on the first batch for physical items, as you can bring the price down later if the first small batch sell simply by ordering more products in greater volume. The minimal profit lost on the first batch will more than make up the risk of having to order too many items before making sure any of them will actually sell.</p>
<p>Put simply: You can run at a loss initially and plan to scale up production to bring your costs down once you you&#8217;ve confirmed the product sells.</p>
<p><strong>6. Test and adjust your solution<br />
</strong>In a perfect world you&#8217;d do your analysis, find the market, design the solution to meet the need and the dollars come pouring in. It can take a lot of judgement however to get this perfect, so in the real world it will most likely need some testing and adjusting. For physical products, it&#8217;s important to physically test them to make sure they to supplier has delivered. If it&#8217;s a rifle scope for example take it for a spin and ask some basic questions like, is this actually doing the job I want of it? Is it holding the aim after firing from bigger weapons too? Are there any tragic design oversights? Can I think of one other person who would pay for this product?</p>
<p>Software products are a little different in that they can be &#8216;finished&#8217;, sold, and then later updated, so who&#8217;s to say when they&#8217;re really done?</p>
<p>Two counter examples are Minecraft and Blizzard. Minecraft opened their business by putting a very, very early version of their game into the market and immediately had millions of paying customers while they finished the product, whereas Blizzard famously refuse to release a game until it&#8217;s absolutely perfect. The feedback from launching an unfinished product can be extremely valuable in knowing which features are great and which don&#8217;t need to be created at all, but it&#8217;s at the cost of the goodwill of the customers who will need to be understanding that it isn&#8217;t quite finished yet.</p>
<p>Aiming too far into the future could bankrupt your business. So as a rule, the bare minimums for when to release should be:</p>
<ul>
<li>Your product is good enough, ie it really solves the problem, and;</li>
<li>It&#8217;s better than the competition (if any)</li>
</ul>
<p><strong>7. Test and adjust the price<br />
</strong><em>Cost vs Price</em><br />
The most important thing to remember is that the price has no relationship to cost. The price is what the customer is willing to pay. This could be more than it cost you (hopefully) or less. Obviously if it&#8217;s less then you need to go back to step 1 and find more value.</p>
<p><em>Sell Value</em><br />
The other thing to remember is that it&#8217;s value you&#8217;re selling, you&#8217;re solving the problem. Don&#8217;t concentrate on how good the product is or the amazing features it has, look at how many problems and how useful it is to the customer, that&#8217;s how you&#8217;ll work out the right price. Sell the product on value instead of features, which customers only care about in terms of how well it solves their problems.</p>
<p><em>Optimal Price<br />
</em>You no doubt already know this point but it&#8217;s worth mentioning just in case.  The price lives in the world of <a href="http://en.wikipedia.org/wiki/Supply_and_demand">supply and demand</a>, where charging too much or too little for your product gives you less profit. Yes, you can go broke charging too much, because no one buys what you&#8217;re selling. Reducing the price too much can give you many, many more customers, but the <em>margin</em> between your price and cost reduces very quickly as you lower the price. Sometimes reducing the price by even a dollar can halve your margin.</p>
<p><em>Segment the Market<br />
</em>Sometimes you&#8217;ll be able to segment your market and it&#8217;s a good thing for the seller. For example a car garage has identified two different customers for the exact same product. In the city, some people come into the garage wanting all day, every day parking, it&#8217;s part of their daily routine. Whereas others only want parking for a few hours. If you look at value, the person who only needs it for a few hours is getting a <em>lot more value</em> in the form of convenience, so they&#8217;re willing to pay more, whereas the daily commuter has time to make alternate arrangements. By segmenting the market a garage will charge the customer up to $16 an hour in Melbourne Australia, for a total cost of around $40 for a three hour stay, whereas the daily commuter who spends 9 hours in the garage pays a <em>total</em> of $10-15, even though they used more than twice the time on the exact same product. They&#8217;ve managed to segment the market by saying you only get the $15 daily rate if you enter before 10 and leave after 5, which is the daily commuters, while the other market segment has to pay the higher rate.</p>
<p><em>Testing the price<br />
</em>Large companies will often do huge campaigns with test groups, sounds expensive to me. There are many more creative methods you can use online. Once you have a landing page and Google Analytics (or similar) setup you can drive a small number of potential customers to your site with ads and play with the price as they arrive. Start high enough to get no sales and slowly move the price down at intervals (lower it say every 3 days), and measure the response down until you&#8217;re selling nearly at cost. It&#8217;s best to do this in the startup stage when there&#8217;s not yet any public awareness of your product, established customers can be sensitive to price changes.</p>
<p><strong>8. Let the word spread, use advertising only to accelerate it<br />
</strong>If you&#8217;ve done your marketing and testing right, then there are people who want exactly what you&#8217;re selling. If it&#8217;s amazing they&#8217;ll tell their friends about it and you won&#8217;t need to advertise at all, but for every degree less than amazing your product is you&#8217;ll need to use advertising to make people aware of what it is you&#8217;re doing. Products that are only marginal or downright scammy will need go as far as using outbound telemarketing to gain new customers, so you can see it&#8217;s far cheaper to put the effort and cost into having an amazing product rather than resorting to that! Make the user experience great and you might not even need to advertise at all, plus it&#8217;ll feel better than running a scam.</p>
<p>Another way to spread the word more easily is to target a smaller market. Even an amazing product might get lost in the sea of shouting voices when the market is particularly large. If you pick a niche, for example invoicing software made <em>perfectly</em> for bird vets (maybe they have a problem keeping track of all the different bird medicines), you can more quickly establish yourself as the number one choice in that niche, and there are a lot of benefits to being number one. People in niches talk to each other and it&#8217;s far more likely they&#8217;ll mention your product if it&#8217;s number one, rather than targeting a market like &#8216;cheap airfares&#8217;, which no doubt has a ton of competition.</p>
<p><strong>Your turn<br />
</strong>There now, wasn&#8217;t that easy? Now it&#8217;s time to open your business. To be fair the title was a little misleading because while it&#8217;s easy to talk about, pulling these steps off is an art and it&#8217;s all in the implementation, it&#8217;s all about you. But knowing this process will save you wasting all of your time and effort on something that would never have reached the end point anyway. Like it or not, whether you do it consciously or not, whether you do the paper version of this (the simple business plan) or not, any successful product you ever launch will satisfy each of the above eight steps.</p>
<p>Good luck. If you enjoyed this article please leave a comment about your business and forward it to a friend.</p>
<p>-Nick Cooper</p>
<img src="http://feeds.feedburner.com/~r/CooperSystems/~4/ZJsM46LzRoo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.coopersystems.com.au/how-to-open-a-business-in-eight-easy-steps/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.coopersystems.com.au/how-to-open-a-business-in-eight-easy-steps/</feedburner:origLink></item>
		<item>
		<title>Filesharing now an official religion</title>
		<link>http://feedproxy.google.com/~r/CooperSystems/~3/aVGH0yVZkf8/</link>
		<comments>http://www.coopersystems.com.au/filesharing-now-an-official-religion/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 00:39:44 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.coopersystems.com.au/?p=191</guid>
		<description><![CDATA[http://torrentfreak.com/file-sharing-recognized-as-official-religion-in-sweden-120104/ Here&#8217;s the official press release: &#8220;The Church of Kopimism is recognized by the state of Sweden  Just before Christmas, the Swedish governmental agency Kammarkollegiet registered the Church of Kopimism as a religious organisation. This means that Sweden is the first country to recognize kopimism as a religion.  The Church of Kopimism have tried to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://torrentfreak.com/file-sharing-recognized-as-official-religion-in-sweden-120104/">http://torrentfreak.com/file-sharing-recognized-as-official-religion-in-sweden-120104/</a></p>
<p>Here&#8217;s the official press release:</p>
<blockquote><p><strong>&#8220;The Church of Kopimism is recognized by the state of Sweden </strong></p>
<p><em>Just before Christmas, the Swedish governmental agency Kammarkollegiet registered the Church of Kopimism as a religious organisation. This means that Sweden is the first country to recognize kopimism as a religion. </em></p>
<p>The Church of Kopimism have tried to become registered as a religious organisation by Kammarkollegiet for more than a year.</p>
<p>- Since Kammarkollegiet has been strict with formalities, we had to apply three times, a happy Gustav Nipe &#8211; board chairman for the organisation &#8211; says. He continues, I think it might have something to do with the governmental organisations abiding by a very copyright friendly attitude, with a twisted view on copying.<span id="more-191"></span></p>
<p>For the Church of Kopimism, information is holy and copying is a sacrament. Information holds a value, in itself and in what it contains, and the value multiplies through copying. Therefore, copying is central for the organisation and its members.</p>
<p>Being recognized by the state of Sweden is a large step for all of kopimi. Hopefully, this is one step towards the day when we can live out our faith without fear of persecution, says Isak Gerson, spiritual leader of the Church of Kopimism.</p>
<p>The Church of Kopimism is a religious organisation with roots from 2010. The organisation formalizes a community that&#8217;s been well spread for a long time already. The community of kopimi requires no formal membership. You just have to feel a calling to worship what is the holiest of the holiest, information and copy. To do this, we organize kopyactings &#8211; religious services &#8211; where the kopimists share information with eachother through copying and remix.</p>
<p>Copy and seed.&#8221; &#8211; Church of Kopimism</p></blockquote>
<p>&nbsp;</p>
<p><strong>Do you still agree with Intellectual Property laws?<br />
</strong>The Pirate Party are certainly gaining momentum, with seats now in Berlin and the EU, and most likely Germany soon. Conventional political parties are being forced to change their views on copyright or risk losing the entire under 30 block of voters.</p>
<p>I personally think intellectual property has gone too far. Yes, it probably does promote some people to create works that they otherwise wouldn&#8217;t have, and to have absolutely no protection could result in a <a href="http://en.wikipedia.org/wiki/Tragedy_of_the_commons">tragedy of the commons</a> type scenario, but the disruptive forces of the internet have brought us to a place where copying bits has almost zero cost, destroying old business models and creating new ones, are we really going to make laws that freeze time in the 80&#8242;s just to protect a few of today&#8217;s business&#8217;?</p>
<img src="http://feeds.feedburner.com/~r/CooperSystems/~4/aVGH0yVZkf8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.coopersystems.com.au/filesharing-now-an-official-religion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.coopersystems.com.au/filesharing-now-an-official-religion/</feedburner:origLink></item>
		<item>
		<title>Why we could be alone in the universe</title>
		<link>http://feedproxy.google.com/~r/CooperSystems/~3/gUwPfNhzNQ4/</link>
		<comments>http://www.coopersystems.com.au/why-we-could-be-alone-in-the-universe/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 23:16:21 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.coopersystems.com.au/?p=187</guid>
		<description><![CDATA[A bit of a philosophical post today. First I&#8217;ll start with a belief of mine, it&#8217;s highly probable we&#8217;re living in a simulation. This is because: 1. We&#8217;re reaching the stage where  we can create more and more complex simulation worlds. Our artificial intelligence agents, while still very primitive, are getting a lot better. Once [...]]]></description>
			<content:encoded><![CDATA[<p>A bit of a philosophical post today.</p>
<p>First I&#8217;ll start with a belief of mine, it&#8217;s highly probable we&#8217;re living in a simulation.</p>
<p>This is because:<br />
1. We&#8217;re reaching the stage where  we can create more and more complex simulation worlds. Our artificial intelligence agents, while still very primitive, are getting a lot better. Once we can simulate a human brain and also scan a living brain we will very likely be able to digitize people. In addition, quantum computing will allow us to simulate every atom of the universe. These simulations tend to be simplifications of our current universe, but as computing power increases the effort required to create a simulate tends towards being trivial.</p>
<p>2. If creating a simulation is trivial, then so long as the civilisation creating them survives, it makes sense to assume an infinite number of simulations would spring up. If infinite <span id="more-187"></span>simulations exist, then the probability of us being in the one true (non-simulated) world would tend toward the trivial also. That is, there&#8217;s almost no possibility that we are currently in a non-simulated universe.</p>
<p>I was doing some thinking on evolutionary computing and how it could be used to create an ecosystem of agents that compete to complete tasks on the Amazon Mechanical Turk. Sure they&#8217;d only make a few cents, but it might be enough to cover their hosting/computing costs, which could essentially make those agents completely independent.</p>
<p>Then I got to thinking, once evolutionary agents start being created (by us and by other agents), most agents will exist to solve a problem, they&#8217;ll have a purpose. The probability of being an agent created purely for academic no-purpose observation would be next to nothing. The academic agents will be created and observed, then shut down, while the agents with a purpose (even if it&#8217;s just &#8216;making enough money to live another day&#8217;) will carry on indefinitely.</p>
<p>If you take these two concepts together; it&#8217;s highly likely we live in a simulation, and it&#8217;s highly likely this simulation exists for a purpose!</p>
<p>This creates another answer to the Fermi-paradox, the question of where are they? If we&#8217;re not alone in the universe, why haven&#8217;t we made contact with extra terrestrials?</p>
<p>If you assume that it&#8217;s highly likely that this universe exists inside a simulation, and that just as in nature, all agents or simulations are created to fill an evolutionary niche, ie they&#8217;re created for a purpose, it makes sense that we would be alone.</p>
<p>If something has created this universe to gain an information output, assuming that human calculations are the output, it makes sense that they wouldn&#8217;t want to contaminate it with other life forms. And so it would seem probable that no matter how far we spread through this universe, we will never find others like us, because this universe was created for a purpose and that would only mess things up.</p>
<p>As an analogy, imagine a computer program designed to classify clothing. You give it an item of clothing and it has to classify whether it&#8217;s a shirt, pants, socks or a hat. It has to work out whether it&#8217;s for a man or a woman, what colour the item is, and what size person it will fit. The point of the program is obviously to classify the clothing so it&#8217;s more convenient for shoppers to find the items they want based on their needs. This is a task commonly sent to the &#8216;Mechanical Turk&#8217; for humans to do, because computers are currently very bad at it.</p>
<p>So imagine a program designed to complete this task instead of humans, earn a few cents in the process and pay for it&#8217;s own hosting. Firstly, it would likely have some form of evolutionary computing. Instead of just trying to &#8216;exist&#8217;, it would spawn many instances of the same code with a few variables tweaked. Then it would let each program try to work out the correct answer, and assess each program against the actual answer (&#8216;it&#8217;s a blue, male shirt&#8217;). These agent-candidates would all be insulated from each other to avoid contamination of their answers, much like how in an exam you can&#8217;t talk to the person next to you.</p>
<p>From the perspective of each agent, the world is made up of four dimensions (colour, gender, size and clothing type). It has a model of the world consisting of objects that track the dimensions, and the successful agents have worked out that they need to correctly classify the clothing to be &#8216;fed&#8217; (or continue existing). The agent lives and breathes these concepts and doesn&#8217;t understand anything outside of them, because the clothing and the reward are the only input it has. Just like we live in a world with four dimensions, we live on rocks and breathe air, we compete against each other for &#8216;energy&#8217;, what if the entire universe we live in, our entire model of the world, was simply the input for a program? And the actions we perform are the output, from which we are &#8216;fed&#8217; (survive).</p>
<p>In such a scenario, assuming our current actions are the intended final output of the program, I can&#8217;t imagine ever coming into contact with extra terrestrials, it&#8217;s possible the universe isn&#8217;t even simulated to that level of complexity outside of the solar system until we get there. This would satisfy the Fermi-paradox question of, if they&#8217;re out there, why haven&#8217;t we heard from them? It&#8217;s not that all civilisations destroy themselves after achieving the ability to communicate and spread through the universe, it&#8217;s just that those civilisations are insulated from each other and will never be able to communicate.</p>
<p>What do you think?</p>
<img src="http://feeds.feedburner.com/~r/CooperSystems/~4/gUwPfNhzNQ4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.coopersystems.com.au/why-we-could-be-alone-in-the-universe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.coopersystems.com.au/why-we-could-be-alone-in-the-universe/</feedburner:origLink></item>
		<item>
		<title>So clever that you’re an idiot</title>
		<link>http://feedproxy.google.com/~r/CooperSystems/~3/sW9uV4DHLic/</link>
		<comments>http://www.coopersystems.com.au/so-clever-that-youre-not/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 23:25:34 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Web Systems]]></category>

		<guid isPermaLink="false">http://www.coopersystems.com.au/?p=184</guid>
		<description><![CDATA[It&#8217;s sometimes said that programmers only know three numbers: zero, one and infinite. We live in a land of edge cases and abstraction. Either something doesn&#8217;t need to exist (zero), it does exist (one), or it does exist and can have multiple values (infinite). We love to scale things up to infinite. If two objects [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s sometimes said that programmers only know three numbers: zero, one and infinite.</p>
<p>We live in a land of edge cases and abstraction. Either something doesn&#8217;t need to exist (zero), it does exist (one), or it does exist and can have multiple values (infinite).</p>
<p>We love to scale things up to infinite. If two objects or concepts are similar, especially if part of the code is repeated between them, programmers will abstract the similar functionality into a third object, and then inherit that functionality back into the two original objects. Given the chance, a young programmer might try to <span id="more-184"></span>write a function like void doEverything( Object arg1, Object arg2,&#8230;&#8230;&#8230;, Object argInfinite). What a beautiful design, it&#8217;s abstracted all the way out to infinite, hooray!</p>
<p>Obviously abstraction is great and has it&#8217;s place, but the point is that sometimes you can try to be so clever that you&#8217;re forgetting your original mission: to solve a problem for someone. I mean, if your code isn&#8217;t solving a problem why does it even exist? It&#8217;s generally considered appropriate to initially architect the system to a moderate degree of abstraction. Enough that you&#8217;re not copy and pasting code, but also not so much that you&#8217;re not able to get on with tackling the specific problem in a fairly short amount of time, rather than spending forever setting up your void doEverything() framework.</p>
<p>In general programmers seem to get this, the real problems occur when programming minds meet the minds of some people who think very differently to them, the users. Users don&#8217;t care about the beauty of abstraction. They don&#8217;t care that your framework means you can create new applications 32% more quickly with greater maintainability, and they especially don&#8217;t care about all the edge cases you spent so long considering and (quite brilliantly) coding graceful fall-back situations for.</p>
<p>The edge-cases make code more robust, but by definition most users will be focussed on the code that gets used most often, not least often. So really, most of your attention should have also gone toward making that code more useful, instead of the features and situations that will almost never get run. Yes the code needs to be there, but if it won&#8217;t be run that often, does it really need to be so shiny?</p>
<p>The other problem is the brilliant concepts a programmer thinks up are strange and confusing to the user. You have one name? Great, I&#8217;ll put it on the page. Oh, you can have multiple names? Oh dear, I&#8217;ll need to create a new table in the database and program in the relations. I&#8217;ll need a way for you to view your names, a list. No, because what if their names go beyond what the page can hold? Maybe a scroll panel, that should work&#8230; unless, what if their names go beyond what the scroll panel can hold? We need some sort of filtering system where they select the letter of their last name, then it filters down to a scroll panel.. that goes onto a special spreadsheet in case they want to view multiples of their last name. Now, what about first names? They might want to reuse their first name with multiple last names, so another abstraction&#8230;</p>
<p>Sure users with multiple last names will be happy, but how will you communicate to the user that the reason they&#8217;re jumping through so many hoops just to select their own single name is because you&#8217;ve designed it to be so scalable? And don&#8217;t most people only use one name anyway?</p>
<p>In reality the answer is somewhere between one and infinite. Let&#8217;s say&#8230;. ten. Or 12, or 5, it doesn&#8217;t matter. Just limit the fields to a reasonable number that will satisfy 99% of your users and be done with it, simple!</p>
<p>There are many other examples of when the programming mindset clashes with the person who&#8217;s just trying to get things done in Alan Cooper&#8217;s book <a title="The Inmates are Running the Asylum" href="http://www.amazon.com/Inmates-Are-Running-Asylum/dp/0672316498" target="_blank">The Inmates are Running the Asylum</a>, a great read.</p>
<p>I challenge you, next time you&#8217;re designing something (code or not), ask yourself whether the quick and dirty solution will satisfy 99% of the user&#8217; needs. Remember, as the code base grows, you can always come back later and refactor.</p>
<img src="http://feeds.feedburner.com/~r/CooperSystems/~4/sW9uV4DHLic" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.coopersystems.com.au/so-clever-that-youre-not/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.coopersystems.com.au/so-clever-that-youre-not/</feedburner:origLink></item>
		<item>
		<title>Making your business more like your brain</title>
		<link>http://feedproxy.google.com/~r/CooperSystems/~3/ykB8l23StBk/</link>
		<comments>http://www.coopersystems.com.au/making-your-business-more-like-your-brain/#comments</comments>
		<pubDate>Wed, 30 Nov 2011 22:57:17 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.coopersystems.com.au/?p=180</guid>
		<description><![CDATA[Did you know that scientists estimate 90% of the things you do in a normal day are unconscious? Activities like walking, recognizing faces, chatting to colleagues. The brain likes to automate these activities because it&#8217;s much more efficient. By learning and becoming proficient in a skill (for example learning how to change gears in a [...]]]></description>
			<content:encoded><![CDATA[<p>Did you know that scientists estimate 90% of the things you do in a normal day are unconscious?</p>
<p>Activities like walking, recognizing faces, chatting to colleagues.</p>
<p>The brain likes to automate these activities because it&#8217;s much more efficient. By learning and becoming proficient in a skill (for example learning how to change gears in a car while driving), your brain actually moves the processing done while performing that activity to a different part of the brain, the &#8216;expert&#8217; region.</p>
<p>It wasn&#8217;t long ago, maybe just a few hundred years before today that getting enough energy to keep our bodies and our brain going was a daily struggle for most people. If you&#8217;ve ever watched Survivorman (yes it&#8217;s at least partly fiction but the point stands) you&#8217;ll see he is thinking almost obsessively about finding sources of energy (meat, moss, insects, roots). It&#8217;s the key to survival.</p>
<p>So as a survival mechanism your brain has learned to take note of the tasks you do regularly and stores them in a way that <span id="more-180"></span>activates less neurons while doing them. This in turn makes our thinking more efficient (requiring less of that precious energy) and a great deal faster.</p>
<p>Think for a moment of the mental strain required if I asked you to calculate 7 to the power 5 (that&#8217;s 7x7x7x7x7). What about 7 to the power 20? It&#8217;s hard because you have to use the &#8216;big&#8217; part of your brain, the more flexible part that is used to do more general calculation. Even though the task actually isn&#8217;t as complicated as for example recognizing the face of someone you know, it takes many more neurons, more energy and much more time.</p>
<p><strong>Tuning your business</strong><br />
So how is this like your business? Well like a brain, your business requires energy in the form of people, which boils down to money. The less efficient something is, for example if David takes 3 days to do something instead of 1, the less you&#8217;ll gone done for the energy (money) being spent, just like a brain. Sure if the team is small you will get some of the &#8216;expertise&#8217; factor as the individual brains of the people involved automatically optimise, but trust me when I say that unless your brains are physically connected by wires into some sort of bizarre science fiction-like hive mind, you will not be able to efficiently grow that organisation beyond just a few people. The greater beast that forms when you bring people together is the organisation, your organisation, and it is not born with the ability to automatically tune itself.</p>
<p>What this means is that an untuned business, one that hasn&#8217;t taken it&#8217;s regular routines and made them more efficient, is the equivalent of a brain that hasn&#8217;t done the same. Remember when changing gears was complicated? Imagine if just answering the doorbell was as complicated as calculating 7 to the power 20! Your organisation is still there, it&#8217;s pottering along stuck someone between 1st and 2nd gear because it can&#8217;t watch the road and change gears at the same time.</p>
<p>Your accounting process, logistics process, creative process, they&#8217;re all very flexible beyond the 1-2 person stage, they are all extremely inefficient, they&#8217;re burning unnecessary energy because the business can&#8217;t make them subconscious like your brain can. And what happens if one of the people regularly involved leaves or is swapped out? If the business is actually one large brain, but you&#8217;re relying on the people involved to do the &#8216;expertise&#8217; part, when you lose one of those people your big, inefficient brain is now brain damaged to boot.</p>
<p>The solution is what&#8217;s known as process management. By documenting these processes you take the burden and the reliance away from the people involved. You free your business to become something greater than just the sum of its parts. You remove the cognitive friction between people and suddenly you&#8217;re able to do effortlessly what seemed like a complicated grind yesterday. Now you&#8217;re walking when before you were crawling, the team is performing.</p>
<p>They say the difference between a small and medium business is its processes. Without those, you&#8217;re burning cash like there&#8217;s no tomorrow. Like Survivorman you&#8217;re looking for those energy (money) sources, but when you get them your brain fires up and burns it away far more quickly than for example a Walmart, McDonalds or other large, efficient business would have. Without those efficiencies or a huge source of energy/money, you just aren&#8217;t going to be able to keep up with the big boys.</p>
<p>The first step in process management is always the hardest, it&#8217;s documenting what you do today. Sit down and write down the activities you regularly do, and then write down the process involved, inefficiencies and all. Simply by writing them gain a platform for discussion, useful for making sure everyone is on the same page and to train newcomers, and in the process you will almost certainly see areas that are incredibly inefficient. It will take time, but communicate your findings effectively to the people involved and ensure all know and follow the process.</p>
<p>It&#8217;s also important to remember however that the process are rigid. Maybe too rigid, so leave some leeway, and always leave a way to question the process. If someone asks why the rubber stamp if Jeff is needed and a colleague points to &#8216;the process book&#8217; and says &#8216;just because&#8217;, then you&#8217;ve also failed. There will always be a better way and what you currently have will not always be 100% correct. Leave that wiggle room and let people know why things are the way they are. Make sure that the official process takes human behaviour into account, and you&#8217;ll find that people really do follow your processes. If you can do all of that then you&#8217;ll find your team turns from a group of individuals into a real team, capable of running, swimming and hunting in the corporate landscape, Survivorman style.</p>
<img src="http://feeds.feedburner.com/~r/CooperSystems/~4/ykB8l23StBk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.coopersystems.com.au/making-your-business-more-like-your-brain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.coopersystems.com.au/making-your-business-more-like-your-brain/</feedburner:origLink></item>
		<item>
		<title>My WTF moment</title>
		<link>http://feedproxy.google.com/~r/CooperSystems/~3/0gMYSoEIEEM/</link>
		<comments>http://www.coopersystems.com.au/my-wtf-moment/#comments</comments>
		<pubDate>Wed, 30 Nov 2011 00:27:45 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.coopersystems.com.au/?p=174</guid>
		<description><![CDATA[I&#8217;m working on some checklist / light process management software for small business. I&#8217;m trying to put a lot of effort into the way it looks and feels, the way it guides the user to do exactly what they want to do at that point in time and not display any extraneous / useless data [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working on some checklist / light process management software for small business.</p>
<p>I&#8217;m trying to put a lot of effort into the way it looks and feels, the way it guides the user to do exactly what they want to do at that point in time and not display any extraneous / useless data that will just clutter the screen. One of the key pages is their task list / checklist.</p>
<p>When it got to the point of writing the code to help users through their first login and initial setup of their environment I was thinking hmmm&#8230;. well there&#8217;s actually a few steps, do I need some kind of wizard for this, but where would it go? And I don&#8217;t want to force them to do all the steps right away. Maybe some kind of&#8230;&#8230;.. checklist?</p>
<p>Then I realised, it&#8217;s checklist software, it&#8217;s sole purpose is to handle your list! Just make the setup tasks the first tasks on their list when they log in : P</p>
<p>Sometimes it&#8217;s hard to practice what you preach ; )</p>
<img src="http://feeds.feedburner.com/~r/CooperSystems/~4/0gMYSoEIEEM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.coopersystems.com.au/my-wtf-moment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.coopersystems.com.au/my-wtf-moment/</feedburner:origLink></item>
	</channel>
</rss>

