RSS Feed

January, 2009

  1. Why you should fail early and fail often

    January 18, 2009 by max

    You hear the “a href=”http://blogs.msdn.com/micahel/archive/2005/08/17/FailFast.aspx”fail early and fail often/a” mantra quite a bit. The basic idea is to find out as early as possible whether the project you’re working on is going to be a success, and if it isn’t let it fail. This is a hard thing to do: You have to accept the project as a failure, and implicitly accept that for whatever reason you didn’t have what it took to suceed. There may, of course, be external factors such as luck, market conditions, partners etc. that are out of your control but you will still have to live with a failure under your belt no matter who was to blame. The normal human reaction is to keep going, prolonging the inevitable, so that you don’t have to face the failure. The idea of failing early and often is that the sooner you let go the sooner you can go to work on a new project that might have a better chance of suceeding.br /br /This post will give you some numbers to show that failing early and often is a good idea.br /br /Let’s presume you have ten years to make a million dollars by starting a company and selling it. And let’s presume that there are two scenarios: one where you start a company and keep going at it for ten years, and one where you start a company and if it doesn’t work out after a year close it down and start another one.br /br /The first scenario is simple.br /br /Let’s presume there’s a 10% chance of suceeding in starting a company and selling it for a million dollars. Your chance of becoming a millionaire in ten years is obviously 10%br /br /The second scenario is a bit more complicated.br /br /With the same presumptions as in scenario you have a 10% chance of becoming a millionaire after year one. If this doesn’t work out you have another 10% shot in year two, and so on. This adds up to a 65% chance of success after ten years. Quite an improvement! But maybe this doesn’t tell the whole story: Surely you will have a higher chance of succeeding with a company you spend ten years on than a company you spend one year on. Let’s say you only have half as big a chance of succeding if you only spend a year on your business. This will still give you a 40% chance of success after ten years. As a matter of fact for the two scenarios to give you an equal chance of success after ten years your chance of success with the one year company needs only be 1%.br /br /Here is a graph that shows it more clearly.br /br /img src=”http://www.maximise.dk/blog/success.GIF” /br /br /This is, of course, a simplified explanation that doesn’t take all factors into account. If you initial idea doesn’t work out you could morph your company into something else, you may need more than one year before you can sell your company or maybe your goal is to only make $100.000. You may not even know whether you’re doing great or are on the brink of bankruptcy. br /br /The question to ask is: If I was offered this company for free would I take it? It’s a hard question, and ideally you should put it to other people that don’t have an affection for the idea, and haven’t spent many hours pondering over it. br /br /You may be surprised at the answer, and if you are maybe you should start something else.


  2. Business plans for hackers

    January 8, 2009 by max

    I’ve noticed that a lot of hackers and other technically capable people have problems understanding the reason for the existence of a business plan. And often fail to realise how hard a task it is to compose a good one.br /br /This post is an attempt to explain business plans in terms of programming languages.br /br /A business plan is just like a program, it’s just written in the strange and difficult programming language of psycholgy instead of C++, Lisp or Java. When you write business plans you use a number of classes that are relevant to the task, such as the budgetting and marketing classes. These are relatively trivial to understand compared to the main language.br /br /Psychology is an inherently difficult language to master for several reasons:br /olbr /li Programs written in psychology are run on computers called humans. The inner workings of these computers is poorly understood, and makes it difficult to write programs that work well. Furthermore all of the computers that your program will run on only have certain overall commands and functions in common. Once you get into the lower level programming they all behave differently, so if you need a top-tuned program you will need to write it specifically for one recipient, or at least a subset of recipients such as bankers or angel investors./libr /br /li Not all human computers have access to all classes, and you do not know if your intended recipient has installed all of the classes you use in your businessplan. You can of course make some deductions – your banker will probably have the budgetting class installed, but you can never be sure. Ideally your program should be written in such a way that any human can run it whether or not he has the classes you use installed./libr /br /li You can not write directly for the main computer in humans, which is the primary reason that this is the hardest programming language of all. There are no such commands as “invoke joy”, or “instill fear” – all programs that you write must go through a filter before they are executed in the main computer. You only have sparse knowledge of how this filter works as you can only observe it indirectly by invoking a command and seeing the result./libr /br /li Human computers do not fail when you write bad programs, they just get pissed off. This means that there are few absolutes, making it very hard to debug programs. Furthermore you can not measure the failure or success of your program, only observe indirect clues such as facial expressions, voice patterns and word usage to deduct how well your program works. The recipient will often try to hide this from you./libr /br /br /li The language has evolved, and there is no single author to describe how it works and what the commands are. Some of the commands are completely useless, and some only work in certain special cases. On top of this the language is continually evolving – there is no guarantee that commands that worked five years ago will still work./libr /br /li There is no manual, only hints and cases from pshychologists and other social scientists as to which commands invoke what result. Everything is done on a trial and error basis to figure out what works./libr /br /li The language is non-deterministic, a command may invoke different results depending on usage, recipient, mood and other external factors over which you have no control. Your program will never have the exact same result, even when run on the same computer in a slightlly different setting./libr //olbr /br /Despite of its shortcomings. and the fact that it takes decades to master, pshychology is a language worth learning simply because it is the only language that humans understand. It’s like writing applications that run inside a browser; If you want to do it you have to learn javascript.br /br /If you master it you will not only be able to write good businessplans, but also write other programs that are intended to be deployed on human computers such as writing books, picking up girls, getting friends and all the other social activities that human computers seem to enjoy.