開源研究
2005 年 3 月 20 日
對於我們來說,開放原始碼世界的一個有趣面向在於,它如何證明自己是一個引人入勝的研究社群。開放原始碼專案有許多形式,但其中不少專案會採用一個構想並圍繞著它進行程式設計,以了解它能發展到什麼程度以及它是否有價值。如果你相信設計和程式設計是分開的,那麼這個觀念聽起來很奇怪,但如果你接受它們是相互關聯的,那麼這個觀念就很有道理。
這種效應在企業 Java 世界中特別明顯。該領域許多有趣的新發展(IBatis、Hibernate、JUnit、CruiseControl、Spring、Sitemesh、Webwork、Tapestry 等)都來自開放原始碼開發人員。
開放原始碼研究非常適合 Thoughtworks,這就是為什麼這麼多 ThoughtWorkers 積極參與開放原始碼專案的原因。它符合我們「開放智慧財產權」的理念。我們沒有興趣撰寫大量論文參加學術會議的人員,我們傾向於雇用想要打造事物的員工。因此,開放原始碼世界就是他們發表作品的方式。如果它真的受到歡迎,他們會將其轉變為產品,通常會在更多人的協助下進行。這項研究和開發工作大部分是由非 ThoughtWorkers 執行的,這對我們來說沒問題。我們希望探索和發表構想,我們為客戶銷售我們白天的工作成果。
我的其中一個願景是讓員工有更多時間進行這類研究。目前,這大部分都是員工在業餘時間進行的。由於大多數 ThoughtWorkers 從事這項工作是因為他們熱愛它,所以這確實可行。但我希望有一天我們能負擔得起在工作時間讓員工花時間從事這類研發工作。
有些人批評開放原始碼世界,因為許多專案最後不了了之,永遠無法成為真正的版本 1。如果你將它們視為研發,那麼許多專案(甚至大部分專案)無法成為真正的產品,這就說得通了。研發就是產生點子和運用它們。成功的研發不是以其點子轉化為產品的比例來衡量,而是以其產生了多少偉大的產品,以及這些產品有多偉大來衡量。開始三個專案並將它們全部轉化為平庸產品的人,不如開始十幾個專案並只將其中一個專案轉化為殺手級應用程式的人。