OSDC.TW 2014 building popular open source projects

  • 2,371 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,371
On Slideshare
0
From Embeds
0
Number of Embeds
7

Actions

Shares
Downloads
22
Comments
0
Likes
24

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Building popular open source projects 林佑安 / Yo-An Lin / @c9s Tips & Tricks
  • 2. • 林佑安 Yo-An Lin (c9s) • GitHub: @c9s • Golang / PHP / JavaScript / Perl
  • 3. So you might ask
  • 4. “Is it important to make it popular?”
  • 5. “Yes!”
  • 6. 群聚效應 “群聚效應(Critical mass) 是⼀一個社會動⼒力學的名詞, ⽤用來描述在⼀一個社會系統裡,某件事情的存在已達⾄至 ⼀一個⾜足夠的動量,使它能夠⾃自我維持,並為往後的成 ⻑⾧長提供動⼒力。”
  • 7. 若有⼀一個⼈人停下來抬頭往天望,沒有⼈人會理會他,其他 路過的⼈人會照舊繼續他們要做的事情。如果有三個⼈人停 了下來抬頭望天,可能會有多幾個⼈人會停下來看看他們 在做甚麼,但很快⼜又會去繼續他們原來的事。但假若當 街上抬頭向天望的群眾增加⾄至 5 到 7 ⼈人,這時,其他⼈人 可能亦會好奇地加⼊入,看看他們到底在做甚麼。 http://zh.wikipedia.org/wiki/群聚效應
  • 8. 也就是: 當某專案符合某個獨特的市場需求,⽽而且能夠受到注⺫⽬目, 不斷被群眾提起,⾃自然就能吸引更多的開發者重視,並 且加⼊入開發/⽀支援/貢獻。 有了動能,就算專案擁有者沒有持續開發,也可以讓專 案持續前進
  • 9. 開源之道 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/
  • 10. “Open source collaboration”
  • 11. 前提是你的專案要有⼈人 願意參與
  • 12. 如果你想要有更多⼈人願 意參與 If you want more people join in
  • 13. 你必須把 open source 專案視為銷售產品 You need to treat your project as a product
  • 14. –McCarthy “4P: Product, Price, Place, Promotion”
  • 15. –Robert Lauterborn “4C: Customer needs and wants, Cost to the customer, Convenience, Communication”
  • 16. 市場潛⼒力 And find the market potential
  • 17. 獨特性 Make it unique
  • 18. 爭議性 Let people discuss
  • 19. 甚⾄至可嘗試負⾯面⾏行銷
  • 20. You may focus on
  • 21. creativity / performance / simple interface / lightweight implementation / fun
  • 22. I started using GitHub since 2009
  • 23. for fun
  • 24. and wrote a lot of vim plugins, perl modules…
  • 25. Was really busy in the past few years
  • 26. Almost work from 9 AM to 2 AM everyday
  • 27. holiday = working day
  • 28. Chinese cruel torture
  • 29. And we released a lot of open source projects from them
  • 30. From back-end to front-end
  • 31. phprew, pux, gutscript and so on…
  • 32. My public contribution calendar was almost like this, 2013 and private repositories are not included.
  • 33. Here is what I’ve learned. And which should be helpful for small projects to start.
  • 34. 專案 名稱 The name of a project should be easy to remember
  • 35. 1. Short name node.js, three.js, gearman, apache, nginx, jQuery, bootstrap, gem, rails and so on…
  • 36. 2. Pronounceable You don’t want a project named “hjkdvbjkGUI” or something
  • 37. 3. Unique
  • 38. 4. Combining words or making up new words entirely YouTube, Facebook, Myspace, GitHub
  • 39. 第⼀一 印象 First Impression
  • 40. SYNOPSIS
  • 41. Which I learned from CPAN - an aged, fantastic site.
  • 42. Synopsis is important because…
  • 43. It may include a workable example to help others run a basic program
  • 44. And of course, further development :)
  • 45. You firstly see the synopsis of the API,
  • 46. then read the tediously long description
  • 47. 先看對⽅方正不正 再看是否進⼀一步交往
  • 48. ⾔言簡 意賅 Easy to understand
  • 49. • Describe what’s the project doing. • Details & mechanism later.
  • 50. 友善 授權 License
  • 51. 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
  • 52. 簡易 使⽤用 Easy to use
  • 53. “設置到使⽤用” ⾮非常重要 From Setup to Use
  • 54. 多環境設置測試 Test on different platforms
  • 55. 減少使⽤用者挫折感
  • 56. 幫助使⽤用者快速建⽴立環境
  • 57. 傻⽠瓜都會⽤用建置步驟
  • 58. 簡易有效的開發環境建 置步驟
  • 59. 使⽤用良好的套件⼯工具避 免 dependency failure
  • 60. 詳細 確實 Details
  • 61. 多數開發者還是依賴⽂文 件開發
  • 62. 少數開發者才會去 trace code
  • 63. 詳細的⽂文件對加⼊入專案 的會很有幫助
  • 64. 完整度的表現
  • 65. 可增加使⽤用意願
  • 66. 且可製造安全感的假象
  • 67. ⽼老⺩王 賣⽠瓜 Promote your project
  • 68. 善⽤用媒體
  • 69. • Mailing List • Google Group • IRC • Twitter • Facebook • Hacker News • 善⽤用 Mail Signature
  • 70. 多管 閒事 Help others
  • 71. 如果很閒的話 :-p
  • 72. 上 Stack Overflow
  • 73. “嘿 何不嘗試看看某 xxx 專案,也許符合你的需求。”
  • 74. 打鐵 趁熱
  • 75. “Hey, I fixed ….” “Hey, I added a new feature for …” “What if ….., can we make it?”
  • 76. If you don’t reply them, you might lost these contributors.
  • 77. Merged pull request makes people happy,
  • 78. and they might send new pull request later…
  • 79. 也就是: 如果你忘了他們 貢獻者也會把你忘了
  • 80. ⽽而且不會回來
  • 81. If possible, try not to reject pull requests,
  • 82. Rejecting pull request will stop their motivation
  • 83. 盡量不要發好⼈人卡
  • 84. Help them improve the pull request and get the pull request merged.
  • 85. To prevent rejecting pull requests
  • 86. Let them know: discuss before sending pull request
  • 87. 正向 循環
  • 88. Be kind to others
  • 89. 尊重彼此 Respect each other
  • 90. 避免“讀他媽的⽂文件” No RTFM
  • 91. –Field of Dreams “If you build it, they will come.”
  • 92. Thank you c9s @ twitter / github / plurk (Next talk: gutscript)