SLIDE 1 Quora’s Approach To Moving Fast Sustainably
(In Ten Lessons)
Nikhil Garg (@nikhilgarg) Qcon San Francisco, 11/18/2015
SLIDE 2
SLIDE 3
IIT Delhi
SLIDE 4
SLIDE 5 To Grow And Share World’s Knowledge
Quora’s Mission
SLIDE 6
“Quora is a place where a normal teenager from a remote Asian country can get direct advice from world’s top astronauts, programmers, novelists and many others.”
Rajeeb Banstola
High School Student, Nepal
SLIDE 7
SLIDE 8
SLIDE 9
SLIDE 10
@Quora { Founded in 2010 65 Engineers Python, JS, C++ }
SLIDE 11
- 1. Moving Fast
- 2. Moving Fast Recklessly
- 3. Ten Lessons For Sustainability
SLIDE 12
- 1. Moving Fast
- 2. Moving Fast Recklessly
- 3. Ten Lessons For Sustainability
SLIDE 13
SLIDE 14
Maximizing Innovation
SLIDE 15
SLIDE 16
Winner Takes All
SLIDE 17
- 1. Moving Fast
- 2. Moving Fast Recklessly
- 3. Ten Lessons For Sustainability
SLIDE 18
Code Becomes Messy
SLIDE 19
Developers Become Unhappy
SLIDE 20
Development Can Just Halt
SLIDE 21
...So Must Move Fast, Sustainably
SLIDE 22
- 1. Moving Fast
- 2. Moving Fast Recklessly
- 3. Ten Lessons For Sustainability
SLIDE 24 2: Think Long Enough Term
- 2. Define Your Long-Enough Term
SLIDE 25
- 3. Do The Math. There IS Free Lunch
SLIDE 26
Building a Linter takes 4 weeks (160 hours) Saves 1 hour per developer per week At 50 developers, saves 50 hours per week Saves 400 hours in 8 more weeks
SLIDE 27
Qlint: Quora’s Python Linter
SLIDE 28
SLIDE 29
SLIDE 30
SLIDE 31
Soon Going to Open Source Qlint :)
SLIDE 33
Define your long-enough term Publicly commit to it Empower developers to order free-lunch Enjoy higher increased average speed
SLIDE 35
SLIDE 36
SLIDE 37
- 6. Optimize Productivity Bottlenecks
SLIDE 38
Testing At Quora
SLIDE 39
SLIDE 40
SLIDE 42
Code Cleanup
SLIDE 43
Automation
SLIDE 45
Slow Creep Of Complexity
SLIDE 46
Batched Code Cleanup At Quora
SLIDE 47
Codebase Is A Tree
SLIDE 49 Continuous Deployment
‘Git Push’ To Production In 10 Minutes
SLIDE 50
- 10. Be Practical, Not Ideological
SLIDE 51
Code Reviews Are Awesome
SLIDE 52 Style / Design Education / Collaboration Correctness [?]
[?] http://research.microsoft.com/pubs/180283/ICSE%202013-codereview.pdf
SLIDE 53
But Pre-Commit Reviews Are Costly
SLIDE 54 (Code is reviewed after it goes to production)
Post Commit Code Reviews
Taking continuous deployment to the next level
SLIDE 55 Style / Design Education / Collaboration Correctness [?] → Testing
[?] http://research.microsoft.com/pubs/180283/ICSE%202013-codereview.pdf
SLIDE 56
Fall Back To Pre-Commit Reviews
SLIDE 57
Codebase Is A Tree
SLIDE 58
Easier to ask for forgiveness than permission!
SLIDE 59
Avoid truly terrible outcomes Maximize expected speed Minimize bad outcomes
SLIDE 60
Summary
SLIDE 61 Move Fast, On Average Define Your Long Enough Term Do the Math. There IS Free Lunch Commit Publicly Cut Corners In Scope Optimize Productivity Bottlenecks Reward Acceleration Prevent Deceleration Optimize Processes Be Practical, Not Ideological
SLIDE 62
- Empower developers to move fast on average over
long enough term by getting free lunch.
- Profile productivity like code, measure, optimize,
make practical trade-offs.
- Post commit code reviews work, codebase is a tree.
SLIDE 63 Nikhil Garg @nikhilgarg28 { Gmail, Github, Twitter, LinkedIn }
Thank you!
Quora Is Hiring