Wednesday, August 27, 2008

Recounting the Launch of our First Startup

Well, it has been nearly one month since the completion and launch of Spicy Elephant, our first one month startup. The launch went crazy, far exceeding the expectations of the team and myself. This success was channeled into our follow-up project, which is in semi-private beta and nearing completion.

Toward the end of July (the end of the spicy project) we quietly launched on popular related news sites (hacker news and reddit) with little to no effect. We got a few additional users, and some interesting feedback, and we though that was that. Our project was a success (we got there), the task of slowly growing the user base lay ahead, and we shifted our primary focus to August and the next one month project.

A few days later the energy of the team was low, and we were having trouble selecting (let alone motivating) the next project. In attempt to reconcile the general feeling of the team, and to crystallize some lessons I'd learned over the course of our self-funded hack-fest, I bashed out a post capturing my experiences. Pushing it again to HN and reddit, I thought little more of it, and went out for the night.

I awoke to a fire storm. My inbox was flooded with an array blog comments, messages from the site, and personal requests from fellow hackers and business randoms (to meet up for coffee/drinks). I immediately hit the site. It still worked, and the number of users had increased an order of magnitude. Fellow team members were spamming me, one highlighting that the sign-up process was broken. Apparently we had overloaded our email quota with activation emails. At the time I thought that this was good problem to have as a founder (the site is popular!), but obviously terrible for the public face of the app (loosing users and potential customers every second that email is down). A quick fix, and the sign-ups continued to climb.

We had front-paged hacker news (near the top), reddit programming (top for a while), delicious popular bookmarks (screen grab), and uncounted other new aggregates.

That day was simply amazing. I'm getting a buzz just writing about it. The two of us that were full time on spicy spent the day responding to users, with a third team member pitching in from work (where possible). I was glued to the screen, refreshing pages and my inbox every few minutes, tracking conversations. We captured as much specific feedback as we could into our ticketing system (trac), and gave away free lifetime premium accounts to users if they experienced any difficulties or sent through exceptional feedback. And there was a lot of exception feedback, one of the first outcomes that really blew us away. I credited this to the collegial start up community, mostly hacker news.

The direct feedback was all positive and supportive, which was really encouraging. The blog comments and discussion on the hacker news post also had the same vibe. Strangely, the comments on the reddit post were negative, and many with troll like qualities. I could see some valid points amongst the negativity, although the sharp contrast in the tone from all of the other feedback started to dampen the morale of the team.

The buzz died away after a few days, although we are still getting feedback from the site, emails, and alerts daily. We pushed a new version yesterday with a suite of bug fixes, UI enhancements, and a set of the most requested features including: card import, export, deck copy, hot decks and speed improvements to the study process (more details).

We were lucky, really lucky. We worked hard, built a solid product, and expected it to smolder and grow organically. Instead it launched like a rocket ship, filling out our user base, and generated enough money to cover our initial costs (not our time). The most impressive thing besides the amount of traffic we generated was learning that people really do want to pay. I've read (and watched) this a number of times, but never really considered it deeply. I do pay for web-based services on occasion, and our team purchased a few project management services along the way, so the notion is not alien. Although, when users started buying our premium service, even on their first encounter with the application, it totally blew us away.

We also got a lot of feedback from people interested in our aggressive methodology of one startup per month for four months, which was very encouraging. Related to this approach was a post on the same day as our launch by Jeff Atwood entitled "Quantity Always Trumps Quality", a philosophy that we have debated a lot in the team, specifically regarding the feature quality/quantity trade-offs under our tight time constraints. In fact, this is always the teams biggest point of contention, for example: how do you decide what is worth pushing for more than a month? is shifting to maintenance mode and moving on to another project abandonment?

Anyway, we are nearing the completing and launch of our second one month startup, and things are looking good. We lost two of our team members this month to other commitments (one of which was our UI guy), so it has been craig and myself solid for the last four weeks.

The webapp is called Screen Sponge and the focus is on movie management with what we expect to be a much larger market than spicy. We are desperately looking for early feedback on our semi-private beta (privacy through obscurity), so if you are of beta ilk, sign-up and let us know what you think.

Sunday, August 3, 2008

My experiences on a one month startup: SpicyElephant.com

In June 2008 I helped to form a group of hackers to get together once a week to discuss the state of web applications in general, with the hope of building an application together. We all got along ok, so later that month I made a proposition to the group:

Each member of the team proposes an webapp idea for the whole team to build for a month. All things going well, we each take a turn of proposing a project such that after four months we collectively have a handful of online properties, increasing our individual chances of success.
It was an idea I borrowed from the start of the movie Primer (my favourite movie!). The one caveat was that each project must have to have a clear and realistic path to monetization (for example: subscription, not advertisement). We called ourselves mayhem (after project mayhem in fight club) and were comprised of 2 developers, 1 solutions architect, and 1 design guy. Two of us were full time on the project, one had a real full time job, and the last had another startup to divide his time. We got a basecamp account for the group and spent the last part of June pitching and refining our ideas.

