敏捷開發的6個實戰經驗
在大型企業中經常是各種軟體開發模式混用,一些採用敏捷開發,一些則是採用傳統的瀑布式或RUP(統一軟體開發過程)。敏捷開發,相對傳統軟體開發模式,它主要是針對快速變化的需求,不斷優化管理流程,最終推出優質軟體。
原文作者Ulf Eriksson,是一家線上問題跟蹤軟體公司的創始人之一,他是敏捷開發的忠實粉絲,已經進行了多年敏捷開發的實踐。下面內容主要是作者根據自己多年經歷進行的經驗總結。
1. 快速迭代
相對那種半年一次的大版本釋出來說,小版本的需求、開發和測試更加簡單快速。一些公司,一年僅釋出僅2~3個版本,釋出流程緩慢,它們仍採用瀑布開發模式,更嚴重的是對敏捷開發模式存在誤解。
由一年釋出2個版本轉到一個月釋出2個版本,這也不太可能。但是現在來看,快速迭代已經成為事實標準,關鍵是要比目前的版本釋出速度更快一些。
快速迭代,可以逼迫團隊不斷優化流程、提升工作效率,不要在無足輕重的事情上浪費時間。如果離deadline還有6個月,那麼整個工作節奏必然悠哉。如果每月釋出一個版本,那麼較以前效率必然會更高。如果釋出週期過長,導致無法儘快發現使用者需求,進而無法及時改進產品。
2. 讓測試人員和開發者參與需求討論
需求討論以研討組的形式展開最有效率。研討組,需要包括測試人員和開發者,這樣可以更加輕鬆定義可測試的需求,將需求分組並確定優先順序。
同時,該種方式也可以充分利用團隊成員間的互補特性。如此確定的需求往往比開需求討論大會的形式效率更高,大家更活躍,參與感更強。
確定需求時,不要過度盯在細節上。需求報告過於詳細,就是一種不敏捷的習慣,還浪費大家的時間。當然,不能錯過好點子,但就是不要太細,因為專案真正實施起來時需求將會產生很大的變動。
3. 編寫可測試的需求文件
開始就要用“使用者故事”(User Story)的方法來編寫需求文件。這種方法,可以讓我們將注意力放在需求上,而不是解決方法和實施技術上。過早的提及技術實施方案,會降低對需求的注意力。
規劃業務需求,可以採用“3W模板”,也就是:
- 誰(Who)
- 是什麼(What)
- 為什麼(Why)
上面的3W實際上就是描述了相關利益者是誰,他們想要什麼,他們為什麼有這種需求。下面舉一例子進行說明:
誰(Who)
|
是什麼(What)
|
為什麼(Why)
|
使用者 | 希望藉助一個應用程式在不同伺服器間傳輸檔案 | 為了儲存專案資料 |
為了更加接近“使用者故事”,我們可以改寫為:
誰(Who)
|
是什麼(What)
|
為什麼(Why)
|
消費者/使用者 | 想將歸檔過程數字化 | 為了增強溝通,提高分享效率 |
敏捷專案中編寫使用者故事有一個常用模板:作為一名[使用者型別],我想要[需求],以便於[原因]。應用到這個例子,就是:作為一名使用者,我想要將歸檔程式數字化,以便於增強溝通、提高分享效率。
多數情況下,需求內容需要更加充實和詳細,這一步要放到後面做,開始不要這樣。使用者故事的方法有時會因過於簡短、不斷重複而受到批評。這裡我們必須明白:需求文件不是散文或詩歌,應該清晰、簡明地描述使用者需求;需求文件的重點也在於此,不要管形式多變或內容是否重複這樣的問題。
4. 多溝通,儘量減少文件
任何專案中,溝通都是一個常見的問題。好的溝通,是敏捷開發的先決條件。在圈子裡面混得越久,越會強調良好高效的溝通的重要性。
團隊要確保日常的交流,面對面溝通比郵件強得多。
敏捷開發鼓勵日常的協調會議和碰頭會,5~7人蔘與的會議儘量控制在10分鐘內。碰頭時,要過一遍昨天完成了什麼,今天要做什麼,哪些問題仍待討論。可以用Burndown Chart(燃盡圖)來形象展示工作進度。每次迭代的時候也都要開一個計劃會議和評審會議,一般需要的時間可能會長些,比如半天。這些會議的目的就是對工作查缺補漏。
評審會議很重要,傳統開發模式往往略過該環節,導致一些錯誤做法不斷重複,好的做法無法推廣。
開會時,可以將原先的分組打散,讓整個團隊都參與到專案的需求討論和測試中來,這樣可以突出成員個人,讓大家更樂意參與。
5. 做好產品原型
建議使用草圖和模型來闡明使用者介面。並不是所有人都可以理解一份複雜的文件,但人人都會看圖。
一個常見的問題是軟體新的功能與使用者想要的不一致。為了避免這一問題,可以模擬真實操作,改進模擬操作過程中難以理解和不清楚的操作行為。
6. 及早考慮測試
及早地考慮測試在敏捷開發中很重要。傳統的軟體開發,測試用例很晚才開始寫,這導致過晚發現需求中存在的問題,使得改進成本過高。較早地開始編寫測試用例,當需求完成時,可以接受的測試用例也基本一塊完成了。
敏捷開發中一個常見問題就是開發者沒有對已有的程式碼庫進行充分的迴歸測試。迭代週期很短,從開始到交付就是4周的時間,這樣可以對迭代的設計、實現和底層測試一塊進行迴歸測試。
一系列迭代之後,可以只針對測試活動再補充一個迭代。這個迭代可以將重點放在系統測試、與其他系統的整合度、效能等方面。敏捷開發過程中,可能會導致過少的測試文件。如果迭代週期為1個月左右,可以不必對測試文件過於要求,但要制定好測試策略。
最後
可能大多數公司或團隊還沒有開始嘗試敏捷開發,不過可以開始從點滴做起,比如開碰頭會、為專案管理採用一個更加高效的管理工具等等。最後,希望上面的建議能夠為大家的軟體開發管理帶來幫助。
相關文章
- 敏捷實踐經驗分享,企業如何在敏捷開發中實施DoD敏捷
- 「Vue實戰」武裝你的專案 - 開發經驗分享Vue
- 一個前端碼農的 Flutter 實戰經驗前端Flutter
- 開發者分享在多個區域同步發行一款產品的實戰經驗
- 6年開發PHP經驗,求go職位一個base深圳PHPGo
- Java學習過程中實戰開發經驗重要嗎?Java
- 開發經理 VS 敏捷專家敏捷
- Serverless 應用開發的 7 個經驗心得Server
- 敏捷開發過程中易產生安全問題的6個習慣敏捷
- 《Tsuro》實戰分享:移動VR遊戲開發經驗與教訓VR遊戲開發
- 開發經理 VS 敏捷專家(下)敏捷
- 敏捷開發|私藏的3個敏捷專案管理工具!敏捷專案管理
- Elasticsearch 實戰經驗總結Elasticsearch
- 敏捷個人-做好一個開發者敏捷
- 經驗分享:在金融企業中實施領域驅動設計的敏捷實踐 | 敏捷聯盟敏捷
- SAFe敏捷框架下的工具,實現規模化敏捷開發敏捷框架
- Scrum敏捷開發方法實踐Scrum敏捷
- Android 隨筆—— ConstraintLayout 實戰經驗AndroidAI
- px、em和rem實戰經驗REM
- PICO & Unity VR實戰 經驗(1)UnityVR
- 想入職阿里的Java開發者必看,阿里巴巴面試官實戰經驗分享!阿里Java面試
- 6條經過驗證的創業經驗分享創業
- Excel 匯入的開發經驗Excel
- 如何成為一個出色的敏捷開發者?敏捷
- 敏捷開發大家談(五)--敏捷開發的設計原則敏捷
- 敏捷開發敏捷
- 遊戲開發經驗談(二):對戰類全球服遊戲的設計與實現遊戲開發
- 騰訊敏捷之道,實施敏捷開發,看我就夠了敏捷
- 敏捷開發的那些事敏捷
- ReactNative開發的一些經驗React
- PagerDuty的API開發經驗分享 – IncrementAPIREM
- 雲控系統的玩法和實戰經驗分享
- 創業中如何實現敏捷開發創業敏捷
- 一個破 1K Stars 的 side project 開發經驗談IDEProject
- 分享 15 個 Vue3 全家桶開發的避坑經驗Vue
- 敏捷開發框架敏捷框架
- 華為敏捷 DevOps 實踐:產品經理如何開好敏捷回顧會議敏捷dev
- 華為敏捷DevOps實踐:產品經理如何開好敏捷回顧會議敏捷dev
- 直播預告丨開源SDN互通實戰演示與經驗分享