HowtoBuildaLeanStartup,step‐by‐step#leanstartup
EricRies(@ericries)h?p://StartupLessonsLearned.blogspot.com
Agenda
• Whatisastartup?• Whydostartupsfail?
• IntroducJontotheLeanStartup• ProductDevelopmentinaLeanStartup
• Specifictechniques– ConJnuousDeployment– RapidSplit‐tesJng– FiveWhy’s
Whatisastartup?
• Astartupisahumanins)tu)ondesignedtodeliveranewproductorserviceundercondiJonsofextremeuncertainty.
• Nothingtodowithsizeofcompany,sectoroftheeconomy,orindustry
Whydostartupsfail?
• Rarelyfailbecausetheproductdoesn’twork• Usuallyfailbecausetherearenocustomers
• QualityoftheiniJalideaisnotcorrelatedwithsuccess
• StartupsthatsucceedarethosethatmanagetoiterateenoughJmesbeforetheyrunoutofresources
• TimebetweentheseiteraJonsisfundamental
TheLeanStartup
• AnythingwecandotoshrinktheJmebetweenmajoriteraJonswillincreasethelikelihoodofsuccess.
• SpeedisthestartupcompeJJveadvantage.
LeanStartupsGoFaster
• Commoditytechnologystack,highlyleveraged(free/opensource,user‐generatedcontent,SEM).
• Customerdevelopment–findoutwhatcustomerswantbeforeyoubuildit.
• Agileso]waredevelopment–buttunedtothestartupcondiJon.
Commoditytechnologystack
• Leverage=foreachounceofeffortyouinvestinyourproduct,youtakeadvantageoftheeffortsofthousandsormillionsofothers.
• It’seasytoseehowhigh‐leveragetechnologyisdrivingcostsdown.
• Moreimportantisitsimpactonspeed.
• Timetobringanewproducttomarketisfallingrapidly.
CustomerDevelopment
ConJnuouscycleofcustomerinteracJon
RapidhypothesistesJngaboutmarket,pricing,customers,…
Extremelowcost,lowburn,Jghtfocus
Measurablegatesforinvestors
h?p://bit.ly/tpTtE
Ataleoftwostartups,revisited
• Mirrorsthechangesindevelopmentmethodologiesoverthepastfewyears.
• Let’slookatthosechangesschemaJcally.
• Theseexamplesaredrawnfromso]warestartups,butincreasingly:– Allproductsrequireso]ware– AllcompaniesareoperaJnginastartup‐likeenvironment
Waterfall
TradiJonalProductDevelopmentUnitofprogress:AdvancetoNextStage
Requirements
Design
Implementa2on
Verifica2on
Maintenance
Problem: Known Solution: Known
Problem: Known Solution: Unknown
“Product Owner” or in-house customer
AgileUnitofprogress:alineofworkingcode
Problem: Unknown Solution: Unknown
ProductDevelopmentatLeanStartupUnitofprogress:validatedlearningaboutcustomers($$$)
MinimizeTOTALJmethroughtheloop
IDEAS
CODEDATA
BUILDLEARN
MEASURE
HowtobuildaLeanStartup
• Let’stalkaboutsomespecifics.Thesearenoteverythingyouneed,buttheywillgetyoustarted
• ConJnuousdeployment• Split‐test(A/B)experimentaJon• Fivewhy’s
ConJnuousDeployment
IDEAS
CODEDATA
BUILDLEARN
MEASURE
CodeFasterConJnuousDeployment
MeasureFasterRapidSplitTests
LearnFasterFiveWhysRootCauseAnalysis
Continuous Deployment • Deploy new software quickly
• At IMVU time from check-in to production = 20 minutes
• Tell a good change from a bad change (quickly)
• Revert a bad change quickly
• Work in small batches • At IMVU, a large batch = 3 days worth of work
• Break large projects down into small batches
Cluster Immune System What it looks like to ship one piece of code to production:
• Run tests locally (SimpleTest, Selenium) o Everyone has a complete sandbox
• Continuous Integration Server (BuildBot) o All tests must pass or “shut down the line” o Automatic feedback if the team is going too fast
• Incremental deployo Monitor cluster and business metrics in real-timeo Reject changes that move metrics out-of-bounds
• Alerting & Predictive monitoring (Nagios)o Monitor all metrics that stakeholders care abouto If any metric goes out-of-bounds, wake somebody upo Use historical trends to predict acceptable bounds
Whencustomersseeafailure:o Fix the problem for customers o Improve your defenses at each level
RapidSplitTests
IDEAS
CODEDATA
BUILDLEARN
MEASURE
CodeFasterConJnuousDeployment
MeasureFasterRapidSplitTests
LearnFasterFiveWhysRootCauseAnalysis
Split‐tesJngalltheJme
• A/BtesJngiskeytovalidaJngyourhypotheses
• Hastobesimpleenoughforeveryonetouseandunderstandit
• MakecreaJngasplit‐testnomorethanonelineofcode:
if(setup_experiment(...)=="control"){//doittheoldway}else{//doitthenewway}
TheAAA’sofMetrics
• AcJonable• Accessible• Auditable
MeasuretheMacro
• Alwayslookatcohort‐basedmetricsoverJme• Split‐testthesmall,measurethelarge
ControlGroup(A) Experiment(B)
#Registered 1025 1099
Downloads 755(73%) 733(67%)
AcJvedays0‐1 600(58%) 650(59%)
AcJvedays1‐3 500(48%) 545(49%)
AcJvedays3‐10 300(29%) 330(30%)
AcJvedays10‐30 250(24%) 290(26%)
TotalRevenue $3210.50 $3450.10
RPU $3.13 $3.14
FiveWhys
IDEAS
CODEDATA
BUILDLEARN
MEASURE
CodeFasterConJnuousDeployment
MeasureFasterRapidSplitTests
LearnFasterFiveWhysRootCauseAnalysis
FiveWhysRootCauseAnalysis
• AtechniqueforconJnuousimprovementofcompanyprocess.
• Ask“why”fiveJmeswhensomethingunexpectedhappens.
• Makepropor)onalinvestmentsinprevenJonatallfivelevelsofthehierarchy.
• Behindeverysupposedtechnicalproblemisusuallyahumanproblem.Fixthecause,notjustthesymptom.
There’smuchmore…
IDEAS
CODEDATA
BUILDLEARN
MEASURE
CodeFasterUnitTests
UsabilityTestsConJnuousIntegraJon
IncrementalDeploymentFree&Open‐SourceComponents
CloudCompuJngClusterImmuneSystemJust‐in‐JmeScalability
RefactoringDeveloperSandbox
MeasureFasterSplitTestsClearProductOwnerConJnuousDeploymentUsabilityTestsReal‐JmeMonitoringCustomerLiaison
LearnFasterSplitTestsCustomerInterviewsCustomerDevelopmentFiveWhysRootCauseAnalysisCustomerAdvisoryBoardFalsifiableHypothesesProductOwnerAccountabilityCustomerArchetypesCross‐funcJonalTeamsSemi‐autonomousTeamsSmokeTests
FunnelAnalysisCohortAnalysis
NetPromoterScoreSearchEngineMarkeJng
Real‐TimeAlerJngPredicJveMonitoring
TheLeanStartup
• Youarereadytodothis,whetheryouare:– ThinkingofstarJnganewcompany,buthaven’ttakenthefirststep
– Areinastartupnowthatcoulditeratefaster– WanttocreatethecondiJonsforleaninnovaJoninsideabigcompany
• Getstarted,now,today.
Thanks!
• StartupLessonsLearnedBlog– h?p://startuplessonslearned.blogspot.com/
• TheLeanStartupWorkshop– Anall‐dayeventforaselectaudience– May29andJune18,2009inSanFrancisco– h?p://training.oreilly.com/theleanstartup/
• Otherupcomingevents– h?p://bit.ly/b9w1y