剛提測就改需求,我是渣男嗎?
本文轉(zhuǎn)載自微信公眾號「bugstack蟲洞?!梗髡咝「蹈?。轉(zhuǎn)載本文請聯(lián)系bugstack蟲洞棧公眾號。
研發(fā)已經(jīng)討厭我了!
傅哥,我是剛來公司的產(chǎn)品,就是還懂點技術(shù)的產(chǎn)品,因為我以前也是學(xué)的軟件工程專業(yè),但不太喜歡寫代碼就想著做產(chǎn)品吧,指揮別人寫代碼。夢寐以求的想法終于得以實現(xiàn)了
我通過王者輔助、零食投喂、介紹對象的方式終于和研發(fā)打成一片了,但最近他們有點討厭我了。因為我接到了個業(yè)務(wù)老板著急要上線沖量的需求,但因為上線節(jié)奏過于著急從BRP評審到PRD產(chǎn)出已經(jīng)占了大部分時間,到研發(fā)和測試完成上線的排期只能倒排,而且這期間還總是修修改改的補需求,研發(fā)說他的代碼已經(jīng)成屎山了,而我就像那個攪屎棍,臨近提測又來了一杠子!
那,這杠子我不想再當了,我想知道都什么情況讓碼磚兄弟頭大,我盡可能以后繞開,我是一個有良知的好產(chǎn)品!
以上是杜撰的一段,不過也就差念身份證了,基本只要寫代碼的研發(fā),就會遇到各種各樣的產(chǎn)品,但并不是所有產(chǎn)品都了解研發(fā)寫代碼怎么就會遇到這么多問題,因此想結(jié)合這段來講講那些有坑的路上,我們研發(fā)是怎么走的。
那些年踩過的坑
1. 新碼的,著急上
當一個新的需求來不及讓研發(fā)思考、設(shè)計、評審,所預(yù)留卡死的上線時間后,只能是堆人的方式怎么快怎么寫功能,不會有文檔、不會有注釋、不會有單測,尤其是在這個階段還有很多是產(chǎn)品沒有確認清楚的功能反復(fù)修改時候,就更會把代碼的實現(xiàn)搞得一團糟。
可能產(chǎn)品、業(yè)務(wù),甚至是提這個需求的老板也搞不清楚,就是寫代碼嗎,修修改改有那么難?有,這就像原來你給了一堆撿來的磚頭、扣來的泥沙、手畫的圖紙,需求是蓋一個廁所,現(xiàn)在廁所的坑挖好了要起架子了,不行改,我們不要廁所了,要豬圈。好像豬也得拉屎,挖的坑也夠用,修修改改,擴大擴大面積,豬圈好像也行了,但這個時候埋下了很多的隱患,指不定豬進場的時候,就給你拱塌了,但就在即將貼膏藥式修補豬圈安插水管的時候,產(chǎn)品傳達了老板的最新意圖,這個場地現(xiàn)在咱們決定要住人了,得給這UI界面改改,再豪華裝修一下。都知道蓋房子挖地基,放到寫代碼上好像就不懂了
- 需求無規(guī)劃,想要啥就加啥,加著加著就出事故了。這也是大部分研發(fā)一天天在面對的場景。
- 從一個需求的提出到研發(fā)開發(fā)、測試驗證、上線部署,這些過程都需要合理評估時間來執(zhí)行,否則就不會有像蘋果IOS那么好的體驗產(chǎn)品。
2. 交接的,堆屎山
你以為你開發(fā)的工程都是從零開始嗎,其實并不是的,尤其是互聯(lián)網(wǎng)公司經(jīng)??焖僬{(diào)整適應(yīng)市場變化,也會導(dǎo)致你所接手的代碼可能是別人寫的,甚至是很多個別人累計寫出來的,而你之前寫的想寶貝一樣的代碼,也會被別人拿去堆成屎山。
屎山代碼是什么樣,同樣是vo2dto有12種以上的寫法、json2object 也有常見的3、4種、生成個編號ID也是N多種方式。那么現(xiàn)在任何一個人接手別人的代碼,根本找不到文檔、也看不注釋、方法名也是隨意英文和拼音,把queryBatch寫成queryBitch也是常有的事。所以,就這么多花樣百出同樣功能多種實現(xiàn)方式的代碼,怎么能更快的在里面迭代需求呢。我不知道我要改了什么,但別人加的我也不敢刪
產(chǎn)品可能又不懂了,那不是刪了就可以嗎,會有難度?有,這想啥呢,比如你家里是一個三居的格局,有衛(wèi)生間、有廚房、有客廳、有臥室,第一任住客還算講究安裝了馬桶、買了沙發(fā)、裝了臥室的床,后來交給中介出租,中介說這不浪費嗎,廚房這么大也沒安裝啥,拆拆裝個床,再裝個馬桶,獨立衛(wèi)浴,還多租一間??蛷d也給它打個隔斷,接個上水管和下水管,也給它來個獨立衛(wèi)浴,主臥、次臥都裝獨立衛(wèi)浴。好,后來房子交給你了,你整租了,發(fā)現(xiàn)這屋里到處都是馬桶,拆哪個的時候,都開始往出噴水,不知道他們的水管是怎么鏈接的,與找?guī)煾敌薜某杀究?,不如都拆了重新裝修了。這像不像,代碼根本沒法重構(gòu),只能重寫!
3. 復(fù)用的,不合身
不能重復(fù)造輪子,已經(jīng)有現(xiàn)成的你為什么不用,你自己寫的這個有什么創(chuàng)新,為什么不找某某部門調(diào)研下,你這是不是技術(shù)自嗨。你聽了還怕不,嚇人不,明明你可能就是為了更好的、快速的、熟練的把項目寫完,但現(xiàn)在你為了做一個項目,需要跑遍所有部門調(diào)研他們都有什么組件能支撐你的需求,之后開始要文檔、對接、聯(lián)調(diào),好,你的需求可能原來并不大,現(xiàn)在一對接你甚至從原本三天干完的事,現(xiàn)在要干兩周。妥妥的增加工作量,年終獎又是你的了!
一般在述職、答辯、匯報的時候,大家都把自己做的事包裝的非常牛皮,甚至只要是用上你這個組件,公司都能早上市三年。但一匯報完,再去找問你這個東西是否能對接的時候,完了,這塊不支持,那塊不能做。為啥?因為一個需求功能的設(shè)計很多時候是偏向于自己業(yè)務(wù)訴求的,而不是一個統(tǒng)一的標準方案,不能解決其他業(yè)務(wù)部門的個性所求,甚至為了支持很小的一部分功能都要從頭到尾的梳理和開發(fā),加表、加字段、寫類、寫方法、寫單測,一全套下來并不是那么容易的就支持了,可能支持不好還給自己的系統(tǒng)帶來非常沉重的負擔。
產(chǎn)品可能又不懂了,復(fù)用一下不是減少開發(fā)了嗎?這就像啥呢,一個老爺,家里大老婆和幾個姨太太,大老婆位置穩(wěn)平常就當當評委,分分蛋糕,大姨太喜歡表現(xiàn)自己,和大老婆走的近,沒事就給老爺和大老婆匯報最近的工作成果,小姨太剛進門沒有什么成績,跟老爺說想做個褲衩穿,老爺說那大姨太上次匯報說她那不是有褲衩嗎,你還浪費那工期干啥,去復(fù)用一下就穿唄。小姨太找到大姨太,問褲衩能不能借來穿穿,大姨太說有點難呀,我這褲衩太小了,你那身材也穿不進去呀,我要按照你那尺寸改,都能提到脖子了,你看看要不我們找老爺說說,你就說你的褲衩比較定制,還得要一些特殊功能,比如說展開是裙子、收起來是褲子、夏天是褲衩、冬天是棉褲,這樣就給你批了,你就創(chuàng)新了。
爬上來皆是過往
1. 提高自身能力
在職經(jīng)歷了這么久,讓我深深感受到,即時非常有技術(shù)含量的項目在沒有太多經(jīng)驗的研發(fā)面前,也能用CRUD+整篇的ifelse寫出來,產(chǎn)品的PRD流程是啥樣,代碼里的分支判斷走向就是啥,不會有點的模型抽象也不會有一些共性提煉,這樣方式的寫代碼只能是讓代碼一篇篇的爛下去,這與產(chǎn)品無關(guān)、與排期無關(guān)、只與自身的技術(shù)能力和項目經(jīng)歷有關(guān),也許只是因為你寫,所以才會這樣。
經(jīng)歷了這些以后我會每次開發(fā)新的功能都與上次做對比,把那些比較不錯的實現(xiàn)方式復(fù)用下來,再把實現(xiàn)的不太好的地方進行優(yōu)化,一點點沉淀出自己對技術(shù)實現(xiàn)過程的經(jīng)驗積累。慢慢也就有了一定的條件反射,知道那些項目會刺激到我創(chuàng)造出更好的設(shè)計,那些項目可以復(fù)用我之前的邏輯,這樣既能快速且高質(zhì)量的完成需求,又可以滿足產(chǎn)品功能的迭代。每一次成長,都是自己的收獲
2. 遵守規(guī)范標準
其實你要知道人并不是穩(wěn)定輸出的機器,只要是人在寫代碼就一定會有不規(guī)范、缺流程、出異常的情況,因此這些需要有一個制定的標準,大家統(tǒng)一按照一個方式進行執(zhí)行,這樣即時在出問題的時候,也可以很快的定位和處理,否則你用一個方式開發(fā),他用另外一個標準編碼,最終一個團隊就要維護兩套內(nèi)容,即耗費人力又可能出問題。
尤其是我們開發(fā)的項目并不是小作坊的時候尤其重要,從市場BD,業(yè)務(wù)運營提出BRD、產(chǎn)品評審PRD、架構(gòu)做設(shè)計、研發(fā)做細節(jié)、代碼要評審、完成要提測、上線要把控、交付要驗證等,每一個環(huán)節(jié)都需要有執(zhí)行標準,如果整個組、整個部門、整個公司,都有標準的流程規(guī)范,即時在交接代碼、協(xié)調(diào)資源、共同開發(fā)時,也都不會那么多的障礙在阻隔我們深厚的碼磚情義了。
3. 產(chǎn)研測多溝通
我們并不能保證產(chǎn)品不改需求,即使是快到要上線的時候,因為市場、因為風(fēng)控、因為流程、因為財務(wù)等等,可能甚至都不是研發(fā)所能知道的一些特殊原因的情況下,不改需求根本就不可能讓你上線。那研發(fā)可能會問,為什么不能早早的提出來,那是因為這些特殊情況都是來自于不確定性,就像我們跑著的代碼一樣,沒人知道是因為網(wǎng)絡(luò)、IO、負載、明星突然官宣流量猛增,而導(dǎo)致出問題的。
為了能更好的承接產(chǎn)品需求,最好的方式就是溝通,多溝通,尤其是在產(chǎn)品需求設(shè)計初期,提前查看他們的PRD文檔,這里可能有很多內(nèi)容是你可以提供的服務(wù),也有一些是產(chǎn)品在猶豫使用哪種方式實現(xiàn)的功能,在與你討論后,而決定復(fù)用你已經(jīng)有的系統(tǒng)。所以溝通真的可以給你后期開發(fā)帶來很大的收益,減少很多不必要的事情的蹦出來!
- 業(yè)務(wù),不要做產(chǎn)品的渣男
- 產(chǎn)品,不要做研發(fā)的渣男
- 研發(fā),不要做測試的渣男
- 測試,不要做業(yè)務(wù)的渣男
做一件事,就把一件事做好,我們都不做下一環(huán)的渣男,也是對自己成長的負責!