自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

敏捷開發(fā)之研發(fā)流程

開發(fā) 前端
在傳統(tǒng)的軟件研發(fā)模型中,從提出需求到最后交付,時間周期較長。瀑布模型遵循需求分析、設計、編碼、集成、測試、維護六個步驟進行。一旦需求發(fā)生變化,不僅浪費前期投入,還不易于調(diào)整。

[[414483]]

本文轉(zhuǎn)載自微信公眾號「問其」,作者陳少文 。轉(zhuǎn)載本文請聯(lián)系問其公眾號。

1. 敏捷開發(fā)是什么

在傳統(tǒng)的軟件研發(fā)模型中,從提出需求到最后交付,時間周期較長。瀑布模型遵循需求分析、設計、編碼、集成、測試、維護六個步驟進行。一旦需求發(fā)生變化,不僅浪費前期投入,還不易于調(diào)整。

敏捷開發(fā)是一種應對快速變化的需求的軟件開發(fā)能力。特別是互聯(lián)網(wǎng)軟件,前期設計不可能十分完美,在研發(fā)的過程中,會不斷地調(diào)整、優(yōu)化。

敏捷開發(fā)是面向交付、面向協(xié)作的。相較于主張完善的設計、文檔、流程規(guī)范,敏捷開發(fā)強調(diào)的是持續(xù)交付,讓目標更早得到驗收,讓缺陷更早暴露。

在實踐過程中,我們需要保持 1-2 周的迭代周期。過長的迭代周期,排期評估通常是不準確的,容易導致延期。同時,較長的迭代周期,意味著復雜的功能。一次迭代將復雜功能引入主版本,不是一個好主意。通過拆分功能,能有效降低問題的復雜度,提高軟件質(zhì)量。

另一方面,需求方、設計方、開發(fā)方還需要時刻了解進度。1-2 周的迭代,提供的是一個短期的目標,無法具體到每天的工作內(nèi)容。建議,負責人每天能組織一次站立晨會,相關(guān)人員能花 2 分鐘匯報進度,反饋遇到的問題。會后,主要負責人,統(tǒng)一協(xié)商解決問題,以保持項目推進。

針對這種快速迭代、持續(xù)交付的特點,我們需要尋找合適的分支開發(fā)模型。如果是幾個人的項目團隊,我推薦的是主干集成、分支發(fā)布的開發(fā)模式。版本管理軟件推薦使用 Git,如果使用 SVN,建議轉(zhuǎn)向 Git。這里有一篇博客,可以參考:從 GitLab 推送代碼到 SVN 倉庫[1]。

2. 特征開發(fā),主干集成,分支發(fā)布

  • 特征開發(fā),就是每個小的功能,都新建一個特征分支進行開發(fā)?;谔卣鏖_發(fā),能夠保障各個特征的獨立性,允許并行開發(fā)特征。同時,未完成的特征,也不會影響主干分支。

[[414485]]

  • 主干集成,就是盡可能早地將代碼合并到主分支上,在主分支上進行持續(xù)集成。

假設每個迭代有 N 個功能,如果這些功能在同一天被合并到主干分支,交叉驗證這些功能是否符合預期,需要的工作量是 N ^ 2 級別。但是,如果這些功能,開發(fā)自測完畢后,立即發(fā)起 MR/PR 流程,合并到主干分支。N 個功能,合并成本會下降到 N 級別。

盡可能早地發(fā)起合并請求,能將自己的修改,盡快地告知其他開發(fā)者。在開發(fā)過程中,其他開發(fā)者,就能解決大部分的沖突。

  • 分支發(fā)布,就是每次發(fā)布都新建一個分支,而不是發(fā)布主干分支。

假設現(xiàn)在需要發(fā)行 2.1 版本。首先,基于主干分支,創(chuàng)建發(fā)布分支 2.1,在 2.1 分支上進行測試,并將缺陷回歸到主干分支。驗收通過之后,在 2.1 分支上打上 Tag 2.1.0,對外進行發(fā)布。

發(fā)布之后,如果 Tag 2.1.0 版本有缺陷,需要在 2.1 分支上進行修復,然后回歸缺陷到主干分支,打上 Tag 2.1.1,繼續(xù)發(fā)行版本。

分支發(fā)布的好處,就是讓發(fā)布的版本可以追溯,允許開發(fā)者對發(fā)行版本進行修復,持續(xù)發(fā)布。另一方面,發(fā)布分支不會影響新特性的開發(fā),也不會被主干集成干擾。

3. 測試決定了敏捷開發(fā)的速度

沒有質(zhì)量的交付是沒有價值的。

敏捷開發(fā)過程中,測試是持續(xù)集成中的重要環(huán)節(jié)。測試既是目標,驅(qū)動開發(fā)人員去達成,也是交付的憑證,是給項目質(zhì)量的背書。

測試應該整合到研發(fā)流程,貫穿整個項目過程。單元測試,API 測試,集成測試,功能測試,不同的測試階段可以發(fā)現(xiàn)著不同粒度的問題。

在實踐過程中,我們鼓勵將測試左移。參照測試金字塔,盡可能多地寫單元測試,能夠獲得較好的效果。在團隊中,測試/開發(fā)比通常很低。由開發(fā)人員寫單元測試,測試人員進行集成測試、功能測試比較合理。

在 MR/PR 流程中,添加 CI 流水線,自動執(zhí)行測試用例,輔助驗證功能,也是事半功倍的實踐。

參考資料

[1]從 GitLab 推送代碼到 SVN 倉庫: https://www.chenshaowen.com/blog/some-common-scripts-in-ci.html#3-從-GitLab-推送代碼到-SVN-倉庫

 

責任編輯:武曉燕 來源: 問其
相關(guān)推薦

2019-12-06 11:14:57

Git開發(fā)系統(tǒng)

2024-09-06 10:25:32

人工智能ETL微服務

2009-05-11 10:48:24

敏捷開發(fā)Agile架構(gòu)

2009-07-16 09:52:00

Scrum流程

2011-01-14 08:35:03

iPhoneiPad敏捷設計流程

2020-10-22 10:34:04

APICloud開發(fā)平臺

2009-03-24 00:04:35

敏捷開發(fā)源代碼分析軟件質(zhì)量

2023-09-04 15:31:54

軟件開發(fā)敏捷開發(fā)工具

2011-10-26 09:19:41

移動Web

2014-08-07 10:09:51

微軟敏捷開發(fā)

2010-11-16 09:23:13

敏捷開發(fā)Visual Stud

2011-08-10 08:58:14

項目管理

2019-11-29 10:15:52

開發(fā)技能代碼

2013-04-22 12:58:14

TechExcel敏捷研發(fā)

2010-09-10 09:35:59

Visual Stud

2009-07-16 16:01:54

WebWork敏捷開發(fā)

2013-10-29 11:50:11

2017-11-29 15:38:45

B端交互設計

2011-03-27 23:10:37

ibmdw敏捷開發(fā)
點贊
收藏

51CTO技術(shù)棧公眾號