OSDC.TW 2014 building popular open source projects

93
Building popular open source projects 林佑安 / Yo-An Lin / @c9s Tips & Tricks

description

 

Transcript of OSDC.TW 2014 building popular open source projects

Page 1: OSDC.TW 2014   building popular open source projects

Building popular open source projects

林佑安 / Yo-An Lin / @c9s

Tips & Tricks

Page 2: OSDC.TW 2014   building popular open source projects

• 林佑安 Yo-An Lin (c9s)

• GitHub: @c9s

• Golang / PHP / JavaScript / Perl

Page 3: OSDC.TW 2014   building popular open source projects

So you might ask

Page 4: OSDC.TW 2014   building popular open source projects

“Is it important to make it popular?”

Page 5: OSDC.TW 2014   building popular open source projects

“Yes!”

Page 6: OSDC.TW 2014   building popular open source projects

群聚效應“群聚效應(Critical mass) 是⼀一個社會動⼒力學的名詞,⽤用來描述在⼀一個社會系統裡,某件事情的存在已達⾄至⼀一個⾜足夠的動量,使它能夠⾃自我維持,並為往後的成⻑⾧長提供動⼒力。”

Page 7: OSDC.TW 2014   building popular open source projects

若有⼀一個⼈人停下來抬頭往天望,沒有⼈人會理會他,其他路過的⼈人會照舊繼續他們要做的事情。如果有三個⼈人停了下來抬頭望天,可能會有多幾個⼈人會停下來看看他們在做甚麼,但很快⼜又會去繼續他們原來的事。但假若當街上抬頭向天望的群眾增加⾄至 5 到 7 ⼈人,這時,其他⼈人可能亦會好奇地加⼊入,看看他們到底在做甚麼。

http://zh.wikipedia.org/wiki/群聚效應

Page 8: OSDC.TW 2014   building popular open source projects

也就是: 當某專案符合某個獨特的市場需求,⽽而且能夠受到注⺫⽬目,不斷被群眾提起,⾃自然就能吸引更多的開發者重視,並且加⼊入開發/⽀支援/貢獻。 有了動能,就算專案擁有者沒有持續開發,也可以讓專案持續前進

Page 9: OSDC.TW 2014   building popular open source projects

開源之道

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/

Page 10: OSDC.TW 2014   building popular open source projects

“Open source collaboration”

Page 11: OSDC.TW 2014   building popular open source projects

前提是你的專案要有⼈人願意參與

Page 12: OSDC.TW 2014   building popular open source projects

如果你想要有更多⼈人願意參與

If you want more people join in

Page 13: OSDC.TW 2014   building popular open source projects

你必須把 open source 專案視為銷售產品

You need to treat your project as a product

Page 14: OSDC.TW 2014   building popular open source projects

–McCarthy

“4P: Product, Price, Place, Promotion”

Page 15: OSDC.TW 2014   building popular open source projects

–Robert Lauterborn

“4C: Customer needs and wants, Cost to the customer, Convenience, Communication”

Page 16: OSDC.TW 2014   building popular open source projects

市場潛⼒力

And find the market potential

Page 17: OSDC.TW 2014   building popular open source projects

獨特性

Make it unique

Page 18: OSDC.TW 2014   building popular open source projects

爭議性

Let people discuss

Page 19: OSDC.TW 2014   building popular open source projects

甚⾄至可嘗試負⾯面⾏行銷

Page 20: OSDC.TW 2014   building popular open source projects

You may focus on

Page 21: OSDC.TW 2014   building popular open source projects

creativity / performance / simple interface / lightweight

implementation / fun

Page 22: OSDC.TW 2014   building popular open source projects

I started using GitHub since 2009

Page 23: OSDC.TW 2014   building popular open source projects

for fun

Page 24: OSDC.TW 2014   building popular open source projects

and wrote a lot of vim plugins, perl modules…

Page 25: OSDC.TW 2014   building popular open source projects

Was really busy in the past few years

Page 26: OSDC.TW 2014   building popular open source projects

Almost work from 9 AM to 2 AM everyday

Page 27: OSDC.TW 2014   building popular open source projects

holiday = working day

Page 28: OSDC.TW 2014   building popular open source projects

Chinese cruel torture

Page 29: OSDC.TW 2014   building popular open source projects

And we released a lot of open source projects

from them

Page 30: OSDC.TW 2014   building popular open source projects

From back-end to front-end

Page 31: OSDC.TW 2014   building popular open source projects

phprew, pux, gutscript and so on…

Page 32: OSDC.TW 2014   building popular open source projects

My public contribution calendar was almost like this,

2013

and private repositories are not included.

Page 33: OSDC.TW 2014   building popular open source projects

Here is what I’ve learned. And which should be helpful

for small projects to start.

Page 34: OSDC.TW 2014   building popular open source projects

專案 名稱

The name of a project should be easy to remember

Page 35: OSDC.TW 2014   building popular open source projects

1. Short namenode.js, three.js, gearman, apache, nginx, jQuery, bootstrap, gem, rails and so on…

Page 36: OSDC.TW 2014   building popular open source projects

2. PronounceableYou don’t want a project named

“hjkdvbjkGUI” or something

Page 37: OSDC.TW 2014   building popular open source projects

3. Unique

Page 38: OSDC.TW 2014   building popular open source projects

4. Combining words or making up new words

entirelyYouTube, Facebook, Myspace, GitHub

Page 39: OSDC.TW 2014   building popular open source projects

第⼀一 印象

