速度是企業(yè)競爭致勝的關鍵因素,軟體專案的最大挑戰(zhàn)在于一方面要應付變動中的需求,一方面要在緊縮的時程內(nèi)完成專案,所以軟體團隊除了在技術上必須日益精進,更需要運用有效的開發(fā)流程,以確保團隊能夠發(fā)揮綜效。這正是 Agile Process (敏捷的軟體開發(fā)流程) 于近年來興起的主要原因,本文將介紹數(shù)種廣為接受的軟體開發(fā)流程,及其在運用上的建議。
Agile Process - 敏捷的開發(fā)流程
幾乎所有的軟體專案都會在起始階段面臨選擇開發(fā)流程的困難,一種是完備的開發(fā)流程,另一種是簡易輕便的流程。雖然我們了解采用完備的開發(fā)流程可以提高軟體的品質,但是因為欠缺人力、工具與時間,我們常會被迫采用簡化的流程,但事與愿違,大部分的情況我們?nèi)匀浑y以在預算內(nèi)及時完成專案。
Agile Process (敏捷的開發(fā)流程) 是一種軟體開發(fā)流程的泛稱,Agile Process 具有下列幾項共通的特性:
客戶與開發(fā)人員形成密切合作的團隊,因為客戶無法于初期定義完整的規(guī)格,而開發(fā)人員于開發(fā)過程中也常常無法知悉外在環(huán)境或業(yè)務的變動,所以需要兩者密切合作方能開發(fā)適用的軟體。
專案最終的目標是可執(zhí)行的程式,因此所有的中間產(chǎn)品必須經(jīng)過審慎評估,確認有助于最終目標,才需要制作中間產(chǎn)品。
采用 Iterative 與 Incremental 方式分階段進行,密集 review 是否符合需求。
流程可以簡單,但規(guī)劃與執(zhí)行必須嚴謹。
強調(diào)團隊合作,賦予高度的責任,團隊有自主權得以因應變化做調(diào)整。
RUP 開發(fā)流程 - Rational Unify Process
RUP 為 IBM Rational 公司經(jīng)過多年的研發(fā)與經(jīng)驗所提出的軟體開發(fā)流程,其內(nèi)容含蓋 Business modeling, Requirement Modeling, Logical Design, Implementation, Testing,
Deployment 等軟體開發(fā)生命周期的直接工作,與 Project Management, Change & Configuration Management,Environment support 等支援性工作。RUP 的內(nèi)容非常豐富,不同的專案需要不同調(diào)整,IBM Rational 提供 RUP workbench 工具,方便調(diào)整 RUP,并公布于 Web,方便專案成員遵循統(tǒng)一的流程規(guī)范進行工作。
RUP 的主要精神為:1. 專案進行采用 Iterative 程序分階段漸進地完成專案功能;2. 廣泛使用 Visual Modeling 于商業(yè)需求分析、系統(tǒng)分析與系統(tǒng)設計;3. 強調(diào)架構設計;4. 對每項工作所需要的技術、工具、做法、范本、檢查項目均有詳細的定義,架構完備且具有可調(diào)整的彈性。
因為 RUP 的流程規(guī)范與相關技術較復雜,所以導入時必須注意幾個因素:1. 主管的支持以確保足夠的資源投入;2. 分階段導入;3. 適當?shù)挠柧毰c密切的顧問咨詢;4. 使用 Modeling 技術時需要考量 Coding 的實作環(huán)境;5. 良好團隊的管理,以溝通、耐心與堅持解決變革的人性阻力。
XP 開發(fā)流程 - eXtreme Programming
XP 亦稱為終極流程,是最輕量級的開發(fā)流程,其最主要的精神是‘在客戶有系統(tǒng)需求時,給予及時滿意的可執(zhí)行程式’,所以最適合需求快速變動的專案。XP 經(jīng)過 6 年的實作與修改,已演化為精致的開發(fā)流程,但仍不失其精簡的特性,它強調(diào)客戶所要的是 workable 的執(zhí)行碼,所以把與撰寫程式無關的工作降至最低,并要求客戶與開發(fā)人員最好以 side-by-side 的方式一起工作。
XP 開發(fā)流程的基本步驟為:1. 開發(fā)人員隨時可以和客戶進行有效溝通,撰寫 user sto
項目經(jīng)理勝任力免費測評PMQ上線啦!快來測測你排多少名吧~
http://opto-elec.com.cn/pmqhd/index.html