Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Bootstrapping a Software Product

Bootstrapping a Software Product

A rapid-fire presentation about the things that I got right and the things I got miserably wrong while bootstrapping Sifter as a sole founder.

The popularity of this presentation online planted the seed for what eventually became a book going into more detail about the experience: [Starting & Sustaining](https://garrettdimon.com/starting-and-sustaining).

Garrett Dimon
PRO

September 09, 2011
Tweet

More Decks by Garrett Dimon

Other Decks in Business

Transcript

  1. Bootstrapping a
    Software Product
    Lessons learned building and running a
    hosted web application as a solo founder.

    View Slide

  2. Founder, designer, and developer of
    Sifter which is a very simple hosted bug
    and issue tracker.
    Hi, I’m Garrett Dimon

    View Slide

  3. Smallish Ruby on Rails App
    2 Web/Application Servers
    2 Database Servers (Master & Slave)
    1 Job Server
    ~10,000 Active Users
    ~60 requests per minute
    ~250 requests per minute at peak
    About Sifter

    View Slide

  4. These are simple opinions based off of our
    experiences. Every person, team, and
    application is different. Take it with a
    grain of salt.
    There are plenty of successful businesses
    for which this stuff wouldn’t be true.
    Disclaimer

    View Slide

  5. Growing the business from profit.
    (as opposed to outside investment*)
    Bootstrapping
    We actually started with $16,000. We spent
    $10,000 on startup costs. We spent the other
    $6,000 on advertising after launch. Totally
    possible to do it with less, but the money made it
    much less stressful.
    *

    View Slide

  6. Digital stuff that you sell for money.*
    (as opposed to consulting or services)
    Software Product
    It should literally make money when you’re asleep.
    In our case, billing runs nightly and automatically
    puts money into our account. Services businesses
    can’t scale exponentially. One person can only do
    so much work.
    *

    View Slide

  7. Examples...
    ★ Icons
    ★ Templates (Keynote Kung Fu)
    ★ Mobile Apps
    ★ Desktop Apps
    ★ Web Apps
    ★ PDFs or eBooks
    ★ Screencasts
    ★ Online Workshops (to some degree)

    View Slide

  8. ?
    Idea Profit

    View Slide

  9. No Bureaucracy
    Control Your Destiny
    Mailbox Money
    Do Fun Stuff*
    Flexibility*
    Family Time*
    Get Rich*
    Hopes & Dreams

    View Slide

  10. Fears (Excuses?)
    Health & Disability Insurance
    Not Enough Money*
    Not Enough Skills*
    Not Enough Time*
    Not Enough Experience*
    No Good Ideas / Crowded Market*
    Failure*

    View Slide

  11. If this is what you’r expecting, you
    might want to think twice...

    View Slide

  12. http://www.flickr.com/photos/athoos/1085958611/
    You should probably expect
    something more like this...

    View Slide

  13. It’s really a bit more like this...

    View Slide

  14. 1. Getting Ready
    Start with a little money. Be ready to be
    broke. Anticipate a long journey.

    View Slide

  15. Fear & Excuses
    Explore. Still on the fence.
    Prepare. Committed, but haven’t shipped.
    Transition. From part-time to full-time.
    Work. Answering to paying customers.

    View Slide

  16. 2008 2011
    2009 2010
    Operating Costs
    Part-time Salary
    Full-time Salary
    Pre-Sifter Salary
    Full-time
    Quit Job
    Launch
    Idea
    Engaged
    Wedding
    Buy House Honeymoon
    First Child
    Move
    Move Again
    Europe
    Puppy
    Most Challenging Time of My Life

    View Slide

  17. Good Decision
    Didn’t put my life on hold.
    Got engaged, married, bought a house, moved
    twice, went on a honeymoon, went to Europe, and
    had a child. Point being that while it’s not easy to
    make sweeping life changes, it’s certainly not
    impossible.

    View Slide

  18. Bad Decision
    Failed to recognize the stress
    it put on my wife.
    Sifter consumed an incredible amount of attention
    the first couple of years. Even when I wasn’t working
    on it, I was thinking about it.

    View Slide

  19. First and foremost, a start-up puts you on an
    emotional roller coaster unlike anything you have
    ever experienced. You flip rapidly from day-to-day
    – one where you are euphorically convinced you
    are going to own the world, to a day in which
    doom seems only weeks away and you feel
    completely ruined, and back again. Over and over
    and over. And I’m talking about what happens to
    stable entrepreneurs.
    Marc Andreessen

    View Slide

  20. Our revenue growth...

    View Slide

  21. ...for one month.

    View Slide

  22. Bad Decision
    Focused too much on short-
    term ups and downs.
    Now, I try not to worry about anything until it’s been
    a trend for a week. (That’s not to say I ignore it. I just
    don’t worry about it until it’s a “real” problem.)

    View Slide

  23. View Slide

  24. Good Decision
    Looked back every few
    months at accomplishments.
    Day-to-day it felt like we weren’t getting anywhere,
    but looking at three months at a time, it was a
    different story.

    View Slide

  25. View Slide

  26. Bad Decision
    Let fraud get the best of me.
    We had it under control. Cost us $200 in fees, but I
    let it consume me for two weeks.

    View Slide

  27. Good Decision
    Went all-in and planned for
    it to be more than a side
    project.
    With operating costs, $1,000/mo. of revenue is
    nothing, and running a hosted web app isn’t worth it.
    It didn’t get “easy” until it supported me full-time
    and had profit of its own.

    View Slide

  28. Good Decision
    Got a business partner.
    He brought more business knowledge and took a lot
    of the operational burden off of me. (Accounting,
    legal, insurance, etc.) Also, cash.

    View Slide

  29. Good Decision
    Brought on a technology
    advisor.
    Helped with a lot of early tech decisions as well as
    helping us find our current systems administrator.

    View Slide

  30. Bad Decision
    Didn’t get a tech partner.
    I’m more of a designer first and developer second.
    Keith is more of a business person. Would have
    been nice to have someone focused exclusively on
    tech. Ultimately managed just fine, though.

    View Slide

  31. Good Decision
    One person has controlling
    interest and decision making
    responsibilities.
    At some point, there needs to be a goto person.
    Mixed messages and blurred visions cause
    problems.

    View Slide

  32. Bad Decision
    Lacked confidence in myself.
    Had our advisor work on it part-time instead of
    taking the leap myself. Early on, nobody was better
    for the company than I was.

    View Slide

  33. 2. Product Strategy
    Focus, customers, feature requests,
    launching, and iterating.

    View Slide

  34. A) Email Integration
    B) Attachments
    C) Search
    D) API
    E) Milestones
    F) OpenID
    G) Text Formatting
    Which of the following features are
    “must have for launch”?
    XNone of
    them

    View Slide

  35. Good Decision
    Launched early.
    Sifter didn’t have search, file uploading, email
    integration, API, milestones, or OpenID. We still
    don’t have text formatting.

    View Slide

  36. Good Decision
    Didn’t add features as a
    knee-jerk reaction to a
    request.
    Often, we’d get one request one day and the exact
    opposite request the next day.

    View Slide

  37. Good Decision
    Explained decision-making
    about including or excluding
    features to customers.
    Forced us to think things through, and usually
    elicited good conversation to validate or invalidate
    an idea.

    View Slide

  38. Good Decision
    No custom statuses. This one
    decision defines Sifter.
    This is simultaneously the number one complaint
    and number one favorite feature. It’s polarizing.
    Keeping it simple has given us so much flexibility.

    View Slide

  39. Bad Decision
    Made decisions too quickly.
    Debating between a couple of minutes of downtime
    vs. 20 minutes of downtime. Making the decision too
    quickly led to bigger problems.

    View Slide

  40. Good Decision
    Handled bad situation with
    complete openness and
    honesty.
    Made a mistake that led to 8 hours of data loss.
    Offered credit to all affected customers. Cost us
    about 10% of that month’s revenue. All customers
    were understanding and grateful.

    View Slide

  41. Bad Decision
    Fell into the feature trap.
    Spent 2 months building features that only get used
    2.3% of the time. The vocal minority can be very
    distracting.

    View Slide

  42. http://contrast.ie/blog/swiss-army-knives/

    View Slide

  43. Good Decision
    Used data to guide decisions.
    Customers ask for a feature. I check their account
    usage, our analytics, and Sifter logs for trends and
    usually find better solutions.

    View Slide

  44. Good Decision
    Embraced criticism.
    If people take the time to criticize, it’s because they
    feel that the product is already pretty solid. If it’s way
    off, they don’t say anything at all.

    View Slide

  45. Bad Decision
    Worried about cancellations.
    Added exit interview to understand cancelation
    reasons. Almost all cancellations are small
    companies or freelancers that used Sifter for 1
    project and the project is over.

    View Slide

  46. Good Decision
    Take ridiculously good care
    of customers.
    I never take time off, and it’s rare for a customer to
    wait more than an hour for a response from support.
    Always same day.

    View Slide

  47. Bad Decision
    Obsess about taking care of
    customers.
    I would stress out if it took me longer than an hour to
    answer an email. Nobody ever expected hour-
    turnaround except me. I’m harder on myself than
    even our most demanding customers.

    View Slide

  48. Good Decision
    Recognize toxic customers.
    From time-to-time, customers lie or do other shady
    things. Best to just do whatever it takes to make
    them happy and move on. Spending time on toxic
    customers only hurts your other customers.

    View Slide

  49. Bad Decision
    Let customers put accounts
    on hold indefinitely.
    Was idealistic and thinking people would go on hold
    for 2-3 months at a time. 85% never returned. They
    simply went on hold instead of canceling. We
    continue to have an obligation, and they don’t.

    View Slide

  50. Good Decision
    Advertised early.
    Initial advertising got the word out. Subsequent
    advertising was significantly less effective.

    View Slide

  51. Bad Decision
    Continued advertising.
    Ultimately spent almost $10,000 on advertising, but
    only the first $5,000 was truly worth it. Might do
    some advertising once 2.0 is out, but probably
    won’t.

    View Slide

  52. Good Decision
    Wrote. Blogged. Shared.
    Explained.
    Built an audience. Validated ideas. Forced me to
    clarify my thinking. Writing and explaining things has
    a weird way of forcing you to understand something
    better than you would have otherwise.

    View Slide

  53. Good Decision
    Didn’t worry about people
    stealing our ideas.
    By the time they copy what you’re doing, you’ll be
    on to the next thing. They’ll always be a step behind.

    View Slide

  54. 3. Pricing & Profit
    Understanding value and making money.

    View Slide

  55. Good Decision
    Charged money during beta.
    Not for revenue, but to filter people and test the
    billing system. We charged $5 per month just as a
    barrier to entry. People will use any piece of crap
    software if it’s free.

    View Slide

  56. When you have to prove the value of your ideas
    by persuading other people to pay for them, it
    clears out an awful lot of woolly thinking.
    Tim O’Reilly

    View Slide

  57. Good Decision
    Didn’t do free accounts or
    discounts.
    People will use anything if it’s free. We want people
    to use it because they like it, not because it’s free.
    Also, those generally make for the worst customers.

    View Slide

  58. Good Decision
    “Raised” prices.
    Lowest price plans turnover rapidly and generally
    have more demanding users.

    View Slide

  59. 0
    7.50
    15.00
    22.50
    30.00
    Average # of Months with Sifter
    Personal Small Medium Large Massive
    Cheapest plans
    stay with us the
    fewest months.

    View Slide

  60. 0%
    12.50%
    25.00%
    37.50%
    50.00%
    % of Each Plan that Ultimately Cancels
    Personal Small Medium Large Massive
    45% of all personal
    plans get cancelled

    View Slide

  61. 0%
    10.00%
    20.00%
    30.00%
    40.00%
    Plans as a % Total Revenue
    Personal Small Medium Large Massive
    65% of revenue from
    $14 and $29 plans

    View Slide

  62. Good Decision
    Aimed for monthly
    profitability. And didn’t
    outgrow our revenue.
    Weren’t afraid to spend money, but tried to make
    sure that we always ended the month with more
    money than we started. A yearly budget is key
    because many significant costs are not monthly and
    would otherwise be off the radar until it’s too late.

    View Slide

  63. Good Decision
    Run billing daily.
    Constant stream of income, and billing problems
    only affect a small portion of customers.

    View Slide

  64. Good Decision
    Kept personal costs low.
    No office space. No debt. Could have done better,
    though. You will be your company’s single biggest
    cost center.

    View Slide

  65. Good Decision
    Watched financials like a
    hawk.
    Kept a close eye on our bottom line, cash flow, and
    money in the bank.

    View Slide

  66. Bad Decision
    Watched financials too
    closely.
    I updated our numbers almost daily, and kept too
    much detail. Weekly is more than enough.

    View Slide

  67. Hosting
    Performance Monitoring
    Source Code Management
    Uptime Monitoring
    Transactional Email
    DNS Management
    Exception Management
    File Storage
    Transaction Fees
    SSL
    Bookkeeping
    Accounting
    Legal
    System Administration
    Team Software
    Business Insurance
    Health Insurance
    Merchant Account
    Domains
    Your Cost of Living
    Know Your Costs

    View Slide

  68. 4. Tech & Operations
    Start simple. Delay complexity.

    View Slide

  69. Good Decision
    Didn’t open source the
    application.
    If it wasn’t providing my income, I wouldn’t have
    made time for it. Would have been too difficult to
    stay excited about the vision.

    View Slide

  70. Bad Decision
    Built our own billing system.
    To our credit, we didn’t have much of a choice at the
    time. These days there are plenty of choices.

    View Slide

  71. Good Decision
    Bootstrapping forced us to
    scale cautiously.
    By letting our profits determine how much we
    invested in the company, we couldn’t spend time on
    the wrong things.

    View Slide

  72. Researchers found that certain factors – such age
    and gender of founders, location, and previous
    entrepreneurial experience – have little bearing
    on a startup’s likelihood of failure. The most
    consistent predictor of failure, rather, was a
    startup’s propensity to engage in premature
    scaling.
    Startup Genome Project
    Interviewed 3200 Startups
    (Quote is really focused on “high-growth” startups.)

    View Slide

  73. Bad Decision
    Waited too long to go
    full-time SSL.
    The cost is negligible, and the value is infinite. With
    web applications, it’s expected these days.

    View Slide

  74. Bad Decision
    Obsessively worried about
    downtime.
    In 3 years, we’ve had about 8 hours of unplanned
    downtime. Only half of that was under our control. I
    spent 8760 hours worrying about it.

    View Slide

  75. Good Decision
    Didn’t obsess over
    automated testing.
    Building a business, not a test suite. Sifter simply
    wasn’t complicated enough in the beginning and we
    didn’t know what we were building.

    View Slide

  76. Bad Decision
    Didn’t obsess over
    automated testing.
    We did a little, but not much. We’ve definitely had to
    add it in as we go and as Sifter becomes more
    complex.

    View Slide

  77. Bad Decision
    Waited too long to goto a
    high availability hosting
    environment.
    The setup isn’t trivial, and the up front costs are
    significant, but it’s worth it. Easier to scale. More
    redundant. More insulated from problems. Faster.

    View Slide

  78. http://bootstrapping.sifterapp.com

    View Slide

  79. Thanks! Questions?
    [email protected]
    @garrettdimon

    View Slide