最近更新: 2011-09-10

Innovate 2011 IBM 開發者大會記事

9月1日到台北參加了每年慣例的 IBM 開發者大會,活動主頁見此「Innovate 2011 IBM開發者大會」。今年的活動主題是「Software, Everyware」,台灣則取為「創意無所不能╳軟體無所不在」。我個人覺得英文主題寓意較佳。中文實在翻得太長了,「創意無所不能」這句話甚至沒有點到會議的另一項主題:「Software driven innovation」。現場的口譯人員好像譯為「軟體驅動創新」。今年的議程主題,圍繞在軟體開發的生命週期(Lifecycle)之上。切入點是從「Everyware」開始,再延伸到生命週期管理,進一步追求創新的可能性。

Harnessing the power of software-driven innovation

第一場議程的切入點是 Everyware。隨著嵌入式系統日漸應用於日常生活之中,愈來愈多的生活用品都內嵌了一套軟體系統,小到鬧鐘、手機,大到冰箱、音響、汽車。它們之中都有一套軟體系統默默運作中,所以說 Everyware。如今這些設備中的軟體系統,不但強調功能性,還要能連結網路。「連網」這說法太俗了,套句流行術語要說「直上雲端」。議程中安排了一段影片,以某個移動性設備為例,說明這些設備中的軟體系統的複雜度。

「某個」移動性設備是什麼?如果你猜手機,那就錯了。「某個」移動性設備是汽車。汽車也是移動性設備,而且內部配件眾多,連手機也可以算是它的配件之一。有那麼多配件,嵌入其中的軟體系統自然也就多了。這麼一想,以汽車為例也是很合理的。

汽車內有加速系統、剎車系統、導航系統、倒車系統、音響系統、冷暖氣系統等等,都強調智慧操作,也就有軟體控制。影片中提到 GM 設計了一款新型房車,內部的軟體系統包含了一千萬行程式碼,比戰鬥機的六百萬行程式碼要多出近一倍。IBM 強調這是利用 Rational 工具,透過 Jazz 開發平台,才能有效地管理如此複雜的軟體開發案。IBM 說 Rational Collaborative Lifecycle Management 提供了下列特性:

  • Real-time planning
  • Lifecycle traceability
  • In-context collaboration
  • Development intelligence
  • Continuous improvement
  • Single install
  • Robust educational content
  • Best practice templates

Development intelligence, Robust educational content, Best practice templates 大略就是像前幾年提到的 WayPointer 或 WebAppScan 所應用的智慧功能。容我引用以前參加開發者大會時記下的內容。「WayPointer 中建置了許多軟體設計過程中常見的 Design Patterns 、規則與重複性程序,可幫助設計者分析需求並提供可行的實踐途徑」(軟體工程的 GPS)」。這就是 Best practice templates。「WebAppScan 可以進行 Web 軟體的白箱與黑箱測試,抓出潛在的安全漏洞。最有價值的是它的產出報表,不只是記錄安全漏洞,還能針對這些漏洞,提出可行的解決方式,讓程序員可以依照它的修正建議,修補漏洞」(Innovate 2010 IBM開發者大會記事 )。這就是 Robust educational content。顯然 IBM 已經將這些能力都整合進 Jazz 平台了。

Globally Integrated Development Transformation

第二場議程有一張投影片,描述了 IBM 的軟體開發典範轉移歷史。1980年代採用瀑布式開發(Waterfall),1990年代流行迭代式開發(Iterative),這起因於 OOP 興起。2000年以後,進入敏捷編程開發(Agile method)。這同時也是軟體工程的演進歷史。在投影片中,迭代式開發方法與敏捷編程開發方法的圖例雖然相似,但仍可看出兩者的差異。敏捷編程的開發週期中,有更多的參與者,以及更短的迭代週期。

關於迭代週期的長短,我以前在「敏捷方法實務研討會會後筆記3 - 反覆式開發過程」提過我個人經驗。「2008 IBM developerWorks開發者大會記要」中,我也記述了座談交流時間中,主講人關於迭代週期長短的回答內容。

此議程最後強調的是 Jazz 平台的跨地域開發能力以及開發團隊大小的伸縮性。投影片的最後一張圖,很貼切地表達出取名為 Jazz 的理由。

軟體完美體驗,來自使用者經驗

上午的三場議程,一直在反覆地強調軟體開發的生命過程管理很重要。他們用了一個 V 字型來形容軟體開發生命週期的管理項目。在第三場議程的投影片中,有一張詳細的 V 字型生命週期圖。我摘錄該投影片的 V 字型縮圖於下。完整內容請自行到 Innovate 2011 大會網頁的議程表中下載查看。

V字型 Lifecycle

