矽谷手記:敏捷軟件開發 - 大地

矽谷手記:敏捷軟件開發 - 大地

美國著名廚具連鎖店Williams-Sonoma,8月向三藩市高等法院投訴Retek(已被甲骨文收購),出售的軟件貨不對辦,據聞,該軟件未能有效處理前者大量的交易。事實上,軟件完工延誤、超支及和原來的要求有出入的情形,在資訊科技業可謂屢見不鮮。

程式員普遍抗拒

和歷史悠久的製造業相比,商業軟件被廣泛應用,只不過是近幾十年的事,製造業經過許多年發展,已有相當成熟的品質控制及管理方法,「生產」無形無質的軟件,雖然可以從這些方法借鏡,但本質始終有所不同;專門研究這門學問的,是軟件工程學(SoftwareEngineering),這方面的專家,提出了不少方法及模式,其中最被大型軟件公司及IT部門廣為採用的,是瀑布式(Waterfall)。
所謂瀑布模式,是指軟件由開發至實際被使用,應經過周詳計劃,分為多個階段,一個階段完成,再進入另一個,整個周期變得有系統,理論上品質、完工期及符合用家需求方面會有保證;問題是,周期一般長達18個月,要為這麼長的時間計劃,錯漏自難免,數個月的延誤,已屬萬幸;再加上期間用家需求可能已經改變,但軟件卻不容易因此調整。
近年軟件工程界,開始提倡一種名為「敏捷」(Agile)的新方法,矽谷科技公司,採用敏捷方法的包括Adobe及Salesforce.com。
敏捷有以下幾個重要特色,一.周期短,每隔數星期,即把軟件向用家發佈;二.程式員和用家經常緊密溝通,可快速因應用家需求的改變作出調整;三.程式員每日舉行會議,分工及檢討進度,工序分得很細,數小時內可完成,如程式員遇上困難,也可借此機會提出,會議須簡短,每人發言限於數分鐘;四.敏捷其中一派「極限編程」(eXtremeProgramming,簡稱XP)主張程式員「行孖咇」,即配對起來編寫程式,發揮集思廣益的精神,也減少出錯機會,程式員更可互相學習(crosstraining)。

有準備方為上策

不過,「敏捷」是一個極具爭議性的模式,要採用這個方法,必須全公司上下一致支持,並不是IT部門主管單方面可以作出的決定。首先,由於軟件會因應用家需求的改變作出調整,有時會大大超出原來構思的範圍,其中更會丟棄不少已完成的程式碼,管理層未必認同;其次,每日會議及微細工序,杜絕程式員「蛇王」機會,「行孖咇」變相互相監視,更嚴重的是,互相學習下,程式員再沒有個人獨有、足以「保飯碗」的「秘密」知識,自然更加抗拒。
2006年,Forrester調查發現,北美及歐洲只有17%企業採用「敏捷」,原因不難理解。無論如何,軟件開發模式改革勢在必行,上至管理層,下至程式員,有所準備方為上策。
大地
電郵地址:[email protected]