Posted on 2008-08-22 16:27
鋒出磨礪 閱讀(181)
評論(0) 編輯 收藏 所屬分類:
雜談
軟件開發的過程
作者 Kurt Christensen譯者 鄭柯 發布于 2008年8月20日 上午9時38分
- Agile
- 主題
- 敏捷實施,
- 變更
在“射箭高手的秘密詛咒”一文中,紐約時報專欄作家Katie Thomas描述了一種奇怪的痛苦情緒,它廣為人知,人們稱之為“目標恐慌”。當世界頂尖的射箭高手向目標發出一箭時,這種情緒會導致他們失去控制能力,如此現象讓人費解。人們通常認為這是一種心理問題,新的研究表明:“目標恐慌”實際上是神經失調的表現。
為了理解這些以前無法解釋的痛苦,神經病學家開始探究大腦深處存在的處理方式。比如最近《紐約客》發表了一篇文章,其中Atul Gawandem博士描述了對于“四肢疼痛幻覺”的全新治療方法。“四肢疼痛幻覺”是指,接受截肢手術的人會感受劇烈疼痛,不過這些疼痛出現在已被截去的手臂或腿部之上。醫生將接受截肢的人放在多面鏡子之前,這會讓患者產生四肢健全的幻覺。接下來醫生會讓患者完成多種任務,比如指揮不存在的交響樂團。來自Walter Reed醫院的全新研究顯示,這種“鏡箱治療法”可以有效去除“四肢疼痛幻覺”癥狀。令人驚訝的是,為大腦提供一系列全新的、出其意表的感官輸入,這會讓大腦改變內部的處理流程。
當然,在人工智能領域之內,使用數據改變處理這些數據的算法,這并無特別之處。此種“學習算法”的應用非常廣泛,涵蓋了從語音識別到信用卡欺詐檢測等很多領域。實際上,隨著處理海量數據能力的增強,似乎學習算法接受的數據要比算法本身還重要。在2008創業學校上的演講中,Peter Norvig比較了五種可以自我調整的算法在表現上的差異,這些算法是用來處理自然語言的。結果表明:選擇更好的算法所帶來的表現提升,遠不如讓它們處理更多數據帶來的提升更明顯。
可是這種方式能夠用來跟軟件開發的過程做類比么?在《人類賴以生存的隱喻》一書中,George Lakoff和Mark Johnson講述了隱喻塑造我們理解世界的方式,以及隱喻揭示與混淆我們身邊世界的方式。對于大腦、軟件,以及軟件開發,唯一的隱喻就是:機器——也就是硬件。可是在這兩個例子中,如果能將處理過程看做軟件——也就是可編程的,也許能取得更好的進展;雖然易于出錯,但是也易于修復。如果軟件是軟件開發的隱喻,那么軟件開發的流程創建和提煉的方式,應該與軟件創建和提煉的方式相同;小窺一下,處理軟件開發流程,只需構建需要的部分,而且總是通過迭代和測試驅動的方式。
大家都已經習慣于事先明確定義最佳流程,要想拋棄這種觀念,也許有點讓人膽戰心驚,可是現實告訴我們:要想為一組特定的人制訂軟件開發的流程,不應事先進行流程的明確定義,而應將精力放在流程的演進上;這也是與人類大腦和軟件本身最一致的方式。