open source at facebook and beyond

59
Rebooting Open Source at Facebook JAMES PEARCE @jamespearce

Upload: all-things-open

Post on 15-Jul-2015

235 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Open Source At Facebook and Beyond

Rebooting Open Sourceat FacebookJAMES PEARCE@jamespearce

Page 2: Open Source At Facebook and Beyond
Page 3: Open Source At Facebook and Beyond
Page 4: Open Source At Facebook and Beyond
Page 5: Open Source At Facebook and Beyond

USE

SCALE

IMPROVE REPLACE

RELEASE

Page 6: Open Source At Facebook and Beyond
Page 7: Open Source At Facebook and Beyond

#0 Articulate the value that

open source brings your company

Page 8: Open Source At Facebook and Beyond

Open source is like the breeze from an open window

Page 9: Open Source At Facebook and Beyond

But…

Page 10: Open Source At Facebook and Beyond
Page 11: Open Source At Facebook and Beyond
Page 12: Open Source At Facebook and Beyond
Page 13: Open Source At Facebook and Beyond
Page 14: Open Source At Facebook and Beyond
Page 15: Open Source At Facebook and Beyond

USE

SCALE

IMPROVE

RELEASE

REPLACE

Page 16: Open Source At Facebook and Beyond

#1 Use your own open source

Page 17: Open Source At Facebook and Beyond
Page 18: Open Source At Facebook and Beyond

#2 Decentralize project ownership

Page 19: Open Source At Facebook and Beyond

What projects did we own?

Who was contributing to them?

How healthy were they?

Page 20: Open Source At Facebook and Beyond

https://api.github.com/orgs/facebook/

Page 21: Open Source At Facebook and Beyond

Every repo

Every commit

Every pull request

Every issue

Page 22: Open Source At Facebook and Beyond

[opensource]>  select                              name,  followers,  forks,  commits,  issues,  pull_requests                              from  github_repos  order  by  created_at  limit  10;

+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  |  name                        |  followers  |  forks  |  commits  |  issues  |  pull_requests  |  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  |  memcached              |              323  |        53  |          209  |            1  |                          0  |  |  three20                  |            7429  |    1521  |        1680  |        200  |                          0  |  |  platform                |              146  |        31  |          310  |            2  |                          0  |  |  bunny1                    |                43  |        15  |            10  |            0  |                          0  |  |  phpembed                |              132  |        26  |            31  |            1  |                          0  |  |  codemod                  |              309  |        49  |            13  |            9  |                          3  |  |  animation              |                  0  |          0  |              0  |            1  |                          0  |  |  scribe                    |            2572  |      469  |          117  |          59  |                        11  |  |  firefox-­‐toolbar  |                93  |        50  |          532  |          10  |                          0  |  |  cassandra              |              205  |        27  |          189  |            0  |                          0  |  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+

Page 23: Open Source At Facebook and Beyond

Every repo

Every commit

Every pull request

Every issue

Every minute

Page 24: Open Source At Facebook and Beyond

#3 Invest in instrumentation

Page 25: Open Source At Facebook and Beyond
Page 26: Open Source At Facebook and Beyond

• commits made per day

• commits made per day by repo

• issue average age

• issue average age by repo

• issue total age

• issue total age by repo

• issues closed per day

• issues closed per day by repo

• issues open

• issues open by repo

• issues opened per day

• issues opened per day by repo

• pull request average age

• pull request average age by repo

• pull request total age

• pull request total age by repo

• pull requests closed per day

• pull requests closed per day by repo

• pull requests open

• pull requests open by repo

• pull requests opened per day

• pull requests opened per day by repo

• total commits

• total commits by owner

• total commits by repo

• total forks

• total forks by owner

• total forks by repo

• total repos

• total repos by owner

• total repos by tag

• total watchers

• total watchers by owner

• total watchers by repo

Page 27: Open Source At Facebook and Beyond

Average followers per repoAverage forks per repo

