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 yourselfA 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.
- Deal with rejection after rejection.
- Can you handle the responsibility of dozens of employees?
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 fightSometimes 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.