2007年03月1日

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


Posted by shirock at 樂多Roodo! │00:11 │回應(3)引用(2)Programming
樂多分類:學術/學習 工具:編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/2784453
引用列表:
Programming 基本上是一種「設計」工作,設計就是編程,編程就是設計。不但要達成功能需求,更在其中追求技藝之美。獨行之路不好走,沒有興趣走不下去。
走上程式設計之路是否須具備興趣?【石頭閒語】 at 2007年03月27日 01:05
中央大學資工系在6月15日舉辦了一場「台灣敏捷方法實務研討會」,我將聽到的內容與自己的感想做了一番整理...
敏捷方法實務研討會會後筆記1 - 溝通與 Pair programming【石頭閒語】 at 2007年06月16日 19:47
回應文章
hello 石頭兄,

雖然我不敢說我真的實踐過pair programming, 但我真的喜歡pair programming的概念. 我的回應在:
Pair Programming 與軟體開發中的 GPS
Posted by 喲哪桑 at 2007年03月13日 19:55
一個人寫程式,其實很苦悶;
兩個人一起寫,就頗有樂趣了。

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

說起來,那時 XP/Agile methods 這種名詞還沒出現呢。可是呢,我現在反倒很久未與人 pair programming 了...
Posted by 遊手好閒的石頭成 at 2007年03月14日 01:24
很喜歡你的話!

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

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

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