Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
OSDC 2014 - Building Popular open source projects
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Yo-An Lin
April 11, 2014
Technology
380
10
Share
OSDC 2014 - Building Popular open source projects
Yo-An Lin
April 11, 2014
More Decks by Yo-An Lin
See All by Yo-An Lin
BBGO 2022 - Modern Crypto Trading Bot
c9s
0
580
RequestGen
c9s
0
230
Callbackgen
c9s
0
140
Chainlink Ecosystem Overview
c9s
0
300
Go Crypto Trading
c9s
1
370
Virtual Machines
c9s
7
3k
The Voice of Code - COSCUP 2018
c9s
2
700
Building Popular Open Source Projects - COSCUP 2018
c9s
1
520
Vikube: Operate Kubernetes in Vim
c9s
0
600
Other Decks in Technology
See All in Technology
2026-05-14 要件定義からソース管理まで!IBM Bob基礎ハンズオン
yutanonaka
0
160
AIエージェントの支払い基盤 AgentCore Payments概要
kmiya84377
2
190
RedmineをAIで効率的に使う検証
yoshiokacb
0
110
そのSLO 99.9%、本当に必要ですか? 〜優先度付きSLOによる責任共有の設計思想〜 / Is that 99.9% SLO really necessary? Design philosophy of shared responsibility through prioritized SLOs
vtryo
0
720
O'Reilly Infrastructure & Ops Superstream: Platform Engineering for Developers, Architects & the Rest of Us
syntasso
0
140
100マイクロサービスのTerraform/Kubernetes管理地獄から抜け出すためのAI活用術
markie1009
0
150
JTCでRedmine利用者2700人を実現した手法 第二部
nobuonakamura
0
100
なぜ、私がCommunity Builderに?〜活動期間1か月半でも選出されたワケ〜
yama3133
0
130
「強制アップデート」か「チームの自律」か?エンタープライズが辿り着いたプラットフォームのハイブリッド運用/cloudnative-kaigi-hybrid-platform-operations
mhrtech
0
200
いつの間にかデータエンジニア以外の業務も増えていたけど、意外と経験が役に立ってる
zozotech
PRO
0
590
クラウドネイティブ DB はいかにして制約を 克服したか? 〜進化歴史から紐解く、スケーラブルアーキテクチャ設計指針〜
hacomono
PRO
6
980
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.6k
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.7k
Being A Developer After 40
akosma
91
590k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
300
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
800
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
Code Reviewing Like a Champion
maltzj
528
40k
It's Worth the Effort
3n
188
29k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
310
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
370
Transcript
Building popular open source projects 林佑安 / Yo-An Lin /
@c9s Tips & Tricks
• 林佑安 Yo-An Lin (c9s) • GitHub: @c9s • Golang
/ PHP / JavaScript / Perl
So you might ask
“Is it important to make it popular?”
“Yes!”
群聚效應 “群聚效應(Critical mass) 是⼀一個社會動⼒力學的名詞, ⽤用來描述在⼀一個社會系統裡,某件事情的存在已達⾄至 ⼀一個⾜足夠的動量,使它能夠⾃自我維持,並為往後的成 ⻑⾧長提供動⼒力。”
若有⼀一個⼈人停下來抬頭往天望,沒有⼈人會理會他,其他 路過的⼈人會照舊繼續他們要做的事情。如果有三個⼈人停 了下來抬頭望天,可能會有多幾個⼈人會停下來看看他們 在做甚麼,但很快⼜又會去繼續他們原來的事。但假若當 街上抬頭向天望的群眾增加⾄至 5 到 7 ⼈人,這時,其他⼈人 可能亦會好奇地加⼊入,看看他們到底在做甚麼。
http://zh.wikipedia.org/wiki/群聚效應
也就是: 當某專案符合某個獨特的市場需求,⽽而且能夠受到注⺫⽬目, 不斷被群眾提起,⾃自然就能吸引更多的開發者重視,並 且加⼊入開發/⽀支援/貢獻。 有了動能,就算專案擁有者沒有持續開發,也可以讓專 案持續前進
開源之道 Allison Randal @ OSDC TW 2012 http://pugs.blogs.com/pugs/2012/04/%E9%96%8B%E6%BA%90%E4%B9%8B%E9%81%93.html http://allisonrandal.com/2012/04/15/open-source-enlightenment/
“Open source collaboration”
前提是你的專案要有⼈人 願意參與
如果你想要有更多⼈人願 意參與 If you want more people join in
你必須把 open source 專案視為銷售產品 You need to treat your project
as a product
–McCarthy “4P: Product, Price, Place, Promotion”
–Robert Lauterborn “4C: Customer needs and wants, Cost to the
customer, Convenience, Communication”
市場潛⼒力 And find the market potential
獨特性 Make it unique
爭議性 Let people discuss
甚⾄至可嘗試負⾯面⾏行銷
You may focus on
creativity / performance / simple interface / lightweight implementation /
fun
I started using GitHub since 2009
for fun
and wrote a lot of vim plugins, perl modules…
Was really busy in the past few years
Almost work from 9 AM to 2 AM everyday
holiday = working day
Chinese cruel torture
And we released a lot of open source projects from
them
From back-end to front-end
phprew, pux, gutscript and so on…
My public contribution calendar was almost like this, 2013 and
private repositories are not included.
Here is what I’ve learned. And which should be helpful
for small projects to start.
專案 名稱 The name of a project should be easy
to remember
1. Short name node.js, three.js, gearman, apache, nginx, jQuery, bootstrap,
gem, rails and so on…
2. Pronounceable You don’t want a project named “hjkdvbjkGUI” or
something
3. Unique
4. Combining words or making up new words entirely YouTube,
Facebook, Myspace, GitHub
第⼀一 印象 First Impression
SYNOPSIS
Which I learned from CPAN - an aged, fantastic site.
Synopsis is important because…
It may include a workable example to help others run
a basic program
None
And of course, further development :)
You firstly see the synopsis of the API,
then read the tediously long description
先看對⽅方正不正 再看是否進⼀一步交往
⾔言簡 意賅 Easy to understand
• Describe what’s the project doing, and what’s the problem
this project trying to solve. • Details & mechanism later. • Design & implementation doc for advanced users.
友善 授權 License
http://inspire.twgg.org/internet/trends/item/74-comparison-of-five-kinds-of-standard-open-source-license-bsd- apache-gpl-lgpl-mit.html 五種開源授權規範的⽐比較 • MIT License • BSD License •
Apache License • LGPL License • GPL License
簡易 使⽤用 Easy to use
“設置到使⽤用” ⾮非常重要 From Setup to Use
多環境設置測試 Test on different platforms
減少使⽤用者挫折感
幫助使⽤用者”快速”建⽴立環 境
傻⽠瓜都會⽤用建置步驟
For Contributors
“簡易”有效的開發環境 建置步驟
使⽤用良好的套件⼯工具避 免 dependency failure
詳細 確實 Details
多數開發者還是依賴⽂文 件開發
少數開發者才會去 trace code
詳細的⽂文件對加⼊入專案 的會很有幫助
完整度的表現
可增加使⽤用意願
且可製造安全感的假象
⽼老⺩王 賣⽠瓜 Promote your project
善⽤用媒體
• Mailing List • Google Group • IRC • Twitter
• Facebook • Hacker News • 善⽤用 Mail Signature
多管 閒事 Help others
如果很閒的話 :-p
上 Stack Overflow
“嘿 何不嘗試看看某 xxx 專案,也許符合你的需求。”
打鐵 趁熱
“Hey, I fixed ….” “Hey, I added a new feature
for …” “What if ….., can we make it?”
If you don’t reply them, you might lost these contributors.
Merged pull request makes people happy,
and they might send new pull request later…
也就是: 如果你忘了他們 貢獻者也會把你忘了
⽽而且不會回來
If possible, try not to reject pull requests,
Rejecting pull request will stop their motivation
盡量不要發好⼈人卡
Help them improve the pull request and get the pull
request merged.
To prevent rejecting pull requests
或先收下 PR 來再修改
Let them know: discuss before sending pull request
步步 ⾼高陞
版本號不⽤用錢 Bumping minor / patch version number doesn’t cost
盡可能縮⼩小釋出版本 Release Small
縮短釋出時程 Release Fast
讓被合併的功能能儘快 在新版本釋出並使⽤用 Release Merged Features ASAP, of course you should
test them
正向 循環
Be kind to others
尊重彼此 Respect each other
避免“讀他媽的⽂文件” No RTFM
彼此勉勵 Encourage Each Other
列出貢獻者 List Your Contributors in your README
–Field of Dreams “If you build it, they will come.”
Thank you c9s @ twitter / github / plurk (Next
talk: gutscript)