一家聯邦IT承包商對開放源代碼的奧巴馬醫保提出反對意見 - 彭博社
Paul Ford
攝影:尼基塔·布伊達/阿拉米肯達爾·克拉克是 克拉克與帕西亞 的創始人兼首席執行官,這是一家擁有10名員工的軟件產品和服務公司,專注於企業語義的開發和研發。他曾為多個聯邦機構工作,包括NASA和國家癌症研究所。在我本週的*《彭博商業週刊》*中發表的文章“奧巴馬醫保網站不必失敗。下次如何做得更好”發佈後,克拉克(我曾在網站XML.com與他共事)聯繫我,告訴我他不同意我的論點——即開源將導致更少失敗的軟件項目。他並不反對開源一些政府代碼,但他質疑開放代碼與提高質量之間的關係。我問了他幾個後續問題。
在我的文章中,我提出如果聯邦政府在公開的情況下開發其代碼,將會減少像healthcare.gov這樣的失敗啓動。你不認同。為什麼?
我認為我們首先要問的不是為什麼healthcare.gov失敗,而是為什麼大多數大型(即複雜)軟件項目失敗,因為它們要麼存在太多錯誤而無法使用,要麼超出預算或時間表,或者在某些情況下,三者皆是。
軟件項目失敗的原因有很多:錯誤的人在構建它們;錯誤的人在做技術決策,這基本上是另一種條件的代理,即實質性的技術或設計選擇是錯誤的;預算或時間表(或兩者)根本不切實際;系統是否成功並不重要(這往往比我們想承認的要真實);系統過於複雜,應該是幾個更簡單的系統,等等。
為什麼不直接開放政府默認生產的所有軟件呢?這樣至少我們可以看到人們所犯的錯誤,並嘗試修復它們。
開源是一組軟件許可條款的條件。但請注意,許可條款並不是我列出的複雜軟件系統失敗的原因之一。因此,最初我們應該對不同的許可條款是否會對 healthcare.gov 的成功或任何其他類似複雜系統的成功產生影響持非常懷疑的態度。
好吧,對 healthcare.gov 來説已經太晚了——這艘船已經啓航。但在未來,你不認為開放整個過程,讓政府代碼在開發時自由可用,會增加透明度並導致更好的代碼嗎?
開放源代碼的許可條款可能會間接解決一些軟件系統失敗的原因。例如,開源可能意味着不同的人蔘與該項目。這可能使項目更有可能成功。
我認為這不太可能是情況,但也可能是,這只是一個事實問題,我們沒有太多數據,所以暫時先擱置這個問題。
好的。我確實想指出消費者金融保護局做了很多看起來質量非常好的開源工作,所以這是一個數據點。但我承認這確實只是一個數據點。
我可以提供其他數據點:國會圖書館做了很好的開源工作;NASA 做了很好的開源工作;國家癌症研究所做了很好的開源工作。我只是質疑這些好的工作是否是由於開源造成的。大多數軟件項目失敗的原因似乎與許可條款沒有太大關係。例如,許可條款並不能使預算或時間表更現實。
有一個假設,我想我們都同意這往往是錯誤的,那就是開源條款僅僅意味着來自陌生人的免費勞動。這不僅是錯誤的;我認為政府不應該基於這個假設進行政策或政治決策。開源許可證條款往往並不賦予技術人員做出技術決策或做出正確決策的權力。我們都知道許多開源系統在技術上是相當愚蠢的。
好的,但Linux和Firefox呢?它們都是開源的,運行得非常好,以安全性著稱——而且都是完全公開開發的。政府不能參與其中嗎?
Firefox和Linux都是開源的,有很多人在為它們工作。此時,大多數這些人都是某個組織的付費員工,該組織僱傭這些人來為這些系統工作。系統是開源許可證意味着許多不同的組織可以以一種自由的方式僱傭人們來為這些系統工作,即,系統的法律所有權是如此分散(或者由一個非營利實體作為一種公共信託持有),以至於某些類型的利潤動機和不分享代碼的經濟激勵被消除。
Linux在早期通過“免費勞動”有機增長,但可能有一些特定於Linux的原因導致這種情況發生,這在政府軟件中不太可能複製。無論如何,我持懷疑態度。我們還應該提到,或許具有諷刺意味的是,NSA確實資助了很多關於Linux操作系統的安全工作,據我所知,這些工作相當不錯。你可以推測在最近的新聞報道的背景下,NSA是否會這樣做。
我想我的夢想是政府能夠找到一種方法,創造出一種圍繞軟件開發的文化,就像Firefox或Linux周圍的文化一樣。
美國聯邦政府在許多方面都是獨特的,完全不清楚它是否需要或想要以同樣的方式分享軟件。在某些情況下,出於法律、監管或政策原因,它可能不應該分享軟件。例如,一些屬於國防或情報收集的軟件系統可能應該被嚴格保密(但並非所有)。政府還有研發和投資項目,其目的是幫助小企業獲得資金;我認為,作為政策,你不希望通過要求這些公司僅使用開源許可證來規定它們的商業模式。
我認為聯邦政府在創造文化方面並不是很好。它擅長創建遵循規則的系統,人們可以在這些系統上創造文化。可以説,這正是開源產生的原因,因為它深深依賴於聯邦政府制定並現在執行的版權法的特徵(儘管,毫無疑問,關於軟件的專利制度完全崩潰了)。
但我仍然喜歡政府編寫的代碼默認是公開的,回饋公共資源的想法。更多的參與者,結果 hopefully 更好的代碼。
我認為開源可能意味着更多的參與者(對於某些政府項目),但我很難理解這對政府來説為什麼會是直接的好處或理想的結果。軟件不像食物或水,定義上你希望最大化參與其中的人數,甚至最大化參與創建它的人數。
透明度的內在價值如何?
我能想到更直接的方式來實現透明度。我們可以回到阻止國會免受內幕交易法的豁免。我們可以進行信息自由法(FOIA)改革,使其更加健全。今天透明度的主要障礙可能是文件和政府信息的系統性過度分類。所有這些對透明度的影響都將大於開源許可。
我同意開源條款應該是政府軟件的默認選擇(或更容易選擇),但有一些重要的例外——因為納税人支付了軟件費用,而開源條款通常不會造成傷害。但這與説它們傾向於有幫助或必然有幫助是不同的。