Startup Lessons Learned 2011 Drew Houston Founder/CEO, Dropbox @drewhouston
How things get built at Dropbox Challenges we face at scale How we decide what to build
Dropbox by the numbers Just a year ago: 20-ish people 5mm users Today: 55-ish people >25mm users 100+ billion files 300mm files saved daily (1mm every  5 min, more than tweets on Twitter) Paying users in 175 countries
People > process Great engineers are dramatically more productive than average engineers Hiring fewer but better people reduces need to be great at coordination, planning, etc. Plan/design with Etherpad, track bugs with Trac ~25-person engineering team split up into smaller, loosely-coupled sub-teams Client, server, web, mobile, analytics/growth, API, etc. Each with own roadmap, release cycle, process, team meetings, Etherpads, tests, continuous deployment, etc. Core protocols & APIs reasonably frozen, enabling loose coupling (a la Amazon)
Find great people… … and get out of the way In general we don’t tell people how to work – no mandatory hours, etc. Make the office somewhere people like to be Pick whatever workstation, tools (no budget) Minimize overhead & decentralize day-to-day decisions through culture/values Cofounder Arash maintains “soul” of the user experience; designer Jon keeper of look and feel
Big results with small # of people One visual designer (formerly community manager!) Server team of 3 manages 100+ billion files, 10+ petabytes of data, etc. Strategy: divide & conquer, keep teams small (won’t scale forever but has for now) As team grows, values/culture/mission made more explicit & deliberately taught to new people
Planning We don’t do a lot of advance planning But we need more than we used to More stuff going on Functions outside engineering People don’t know what other people are up to Less information spreads by osmosis As we grow more leaders internally, they need to stop and plan for their teams For a while we were doing too many things, and nothing would ship for months
Dropbox company goals Modeled after Google’s OKR system Yearly goals & quarterly goals Forms a hierarchy that is shared publicly Overall company goals Overall product goals Team goals (e.g. client team) Eventually per individual Perfect is the enemy of good enough here – your planning process needs iteration too!
Study how other companies grew Challenge with scaling orgs is things that used to work start failing quietly “ What are we doing? Why?” “ Why does what I’m doing matter?” “ What is most important?” We try to learn from other companies growing pains; don’t reinvent the wheel Take comfort in that all other high-growth companies were pretty #!$@ed up too in their own special ways
Challenges we face at scale
Launch fast and iterate quickly… … unless you’re making pacemakers Different sub-teams need different engineering tradeoffs (e.g. server core team vs. web team) Our most valuable asset: people’s trust. Years to build, seconds to lose if data is ever lost Need big investments on e.g. client team to keep cycle times fast Google Chrome, others have set good examples here But getting there takes a lot of work! (test coverage, continuous deployment, automatic updates, etc.)
The world is more complicated… … when you have lots of users More at stake: paying customers & public scrutiny On the desktop, combinatorial explosion of different environments; impossible to test all A problem affecting just 0.1% of user base is still 25,000 people when you have 25 million users … when the code has lots of moving parts Performance & memory footprint optimizations add lots of complexity to the code Harder to add people, harder to add features
It’s not easy being lean Split testing & optimization is great, but you quickly run out of low hanging fruit Early wins on e.g. shared folder & referral flows … remember A/B tests won’t get you an iPhone Analytics are essential but hard to maintain Our data volume increases 10x/year Most needle-moving projects don’t have MVPs that are easy to make Requires more coordination, effort to test ideas Especially tests requiring UI on the desktop
Build the right thing & build things right But if you have to choose one, build the right thing No good to run fast in the wrong direction No silver bullets in software methodologies; context matters We’re getting better Our chronic optimism is slowly getting cured Company goal process helps predictability Continued investments in core infrastructure & reducing cycle times
How we decide what to build
Some design principles Everything should “just work” Don’t make users think "It's not just what it looks like and feels like. Design is how it works." – Steve Jobs Usability, speed, reliability requires relentless, continuous improvement Don’t launch anything half-assed We usually launch “when it’s done”, but trying to get more predictable “ Does less” is okay; flaky/ugly/confusing is not
Votebox: our tracker for user requests
BUT…figuring out what your customers want is your job,  not theirs
Big problems hidden in plain sight
Big problems hidden in plain sight For most people, technology fails the “Minority Report” test i.e. in “the future”, Tom Cruise would not be e.g. logging into his Gmail or carrying around USB drives Unsolved problems are all around us Seeing photos on your TV, listening to music in your car, sharing wedding pictures with family In the future, everything will “just work” but it definitely doesn’t today
Wrapping up It’s worth the pain, though Incredibly rewarding making  things people actually use A bigger audience means we can solve big problems for tens and soon hundreds of millions of people Yet we all still fit in one room (for now!)
Thank you! Questions? @drewhouston Slides: bit.ly/dropboxSLL2011

