Quoras Approach To Moving Fast Sustainably (In Ten Lessons) Nikhil - - PowerPoint PPT Presentation

quora s approach to moving fast sustainably
SMART_READER_LITE
LIVE PREVIEW

Quoras Approach To Moving Fast Sustainably (In Ten Lessons) Nikhil - - PowerPoint PPT Presentation

Quoras Approach To Moving Fast Sustainably (In Ten Lessons) Nikhil Garg (@nikhilgarg) Qcon San Francisco, 11/18/2015 IIT Delhi Quoras Mission To Grow And Share Worlds Knowledge Quora is a place where a normal teenager from a


slide-1
SLIDE 1

Quora’s Approach To Moving Fast Sustainably

(In Ten Lessons)

Nikhil Garg (@nikhilgarg) Qcon San Francisco, 11/18/2015

slide-2
SLIDE 2
slide-3
SLIDE 3

IIT Delhi

slide-4
SLIDE 4
slide-5
SLIDE 5

To Grow And Share World’s Knowledge

Quora’s Mission

slide-6
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 7
slide-8
SLIDE 8
slide-9
SLIDE 9
slide-10
SLIDE 10

@Quora { Founded in 2010 65 Engineers Python, JS, C++ }

slide-11
SLIDE 11
  • 1. Moving Fast
  • 2. Moving Fast Recklessly
  • 3. Ten Lessons For Sustainability
slide-12
SLIDE 12
  • 1. Moving Fast
  • 2. Moving Fast Recklessly
  • 3. Ten Lessons For Sustainability
slide-13
SLIDE 13
slide-14
SLIDE 14

Maximizing Innovation

slide-15
SLIDE 15
slide-16
SLIDE 16

Winner Takes All

slide-17
SLIDE 17
  • 1. Moving Fast
  • 2. Moving Fast Recklessly
  • 3. Ten Lessons For Sustainability
slide-18
SLIDE 18

Code Becomes Messy

slide-19
SLIDE 19

Developers Become Unhappy

slide-20
SLIDE 20

Development Can Just Halt

slide-21
SLIDE 21

...So Must Move Fast, Sustainably

slide-22
SLIDE 22
  • 1. Moving Fast
  • 2. Moving Fast Recklessly
  • 3. Ten Lessons For Sustainability
slide-23
SLIDE 23
  • 1. Move Fast, On Average
slide-24
SLIDE 24

2: Think Long Enough Term

  • 2. Define Your Long-Enough Term
slide-25
SLIDE 25
  • 3. Do The Math. There IS Free Lunch
slide-26
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
SLIDE 27

Qlint: Quora’s Python Linter

slide-28
SLIDE 28
slide-29
SLIDE 29
slide-30
SLIDE 30
slide-31
SLIDE 31

Soon Going to Open Source Qlint :)

slide-32
SLIDE 32
  • 4. Commit Publicly
slide-33
SLIDE 33

Define your long-enough term Publicly commit to it Empower developers to order free-lunch Enjoy higher increased average speed

slide-34
SLIDE 34
  • 5. Cut Corners In Scope
slide-35
SLIDE 35
slide-36
SLIDE 36
slide-37
SLIDE 37
  • 6. Optimize Productivity Bottlenecks
slide-38
SLIDE 38

Testing At Quora

slide-39
SLIDE 39
slide-40
SLIDE 40
slide-41
SLIDE 41
  • 7. Reward Acceleration
slide-42
SLIDE 42

Code Cleanup

slide-43
SLIDE 43

Automation

slide-44
SLIDE 44
  • 8. Prevent Deceleration
slide-45
SLIDE 45

Slow Creep Of Complexity

slide-46
SLIDE 46

Batched Code Cleanup At Quora

slide-47
SLIDE 47

Codebase Is A Tree

slide-48
SLIDE 48
  • 9. Optimize Processes
slide-49
SLIDE 49

Continuous Deployment

‘Git Push’ To Production In 10 Minutes

slide-50
SLIDE 50
  • 10. Be Practical, Not Ideological
slide-51
SLIDE 51

Code Reviews Are Awesome

slide-52
SLIDE 52

Style / Design Education / Collaboration Correctness [?]

[?] http://research.microsoft.com/pubs/180283/ICSE%202013-codereview.pdf

slide-53
SLIDE 53

But Pre-Commit Reviews Are Costly

slide-54
SLIDE 54

(Code is reviewed after it goes to production)

Post Commit Code Reviews

Taking continuous deployment to the next level

slide-55
SLIDE 55

Style / Design Education / Collaboration Correctness [?] → Testing

[?] http://research.microsoft.com/pubs/180283/ICSE%202013-codereview.pdf

slide-56
SLIDE 56

Fall Back To Pre-Commit Reviews

slide-57
SLIDE 57

Codebase Is A Tree

slide-58
SLIDE 58

Easier to ask for forgiveness than permission!

slide-59
SLIDE 59

Avoid truly terrible outcomes Maximize expected speed Minimize bad outcomes

slide-60
SLIDE 60

Summary

slide-61
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
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
SLIDE 63

Nikhil Garg @nikhilgarg28 { Gmail, Github, Twitter, LinkedIn }

Thank you!

Quora Is Hiring