Average pull-request ageAverage issue age

External commits

Page 28: Open Source At Facebook and Beyond

#4 Invest in tools

Page 29: Open Source At Facebook and Beyond
Page 30: Open Source At Facebook and Beyond
Page 31: Open Source At Facebook and Beyond
Page 32: Open Source At Facebook and Beyond
Page 33: Open Source At Facebook and Beyond

#5 Establish ownership

Page 34: Open Source At Facebook and Beyond
Page 35: Open Source At Facebook and Beyond
Page 36: Open Source At Facebook and Beyond

#6 Gamification of good behavior

Page 37: Open Source At Facebook and Beyond
Page 38: Open Source At Facebook and Beyond

1. How core to Facebook's business is this technology?

2. Who will use it? Who is this technology useful to? How valuable is it?

3. What else already exists that is similar to this technology?

4. Is there anything novel in this project?

5. Does it include any third-party code, including any third-party open source?

6. Who will maintain the project, accept contributions, and liaise with the community?

7. Where & how should this project be distributed?

8. What is your expected public release date?

Page 39: Open Source At Facebook and Beyond

1. How core to Facebook's business is this technology?

2. Who will use it? Who is this technology useful to? How valuable is it?

3. What else already exists that is similar to this technology?

4. Is there anything novel in this project?

5. Does it include any third-party code, including any third-party open source?

6. Who will maintain the project, accept contributions, and liaise with the community?

7. Where & how should this project be distributed?

8. What is your expected public release date?

Page 40: Open Source At Facebook and Beyond
Page 41: Open Source At Facebook and Beyond
Page 42: Open Source At Facebook and Beyond
Page 43: Open Source At Facebook and Beyond

#7 Launch is step zero

Page 44: Open Source At Facebook and Beyond

kvocontroller

0"

1000"

2000"

3000"

4000"

5000"

6000"

7000"

8000"

0" 10" 20" 30" 40" 50" 60"

Page 45: Open Source At Facebook and Beyond

0"

1000"

2000"

3000"

4000"

5000"

6000"

7000"

8000"

0" 10" 20" 30" 40" 50" 60"

fb-floorigami

Page 46: Open Source At Facebook and Beyond

0"

1000"

2000"

3000"

4000"

5000"

6000"

7000"

8000"

0" 10" 20" 30" 40" 50" 60"

chiseltweaksshimmer

kvocontroller

Page 47: Open Source At Facebook and Beyond

0"

1000"

2000"

3000"

4000"

5000"

6000"

7000"

8000"

0" 10" 20" 30" 40" 50" 60"

pop

Page 48: Open Source At Facebook and Beyond

“ If Facebook keep this level of quality open source

release up much longer then soon I'll need to forgive

them for Three20 ”

- iOS Dev Weekly

Page 49: Open Source At Facebook and Beyond
Page 50: Open Source At Facebook and Beyond

• IRC channel • Facebook Page/Group • Mailing lists • Regular blog posts • Meetups • Hackathons

Page 51: Open Source At Facebook and Beyond
Page 52: Open Source At Facebook and Beyond

#8 Leave breadcrumbs

Page 53: Open Source At Facebook and Beyond

Snapshot Upstream Fly the nest Deprecate Reboot

OPEN SOURCE

PROJECTS

Page 54: Open Source At Facebook and Beyond

#9 Understand projects’ lifecycles

Page 55: Open Source At Facebook and Beyond
Page 56: Open Source At Facebook and Beyond

Metrics• Total repos

• Followers

• Forks

• Pull-requests

• Issues

• Commits

June 2013129

50.1k

11.8k

1,400 (502 days)

404 (323 days)

30.7k

July 2014202

97.6k

20.7k

1,973 (208 days)

427 (186 days)

42.4k

Page 57: Open Source At Facebook and Beyond
Page 58: Open Source At Facebook and Beyond

#10Be open and connected

Page 59: Open Source At Facebook and Beyond

JAMES PEARCE@jamespearce