Dropbox startup lessons learned 2011

  • 1.
    Startup Lessons Learned2011 Drew Houston Founder/CEO, Dropbox @drewhouston
  • 2.
    How things getbuilt at Dropbox Challenges we face at scale How we decide what to build
  • 3.
    Dropbox by thenumbers Just a year ago: 20-ish people 5mm users Today: 55-ish people >25mm users 100+ billion files 300mm files saved daily (1mm every 5 min, more than tweets on Twitter) Paying users in 175 countries
  • 4.
    People > processGreat engineers are dramatically more productive than average engineers Hiring fewer but better people reduces need to be great at coordination, planning, etc. Plan/design with Etherpad, track bugs with Trac ~25-person engineering team split up into smaller, loosely-coupled sub-teams Client, server, web, mobile, analytics/growth, API, etc. Each with own roadmap, release cycle, process, team meetings, Etherpads, tests, continuous deployment, etc. Core protocols & APIs reasonably frozen, enabling loose coupling (a la Amazon)
  • 5.
    Find great people…… and get out of the way In general we don’t tell people how to work – no mandatory hours, etc. Make the office somewhere people like to be Pick whatever workstation, tools (no budget) Minimize overhead & decentralize day-to-day decisions through culture/values Cofounder Arash maintains “soul” of the user experience; designer Jon keeper of look and feel
  • 6.
    Big results withsmall # of people One visual designer (formerly community manager!) Server team of 3 manages 100+ billion files, 10+ petabytes of data, etc. Strategy: divide & conquer, keep teams small (won’t scale forever but has for now) As team grows, values/culture/mission made more explicit & deliberately taught to new people
  • 7.
    Planning We don’tdo a lot of advance planning But we need more than we used to More stuff going on Functions outside engineering People don’t know what other people are up to Less information spreads by osmosis As we grow more leaders internally, they need to stop and plan for their teams For a while we were doing too many things, and nothing would ship for months
  • 8.
    Dropbox company goalsModeled after Google’s OKR system Yearly goals & quarterly goals Forms a hierarchy that is shared publicly Overall company goals Overall product goals Team goals (e.g. client team) Eventually per individual Perfect is the enemy of good enough here – your planning process needs iteration too!
  • 9.
    Study how othercompanies grew Challenge with scaling orgs is things that used to work start failing quietly “ What are we doing? Why?” “ Why does what I’m doing matter?” “ What is most important?” We try to learn from other companies growing pains; don’t reinvent the wheel Take comfort in that all other high-growth companies were pretty #!$@ed up too in their own special ways
  • 10.
  • 11.
    Launch fast anditerate quickly… … unless you’re making pacemakers Different sub-teams need different engineering tradeoffs (e.g. server core team vs. web team) Our most valuable asset: people’s trust. Years to build, seconds to lose if data is ever lost Need big investments on e.g. client team to keep cycle times fast Google Chrome, others have set good examples here But getting there takes a lot of work! (test coverage, continuous deployment, automatic updates, etc.)
  • 12.
    The world ismore complicated… … when you have lots of users More at stake: paying customers & public scrutiny On the desktop, combinatorial explosion of different environments; impossible to test all A problem affecting just 0.1% of user base is still 25,000 people when you have 25 million users … when the code has lots of moving parts Performance & memory footprint optimizations add lots of complexity to the code Harder to add people, harder to add features
  • 13.
    It’s not easybeing lean Split testing & optimization is great, but you quickly run out of low hanging fruit Early wins on e.g. shared folder & referral flows … remember A/B tests won’t get you an iPhone Analytics are essential but hard to maintain Our data volume increases 10x/year Most needle-moving projects don’t have MVPs that are easy to make Requires more coordination, effort to test ideas Especially tests requiring UI on the desktop
  • 14.
    Build the rightthing & build things right But if you have to choose one, build the right thing No good to run fast in the wrong direction No silver bullets in software methodologies; context matters We’re getting better Our chronic optimism is slowly getting cured Company goal process helps predictability Continued investments in core infrastructure & reducing cycle times
  • 15.
    How we decidewhat to build
  • 16.
    Some design principlesEverything should “just work” Don’t make users think "It's not just what it looks like and feels like. Design is how it works." – Steve Jobs Usability, speed, reliability requires relentless, continuous improvement Don’t launch anything half-assed We usually launch “when it’s done”, but trying to get more predictable “ Does less” is okay; flaky/ugly/confusing is not
  • 17.
    Votebox: our trackerfor user requests
  • 18.
    BUT…figuring out whatyour customers want is your job, not theirs
  • 19.
    Big problems hiddenin plain sight
  • 20.
    Big problems hiddenin plain sight For most people, technology fails the “Minority Report” test i.e. in “the future”, Tom Cruise would not be e.g. logging into his Gmail or carrying around USB drives Unsolved problems are all around us Seeing photos on your TV, listening to music in your car, sharing wedding pictures with family In the future, everything will “just work” but it definitely doesn’t today
  • 21.
    Wrapping up It’sworth the pain, though Incredibly rewarding making things people actually use A bigger audience means we can solve big problems for tens and soon hundreds of millions of people Yet we all still fit in one room (for now!)
  • 22.
    Thank you! Questions?@drewhouston Slides: bit.ly/dropboxSLL2011

Editor's Notes

  • #3 (as I spent the bulk of my 20s discovering) This is not your typical rails app that you can bang out in a weekend.
  • #5 Unusual aspects
  • #11 A few examples/stories
  • #16 A few examples/stories
  • #19 A few examples/stories