搞個產(chǎn)品研發(fā),還能搞出債務(wù)問題?

Kris_3zzz
0 評論 2479 瀏覽 2 收藏 6 分鐘
🔗 产品经理的核心价值是能够准确发现和满足用户需求,把用户需求转化为产品功能,并协调资源推动落地,创造商业价值

在產(chǎn)品研發(fā)過程中,我們常常只關(guān)注功能的實(shí)現(xiàn),卻忽略了隱藏在背后的“債務(wù)”問題。測試不充分會積累測試債務(wù),代碼結(jié)構(gòu)不健壯會形成開發(fā)債務(wù),這些問題隨著時間推移會越來越難以解決。本文將探討如何通過測試驅(qū)動研發(fā)(TDD)這種敏捷開發(fā)思想,從一開始就解決這些問題,避免債務(wù)的積累。

一、產(chǎn)品研發(fā)的隱形債務(wù),看不見≠不存在

如果只是研發(fā)出了產(chǎn)品功能,但是對其測試不充分,這個功能就附著了測試債務(wù),并且隨著時間推移,測試債務(wù)會越隱藏越深,償還成本會越來越高。

同理,如果只是研發(fā)出了產(chǎn)品,但是代碼結(jié)構(gòu)不健壯(比如:代碼邏輯繁雜不精簡高效、跨模塊耦合過高),這個產(chǎn)品也就附著了開發(fā)債務(wù),隨著產(chǎn)品架構(gòu)的發(fā)展,開發(fā)債務(wù)越來越高,搖搖欲墜的代碼如屎山一般,每次產(chǎn)品的進(jìn)一步發(fā)展你都會被惡心一次。這個問題曾經(jīng)進(jìn)行過思考,在《換個視角,再看互聯(lián)網(wǎng)產(chǎn)品研發(fā)效率!》中討論了技術(shù)架構(gòu)和產(chǎn)品架構(gòu)的雙螺旋發(fā)展關(guān)系。

二、打開新思路,TDD測試驅(qū)動研發(fā)

面對測試債務(wù),測試驅(qū)動研發(fā)(Test-DrivenDevelopment,TDD)是一種新的思路以預(yù)防這種情況的發(fā)生。TDD是一種敏捷開發(fā)思想,既然所有的功能點(diǎn)都需要測試,而且是反復(fù)測試,為什么不把測試工作提到最前面并自動化呢?

TDD要求在寫任何功能代碼之前,先寫好它的測試代碼,以保證所有的功能點(diǎn)都被自動化測試所覆蓋。從而規(guī)避了【產(chǎn)品–>開發(fā)–>測試】這種低效的線性路徑以及大概率會出現(xiàn)的信息傳輸漏斗,導(dǎo)致功能到代碼到測試的不斷衰減,最終交付質(zhì)量堪憂、未來again時的巨大難題。

TDD正是從一開始就解決測試債務(wù)的方法,當(dāng)產(chǎn)品變得很龐大的時候,TDD依然可以快速有效地檢測各個功能點(diǎn),這對于沒有運(yùn)用TDD的產(chǎn)品來說是一項(xiàng)不可能完成的任務(wù)。從研發(fā)驅(qū)動測試到測試驅(qū)動研發(fā),是一個巨大的轉(zhuǎn)變,其中涉及研發(fā)流程、測試人員的編程能力、研發(fā)平臺對自動化測試的支持程度等環(huán)節(jié)。

不過,在測試驅(qū)動研發(fā)出現(xiàn)之前,那么多研發(fā)驅(qū)動測試的產(chǎn)品也獲得了成功,所有這些因素都影響了TDD的普及。

三、TDD的根本是什么?

話說至此,TDD測試驅(qū)動研發(fā)中的“Driven”一詞值得思量,邏輯關(guān)系上測試始終是為研發(fā)服務(wù),而非代碼為測試而生。與其說是測試“驅(qū)動”研發(fā),不如說測試“可視化”研發(fā)、測試“螺旋化”研發(fā),那么可視化/螺旋化在于什么呢?

研發(fā)服務(wù)于產(chǎn)品功能,產(chǎn)品功能服務(wù)于業(yè)務(wù)/用戶需求,測試服務(wù)于研發(fā)并有助于研發(fā)。測試為綱,更是一種思想,使得研發(fā)過程時刻考慮到代碼邏輯的可視化、可測試化、可自動化復(fù)測,從而促進(jìn)提升代碼質(zhì)量、可檢測性、可持續(xù)性。測試代碼的領(lǐng)先搭建,有一個現(xiàn)實(shí)的例子可以對比。

1??一棟大樓,是一個產(chǎn)品——滿足于市場(商業(yè)、住宅)需求

2??建筑設(shè)計圖紙(土建/結(jié)構(gòu)/裝修)——可以算是產(chǎn)品設(shè)計方案

3??建筑主體、裝修裝飾——對應(yīng)代碼主體的后端和前端

4??施工自檢/監(jiān)理監(jiān)察/三方質(zhì)檢——算是測試

在建筑施工管理過程中,本位上來看監(jiān)理是在施工工序之后進(jìn)行的,但實(shí)際上監(jiān)理的大綱方案、監(jiān)理細(xì)則,其實(shí)在產(chǎn)品設(shè)計方案出來之后,就已經(jīng)在展開了。同樣的,施工(研發(fā))過程也會根據(jù)監(jiān)理的監(jiān)察原則,在指定的關(guān)鍵點(diǎn)做好檢驗(yàn)預(yù)留。

由此也看出來二者并非嚴(yán)格的先后關(guān)系,更像是一種螺旋纏繞關(guān)系,監(jiān)理/測試為綱、為鏡,對施工/研發(fā)進(jìn)行約束和檢驗(yàn),這是一種典型的共建、共生。

如果你的產(chǎn)品總是出現(xiàn)無法定位的奇怪問題,那么應(yīng)該要考慮一下轉(zhuǎn)用TDD了,當(dāng)然,最終的決策權(quán)在測試經(jīng)理或研發(fā)經(jīng)理,更重要的是需要團(tuán)隊成員接受這種思想并在項(xiàng)目中進(jìn)行踐行。

作者:Kris_3zzz, 公眾號:iSpiik產(chǎn)品說

本文由 @Kris_3zzz 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載

題圖來自 Unsplash,基于CC0協(xié)議

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!
专题
17101人已学习16篇文章
随着数字化转型的发展,企业逐渐向数字化迈进,帮助企业有效解决经营性问题。本专题的文章分享了如何做企业数字化转型。
专题
12993人已学习12篇文章
要想判断一个行业的趋势,就要做好行业分析。本专题的文章分享了如何撰写行业分析报告。
专题
11611人已学习12篇文章
任何理论都有它的局限性和前提条件,没有一种方法论是永远有效的。品牌方法论一直处在变化阶段,它随着时代发展的变化而变化。本专题的文章分享了品牌方法论。
专题
18104人已学习15篇文章
语音交互是基于语音输入的新一代交互模式,通过说话就可以得到反馈结果。本专题的文章分享了语音交互的入门指南。