Lessons Learned Bootstrapping Harmony
Over the course of the past year and a half, we have learned a lot through building and releasing Harmony. I thought it might be helpful to reflect on what we have learned thus far and share those lessons with you.
Deploy Early
The primary reason I work on the web is the feedback cycle. I quickly fell in love with the fact that, in a few minutes, I could put information up for the entire world to see.
The same is true of your application. You do not have to tell anyone about it, but deploy it so you can see it on the internet. When you add a new feature, deploy again. There is something magical about seeing your work “live” even if it is unusable. It inspires you to keep going and, trust me, you are going to need all the inspiration you can get if you are in it for the long haul.
Have a Partner
I was recently talking with a friend about being a lone wolf. We agreed that you have to be special, and that kind of special might not be the good kind. Inspiration and enthusiasm are two of the most important things when building a product. The key is that they work more like multiplication than addition.
There have been several days where I dreaded working on Harmony. Yes, I said it. And Steve has said it too. But when I fire up my text editor and browser and see that Steve has styled up some stuff I roughed in the day before I get fired up. The same thing happens to Steve when I rough some code in and he can just focus on design instead of building. Seeing progress without doing any work yourself is priceless in regards to motivation.
Users are Forgiving (with regards to bugs)
We waited and waited to release Harmony to people other than ourselves. When the day finally came we were both quite nervous as we sent out a few emails to friends. Take note that we invited friends. If anyone is going to be forgiving about a bug, a friend will be, yet we were a little on edge.
As the days of the friend only period went by, we were surprised that no one was really complaining about bugs. And let me tell you, there certainly were some. The first thing on everyone’s radar was features. When will it do this? Can it do that? They overlooked the inconsistences and worked around them, but they were really concerned with features, as they liked what they saw and wanted to do more.
This got me thinking and I quickly realized that I do the same thing. If something goes wrong, I refresh the browser. If it works the next time, I do not even think twice. This is definitely an interesting observation.
A Good User is Worth Their Weight in Gold
We have had a few people who we invited that just dove in. They started cranking out sites, requesting features, reporting bugs and twittering their love. Along the lines of having a partner, this kind of feedback is inspiring. Seeing someone else use your software and love it makes you want to make them love it even more.
Get people in as soon as you can and seek out those who would be a good fit. The feedback they will provide truly does help shape the product and will inspire you to keep going when the going gets tough.
Outsource That Which Does Not Delight
Billing
You will quickly notice the theme of this post is staying inspired and motivated. Another key to that is avoiding anything that you will dread. One of those things for us was billing. Do not get me wrong, we were looking forward to billing, we just did not want to have to write the code.
Thankfully (to the cloud among other things) several people have solved the problem of billing so you do not have to. We researched several services, such as Recurly, Chargify, Cheddar Getter, and finally settled on Spreedly. Spreedly was so easy to integrate with Harmony, we felt like we forgot something. It took about a day and a half to get the current implementation working.
Hosting
Another piece we have completely outsourced is hosting and management of hosting. Steve and I know that managing servers is not one of our strengths. The phrase “enough to be dangerous” comes to mind when describing our skills in this area.
Thankfully, we have partnered with RailsMachine and are getting stellar managed hosting support from them. This is also related to deploy early. The time between talking with Railsmachine to having a staging server up and running was freaky fast. These folks seriously have automation down.
Support System
The last piece of the puzzle that we outsourced was support. Not in the sense that our support is handled by someone else, but the system we use. All of Harmony’s support is handled through Tender, an incredible support system that makes support as easy as responding to an email. They even have a feature called multipass that allows Harmony customers to just submit support requests with no need for a tender account. Their Harmony details are automatically shared.
Tender’s support system has made support really easy and our customers have noticed. We often get comments wondering if we sleep. We’ll keep it a secret for now that we actually find support fun.
You Will Feel Overwhelmed
There are so many things we want to do with Harmony. We really feel like what we have accomplished thus far is just the tip of the iceberg. I know that sounds cliche, but it is true. If you are passionate about something, your head will always swim with ideas and this swimming tends to lead to feeling overwhelmed.
When this happens, make a list. Honestly, you do not even have to keep the list, you can just throw it away. For some reason, unbeknownst to me, lists help calm the brain. I think it is that keeping ideas in your head feels like herding cats. Putting them down on paper (yes, real paper) helps structure things and seeing everything structured helps you realize it is not so bad.
You Do Not Need Money
Last, but definitely not least. I am going to repeat that. You do not need money. Think about all the startups out there that had money and failed. Money will not be the reason you fail, lack of persistence will.
We have been tempted several times to look for money, but each time we practiced patience. Sure it took us quite a bit longer, but now we have a launched product and we owe no one. Our only debt, of any sort, incurred during this phase is our own time.
Hope this helps those of you out there thinking about or currently working on a product. Feel free to ask any other questions in the comments. We want to be very open about what we have been through.
Update: Rick Olson added another great point. Embrace Open Source.