Monday, January 11, 2010

How Real did I Get: Part 1, The Starting Line

This is the first in series of blogs I'll be doing reviewing the experience I had taking my getconnectedto.me site from an idea to launch. I'm reviewing this relative to the 37 Signal's "Getting Real" book (http://gettingreal.37signals.com) - a "bible" on "ship-it-above-all-else" software development mentality I've given many a sermon from.

I want to review just "How Real did I Get?" - did my experiences match their philosophy? Where did they differ? Why did they differ? What would I do different?

Today, I'm examining Chapter 2 (which is really the first chapter after the introduction) - "The Starting Line" (http://gettingreal.37signals.com/toc.php#ch02)



Build software for yourself
A great way to build software is to start out by solving your own problems. You'll be the target audience and you'll know what's important and what's not. That gives you a great head start on delivering a breakout product.
Getting Real, 37 Signals
One of my other bibles for "entrepreneur realism" is Guy Kawasaki's "The Art of the Start". It's worth the cost of the book for Chapter 1 alone and even then just read the section called "Making Meaning" (actually do it for free over here). Guy, a hardened Silicon Valley veteran of the startup and Venture-Capital industry, points out that startups need to be able to:
  • Work long hours for low wages.
Check! I've gone without wages for 3 months to get this venture off the ground, using up my savings to pay the bills - with my wife being an at-home-mum, our family income fell to zero for this period. Ouch. Think of all the cool things I could have bought with that income (I think I am the only person I know of without a flatscreen TV).
  • Deal with rejection after rejection.
I don't even bother waiting for the rejection anymore, I just assume it's out there waiting for me. Australian culture is even less forgiving of those that "go it alone" outside of the mainstream (see Tall Poppy Syndrome). I'm used to the blank looks of incredulity, and what I am sure are behind the back conversations about how mad I must be, from close friends let alone a wider business community. The rules in our society today seem to be "Work. Increase Income. Increase Debt. Work harder & longer. Increase Income. Increase Debt. Rinse, repeat".
  • Can you handle the responsibility of dozens of employees?
Well, there is me. And me. Not so much of a problem when you are a one person startup, and a good reason in my opinion that every startup needs to be bootstrapped by 1-3 people that work long hours for free to get an initial product off the ground.

The bad news these days is you can kiss goodbye the change of large sums of VC money being thrown at you for your sketch on the back of a bar coaster. The good news is that you don't need it - provided you can be motivated to work hard for short periods of time for free. The main barrier to entry is skill and time - not upfront capital. I wrote about this the other month when starting out on this venture.

Kawasaki argues that the key to overcoming these motivational barriers is to "Make Meaning". "Making Money", whilst important in terms of your long term business strategy (especially once you get those "dozens of employees") is not as important in the short term as making sure you are motivated to "Make Meaning". One of his definitions of this is to "Right a wrong" which I believe aligns perfectly with the Getting Real mantra of "Build Software for Yourself".

With getconnectedto.me I found a need (a nice centralised locational for personalised online connection details) that wasn't satisfied by sites such as Plaxo and Xeesm.com (just what the hell is Social Network Relationship Management anyway??!). To me this was the Wrong I wanted Righted.

In Fred Brooke's landmark book "The Mythical Man Month" I remember coming across a description of programming being the closest thing we'll ever come to being "Magicians". Programmers literally create concrete living entities (applications) out of raw "thought-stuff". When you can program you are liberated to go create the application that meets your needs and put it out into the world.

The downside is you can't ever whinge about somebody else's website or software again. If you don't like it, pull your finger out and get cracking on building something better. You have to put your money where your mouth is as they say.

These days it doesn't take much to get rolling. Hardware is cheap and plenty of great infrastructure software is open source and free. And passion doesn't come with a price tag.
Getting Real, 37 Signals
As mentioned above, I wrote about this the other month. Hardware was better than cheap for me - it was free. By targeting the application to run on the Google App Engine - a Java and Python cloud platform for web applications, I could put a website up on virtualised scalable infrastructure for free. The App Engine did have a price model but it would scale with my traffic and for a few $ a month would handle a great deal of that before costing any serious cash.