在 V 字型的兩個頂端,左邊是需求項目,右邊是品質項目,交匯點(即V字底端)則是實作項目。在投影片的 V 字圖中可以看到箭頭表示在各個階段頻繁的溝通與回饋行為,這是 Agile method 具體實踐後所呈現的結果。反應了 Lifecycle Management 中的 Real-time planning, In-context collaboration, Continuous improvement 。V 字型的兩邊也代表了 Agile method 的幾項大特徵。左邊的需求項目強調使用者參與使用經驗的及時回饋,是擁抱變化的象徵。右邊的品質項目,看到那麼多 test,就知道是測試驅動開發的象徵。

不過生命週期中的 Lifecycle traceability 特性並未在圖中表示出來。按照講師的說明,V 字型的兩邊,都是一對一橫向對應的。左邊是需求分析內容,右邊就有對應的可用性測試。左邊是系統分析與設計內容,右邊就有對應的系統整合測試。所以工作人員在查看左邊的內容時,就可以從右邊的測試追蹤進度。查看右邊的測試時,就可以追蹤這是對應左邊哪一項需求變化。

我按 Agile/XP method 的說法來看,所謂的 traceability 就是要把使用者故事、測試案例、實作文件、實作程式碼等內容,串成一條雙向連結串列。從任何一個節點切入,都可以往前後追蹤相應的工作項目。

第二、三場議程中,都提到了使用者經驗之事。第二場議程主講人王陽在滿座都是軟體開發人員的會場中,說出了大家的心聲:「大部份客戶不知道如何說清楚他們的需求」。因此在今年的議程中,也更為強調 Jazz 平台管理使用者需求的能力,也就 V 字型生命週期的左邊工作。在軟體開發生命週期中,完善地管理需求項目,可以幫助軟體開發人員產出滿足客戶的軟體;更快地取得使用者的回饋經驗,則可以幫助團體發掘出客戶說不出、道不明的創新應用。

這麼多事情,IBM 說 Jazz 平台都幫我們整合好了。主講人說 IBM 鼓勵大學相關科系使用 Jazz 平台,讓軟體設計人員能儘早熟悉軟體開發的生命週期管理。聽到這句話時,我聯想到公司裡的新人連 SVN 都沒用過的事,不禁苦笑了。儘管 IBM 早在 2008 年就開放大學申請使用 Jazz 平台 (IBM Jazz 專案開放申請使用),但我真的很懷疑台灣到底有多少大學資訊科系,會教學生如何利用這些工具進行軟體開發生命週期管理。大部份課程內容都只停留在教某某程式語言的使用,但這也教不好;又或是教些理論內容,還有些過時。學生不會用版本控制工具,不會寫測試案例、不會描述使用案例、不會溝通,當然更不知道如何追蹤工作項目。

題外話。容我發個小牢騷。探索使用者需求時,光靠工具是不行的。在我的經驗中,國內軟體工程人員的溝通能力實在有待改善,英文不好就算了,連中文也不行。至少不應寫出我都看不懂的中文敘述;這要如何讓使用者確認需求訪談的內容,又要如何讓編程人員實作?

an exceptionally good mastery of one's native tongue is the most vital asset of a competent programmer. Edsger Dijkstra

系統開發 Live Show

我下午選擇的是 A 組議程。下午的議程很簡單,很直接。就是請兩位開發人員,上台演練一次他們日常工作時的實況。我想這是仿效五月份在美國的 Innovate 2011 Live show 議程。不過看影片,美國會場當時是由 Waston 系統開發團隊上台演練他們應用 Agile method 開發 Waston 系統的情境。台上一字排開有四、五個人以上。相較之下,台灣場的排場就簡單多了。

下午的實境秀,使用最新針對 Android 平台推出的模型式開發工具。一人扮演設計師,另一人扮演軟體編程人員。透動兩人的互動,演示開發兩個 Android App 的開發情境。我個人認為他們演示的情境非常貼近真實情形,幾乎都是在真實的開發過程中會發生的故事。常常令我感到會心一笑。唯一的缺憾是,其中一人的電腦出了問題,以至不能操作某些安排好的劇情,甚為可惜。

EGL 與 SaaS

去年的開發者大會中,就有提到 EGL 語言。而在今年的文宣中,我感覺到 IBM 把 EGL 從一個單獨產品提升到一個 SaaS 開發平台的企圖。這是一個水到渠成的策略。

在去年的議程中,就可以看出 EGL 經常被用於將既有的獨立系統服務轉型為 Web 服務的專案。換言之,透過 EGL ,可以將原本如海中孤島般獨立運作的軟體系統,抬升到 Web 的天空中,變成一朵軟體雲。

我個人很欣賞這種不需拋棄可用系統,就能延展其使用期限與應用範圍的解決方案。

個人歷年參加 IBM 開發者大會的記錄

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