Redis之父談副業與主業
Antirez(image via flickr)
英文原文:Side projects
Redis 之父 Salvatore Sanfilippo,一名意大利程序員,大家更習慣稱呼他 Antirez。以下內容為 Antirez 在 Redis 誕生六周年之際,特意撰寫的一篇博文 - 分享了他如何看待個人副業項目(side project)與主業項目(main project)之間的關系,以及他在 Redis 項目上的成功實踐。
截止到今天,Redis 已經六歲了。對我來說,這真是一個不可思議的成就,因為在過去,我轉換到下一個新項目的速度非常快。在我做過的所有項目中,也曾有過持續開發六年的,但是沒有一個項目像 Redis 一樣,在花費了我這么多精力之后,每天依然能夠吸引我的絕大部分注意力。
我是怎樣做到停止新項目的開發,集中精力在唯一一個項目(Redis)之上的呢?這樣的話,就可以讓這個唯一的項目完全充斥于我的整個職業生涯。對于一個有著有限生命周期的人來說,這樣做犧牲太大了,我不是很情愿。非常幸運的是,我從沒有這樣做過,也從沒有停止嘗試新事物。
如果我回首過去的六年,實際上有無數的副業項目圍繞在我的身邊,有時與 Redis 相關,有時和 Redis 根本就沒有關系。
- Load81,兒童編程學習軟件。
- Dump1090,ADS-B 無線電解碼器軟件。
- 一個用 JavaScript 編寫的放射線跟蹤器。
- lua-cmsgpack,使用 C 語言編寫,用于 Lua 編程語言環境。
- linenoise 行編輯庫(可替換 GNU Readline)。用在 Redis 上。好吧,當時這個東西并不重要。
- lamernews,一個基于 Redis 的 Hacker News 克隆軟件。
- Gitan,一個小巧的 Git Web 客戶端軟件。
- shapeme,模擬釉化效果的圖片處理器。
- Disque,一個分布式隊列消息軟件(目前正在開發中)。
而且,還有更多的項目都丟棄掉了,因而沒有羅列在這里。有趣的事情是,以上所列項目,并不是隨意選擇,或者自由發揮的結果,其實,這些副業項目都有一個共同的目標,就是可以讓我愉悅和快樂。這些項目中的代碼,對于其他人來說,價值都不是很大。
正是因為這些副業項目的存在,當我在主業項目上,由于連續不斷的工作而導致身心疲憊,甚至極其厭煩的時候,我就可以馬上做些不一樣的事情。這樣稍事休息和調整之后,我又能夠重新聚焦于 Redis 項目了。而且,還能再一次找到與 Redis 項目愉悅相處的正確動機 - 歸根結底,就是為他人創造更多的價值。
基于以上所言,你可能會認為,我目前正在利用 20% 的時間鼓搗我的 Disque - 那個分布式消息隊列軟件,其余 80% 的時間和精力聚焦在 Redis 的進一步開發上,是這樣嗎?
回答錯誤。實際情況是,在 Redis 和其他項目上的精力分配比例大約是處于 80% - 20% 之間,或者,長期來看,我在 Redis 項目上投入的精力幾乎趨近于零。正是為了信守與一個項目(Redis)的長期約定,你需要把這個項目作為你探索新事物的長期替代品。
副業項目可以幫助你成就更大更重要的項目。再進一步來看,這些副業項目通常都是真正有趣項目的發源地和起始點。Redis 這個項目原本就是一個叫做 LLOOGG 的副業項目的一部分。有時你暫時放下主業項目的工作,就是由于副業項目的原因,然而,當這種情況發生時,并不是因為你的副業項目吸引了你的更多注意力,而是因為你需要設法找到利用時間的更好辦法,相對于主業項目來說,副業項目更重要、更有趣,更加引人入勝。
截至到今天,Redis 已經六歲了,但它依然充滿著活力:它還在不斷贏得越來越多開發者的注意,而且,為了在每個星期都能給用戶提供更多的價值,它還在持續地改進之中。然而,對于我來說,更多的用戶,更多的開發者貢獻,都不能改變我的安排。Redis 能夠取得今天的成就,正是我們大家一起傾心投入的總和,以及堅持不懈六年之久的結果。為了繼續沿著同樣的路徑向前邁進,我可以確定,在未來可預見的若干年里,還會有一些副業項目和我一起相伴相隨。
更新:今天,Damian Janowski 給 Redis 社區帶來了一個令人萬分驚喜的禮物 - 重新改版的 Redis.io,網站現已上線! http://redis.io 感謝 Damian!
- 感謝:Leo Zhao 賦予本文一個好標題,Qingniu 幫助審閱和校對。