不要因為沒有為開源事業(yè)做貢獻而感到內疚
曾經(jīng)有很長一段時間,我都模糊地覺得我必須為開源軟件做些什么。在某種意義上來說開源是很有意義的事,我會因為做得不夠多而覺得有點內疚。
我曾常常對自己說這樣的話:
- 茱莉亞,開源軟件非常棒!
- 嗯,我必須為開源項目添磚加瓦。
- 是什么項目?呃,我不知道。
- 我用 Pidgin!好像是吧。
- 去看 pidgin 項目
- 好多問題?。∥叶疾恢缽暮翁幭率?。
- 是用C寫的!好多代碼?。∥以撛趺崔k!
- 心存內疚地放棄吧。
我試著不再感到內疚。現(xiàn)在如果我要參與一個開源項目的話,我會需要某種動機。Mel Chua在 hacker school 有過一場很棒的演講,她說動機是由勝任力(知道如何去做?。?、自主性(自己做出決定?。┮约瓣P聯(lián)性(知道為何要做?。?/strong>組成的。
開源項目中會有很高的自主性–幾乎沒有人會強迫你做什么事。而經(jīng)常會缺失關聯(lián)性和勝任力。
對于關聯(lián)性,我會問自己:
“我希望從參與這個項目中獲得什么?”
- 我想知道這個項目是如何運作的!(從這個理由來說參與Linux項目會超級有意思!操作系統(tǒng)很驚人!通過做gunzip in julia這個項目我學到了很多。)
- 我找到一個bug,想要修復它!我想增加一個特性!
- 我想積累一些編程工作經(jīng)驗以便找到更好的工作!
- 我覺得這個項目能實現(xiàn)很重要的功能而且我想要完善它!(Kelsey Gilmore-Innis的Anti-Eviction Mapping項目就是一個很棒的例子)
- 我喜歡和參與這個項目的人來往!(我參加Drupal會議的時候,發(fā)現(xiàn)參與Drupal的開發(fā)人員都非??蓯?他們吸引著我參與到Drupal項目中去。)
對于勝任力,我會問:
“是否有什么東西會阻礙我完成工作?”
- 我是否了解該項目使用的語言?這種語言易學嗎?
- 我可以在自己的電腦上輕松地搭起開發(fā)環(huán)境嗎?
- 代碼庫的復雜度如何?項目是否可以完成?相關文檔是否完善?
- 如果我有什么不懂的話,是否可以在社區(qū)論壇尋找到答案?論壇里傻瓜多嗎?郵寄目錄里的地址是否都有效?
什么情況下我不會參與
通常會是因為相關性阻礙我參與某個開源項目–我不知道我能得到什么!Drupal項目的例子可以很好地說明這一點。Drupal是個非常重要的項目。以前我曾經(jīng)參與過!我可以再次參與進去的!社區(qū)論壇非常友好!但現(xiàn)在對于我來說已經(jīng)不存在相關性了–我已經(jīng)不再開發(fā)網(wǎng)站了。
大多數(shù)時候會因為缺乏相關性而不參與到某個開源項目中去–如果我不用某個東西,那我目前就不會想要學習相關知識,也不認識有誰在做這個東西,也不會很強烈地覺得它有用,因此就不會想?yún)⑴c進去!這其實完全沒問題。還有數(shù)不清的其他人在參與這些項目!少我一個根本不差的=)
缺乏勝任力的一個例子就是前面說到的Pidgin項目–聊天客戶端遇到了一些問題,我想要修復它,但是對于那時的我來說太難了。
什么情況下我會參與
下面要說的是我參與過的開源項目,以及原因:
- IPython項目,是因為我想給它增加一個它本來沒有的特性!然后它就有了那個特性!我把一個性能要求合進了IPython,結果非???。
- 這個pandas cookbook項目,是因為我想了解pandas的時候發(fā)現(xiàn)沒有那么多我所需要的實用資料!還有一個原因!就是我寫了一個東西,別人就可以更加了解pandas了!太***了。
- gzip in julia項目,用來學習gzip是如何工作的。現(xiàn)在我學會了!棒極了。參與開源項目是件超級有意思的事!耶!
不要感到內疚
你能做的事情有很多。如果你在三個星期里花了超過三十個小時來修復一個網(wǎng)卡故障,那可能是很值的,因為你會學到很多,而且你的硬件會更好地運作!或者也許你會更愿意把這些時間花在陪伴家人朋友或者志愿活動或者踢足球或者看電影或者賺房租上面。
有時我聽到有人會說“你必須開發(fā)開源軟件!”,說得好像這是“普遍的善”一樣。不要感到內疚。對你沒有意義就不要做!除非你知道能獲得什么并且覺得值得你花時間才去做!否則的話就做點別的吧!
Lukas Eder 是開源項目 jOOQ 的全職開發(fā)者,下面是他對 Julia Evans 文章的評論:
I’m a full-time Open Source developer (for jOOQ), and I get a lot of requests from people who would like to contribute. They’re often asking where they can start, how they should proceed, etc.
Then, I never hear from them again :-)
I think that your categorisation makes a lot of sense. The lack of relatedness is something that many people underestimate in search of The Cool. In our case, working on jOOQ means loving SQL and programming languages to the max. This can get quite boring and frustrating if there isn’t a concrete problem with a concrete database at hand.
In the end of the day, merely contributing to Open Source is much like being a customer of any other (even non-software) product. People also contribute to – say – Microsoft, to help them improve their operating system, or MS Office. It just feels great to be heard, as a customer. But since Microsoft sells commercial software, people don’t make the mistake of trying to contribute withoutrelatedness. So maybe, we should start seeing Open Source more like commercial software in general.
原文鏈接: Julia Evans 翻譯: 伯樂在線 - 伯樂在線讀者