First Impression

Page 40: OSDC.TW 2014   building popular open source projects

SYNOPSIS

Page 41: OSDC.TW 2014   building popular open source projects

Which I learned from CPAN - an aged, fantastic site.

Page 42: OSDC.TW 2014   building popular open source projects

Synopsis is important because…

Page 43: OSDC.TW 2014   building popular open source projects

It may include a workable example to help others

run a basic program

Page 44: OSDC.TW 2014   building popular open source projects
Page 45: OSDC.TW 2014   building popular open source projects

And of course, further development :)

Page 46: OSDC.TW 2014   building popular open source projects

You firstly see the synopsis of the API,

Page 47: OSDC.TW 2014   building popular open source projects

then read the tediously long description

Page 48: OSDC.TW 2014   building popular open source projects

先看對⽅方正不正 再看是否進⼀一步交往

Page 49: OSDC.TW 2014   building popular open source projects

⾔言簡 意賅

Easy to understand

Page 50: OSDC.TW 2014   building popular open source projects

• Describe what’s the project doing.

• Details & mechanism later.

Page 51: OSDC.TW 2014   building popular open source projects

友善 授權License

Page 52: OSDC.TW 2014   building popular open source projects

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

Page 53: OSDC.TW 2014   building popular open source projects

簡易 使⽤用

Easy to use

Page 54: OSDC.TW 2014   building popular open source projects

“設置到使⽤用” ⾮非常重要From Setup to Use

Page 55: OSDC.TW 2014   building popular open source projects

多環境設置測試Test on different platforms

Page 56: OSDC.TW 2014   building popular open source projects

減少使⽤用者挫折感

Page 57: OSDC.TW 2014   building popular open source projects

幫助使⽤用者快速建⽴立環境

Page 58: OSDC.TW 2014   building popular open source projects

傻⽠瓜都會⽤用建置步驟

Page 59: OSDC.TW 2014   building popular open source projects

簡易有效的開發環境建置步驟

Page 60: OSDC.TW 2014   building popular open source projects

使⽤用良好的套件⼯工具避免 dependency failure

Page 61: OSDC.TW 2014   building popular open source projects

詳細 確實

Details

Page 62: OSDC.TW 2014   building popular open source projects

多數開發者還是依賴⽂文件開發

Page 63: OSDC.TW 2014   building popular open source projects

少數開發者才會去 trace code

Page 64: OSDC.TW 2014   building popular open source projects

詳細的⽂文件對加⼊入專案的會很有幫助

Page 65: OSDC.TW 2014   building popular open source projects

完整度的表現

Page 66: OSDC.TW 2014   building popular open source projects

可增加使⽤用意願

Page 67: OSDC.TW 2014   building popular open source projects

且可製造安全感的假象

Page 68: OSDC.TW 2014   building popular open source projects

⽼老⺩王 賣⽠瓜

Promote your project

Page 69: OSDC.TW 2014   building popular open source projects

善⽤用媒體

Page 70: OSDC.TW 2014   building popular open source projects

• Mailing List

• Google Group

• IRC

• Twitter

• Facebook

• Hacker News

• 善⽤用 Mail Signature

Page 71: OSDC.TW 2014   building popular open source projects

多管 閒事

Help others

Page 72: OSDC.TW 2014   building popular open source projects

如果很閒的話 :-p

Page 73: OSDC.TW 2014   building popular open source projects

上 Stack Overflow

Page 74: OSDC.TW 2014   building popular open source projects

“嘿 何不嘗試看看某 xxx 專案,也許符合你的需求。”

Page 75: OSDC.TW 2014   building popular open source projects

打鐵 趁熱

Page 76: OSDC.TW 2014   building popular open source projects

“Hey, I fixed ….”

“Hey, I added a new feature for …”

“What if ….., can we make it?”

Page 77: OSDC.TW 2014   building popular open source projects

If you don’t reply them, you might lost these

contributors.

Page 78: OSDC.TW 2014   building popular open source projects

Merged pull request makes people happy,

Page 79: OSDC.TW 2014   building popular open source projects

and they might send new pull request later…

Page 80: OSDC.TW 2014   building popular open source projects

也就是: 如果你忘了他們 貢獻者也會把你忘了

Page 81: OSDC.TW 2014   building popular open source projects

⽽而且不會回來

Page 82: OSDC.TW 2014   building popular open source projects

If possible, try not to reject pull requests,

Page 83: OSDC.TW 2014   building popular open source projects

Rejecting pull request will stop their motivation

Page 84: OSDC.TW 2014   building popular open source projects

盡量不要發好⼈人卡

Page 85: OSDC.TW 2014   building popular open source projects

Help them improve the pull request and get the

pull request merged.

Page 86: OSDC.TW 2014   building popular open source projects

To prevent rejecting pull requests

Page 87: OSDC.TW 2014   building popular open source projects

Let them know: discuss before sending pull

request

Page 88: OSDC.TW 2014   building popular open source projects

正向 循環

Page 89: OSDC.TW 2014   building popular open source projects

Be kind to others

Page 90: OSDC.TW 2014   building popular open source projects

尊重彼此

Respect each other

Page 91: OSDC.TW 2014   building popular open source projects

避免“讀他媽的⽂文件”

No RTFM

Page 92: OSDC.TW 2014   building popular open source projects

–Field of Dreams

“If you build it, they will come.”

Page 93: OSDC.TW 2014   building popular open source projects

Thank you

c9s @ twitter / github / plurk

(Next talk: gutscript)