Login  |  繁體中文
感謝您對「自由軟體鑄造場」的支持與愛護,十多年來「自由軟體鑄造場」受中央研究院支持,並在資訊科學研究所以及資訊科技創新研究中心執行,現已完成階段性的任務。 原網站預計持續維運至 2021年底,網站內容基本上不會再更動。本網站由 Denny Huang 備份封存。
也紀念我們永遠的朋友 李士傑先生(Shih-Chieh Ilya Li)。
News

我的開源生活以及帶領我的導師

本文翻譯自 opensource.com,原作者為 Rich Bowen:https://opensource.com/life/14/12/mentoring-open-source-and-everywhere-else

我投入 Apache 網路伺服器的工作幾乎已經快 20 年。我寫過 9 本和 httpd 有關的書,參與發表的會議超過 50 個以上。我是 Apache 軟體基金會 (Apache Software Foundation) 的會員,我是理事會成員也是執行副總裁。我負責 ApacheCon,包括北美與歐洲,那是 Apache 軟體基金會的官方會議。

會達成上述的每一件事,都是因為某人鼓勵我,去做一些我打從心底知道自己做不到的事,並且在我做到時,為我喝采。

直接、刻意的指導,是我今日之所以站在此處的所有原因,不論是從專業上或個人意義來說。我所擁有的一切,確確實實全因為在過去 20 年指導過我的人們。在最近 5 年,我非常用心地指導其他人,將這份善意傳遞下去。這些人是否察覺到我所做的事,這一點並不重要。 我有特別的理由相信,這是件值得去做的事。

為什麼?

我之所以認為指導是如此重要,有三個主要理由。

擴大你的影響力

David Pitts 在 1997 年為 Sams Publishing 寫了一本跟 Red Hat Linux 有關的書。因為我在工作上有所涉獵的緣故,他請我撰寫跟 Perl 與 CGI 有關的章節。幸好這本書已經絕版了,我那時拙劣的文筆不會因此曝光,不過這卻引領我到另一件寫作工作,而現在我寫了幾本我很自豪的書。

1998 年我抱怨了一下 Apache 網路伺服器的文件。Jim Jagielski 當時鼓勵我停止抱怨,動手做一些事。我開始提交文件修補,2000 年 9 月我成為了第一位沒送過任何程式碼修補,卻獲得 Apache 專案提交權的人。

2000 年時當新成立基金會舉行頭一次 ApacheCon,Ken Coar 鼓勵我提出演講。我那時沒有什麼東西要講,也從未進行任何公開演說,但是他不斷地說服我,最後我提交了演講。這引領我到一個又一個演說工作,現在我的辦公室貼滿了各種會議的徽章,其中有些我甚至沒辦法辨識出來。

這些是我開源生涯中最重要的導師。還有許多其他的人,特別是 Casey West、Michael Schwern、Paul Dupree、Ken Rietz、Elizabeth Naramore、Wes Morgan、Sally Khudairi、Earle Bowen,以及許多其他在我送出這篇文章時,將後悔沒有提到的人。

我提到上述成就不是因為我很棒,而是因為這些人能夠,藉著他們在我生命中的慷慨投資,擴展他們的影響力,到他們未能觸及的領域。透過我,他們做到了一些事情,在他們因為時間、資源不夠,或僅因為沒有機會,而不能夠親自完成的地方。

給你自己退出策略

有天,你會不想再做這一件事,你會想離開這個專案去嘗試別的東西。

最近有位睿智的同事告訴我,在重要工作上,你應該做的第一件事,就是找出可以取代你的人。有一天,你會從這個位置離開,除非你積極採取措施,確保你的影響力不會因為你的離開而中斷,不然你在這個位置上的大多數投入,都將因此付諸流水。

當然,有些人試圖讓自己成為不可取代的人。他們透過隱藏資訊,確保每件事都仰賴自己,積極嚇退任何可能取代他的人,達成他們的目的。有些人是刻意這麼做,有些人則出於本能,出於保障其位置的欲望。但是藉著積極尋找你的替代人選,你能創造出一種開放文化,身在其中的人不會試圖驅逐你,因此其他的目標也能因此達成。(公開紀錄你做的每件事是另一個重要部分,改天以另篇文章討論。)

透過指導你的替代人選,你會減少把所有事務攬在自己身上的壓力。你可以開始交付事項,花更多時間思考未來,更少時間修理那些壞掉而只有你能修的東西。

那麼當離開的時間來臨時,你可以放心繼任的人將會持續你的願景。

留下真正重要的資產

開放源碼的是程式碼。程式碼會重構、分支、刪除。當你離開該專案,你的影響力會因為你的貢獻被逐漸稀釋而式微。你花在指導人們的時間會延續下去。它會延伸到其他專案、其他產業、其他世代。你投資在其他人身上的每一刻,都將一點點將你的影響力擴展到你個人無法直接觸及之地。

誰?

如果你身邊有很多人圍繞,選擇對誰投入你的時間可是件難事。或者,你的團隊裡有少數幾個人會是可能的被指導者。無論如何,以下討論如何選擇該指導的人。

找出有熱情的人

