這是《落葉》文集里第?188?片落葉锄奢,希望你能喜歡,不為別的剧腻,只為這份堅(jiān)持拘央。
【背景】
昨天最后強(qiáng)調(diào)了一點(diǎn),敏捷研發(fā)模式的引入一定是基于現(xiàn)有流程存在問(wèn)題的基礎(chǔ)之上书在,不能為了敏捷而敏捷灰伟,要就具體問(wèn)題分析,如果只有引入敏捷才能解決儒旬,那再引入栏账。否則,不要盲目引入敏捷栈源。所以今天在針對(duì)一些同學(xué)的疑問(wèn)說(shuō)一說(shuō)為什么敏捷不是萬(wàn)能的挡爵。
【你問(wèn)】
為什么敏捷不是萬(wàn)能的?
【我答】
在實(shí)施敏捷的過(guò)程中甚垦,我們遇到過(guò)一些問(wèn)題茶鹃,并找到了解決方案,但還有一些問(wèn)題艰亮,我們沒有找到解決方案闭翩,今天就列舉這些,來(lái)從側(cè)面說(shuō)明一點(diǎn):敏捷不是萬(wàn)能的迄埃。
【問(wèn)題1】:開發(fā)工程師對(duì)自動(dòng)化測(cè)試的認(rèn)知和理解比較粗淺男杈,所以在做架構(gòu)設(shè)計(jì)和代碼實(shí)現(xiàn)時(shí)并沒有考慮如何有效地支持自動(dòng)化測(cè)試框架。
【分析1】:高效的敏捷團(tuán)隊(duì)離不開自動(dòng)化測(cè)試框架的支撐:持續(xù)集成的自動(dòng)構(gòu)建環(huán)境调俘,自動(dòng)執(zhí)行的 BVT 腳本伶棒,用于版本回歸的自動(dòng)化腳本,等等這些都是敏捷流程中不可或缺的一部分彩库。如果前期設(shè)計(jì)階段沒有考慮進(jìn)去肤无,因?yàn)榇a結(jié)構(gòu)的復(fù)雜度,過(guò)程中很難對(duì)架構(gòu)進(jìn)行調(diào)整骇钦,所以只能在自動(dòng)化方案的設(shè)計(jì)階段宛渐,考慮能否按模塊去做一些相對(duì)簡(jiǎn)單的改動(dòng),比如針對(duì)一些非標(biāo)準(zhǔn)控件去增加 ID 屬性,從而便于自動(dòng)化腳本能夠識(shí)別到它們窥翩。
【問(wèn)題2】:團(tuán)隊(duì)中的測(cè)試工程師业岁,黑盒測(cè)試經(jīng)驗(yàn)豐富,但技術(shù)是短板寇蚊,短期內(nèi)很難基于代碼去做單元測(cè)試或白盒測(cè)試笔时。
【分析2】:這是在產(chǎn)品開發(fā)初期,對(duì)測(cè)試工程師的要求相對(duì)單一導(dǎo)致的仗岸,如今只能逐步引導(dǎo)部分優(yōu)秀的黑盒測(cè)試工程師轉(zhuǎn)型允耿,或者是補(bǔ)充新鮮的技術(shù)類測(cè)試工程師資源,無(wú)論是哪種方案扒怖,都不是短期能立竿見影的较锡,學(xué)習(xí)、提升盗痒、熟悉蚂蕴、磨合。俯邓。掂墓。都是需要時(shí)間的。
【問(wèn)題3】:產(chǎn)品的功能模塊之間看成,耦合度和依賴性比較大君编,在做一個(gè)規(guī)模較大的需求時(shí),通常需要 DB川慌、Server吃嘿、Page 和 Client 同時(shí)支持,所以在 User Story 的細(xì)化梦重、Task 拆分兑燥、以及不同的 Scrum Team 之間的協(xié)作上有很大難度。
【分析3】:首先不可能為了敏捷而去大幅度調(diào)整產(chǎn)品代碼架構(gòu)琴拧,這個(gè)只能在合適的時(shí)期降瞳,逐次分批地進(jìn)行調(diào)整。其次蚓胸,在 User Story 的細(xì)化和 Task 的拆分上盡量降低耦合性挣饥。如果 DB、Server沛膳、Page 和 Client 都是由不同的 Scrum Team 在承擔(dān)任務(wù)扔枫,那就需要通過(guò) Scrum of Scrum 的形式去管理項(xiàng)目,從而保證所有模塊在每個(gè)迭代的步調(diào)是一致的锹安。
【問(wèn)題4】:雖然 Major Release 能做到在一個(gè) Release 周期內(nèi)的每個(gè)迭代都能提交可發(fā)布版本短荐,但運(yùn)維團(tuán)隊(duì)的部署節(jié)奏還跟不上倚舀,所以就存在產(chǎn)品研發(fā)團(tuán)隊(duì)即使在1個(gè)季度里提交了3 個(gè)可發(fā)布的迭代版本,但運(yùn)維團(tuán)隊(duì)卻只能發(fā)布其最后1個(gè) 忍宋。
【分析4】:因?yàn)楫a(chǎn)品的復(fù)雜度決定了 Deployment 的步驟繁多痕貌,而且不同組件之間還有 Hard Dependency 和 Feature Dependency,同時(shí)糠排,線上部署也還沒有做到完全的自動(dòng)化舵稠,上線成本較高,這也是在敏捷實(shí)施過(guò)程中一個(gè)暫時(shí)不可調(diào)和的矛盾乳讥。
【問(wèn)題5】:線上產(chǎn)品的小版本并存和定制版本太多,而且自動(dòng)化測(cè)試覆蓋率不高廓俭,導(dǎo)致在安全問(wèn)題修復(fù)和 OS/Browser 版本更新時(shí)云石,Scrum Team 可能需要在一個(gè)迭代周期內(nèi)同時(shí)在很多 Branch 上進(jìn)行代碼合并和大量的手工回歸測(cè)試,SM 也很難保證團(tuán)隊(duì)在一個(gè)迭代周期里只Focus 在當(dāng)前 Sprint 的計(jì)劃任務(wù)上研乒。
【分析5】:提高持續(xù)集成測(cè)試和自動(dòng)化測(cè)試覆蓋率汹忠,同時(shí)要盡可能地說(shuō)服客戶盡快都升級(jí)到最新的版本,逐步減少多版本并存的現(xiàn)象雹熬。
《測(cè)試路上你問(wèn)我答》里的?Q&A 46宽菜,如果是你要的,甚好竿报!如果不是铅乡,你問(wèn),我答烈菌!
作者簡(jiǎn)介:14 年測(cè)試 + 11 年項(xiàng)目管理 + 11 年團(tuán)隊(duì)管理 = 一個(gè)測(cè)試?yán)媳?/p>