最近更新: 2007-03-01

軟體工程的 GPS

Tags: 軟體工程 agile-method RUP

在 Taiwan.CNet 上看到喲哪桑寫的《GPS與軟體流程》,我想到了軟體工程中確實存在著類似 GPS 的智能代理者 (Intelligent Agents) 。

我去年參加了 2006 IBM 開發者大會 (2006 IBM developerWorks live) ,其中一個很重要的議程與軟體開發工程有關,該議程中介紹了由 RUP 提出者之一的 Dr. Jacobson 所提出的新一代的軟體開發流程: Essential Unified Process (Ess-UP) 。我在《軟體工程三大陣營, RUP, CMMI, Agile Method》提到了一些內容。在介紹 Ess-UP 時,主講人提到 Agile method 中的 pair programming 概念在軟體開發流程中相當重要。他指出在 pair programming 過程中,資深者可隨時指引設計者實踐某些功能的最佳途徑;當設計者用錯方法、走錯路時,也可以適時修正。整個開發過程可以少走很多冤枉路。主講人進一步指出 Ess-UP 將此一概念納入後,提出智能代理者 (Intelligent Agents) 概念,也有相關的實作品,即 WayPointer 。 WayPointer 中建置了許多軟體設計過程中常見的 Design Patterns 、規則與重複性程序,可幫助設計者分析需求並提供可行的實踐途徑。

然而有了 WayPointer 之後,我們就不再需要 pair programming ,甚至不再需要資深 programmer 了嗎?我想不儘然,就像喲哪桑在使用汽車 GPS 時,有時還是要問問鄰居、計程車司機有沒有什麼路好走。有許多特殊案例、情境,仍然需要依靠經驗發明新的解法方法。智能代理者所能提供的只是經驗者所歸納整理出的通則,在通則的建置過程中,仍然有許多微妙的思考過程與實踐經驗無法表達出來。經驗沒有捷徑,有些事是替代不來的。附帶一提,我個人覺得使用智能代理者之後,對程序員最大的損失就是少了許多設計的樂趣 ,包括嘗試錯誤樂趣。我想軟體設計是種「技藝」,不僅是一門技術,也是一門藝術。在吃飽喝足以外的時間中,我們更需要可以表現自我的樂趣,否則人生未免乏味無趣。

相關文章
樂多舊網址: http://blog.roodo.com/rocksaying/archives/2784453.html

樂多舊回應
jonathan.speaking@gamil.com(喲哪桑) (#comment-4167765)
Tue, 13 Mar 2007 19:55:33 +0800
hello 石頭兄,

雖然我不敢說我真的實踐過pair programming, 但我真的喜歡pair programming的概念. 我的回應在:
Pair Programming 與軟體開發中的 GPS
未留名 (#comment-4170327)
Wed, 14 Mar 2007 01:24:19 +0800
一個人寫程式,其實很苦悶;
兩個人一起寫,就頗有樂趣了。

我第一次 pair programming 的經驗就是在我十幾年前剛接觸程式設計的時候 (QuickBASIC + Assembly) 。那時跟一位志同道合的朋友一起寫程式,用著一台電腦輪流交換寫,真是其樂無窮。

說起來,那時 XP/Agile methods 這種名詞還沒出現呢。可是呢,我現在反倒很久未與人 pair programming 了...
jonathan.speaking@gmail.com(喲哪桑) (#comment-4172495)
Wed, 14 Mar 2007 12:54:09 +0800
很喜歡你的話!

  一個人寫程式,其實很苦悶;
  兩個人一起寫,就頗有樂趣了。

我第一次和人一起寫程式,也是十幾年前,還沒有 XP or Agile 這種名詞的年代,害我不知那算不算 pair programming。 :(

那次,在同學的引領下(或說我的搔擾下)把那程式完成時,我也覺得,寫程式真是快樂的事!所以,我一直覺得,是那位同學帶我入軟體之門的,而不是學校老師。如果沒有我那同學,我大概不會走上這一行吧!