迭代你好,我是沖刺

很多團(tuán)隊(duì)在使用Scrum的時(shí)候,都知道兩到四周為一個(gè)周期,這個(gè)周期叫沖刺;進(jìn)入到?jīng)_刺后,團(tuán)隊(duì)一定會(huì)有人提到“這個(gè)沖刺我們要xxx”、“本迭代還有xxx沒完成”、“這個(gè)sprint還要xxx”——一會(huì)“迭代”,一會(huì)“沖刺”,一會(huì)“sprint”,這些詞到底是不是一個(gè)意思呢?
“迭代”和“沖刺”的定義
按照慣例,先查驗(yàn)身份——我們看看這倆詞的定義。
在維基百科中,迭代(iteration)在軟件開發(fā)領(lǐng)域沒有單獨(dú)的詞條解釋,而是將迭代與增量開發(fā)捆綁到一起,即迭代增量開發(fā)(iterative and incremental development),在敏捷軟件開發(fā)這一詞條中,有一句關(guān)于迭代的介紹:“Iteration, or sprints, are short time frames that typically last from one to four weeks”——即迭代/沖刺都是一個(gè)時(shí)間盒的概念,通常持續(xù)一到四周。
沖刺(sprint)源于Scrum,在最新2020版的Scrum Guide中,對(duì)于沖刺的定義是“Sprints are the heartbeat of Scrum, where ideas are turned into value.They are fixed length events of one month or less to create consistency.”。
通過兩個(gè)定義可以看出,沖刺和迭代大方向上好像確實(shí)沒啥區(qū)別,都是時(shí)間盒的概念,持續(xù)時(shí)間也都差不多,那細(xì)節(jié)方面有沒有啥不同呢?
“迭代”與“沖刺”的區(qū)別
迭代這詞誕生的比較久——20世紀(jì)60年代就已經(jīng)開始出現(xiàn)迭代增量開發(fā)了。最早的迭代增量開發(fā)不是出現(xiàn)在軟件行業(yè),而是航天事業(yè)——美國通過迭代增量的開發(fā)方法,造出了水星太空艙,幫助美國完成了第一次航天載人計(jì)劃。后來迭代增量開發(fā)被應(yīng)用到軟件研發(fā)行業(yè)。
“軟件研發(fā)的每個(gè)迭代都涉及一個(gè)跨職能團(tuán)隊(duì),負(fù)責(zé)所有職能:規(guī)劃、分析、設(shè)計(jì)、編碼、單元測試和驗(yàn)收測試”(Each iteration involves a cross-functional team working in all functions: planning, analysis, design, coding, unit testing, and acceptance testing. ——維基百科),“規(guī)劃、分析、設(shè)計(jì)、編碼、單元測試和驗(yàn)收測試”聽起來是不是很耳熟?是的,這是瀑布模型的內(nèi)容。迭代很像一個(gè)小瀑布,每個(gè)迭代產(chǎn)生一部分產(chǎn)品功能,多個(gè)迭代就可以堆砌成一個(gè)產(chǎn)品。和瀑布不同的是,迭代和迭代之間,可以對(duì)產(chǎn)品做出一定量的調(diào)整,保證產(chǎn)品沿著正確的方向發(fā)展。
沖刺一詞則來源于Scrum,Scrum本意是橄欖球中爭球,Scrum團(tuán)隊(duì)?wèi)?yīng)該像橄欖球游戲中的持球者一樣,為了團(tuán)隊(duì)目標(biāo),朝著一個(gè)方向沖刺。在最新版的Scrum Guide中,能夠查到116處“sprint”,而“iteration”出現(xiàn)的次數(shù)則是0——在Ken Schwaber 和 Jeff Sutherland兩位老爺子看來,沖刺sprint才是Scrum的官方唯一指定時(shí)間盒代名詞。
Scrum中的沖刺由計(jì)劃會(huì)議展開,這點(diǎn)和迭代的規(guī)劃比較像,評(píng)審會(huì)議則相當(dāng)于軟件的一次小的交付。但沖刺和迭代還是略有差別——首先,沖刺中我們提倡測試驅(qū)動(dòng)開發(fā),而不是必須等功能開發(fā)完成,再著手測試工作。
其次,沖刺中每天都會(huì)開每日站會(huì),將一個(gè)大的沖刺分解成多個(gè)小的沖刺,團(tuán)隊(duì)成員通過“昨天做了什么”,“今天要做什么”,“遇到什么阻礙”三個(gè)問題,了解團(tuán)隊(duì)每個(gè)人的工作狀況,以便于共享項(xiàng)目進(jìn)度,早日發(fā)現(xiàn)問題,快速做出調(diào)整應(yīng)對(duì)生產(chǎn),而迭代則沒有每日站會(huì)的相對(duì)的規(guī)定。
最后,沖刺完成后還有回顧會(huì)議,團(tuán)隊(duì)通過回顧這個(gè)迭代哪些做的好,哪些做的不好,可以對(duì)以后迭代做出調(diào)整。以上幾個(gè)點(diǎn)是迭代沒有明確的。
搞混了,沒啥大不了
綜上,嚴(yán)格意義上迭代和沖刺是兩個(gè)概念。
從專業(yè)角度來說,Scrum中應(yīng)該使用沖刺(sprint),而非迭代(iteration),沖刺一詞也會(huì)給團(tuán)隊(duì)成員帶來一種緊張感,促使團(tuán)隊(duì)更好的完成計(jì)劃會(huì)議制定的目標(biāo)。
從非專業(yè)角度來說,只要教練和團(tuán)隊(duì)成員能夠領(lǐng)悟彼此的意思或者能夠做到術(shù)語統(tǒng)一,并且提到“迭代”或“沖刺”的時(shí)候知道對(duì)方說的是什么,把“沖刺”叫成“迭代”也無傷大雅,畢竟大多數(shù)時(shí)候,大家說的都只是一個(gè)時(shí)間盒。
敏捷開發(fā) 軟件開發(fā)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。