I 敏捷方法的十個 知識點
Reifer咨詢有限責任公司發表了一份名為
讀者可以在我們的敏捷研究中找到以下十個
驅動因子
問題
應對措施
理解影響生產率的變數(架構穩定性
產品復雜度 員工技能水平和經驗等) 當你轉用敏捷時要處理好這些變數 收集生產率測量和度量結果
這些數據有助於我們做必要的調整 改革時難免會遇到阻力
建議先運行試點項目 收集這些項目的度量和測量數據 用這些數據說明敏捷是一種更好的商業運作方式 在試點項目中調整過程和敏捷方法
找出達成商業目標的最佳方法 如果條件允許的話
最好讓大家在一起工作 以避免在第一個項目中就出現管理和合同上面的問題 使敏捷重點關注能夠帶來差異化的那些應用的開發
星星之火可以燎原
敏捷的一次成功可以帶來更多的成功
驅動因子
問題
應對措施
理解影響成本的變數(這些變數與生產率有所不同)
轉用敏捷時要處理好這些變數 基於事實做項目估算(通常所有sprints估算的交付物之和少於最終產品應有的交付物)
監控項目成本
跟蹤預算開支 重視敏捷教育和培訓的早期投入
在工作開展之前選購適當的工具並設置適當的運作機制(戰情室
任務板等) 轉用敏捷時應該盡可能遵循節儉和簡單的原則
驅動因子
問題
應對措施
理解影響上市時間的變數
轉用敏捷時要處理好這些變數 充分考慮環境因素
把項目作為整體制定務實的時間估算 然後再調整sprint和增量計劃 在項目開發過程中監控裡程碑達成情況
讓團隊控制sprint時間線
設立對增量時間線和內容的期望
堅持在每個增量結束時演示工件
並爭取讓客戶或用戶 市場人員和管理者都參加
驅動因子
問題
應對措施
把發布速度優先的文化轉變為質量優先的文化
擁抱質量
讓它成為所有工作過程中的一部分 還需支持同行評審 在每日站會上討論質量 從版本控制資源庫中收集缺陷信息 在任務板和版本狀態報告中展示這些缺陷 讓每個團隊成員互相檢查彼此間產品的質量
可以舉辦一個競賽 為了使活動更有趣味性 可以為做得好的成員頒發獎品和獎狀 記錄質量度量和測量結果
不論是軟件開發期還是軟件維護期都可以用這些指標量化產品的質量 經常分析質量問題的
根本原因 不要只關注問題的表面症狀 還要關注導致缺陷的原因 永遠不要發布很可能有缺陷的產品
當質量和發布速度產生沖突時 應該堅持原則說到做到 勇於承擔責任 使用精益和看板法
原則能讓我們隨著產品開發過程關注工程質量 在sprint期找出缺陷並修復它們 或者把它們放到待辦工作中隨後解決
驅動因子
問題
應對措施
變更組織結構
把敏捷融入到組織的主要流程裡 通過崗位職責說明書明確定義敏捷職位說明
角色和團隊的概念 然後為崗位配備工作人員 雇用敏捷教練對這些工作人員進行指導和培訓 自上而下地轉變文化
由領導命令驅動的風格轉變為自組織 分享式團隊 至少要讓你的軟件組織轉用敏捷 完善必要的治理
使合規性保證不再依賴於上級或外部的監督 讓敏捷團隊獨立自主 即使需求超出了范圍也要相信他們可以應對 但是 當度量和其他指標顯示工作進展滯澀時 你就需要監控他們的工作並幫他們做些調整了 爭取達成商業目標
比如先完成優先級高的任務而不要把主要精力都放在那些即將要交付產品的項目上 這種做法雖然可以滿足一個客戶(或用戶) 但卻犧牲了其他的客戶(或用戶) 盡量讓事情簡單
從產品架構到軟件產品本身都要遵循這一原則 此外 還可以把這一原則延伸到組織結構上 承擔交付責任的組織也要盡可能地簡單 將組織重心從實現單獨的目標(按計劃執行分派的任務等)轉變成通過團隊協作為組織及其客戶提供價值
把重點放在產出的工作產品上 營造一種鼓勵嘗試的文化
無論嘗試的結果是成功還是失敗 鼓勵那些勇於做決策 冒風險 努力去解決問題的人 當結果可以預測但沒有十足把握時
由團隊自己做出決策 盡量創建更好的商業模式
為個人 企業和客戶提供更好的工作環境
驅動因子
問題
應對措施
借鑒敏捷的觀念通過建立自組織
分享式團隊突破組織級障礙 例如 因為做計劃管理時矩陣式管理方式會產生很多沖突 所以應捨棄這種方式 在具有一定規模的敏捷項目中你可以繼續沿用傳統的項目管理計劃
日程安排和控制的概念 用它們設定目標和跟蹤業績 你們在項目運行過程中可以使用傳統方法 在sprints運行過程中可以使用敏捷技術 不要讓敏捷組織和團隊成為特例
而要讓它們成為常態 並使它們能夠面對更多的客戶和用戶 處理一定規模的問題 這些正是傳統大型項目(比如通信項目)所要解決的問題 為團隊提供了推薦的大規模敏捷項目管理體系和指南
在軟件開發過程中做每件事都需要兼顧敏捷性和紀律性
針對敏捷確立系統工程
並請客戶當測試代表 除此之外 內部討論時也不要忘了系統實際的用戶 客戶或甲方 因為最終完工交付的時候 是由他們評判特性 功能和性能是否達到要求 為了確定迭代
項目和組織等各個級別開發基線的程度 你需要定義並執行度量和測量 找出指南中不適用的過程和問題
並完善它們 特別要注意那些用於配置管理 發布管理 質量控制(或保證)和供應商管理的敏捷實踐
系統工程經常無法做到這一點
驅動因子
問題
應對措施
邀請客戶或用戶代表參與到團隊中來
作為團隊成員與大家在一起工作 真正擁抱整體產品團隊或跨領域團隊的概念
平等對待團隊中的每一個成員 讓客戶或用戶代表參與到團隊中成為團隊成員 引領工程改進而不要反被其制約
不僅僅讓系統
硬件和軟件支持敏捷宣言 還要讓工程支持敏捷宣言 嫁接所有的工程和制造過程
使工作切換同步 簡單 制定一個單一的基於敏捷的工程過程
勝過讓每個獨立的領域(系統 軟件 硬件 特定工程等)都有各自的過程 在過程早期專注於開發客戶需要的工件
勝過專注於那些獨特的工程理論 抱著探險家的心態去挖掘需求
勝過僅僅遵循規范的過程 在整個開發過程中把重點放在開發工作產品上
勝過那些面面俱到的 有些官僚主義的文檔 擁抱持續集成實踐
使它成為所有工程的統一框架 集成還有一個好處
它簡化了完備的系統為團隊提供了一套簡單的模型 使團隊清晰哪些已經構建 哪些已經准備測試了 哪些正在測試 哪些已經可以投入使用了 可以定義同步點在適當的時間集成半成品
以處理過程中必要的同步
本次研究還發現
當前版本——維護團隊的主要任務是開發新的版本
通過升級代碼為客戶完成需求變更 問題修復和性能優化 現場版本——維護團隊的首要任務
支持現場版本 為保障系統運維執行必要的修復和補丁 完整版本——維護團隊的次要任務
配置和定制近期的完整版 並發布到各個現場 他們的工作內容包括做更多的測試和協調各個現場 需求版本——維護團隊的次要任務
目標是開發下個版本的內容(舉例來說 必要時要開發原型去界定需求范圍)
為了在軟件維護期能夠更好地執行敏捷方法
驅動因子
問題
應對措施
考慮如何讓敏捷方法適用於上述四種版本的所有相關工作
討論在軟件維護階段需要做哪些工作 提供一份指南
解釋在上述四種版本的開發過程中如何應用敏捷技術和實踐 例如 如何讓sprint不僅能為完整版本引來價值還要在當下產生價值 軟件維護工作主要是保障系統的運行
甚至可能要在現場做功能增強 問題修復和性能優化 你需要確定這些工作的優先級 設計適當的支撐架構(例如
針對所有項目的配置 分布 質量 供應商和風險管理實踐) 在軟件維護期內使不同的設備上的不同軟件都能保持最新的發布 即使它們是不同的版本和遺留系統 清楚維護設備和客戶支持職能需要單獨做預算
你們在預算時要基於待辦任務中涉及的所有工作量 而不僅僅是單獨的工程 在協調計劃和員工時要充分考慮這些工作 持續擁抱持續集成和自動化回歸測試的實踐
因為 在維護期投入到驗證版本變更的測試工作量要占到總工作量的 % 這些活動能產生巨大的影響 堅持過程規范
特別是處理多樣的發布 客戶和產品版本時 一旦放松就可能釀成大禍
驅動因子
問題
應對措施
把敏捷風險管理實踐實際開展起來
讓團隊 管理者 客戶 用戶共同參與風險的識別 量化 排序和緩解 制定
前十 風險列表 把它們放在任務板上 在站立會和分派任務時掌控它們的狀態 按潛在的技術和編程影響排出
前十 風險列表 使用類似風險燃盡表之類的技術去跟蹤這些風險的緩解過程 讓客戶或用戶參與到風險管理過程中
讓他(她)們根據你評估的影響為風險排出優先級 創建類似於風險委員會的組織 讓大家就風險優先級達成共識 當風險合理存在並且不會造成嚴重後果時可以冒這個險
鼓勵冒險
當你覺得有必要冒險並能夠最小化和控制冒險帶來的潛在後果時你就可以鼓勵冒險
驅動因子
問題
應對措施
制定一套合同模版
軟件甲方可以用它擬定會用到敏捷方法的軟件開發承包或分包 識別裡程碑和交付物 並在合同中規定如何鼓勵效率提升(比如激勵措施等) 如何處理違規(比如撤銷條款等) 制定一份敏捷承包或分包樣本
為敏捷采購提供一套有理有據的條款和條件(包括支付條件和裡程碑) 為了描述交付物的形式和格式
制定一套交付物模版 盡量提供電子文檔 而不要到供應商的辦公室去拿紙制的文件 制定一份法律模版
使客戶(或用戶)代表根據有限責任保護傘條款作為成員參與到開發團隊中 為甲方和合同管理員制定敏捷承包或分包的培訓和認證課程
使大家在工作時能夠擁抱這些概念
II 主要研究成果
因為對於大多數調查過的組織來說敏捷方法是一種全新的商業模式
敏捷方法最適合用於明確的業務用例
在此前提下實施最大的障礙無非就是向新人解釋方法論的用法 當你轉用敏捷方法時最主要的是要改變管理原則
在過渡時期 你需要制定策略 落實計劃 調整架構 培訓員工 訓練管理人員 還需要運行敏捷試點項目 找到如何在你的組織環境 組織商業目標 組織流程和組織歷史背景下運行敏捷項目的最佳辦法 某些類型的軟件開發項目可能不適用敏捷方法
前文白皮書中曾經提到 那些安全和安保項目可能並不太適用敏捷方法 而適用於其他同樣輕量級的方法(比如RUP TSP等等) 因為這些項目會涉及到一些認證資質 另外 如果不解決外包問題就難以在一個采購環境中使用敏捷方法 因為不容易界定任務是否實際完成了 另外 優秀的敏捷專家能幫你做出決策 找出適用的方法 時機和理由 以及對客戶(或用戶)帶來的價值 由於組織和流程不匹配
缺少項目管理規范 一定規模的敏捷項目一直難以運作 很難處理組與組之間的控制權沖突 為了避免這些問題 我們推薦單一的工程原則 該原則聚攏受到影響的小組 探索真正的跨學科團隊的概念 時刻記得通過敏捷思想改進流程 充分利用那些傳統項目管理規范(比如項目管理協會在知識體系中[PMBOK] 所提倡的那些規范) 在這種情況下 優秀的管理分析師所擁有的敏捷 過程改進以及項目管理的技能 知識和能力會帶來一定的幫助 如果他具備你所經營行業和應用領域的相關經驗就能帶來更加顯著的幫助了 在當前的競爭格局下
轉用敏捷方法通常很有意義 主要有三點原因 首先 你可以使用這一套方法論去趕超你的競爭對手 他們極有可能已經准備使用敏捷方法了 第二 你可以使用敏捷方法吸引人才 因為高效的人才希望自己的工作環境能夠使用到最新 最好的技術 第三個也是最後一個原因 你可以向客戶展示你使用的敏捷技術 向他們說明這就是他們所希望采用的最好的技術
你可能想要了解更多關於敏捷的信息
自動化
指揮控制
金融
國防
信息技術
醫療
移動應用
軟件工具
通信
電子商務
From:http://tw.wingwit.com/Article/program/Web/201405/30795.html