茫茫網海中的冷日 - 對這文章發表回應
茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1674132 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_00023.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

對這文章發表回應

發表限制: 非會員 可以發表

發表者: 冷日 發表時間: 2008/3/14 8:44:20
ALM專題系列之六 開發經驗談:團隊特質為ALM的關鍵指標
為了讓大家更瞭解應用軟體生命週期的應用現況,我們採訪鼎新、碩網、HSDC等3家廠商,分別代表大型、中型、小型等軟體開發團隊,探討其實際作法與分享經驗。

大型開發團隊自訂ALM系統
對於跨國性商業為主的企業或獨立軟體供應商,其開發人員可超過100人以上,屬於大型開發團隊,具高度自主的開發實力,不必仰賴其他廠商推動的解決方案。這類企業可傾向自行開發專屬的應用軟體生命週期系統,從需求、塑模到驗證等,以整合本身業務所需的商業運作邏輯為主要考量。我們在直覺上以為大型企業應有充足的IT經費,採購商用工具或導入供應商完整的解決方案,但在此例中,卻發現這類型的企業更重視投資效益,對於商用工具繁複的功能,但不一定完全適用本身的企業內部開發文化,採取自行開發的優點為高度自主與整合能力。


因此,大型開發團隊可將應用軟體生命週期畫分更精細的階段,並配合高度專業分工的角色,以保證軟體品質。此作法不同於敏捷式開發流程所訴求的每日版本建構(Daily Build),而是以開發角色為主,並清楚地定義每個角色的技術與任務,各司其職但又目標一致。鼎新便是其中的代表性案例,針對自有的流程與週期開發專屬的管理系統(DSCALM)。此外,鼎新的管理人員可透過兩種不同的視野了解專案的進展:指標(Indicator)與報表,前者是關鍵績效指標值(KPI),後者則是執行成效。此系統的特點在於貫穿所有流程,使得所有專案關係人都可以一目瞭然地取得專案進展,以避免專案失控。

此外,企業經營者應致力發掘開發人員的潛能,適才適用,而不是任其淪為程式工匠。對於應用軟體生命週期對開發人員的衝擊,周忠信提出建議,開發人員的價值在於完成高品質的軟體,而不是將個人天才型的想法任意置入程式碼中,使得程式異常複雜,讓企業擔負軟體銷售風險。鼎新鼓勵內轉的任用制度,各開發人員以其才能選擇適當職位,盡情發揮長才,降低職業生涯衝擊。


至於業界正流行的「極致開發流程(XP)」,周忠信認為此流程適用於小型的軟體開發案,原因是此流程強調反覆增益快、重構精準、自動測試正確,但又必須保留需求前後一致特性,所以常採用具演化增益的原型,但並非所有開發團隊均認同演化型的流程,以及原型適合用於驗證架構與技術,而不是客戶需求。

中型開發團隊:極致式搭配開放原碼工具
以10~15人組成的開發團隊,可歸類為中型的組織。中型開發團隊導入應用軟體生命週期,目的是加強軟體品質與產品競爭力,例如採用Rational解決方案,以及CMM驗證標準。由於Rational United Processes(RUP)清楚區分各個流程階段與分工角色,缺乏實際運作彈性,以及商業工具難以客製化與整合其他應用工具,所以這類開發團隊也從RUP轉向極致開發流程,並搭配開放源碼工具。這類團隊選擇開放源碼,主要是可取得開發工具原始碼的優點,為使用者提供自主的客製化與整合其他工具時使用,並歷經應用市場的驗證。


以碩網為例,其工具的選擇為:用於專案規畫、追蹤的Xplanner、以開發框架為主的Junit、程式開發平臺的Eclipse等。葉爾瞻提到,商用工具功能雖齊全,但不一定適用於精巧型的開發團隊,至於採用極致開發流程,則是因為此流程以人為本,講求緊密溝通與合作,有助於帶動開發人員的工作熱誠,適合碩網這樣的靈活輕巧的開發團隊。