尋找那些工作到凌晨兩點,只為解決他們不必要解決的問題的人。尋找那些當所有人說事情已經解決後,仍然持續投入自己的方案的人。尋找那些在你耳邊不斷滔滔不絕你毫不關心的事,闡述其中微小的不重要細節,直到你想讓他們閉嘴的人。

這些人的熱情可以被疏導。這些人值得你花時間,因為當這份熱情被鎖定、被聚焦、被培育,將成為一股勢不可擋的力量。

找出在陰影中工作的人

在任何專案中,總有人盡力要站在聚光燈之下,熱衷成為登上頭條的人。同時也有那些在幕後做事,確保一切順利進行的人。因為他們在乎的是事情順利進行,而非他們是否能獲得讚賞。

這些不平凡的人能成為最好的領袖,因為最好的領袖正如納爾遜曼德拉在其自傳漫漫自由路 (Long Walk to Freedom) 中所描述:

一位領袖就像牧羊人,他會待在羊群之後,讓最敏捷的走在最前方,於是其他的跟隨在後,沒有察覺他們一直受到後方引導。

只關心讓事情順利完成的人,能做這樣的領導者,因為,即使身為領袖,他們還是聚焦在結果,而非贏得讚譽。

找出傑出的人

有些人顯然很傑出,但卻從事長期來看不怎麼重要的事。他們在玩遊戲,或把時間花在爭論授權法的細節,或在郵件列表上論戰。有時候他們會做一些除了他們以外,沒人會因此受惠的個人專案。朝著正確方向的一點點鼓勵,這份傑出就能轉向造福更大的一群人。很可能小小的個人專案可以成為更大的開源社群的一部分。又或許他們在個人網站寫很棒的文章與教學,在受到鼓勵後可以讓他們的能力,成為上游文件專案的一部分,讓更多人因此獲益。

其他每一個人

是的,其他每一個人。因為你的錯誤選擇,你投資的時間和精力可能得不到什麼效果。而且你會錯失那些能從你的投入中獲益的人。但是在最後,你投資的人越多,其中出現能夠回報你努力的人的機會也會越高。

怎麼做?

指導是很簡單的事,每個人都能做。以下這些可以讓你推別人一把,讓他們體會自己的潛力。

指派特殊任務

在那些試著進入開源圈子裡的人之中,你最常會聽到的就是,我想做一些事,但我不知道從哪裡開始。你可以給他們的最好答案就是一件特殊任務。

OpenHatch 的人長期以來鼓勵專案要明確標示出易解的臭蟲,並且故意地留著它們不解,讓新手有入手的機會。

我會刻意把會議計畫打散成小任務,並在 Apache 社群發展 (Apache Community Development) 郵件列表上尋找接手的人。立即的效益是,有人幫我做事,長期的效益則是,他們會更願意協助下一件任務,以及下一次活動。回顧一下上面有關培養替代人選的那一節。這就是找到這些人的方法。

這一點很重要,儘管要在你喜歡做的事上抽手,把機會讓給別人的確很困難。

鼓勵他們開口

鼓勵人們向活動提出演講。這是個參與專案的好方式,因為會給關心專案的人立即的能見度。從鼓勵他們在當地聚會或閃電秀 (lightning talk) 上做 5 分鐘的發表。

順帶一提,ApacheCon 正在徵求提案

我也發現到,對我而言學習某個主題最好的方式,就是在活動上進行演講。這讓我深入了解,思考會被問到哪些問題,並學習如何解決這些問題,好讓我不會在台上出糗。

還有,給一些特定的建議是不錯的想法。如果你覺得某人會是好講者,但他們說不知道要說些什麼時,準備好建議一個主題甚至是摘要。有些人就是需要一點額外的助力,好讓他們上台,給予某些特定方向也許是他們所需要的。如果他們接受了你的建議,確認你會在他們的演講中出席,在他們說笑話時哈哈大笑,並且在他們回答不了問題時打斷提問。之後,如果他們做到的,鼓勵他們把同樣的演講改進後,提交到另一個活動上。對於如何改進他們的演講,提出特定的建議。

鼓勵

還有,當然,就是鼓勵。

如果你看一下任何一個主要開源專案的統計數據,你會發現少數人貢獻了大多數的程式碼,還有許多人貢獻了一或兩次之後,再也沒有回來。許多情況是,因為他們遇到一個問題,然後加以修正。其他情況則是因為,他們的貢獻沒有被任何人認可。

一句簡單的,感謝你讓世界更好,也許就能鼓勵某個人持續第二次修補,接著第三次,一百次。

這是最簡單的,也是迄今為止最重要的,社群,不管是開放源碼或其他,裡面的任何一個成員,都能鼓勵社群成長。認可每個人的貢獻。說句謝謝你。在你的週報裡指導新進貢獻者,就像 Stefano 做的一樣。給他們寄一封個人郵件,感謝他們並鼓勵他們再次貢獻。

何時?

何時你應該進行指導?當然,就是現在。

不要等到你位居你的組織頂點時,或掌握權力時。永遠有人會因為你的指導而獲益,即使他們比你年長,或經驗比你豐富。你一定知道某些可以傳遞下去的事物。

投資其他人,開始擴大你對世界的影響力,永遠不會太早 (或太遲)。




OSSF Newsletter : 第 257 期 第一次用 PHPUnit 寫測試就上手(下)

Category: FOSS Forum