支線專案
今天 Redis 滿六歲了。這對我來說是一項了不起的成就,因為過去我總是很快就轉向下一個新事物。過去也有持續六年的事情,但沒有一個像 Redis 這樣,在經過這麼長時間後,我依然將日常大部分的精力都投入其中。 我是如何停止嘗試新事物、轉而專注於單一目標,甚至讓它大幅佔據我的職業生涯的?對於生命有限的人來說,這樣的犧牲實在太大了。幸好,我根本從來沒有這麼做,我從未停止嘗試新事物。 回顧這六年,那是一連串源源不絕的支線專案,有些與 Redis 相關,有些則無關。 1) Load81,兒童程式設計環境。 2) Dump1090,基於 software defined radio(軟體定義無線電) 的 ADS-B 解碼器。 3) 一個 JavaScript ray tracer(光線追蹤器)。 4) lua-cmsgpack,適用於 Lua 的 msgpack C 語言實作。 5) linenoise 行編輯函式庫,用於 Redis,但其實並非我們最優先的工作。 6) lamernews,以 Redis 為基礎的 HN 複製版。 7) Gitan,小型的 Git 網頁介面。 8) shapeme,使用 simulated annealing(模擬退火) 的影像演化器。 9) Disque,distributed queue(分散式佇列)(目前仍在開發中)。 還有更多未列於此的拋棄式專案。 有趣的是,上面列出的許多專案,並非只是為了讓自己開心而進行的隨機嘗試。有幾個專案甚至進入了別人的程式碼中。 正因為有了這些支線專案,當我因一再重複做同樣的事而感到壓力與枯竭時,才能去做些不同的事。之後,我便能重新聚焦於 Redis,並再次找到樂在其中的動力,因為小專案固然很酷,但長年投入單一專案,長遠來看能為他人創造更多價值。 所以目前我大約花 20% 的時間在 Disque 這個 distributed message queue 上。那麼,只剩下 80% 的時間留給 Redis 的開發,對吧?錯了。真正的抉擇是在「將 80% 的專注力放在 Redis、20% 放在其他事情上」與「長期而言對 Redis 的專注度歸零」之間,因為若想長期投入,就需要一個能長期探索新事物的替代選擇。 支線專案是讓你更大的專案得以實現的專案。此外,它們往往也是新穎有趣專案的起點。Redis 本身就是 LLOOGG 的一個支線專案。有時你會因為支線專案而停止手邊的主要專案,但當這種情況發生時,並不是因為支線專案奪走了你的專注,而是因為你找到了更值得投入時間的方式,因為該支線專案比主要專案更重要、更有趣、也更吸引人。 Redis 今天滿六歲了,但老化得很好:它持續吸引更多開發者的關注,並持續改進,每週為使用者多帶來一點價值。然而對我而言,更多的使用者、更多的 pull requests 與更多的壓力,並不意味著要改變我的做法。今日的 Redis 是我們投入其中的工作總和,也是六年來堅持不懈的成果。為了繼續走在同一條路上,我會確保在接下來的幾年裡,仍保有幾個支線專案。 更新:Damian Janowski(達米安·亞諾夫斯基)今天為 Redis 社群帶來了一份令人驚艷的禮物,全新的 Redis.io 網站現已上線!http://redis.io。感謝達米安·亞諾夫斯基! HN 留言請見:https://news.ycombinator.com/item?id=9112250
隨機一篇部落格