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
Yo-An Lin
April 11, 2014
Technology
10
350
OSDC 2014 - Building Popular open source projects
Yo-An Lin
April 11, 2014
Tweet
Share
More Decks by Yo-An Lin
See All by Yo-An Lin
BBGO 2022 - Modern Crypto Trading Bot
c9s
0
400
RequestGen
c9s
0
160
Callbackgen
c9s
0
95
Chainlink Ecosystem Overview
c9s
0
220
Go Crypto Trading
c9s
1
300
Virtual Machines
c9s
7
2.7k
The Voice of Code - COSCUP 2018
c9s
2
650
Building Popular Open Source Projects - COSCUP 2018
c9s
1
460
Vikube: Operate Kubernetes in Vim
c9s
0
530
Other Decks in Technology
See All in Technology
プロダクトエンジニア構想を立ち上げ、プロダクト志向な組織への成長を続けている話 / grow into a product-oriented organization
hiro_torii
1
170
技術的負債解消の取り組みと専門チームのお話 #技術的負債_Findy
bengo4com
1
1.3k
AndroidXR 開発ツールごとの できることできないこと
donabe3
0
130
Amazon S3 Tablesと外部分析基盤連携について / Amazon S3 Tables and External Data Analytics Platform
nttcom
0
130
スタートアップ1人目QAエンジニアが QAチームを立ち上げ、“個”からチーム、 そして“組織”に成長するまで / How to set up QA team at reiwatravel
mii3king
2
1.5k
Cloud Spanner 導入で実現した快適な開発と運用について
colopl
1
620
あれは良かった、あれは苦労したB2B2C型SaaSの新規開発におけるCloud Spanner
hirohito1108
2
580
転生CISOサバイバル・ガイド / CISO Career Transition Survival Guide
kanny
3
980
急成長する企業で作った、エンジニアが輝ける制度/ 20250214 Rinto Ikenoue
shift_evolve
3
1.3k
エンジニアのためのドキュメント力基礎講座〜構造化思考から始めよう〜(2025/02/15jbug広島#15発表資料)
yasuoyasuo
17
6.7k
一度 Expo の採用を断念したけど、 再度 Expo の導入を検討している話
ichiki1023
1
170
全文検索+セマンティックランカー+LLMの自然文検索サ−ビスで得られた知見
segavvy
2
100
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.1k
Music & Morning Musume
bryan
46
6.3k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
550
How to Ace a Technical Interview
jacobian
276
23k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Building a Scalable Design System with Sketch
lauravandoore
461
33k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
330
Why Our Code Smells
bkeepers
PRO
336
57k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
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)