My domain name cost $10. My private SVN hosting solution $100 per annum. Cable broadband internet connection around $80 per month. My main cost was my MacBook Pro laptop, purchased some 2 years ago (i.e. a sunk cost) via a salary sacrifice scheme for around $4,500. Two years on, the 4GB dual CPU laptop gave me all the power I needed.

Development was done on Eclipse (free), using Google AppEngine plug-in and libraries (free) and leveraging the multitude of excellent open-source Java libraries out in the world these days.

Here's an easy way to launch on time and on budget: keep them fixed.
Getting Real, 37 Signals
My schedule was definitely fixed early on in November. My new job would start on the 18th of January and that formed my hard deadline. I was under no illusions that this job would consume a lot of my time and "mindshare" - I don't do jobs to kill time or earn money - you need to find meaning in a day job as well by doing something you can fully commit your energy and enthusiasm to.

Whilst I was working for "free" this still equated to a budget when you factor in opportunity cost. Every week was roughly around $11,000 pre-tax dollars I wasn't earning. If I was an employee that would be costing my employer even more once overheads are added on - let's say $15,000 a month to make the math easy. My budget for a 3 month project was therefore around $45,000.

Fixed time, fixed budget imposed by constrains of doing this venture between jobs. If the project ran over time/budget the outcome was starkly obvious to me - it would never go live. I would get absorbed into my new role and the yet to be launched site would gather dust in my backup archives for the rest of time.

If however I launched and got at least a few friends using it before January the 18th this could help me maintain the motivation required to dedicate hours outside of my main job to keep the site evolving.

The good news was last Sunday 10th of January I launched what I consider "Version 1" and now have a small handful of people using the site in anger. On time and on budget, but it wasn't easy....

Pick a fight
Sometimes the best way to know what your app should be is to know what it shouldn't be. Figure out your app's enemy and you'll shine a light on where you need to go.
Getting Real, 37 Signals
Anybody that has ever had an idea for a new venture will be familiar with this sequence of events. It goes something like this:

Entrepreneur: "Oh my god, I've got a great idea.". Spends 10 seconds on Google, concludes nobody else is doing anything like it (hello Confirmation Bias again). Starts frantically working away on it.

Entrepreneur: Shows early prototype to Friend #1.

Friend #1: "Wow, that is so cool - I'ld use/buy that"

Entrepreneur: Really motivated now, goes back and puts more work into fleshing out the prototype. Shows refined prototype to Friend #2.

Friend #2: "Umm, doesn't XYZ.com already do that? Oh and ABC.com I think have something similar"

Entrepreneur: "errr.... I'll be right back" - runs out of the room, fires up Google does a *proper search* finds that XYZ and ABC do indeed solve the same problem. Gives up.

I had a similar experience with getconnectedto.me - quickly being told about two competitors. One I knew of (Plaxo) - but whom my confirmation bias had ignored - and one I didn't know about (Xeesm.com).

One thing I've learnt over the years (both from experience and formally been taught in an MBA course) is that "Competition is Good". Competition is a sign of a valid market (i.e. "customers"). No competition means it is most likely you are building a product nobody will ever want (or No competition = no market = no customers = no money).

The Getting Real philosophy of building something you need yourself means it is almost 100% probable that there are, in a world of 6.6 billion people, existing people that have had the same or similar need and a subset of them will have done something about it (i.e. build a product or service and take it to market). So it's not the end of the world - it's just the way of the world.

