|
本文關(guān)鍵點(diǎn):
敏捷軟件開(kāi)發(fā)和 DevOps 除了強(qiáng)調(diào)用戶(hù)體驗(yàn),還讓我們關(guān)注產(chǎn)品背后的人。但是這些過(guò)程重要嗎? 或者只是為了證明方法是不是正確?倫敦 P3X(或People, Product, and Process Exchange )非常關(guān)注這三個(gè) P 的交集,也許最后一個(gè) X 是最有趣的,因?yàn)樗哿烁嗟目s寫(xiě),比如測(cè)試驅(qū)動(dòng)開(kāi)發(fā) (TDD)、行為驅(qū)動(dòng)開(kāi)發(fā) (BDD)、持續(xù)交付 (CD)、領(lǐng)域驅(qū)動(dòng)開(kāi)發(fā) (DDD) 等等,以幫助團(tuán)隊(duì)審視如何系統(tǒng)性地建立更好的系統(tǒng)。 Janet Gregory 是敏捷測(cè)試協(xié)會(huì)的聯(lián)合創(chuàng)始人,近期她完成了一場(chǎng)主題演講,主題是關(guān)于追求軟件質(zhì)量的過(guò)程,在演講結(jié)尾,她問(wèn)大家是否感受到敏捷團(tuán)隊(duì)的魔力,如果能感受到他們?cè)趥鬟f質(zhì)量意識(shí),舉手示意。結(jié)果整個(gè)房間里,大概只有幾個(gè)敏捷實(shí)踐者舉起了手。 自敏捷宣言簽署以來(lái),已經(jīng)走過(guò)了這 17 個(gè)年頭,我們是怎樣過(guò)來(lái)的,為什么仍有一些人看它如鏡花水月一般?也許我們?nèi)匀粵](méi)有進(jìn)行正確的交流,也許我們沒(méi)有和合適的人在一起協(xié)作,或者我們的過(guò)程中根本就不包括交流。 盡管這份宣言將個(gè)人和交互置于流程和工具之上,但流程中的某些內(nèi)容也是以人為本的。也許通過(guò)審視我們的過(guò)程,我們可以更好地響應(yīng)變化,增加協(xié)作,減少 bug,所有這些都是為了盡早和經(jīng)常地滿(mǎn)足客戶(hù)。Gregory 拿出一個(gè)世代相傳的質(zhì)量方法,將其應(yīng)用于現(xiàn)代敏捷軟件團(tuán)隊(duì),希望每個(gè)人都能對(duì)發(fā)布的內(nèi)容有主人翁的精神。 究竟什么是“質(zhì)量”Gregory 指出,必須先為質(zhì)量給出主觀定義。她引用David A. Garvin在 1984 年提出的“定義質(zhì)量的五種方法”,以這種方法開(kāi)始為質(zhì)量下定義:
Gregory 將每個(gè)類(lèi)別的重要性進(jìn)行了可視化,并將其應(yīng)用到現(xiàn)代敏捷環(huán)境中。如下圖所示,從最必要的中心向外輻射。 基于制造的質(zhì)量首先,有件事得順利開(kāi)展下去,因此基于制造的質(zhì)量必須在第一位。 Gregory 說(shuō),這與測(cè)試驅(qū)動(dòng)設(shè)計(jì)有關(guān),因?yàn)椤巴ㄟ^(guò)創(chuàng)建清晰的代碼,可以顯著減少返工”。 讓我們第一次就把事情做對(duì),使我們不會(huì)有其他的缺陷,可以滿(mǎn)懷信心地發(fā)布。 TDD,這是一個(gè)在軟件測(cè)試之前先設(shè)計(jì)自動(dòng)化測(cè)試的實(shí)踐,它倒推迫使軟件解耦,是制造質(zhì)量的重要組成部分。Gregory 引用了一項(xiàng)研究成果,該研究指出,與不進(jìn)行 TDD 的團(tuán)隊(duì)相比,進(jìn)行 TDD 的團(tuán)隊(duì)會(huì)少 60% 到 90% 的缺陷,但是 TDD 平均用時(shí)要多花 15% 到 30%。 許多團(tuán)隊(duì)都在面對(duì)這種質(zhì)量和速度的權(quán)衡。 “也許 PO(產(chǎn)品負(fù)責(zé)人) 說(shuō),與提高質(zhì)量相比,我寧愿你加入新功能。是誰(shuí),正在做出這些決定?” Gregory 說(shuō),除了 TDD,基于制造的流程還包括:
最后,她說(shuō),“像 DevOps 之類(lèi)的實(shí)踐是在設(shè)法在向客戶(hù)發(fā)布產(chǎn)品時(shí)降低給客戶(hù)帶來(lái)的風(fēng)險(xiǎn)?!?/p> 基于產(chǎn)品的質(zhì)量簡(jiǎn)單來(lái)說(shuō),如果基于制造的質(zhì)量是為了確保某些事正常開(kāi)展,那么基于產(chǎn)品的質(zhì)量則是為了確保產(chǎn)品按預(yù)期正常工作。例如,我們希望付錢(qián)追求更高的品質(zhì),但如果雖然某樣?xùn)|西壞了,但它的成本很低甚至為零,我們也會(huì)更寬容。如果有例外,那可能是我們通常期望的又能免費(fèi)而又能工作良好的應(yīng)用程序。 Gregory 指出,什么是基于產(chǎn)品的質(zhì)量,這取決于目標(biāo)受眾。會(huì)計(jì)人員會(huì)希望鍵盤(pán)托盤(pán)能從當(dāng)今大多數(shù)筆記本電腦中分離出來(lái)。 這其實(shí)是在問(wèn)這樣的問(wèn)題:
這包括:
基于用戶(hù)的質(zhì)量對(duì)于這個(gè)觀點(diǎn),存在的分歧最大。按照 Gregory 的說(shuō)法是:“人各有所好,不同的人有不同的選擇。他們有不同的需求。如果我們想讓顧客選擇,就讓顧客滿(mǎn)意?!?/p> 但別忘了,她接著說(shuō),“我們假設(shè)了一個(gè)大前提,那就是消費(fèi)者掌握足夠的信息,他們可以做出一個(gè)合格的決定。” 她提到一款曾經(jīng)使用過(guò)的應(yīng)用,自己覺(jué)得它非常不友好。事實(shí)證明,用戶(hù)喜歡它的原因,是因?yàn)樗耆裱怂麄兊墓ぷ鞣绞?。她并不在那個(gè)領(lǐng)域工作。所有都是為了滿(mǎn)足特定用戶(hù)的特定用例。 基于價(jià)值的質(zhì)量這很簡(jiǎn)單,這就是人們?cè)敢鉃橹I(mǎi)單的東西。價(jià)值很難判斷,如果不與潛在客戶(hù)交流,基本上不可能做出判斷。 基于價(jià)值的質(zhì)量可以通過(guò)以下幾種方法進(jìn)行評(píng)估:
卓越的質(zhì)量最后是最難以評(píng)估的質(zhì)量——卓越。Gregory 說(shuō),這是因?yàn)榍楦惺亲铍y度量的,這種評(píng)估要把卓越的質(zhì)量與藝術(shù)性、參與度和客戶(hù)忠誠(chéng)度結(jié)合起來(lái)。 我們?nèi)绾味攘寇浖馁|(zhì)量? 總的來(lái)說(shuō),如果您接受 Garvin 的質(zhì)量級(jí)別,那么軟件質(zhì)量的大部分內(nèi)容都很難度量。她引用了Isabel Evans在《軟件質(zhì)量度量》一書(shū)中的說(shuō)法。基于制造的質(zhì)量有很多例子:
你還可以做做用戶(hù)滿(mǎn)意度調(diào)查,以這種形式度量基于用戶(hù)的質(zhì)量。 然而,你無(wú)法真正度量基于產(chǎn)品的、基于價(jià)值的或卓越的質(zhì)量。但是,您可以討論和評(píng)估質(zhì)量的所有五個(gè)層次。測(cè)試是度量質(zhì)量的重要手段,但 Gregory 提醒說(shuō),產(chǎn)品團(tuán)隊(duì)不能否定在彼此之間、與用戶(hù)以及與競(jìng)爭(zhēng)對(duì)手討論質(zhì)量的價(jià)值。 當(dāng)然,團(tuán)隊(duì)需要在希望避免錯(cuò)誤和追求速度之間找到平衡。 整個(gè)團(tuán)隊(duì)對(duì)質(zhì)量負(fù)責(zé)很清楚的一點(diǎn)是,質(zhì)量保證不僅僅是測(cè)試部門(mén)的責(zé)任,開(kāi)發(fā)人員不能把代碼丟給他們就算了,或者質(zhì)量保證這種叫法本身就有點(diǎn)問(wèn)題。 整個(gè)團(tuán)隊(duì)都在把控質(zhì)量“如果你的組織、你的公司以質(zhì)量為出發(fā)點(diǎn),很可能就會(huì)取得成功,因?yàn)槠渌磺卸己艿轿?。一切都很正常。但是如果你們一開(kāi)始認(rèn)為速度最重要,不關(guān)注質(zhì)量,那么就很有可能長(zhǎng)期進(jìn)行大量的返工,會(huì)出現(xiàn)很多不可維護(hù)的代碼,質(zhì)量將更進(jìn)一步地下降”Gregory 說(shuō)。 但她并沒(méi)有提供一個(gè)追求品質(zhì)的完美秘方。 “不管你用定性的還是定量的,那沒(méi)所謂,但你得問(wèn)問(wèn)自己,你在尋求什么,它能讓你滿(mǎn)懷信心地發(fā)布嗎?”Gregory 說(shuō)。 “度量過(guò)程的質(zhì)量就是度量產(chǎn)品的質(zhì)量嗎?”她引用了《BDD Book 1: Discovery 》的合著者 Seb Rose 的話(huà):“當(dāng)度量成為目標(biāo)時(shí),那么它就不再是好的度量了?!?/p> Gregory 說(shuō):“無(wú)論你如何度量它,它都應(yīng)該引發(fā)一場(chǎng)討論,看看你們到底需要什么?!?/p> 她繼續(xù)說(shuō):“團(tuán)隊(duì)掌控著質(zhì)量,但你們必須考慮得更長(zhǎng)遠(yuǎn)一些。過(guò)程中的質(zhì)量和實(shí)踐中的質(zhì)量。 你的團(tuán)隊(duì)的能力,你如何交付軟件的能力。 她最后說(shuō),在這個(gè)方向上展開(kāi)每次對(duì)話(huà)時(shí),如果大家都從試圖解決問(wèn)題開(kāi)始,那是最好的了。 Gregory 說(shuō):“讓我們將質(zhì)量管理納入我們的流程,并學(xué)會(huì)談?wù)撐覀冏鍪裁??!?/p> 關(guān)于作者Jennifer Riggins目前居住在倫敦,是一名科技故事講述者和作家,在故事里,數(shù)字轉(zhuǎn)型與文化交匯,希望能讓世界變得更美好。你可以在推特上關(guān)注她@jkriggins。 敏捷測(cè)試協(xié)會(huì)的聯(lián)合創(chuàng)始人Janet Gregory花了 14 年的時(shí)間幫助團(tuán)隊(duì)過(guò)渡到敏捷軟件開(kāi)發(fā)環(huán)境,她專(zhuān)門(mén)幫助測(cè)試人員和業(yè)務(wù)人員理解他們是“整個(gè)團(tuán)隊(duì)方法”的一部分角色。 查看英文原文: Who is in Charge of Quality in Software Development |
|
|
來(lái)自: Bladexu的文庫(kù) > 《技術(shù)文摘》