他也談到天才型或個人英雄主義型的開發人員,不適合極致開發流程,以搭檔編輯(Pair Programming)為例,講究互助合作與分享技術和經驗,並以客戶價值為最終目標。極致開發流程雖然以人為本,但注重團隊合作的熱誠更勝於無法掌控的英雄式作風。

小型開發團隊培養柔軟的思考力
HSDc顧問賴信仁建議,本土的開發人員應邁向架構設計人員,培養抽象化結構設計的能力,他引用Martin Fowler所說:「Keeping Software Soft.」,以避免開發人員陷入「dirty work」的代工苦勞。他也採用80/20法則的觀點分析,本地的開發人員應充實架構設計能力,才能以20%的心力,獲取80%的利潤,擺脫大陸與印度不斷追趕的壓力。


此外,他也推崇極致開發流程。軟體專案常面對的不僅是客戶需求改變,而是客戶所要的,都是開發人員所想不到的。極致開發流程以測試為主(Test First Design),將客戶納入軟體開發週期內,由客戶撰寫測試腳本,並由開發人員實作測試程式,並以增量(Iteration)的改進方式,逐步完成符合需求的功能測試。賴信仁形容極致開發流程的優點是,開發人員持續與客戶討論需求與回饋,在需求不斷改變時,開發人員也不斷釋出新版程式(Release Often),使得原型(Prototype)如同樹木般成長,契合客戶的期望與需求,他稱此過程為「Feedback Loop」。在增量的過程中,開發人員應保持架構與程式碼同步,並不斷地與客戶需求驗證,使得開發人員兼具架構設計與技術實作等多才多藝的能力,展現無可取代的價值。

培養開發團隊的管理思維

軟體專案外包已是無法阻檔的趨勢,臺灣不能故步自封,一昧地抗拒大陸與印度等資訊知識與人才逐漸超越的事實,軟體技術標準化使得領域知識無法藏私,況且這兩地區在軟體工程上更早導入嚴謹的流程制度,以保有軟體代工的優勢。相對地,臺灣正學習這股流程改善的熱潮,但目標著重培養成熟的管理體系與機制,與外包代工業者產生互補效應,而不是形成市場上針鋒相對的競爭者。

此外,軟體專案4大成因:時程、範疇、成本、品質等,除品質是開發團隊可掌控之外,其餘均受客戶需求所限定。由於軟體品質受了前3項的限制,但客戶常壓縮時程,連帶影響範疇與成本,直接衝擊軟體品質,造成開發團隊在品質上偷工減料,反而以客戶容易顯而易見的功能與使用者介面敷衍專案進度,也就是不注重架構設計,並造成客戶在後續維護的高風險與低擴充彈性。如同一棟建築樣品屋,雖然家電、廚具、傢俱樣樣精美且俱全,但鋼骨結構與海沙填充等偷工減料,卻是造成建築物無法承受地震的主因。


品質良好的軟體應呈現簡潔的架構、卻有高度的穩定性,並保有可重覆使用性(Reusability),使得各元件可抽換,展現出如同樹木般生生不息的生命力。在軟體開發上,就是在初期的架構設計時,便將抽象邏輯抽出,以軟體本質思考架構應具有的特性。至於應用軟體生命週期中3個主要元素:人員、流程與工具中,流程與工具僅是實現手段,軟體本質才是根本,並應展現在架構上,也因此,軟體開發應以人為本,而不是廣義的生產工具。文⊙張瑞隆
內容圖示
url email imgsrc image code quote
樣本
bold italic underline linethrough   












 [詳情...]
validation picture

注意事項:
預覽不需輸入認證碼,僅真正發送文章時才會檢查驗證碼。
認證碼有效期10分鐘,若輸入資料超過10分鐘,請您備份內容後,重新整理本頁並貼回您的內容,再輸入驗證碼送出。

選項

Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|