At the end of June, we decided to select the most promising project to purse first, in July. A project that we all thought had a clearly defined niche, existing userbase, and we thought people would pay money for.

The project was inspired by a Wired article on a Polish guy who had devoted the last 15 (or so) years to studying learning and memory and encapsulating that knowledge into his software product called supermemo. Pretty much all members of the group were familiar with the article, and one was an active user of the software. The niche was clear: memorization/learning/flashcards. The need was clear: existing offline software was too complex and/or hard to use and existing online apps did not use the sophisticated learning scheduler in supermemo.

I am an algorithms guy (Masters and PhD were all about algorithms), so my principle attraction to the project was the scheduling algorithm. The supermemo system is based on the premise of only scheduling material at the point of forgetting, ensuring you only study when you need to (maximizing retention and minimizing study time). There were lots of interesting things to research like spaced repetition, the Leitner System, naturally supermemo, and the enormous resource that is the official supermemo website.

I had never used flashcards in school, and it was hard to see myself as a user of the product (alarm bells!). Fortunately, I did have (and still do have) the need to learn Chinese, and I used this as the my user-centric lens over the course of the month.

We used Ruby on Rails, quickly found a hosting solution and got to work. Rather than enumerate the ups and downs over the course of development, I thought I would capture what I think were general difficulties we experienced, as well as general things we got right. I expect to elaborate on these over the coming days.

Difficulties:
  • Source Control: We had a lot of problems with source control. We initially setup SVN on our production hosting environment. This was lost when apache configurations went bad and we had to restore the whole server from the backup. Further difficulties on the server resulted in us in purchasing an account with beanstalk (hosted source control) which worked well for a few weeks. We then migrated the repository back to our production hosting environment (to reduce costs) once it was clear it was more stable. We lost team members for days (in aggregate) on SVN madness!
  • Sever Stuff: We are programmers, not sys admins. Setting up a robust hosting environment is not our forte. One of team stepped up and took on the responsibility for apache/mongrels/mysql and other required server administration. This pain may have been relieved with a more managed hosting solution, but I'm betting that you're always going to need an server admin guy on your team.
  • Application Name/Brand: We had a clear niche, and a clear product to build, but we had no idea what to call it or how it would look like. We listed and debated names, and did not discuss branding at all. By the middle of the month, we were still nameless, and bland, so a pseudo-random but memorable name was selected: Spicy Elephant. Our designer stepped up and branded the site with an elephant logo and a powder blue color scheme. After that, the product felt more real, and productivity took off. We needed such responsibility to be taken on much earlier than half-way through development.
  • Clarity of Vision: We knew the app we were building, but as a team we lacked a clear vision for what that application included. We dreamed up more features than a team could build in a year, and time-attrition of this glut meant an inefficient allocation of our resources (nice way of saying we wasted time). We did a lot, but we could have done more with what we had.
Things we got right:
  • We did it: We made the time and had a go. More than that, we had a functional, pretty, and monetizable web application on August 1st, one calendar month after we started!
  • Daily Sprints: Work was sporadic in the first week, although once we found our collective feet, we got into the habit of congregating when we could and completing daily sprints. These typically involved the completion of major features or sections, and deploying to production.
  • Weekly Sprints: We had team meetings each Wednesday night, although we also all got together each Sunday where we had what we referred to as hackathons. This involved pushing out as much distinct functionality and/or fix as many bugs as we could in about 6-7 hours, and push to production. We only had one Sunday out of the 4 were we couldn't push to production, which at the time was disappointing to the whole team. These sessions were fun, productive, and a boon for the morale of team and direction of the project.
  • Ownership: Finally, we tried to promote ownership of the product by having those sections created by a team member, owned by the member for the purposes of on going bug fixing and general responsibility. It worked well for some parts of the site and for some people in the team, although not across the board.
The site is called: Spicy Elephant, and has the tag line: the quickest way to put stuff in your brain. It relies on users to provide content in the form of decks of flashcards on specific topics. The general use case involves the user signing up and selecting content they which to learn or memorize, and to let the intelligent scheduler organize when they need to study. We treat "todays study material" like an email inbox that you go and clear. I also like the gym metaphor, where you go to the site a few times a week and do your scheduled reps.

The app uses the freemium business model. Guests can view the content and even study it, although without any statistics maintained. Users can register a free account where all statistics are maintained for their study sessions, the user gets access to the intelligent scheduler although are limited to studying only five decks at any one time (although they can create as many as they wish). Finally, the premium account ($20USD for lifetime at the time of writing) can create an unlimited number of decks, and can create private decks - inaccessible to other users.

The project was a lot of fun, even when things were not working. Everyone was full of energy and enthusiasm, and we built the application we said we would, an application of which we are all proud. It's a new month, and time for a new project, and although we are all still friends, it is unclear whether will see our August projects through as a team, let alone our original ambitious plan of 4 projects in 4 months.

For me, it is still make or break. I have allocated enough of my savings to fund myself until Christmas to build webapps that people want to use, after which time I have a revenue stream to support myself or go and get a job.