Business schools (the good one's anyway) will tell you that a business model is not necessarily what your do differently to your competition. Often the most successful business models are those that define what you Don't Do relative to your competitors (I recommend reading anything and everything by Michael Porter on this).

Or as Get Real put's it so simply and elegantly "Sometimes the best way to know what your app should be is to know what it shouldn't be".

In this sense I agree complete with the "Pick an Enemy" philosophy. When Friend #2 inevitably points out an overlooked competitor, don't get disillusioned - get mad. Get angry even. Take it personally.

Go to their website, use their product. Get emotional about the way the deliver on "Your Need". What baggage do they throw in you don't need.

For me it was simple. Plaxo was trying to own the social relationship - it was trying to be a social network in itself. Good for them. I didn't need another social network. I needed a "Social Network Hub" - a jumping off point for my contacts to connect to me on other networks.

For Xeesm.com, I didn't need any of the "Social Network Relationship" baggage that came with it. Secondly the ".com" domain just didn't quite scratch my itch. If I wanted to put a URL on my business card I don't want somebody else's ".com" domain on it - it just confuses things.

By focusing on my "enemies" I was able to make some really good decisions about what my site wouldn't be. By not being a social network in itself and not owning the social relationship I could divorce myself for a whole swag of user / contact management features that don't address my core need.

If your app doesn't excite you, something's wrong.
Getting Real, 37 Signals
My theory is that in any company larger than, say 1 person, there will be arguments about what technology to implement the idea in. The length and degree of emotional conflict of these arguments will grow exponentially with the size of the organisation.

One advantage of a small (3 or less people) startup is you can pick technology that REALLY motivates you. For me it was Java plus Google App Engine plus Mootools AJAX libraries.

For many other's I'm sure it would be a .NET technology, or a LAMP stack, or Ruby on Rails.

One good friend of mine would be in geek nirvana if his startup involved programming in Erlang.

As the saying goes, "what ever rocks your boat".

I don't believe technology is that important (a heresy to many people I know). It's a means to an end. If the technology doesn't do X, that's ok you can build X out of what it does do. There is no uber-language for a website. Technology choices are just an exercise in tradeoffs.

What is important is excitement. Excitement get's you motivated, get's you into a state of what psychologists call "Flow". In my experience 8 hours of programming in a "Flow" state is equivalent to a week or more of working in technology you dislike.

Phew! - that's it for today's retrospective on my Getting Real experiences. Tomorrow I'll be looking at Chapter 3 - Stay Lean.

Hope you are enjoying this series. Feedback on my or your own experiences is most welcome.


2 comments:

  1. Very nice post Ash.
    The two things you may want to add to your entrepreneurs list is:
    1) "It usually takes twice as long and cost twice as much" - talking about software development.
    2)"If it does what you thought it should do in the very first moment you thought about it - something is wrong"

    XeeSM fits right in. The initial idea was just to have one URL to point to instead of 10 or so - just because I couldn't decide how many I should put on my new business card.

    Then we added the idea that we may actually connect with other XeeSM users - and within about 2 month we received over 500 feature requests, ideas, bugs etc. People wanted reporting (most badly) and ways to keep friends and ways to track down relationships and and and....

    Today XeeSM/PRO is that Relationship Manager you mentioned. But OK - that is only for business users.

    Anyway good luck with your project.

    Axel
    http://xeesm.com/AxelS

    ReplyDelete
  2. Cheers Axel, appreciate the sentiments.

    Agree with #1 (getting to that in the next few blog entries) and hadn't thought about #2 - is this a comment about emergent behaviour of a service as it is implemented? That your idea evolves as the implementation unfolds?

    Re-reading my comments about "Have an Enemy" I forgot I have a blog in the works (Christmas period slowed it getting posted) about "Know thyself, not thy Enemy".

    My premise is that rather than concentrate on what your competitors do, just concentrate on what need you personally have and how you want that "itch scratched".

    The result is you end up with a product or service that may deliver on the same basic premise as competitors but with a potentially very different "personality" or flavour. This will appeal to different types of people - some will love it, other's wont.

    The internet is so big and the costs of delivery so small that the traditional rules of fighting for market domination don't apply - it's instead about finding communities within very large markets with aligned needs.

    If you worry too much about everybody else the personality your offering develops becomes like one of those annoying people at parties that goes around trying far too hard to impress everybody by trying to second guess what will work on them!

    Anyway, thanks for the feedback. Interestingly I didn't get the XeeSM/PRO differentiation from my initial visits to your site - did you ever consider marketing the pro Relationship Management features under a different brand? Just curious.

    ReplyDelete