【NCTS峰會(huì)回顧】云測(cè)學(xué)院陳霽:測(cè)試開(kāi)發(fā)到測(cè)試架構(gòu)之路
2019年10月26日,由Testin主辦的第二屆NCTS中國(guó)云測(cè)試行業(yè)峰會(huì)在京召開(kāi),此次峰會(huì)以“AI+未來(lái)”為主題,匯聚來(lái)自國(guó)內(nèi)外測(cè)試領(lǐng)域的知名專(zhuān)家學(xué)者、領(lǐng)先企業(yè)決策者、高層技術(shù)管理者、媒體從業(yè)者等,共同探討高端云測(cè)試技術(shù),幫助測(cè)試從業(yè)者了解最前沿行業(yè)趨勢(shì),及最新的行業(yè)實(shí)踐。
會(huì)上,云測(cè)學(xué)院首席講師,TestOps架構(gòu)師陳霽做《測(cè)試開(kāi)發(fā)到測(cè)試架構(gòu)之路》主題演講。陳霽指出,“以前,測(cè)試人員不夠就加測(cè)試人員,一直加到飽和為止。我們一定要從架構(gòu)級(jí)去改變,到一定量以后,要換一個(gè)角度看問(wèn)題,不是從0到1,而是要從0到1找到一個(gè)架構(gòu)過(guò)程。”
以下為陳霽演講實(shí)錄:
不知道在座有多少人是做測(cè)試架構(gòu)的,先舉手我看一下。和去年我問(wèn)有多少人在做敏捷測(cè)試的結(jié)果差不多,都在我的預(yù)料當(dāng)中,都很少。今天聊這個(gè)話題,希望給大家?guī)?lái)一個(gè)選擇上的考慮方向,大家往往會(huì)說(shuō)我怎么從功能測(cè)試變成一個(gè)做測(cè)試開(kāi)發(fā)的呢?但是未來(lái)兩三年以后,可能會(huì)問(wèn)自己一個(gè)問(wèn)題,我怎么從測(cè)試開(kāi)發(fā)到基礎(chǔ)架構(gòu)呢?
今天早上看到一個(gè)新聞,說(shuō)阿里巴巴要做一件事情,P8以下35歲以上的通通消滅,這個(gè)事情好像是核實(shí)的。這意味著實(shí)現(xiàn)了一句話,“首先,我們先要讓一部分人富起來(lái),接著我們消滅所有的窮人,從而實(shí)現(xiàn)共同富裕。”阿里可能在通過(guò)這個(gè)方法做這件事情了。
今天我跟大家聊的包括三塊內(nèi)容,第一,到底什么是開(kāi)發(fā)和架構(gòu)思路,第二,如何構(gòu)建架構(gòu)思想,第三,如何成長(zhǎng)。
首先我們看“開(kāi)發(fā)與架構(gòu)”。大家知道云層是段子手喜歡講故事,如果說(shuō)不能以一個(gè)貼切或者大家能夠接受的話開(kāi)聊,我們很難形成共鳴。就像敏捷落地,如果不能換位思考讓你明白做這個(gè)事情的好處是什么,我永遠(yuǎn)不能推動(dòng)你做這個(gè)事情。
我們先來(lái)看一個(gè)故事!有沒(méi)有一個(gè)方法快速區(qū)別誰(shuí)是開(kāi)發(fā),誰(shuí)是架構(gòu)?面試官經(jīng)常問(wèn)自己一個(gè)問(wèn)題,我如何能夠快速區(qū)分一個(gè)被培訓(xùn)出來(lái)的測(cè)試人員和一個(gè)真正自己做過(guò)測(cè)試一段時(shí)間的人來(lái)避免他被面試者套路。面試官問(wèn)你會(huì)做什么,面試者ABCD一套套說(shuō)的很好,這樣選擇就很難了,在座各位也許應(yīng)該考慮自己要如何反套路別人。我們經(jīng)常說(shuō)一句話,如果你覺(jué)得云層的課還滿意,對(duì)你有幫助你可以宣傳一下,如果你覺(jué)得你上云層的課非常好,那就求不要往外推廣。這里有一個(gè)理解問(wèn)題,我們?cè)趺刺茁泛头刺茁穭e人的問(wèn)題,不知道大家怎么想,這之前先談我的看法。
大家看過(guò)這個(gè)美劇吧(PPT上是冰與火權(quán)游的一張劇照),沒(méi)有看過(guò)也正常,我今年才看的,看的非常慢,到現(xiàn)在為止我才看到第四季。而且又不能在飛機(jī)上看,也不能在火車(chē)上看,我是下載的版本,如果火車(chē)上突然看到一半很尷尬,萬(wàn)一被人家拍了說(shuō)我在公共場(chǎng)合怎么樣,所以偷偷在家里看。我問(wèn)大家一個(gè)問(wèn)題,你只看一部分,大家會(huì)覺(jué)得這個(gè)角色(小惡魔,提利昂·蘭尼斯特)是好人還是壞人?有人覺(jué)得是壞人,我看到第一季覺(jué)得他是非常非常壞的一個(gè)人,無(wú)惡不作,但是隨后,我們慢慢看到他有很多有價(jià)值的事情,會(huì)保護(hù)別人等等,反而一開(kāi)始我覺(jué)得某些好人的可能成為逐漸成為壞人。我談這個(gè)話題的目標(biāo)是什么?大家有想過(guò)嗎?從小到大,當(dāng)我們開(kāi)始學(xué)技術(shù)的時(shí)候,技術(shù)告訴我們什么?如果我們這么做可以得這個(gè)結(jié)果去解決這個(gè)問(wèn)題,所以我們就會(huì)形成一個(gè)統(tǒng)一答案,我們要解決的問(wèn)題就是從0到1的過(guò)程。比如,告訴計(jì)算機(jī)如果怎樣,結(jié)果就是什么樣。最常見(jiàn)的結(jié)果是什么?如果我老婆跟我說(shuō)陳霽你今天晚上去超市買(mǎi)一個(gè)雞蛋,看到蘋(píng)果打折買(mǎi)一個(gè)蘋(píng)果。結(jié)果我肯定買(mǎi)一個(gè)蘋(píng)果回去,這是精準(zhǔn)思維當(dāng)中0和1的過(guò)程。
那么開(kāi)發(fā)和架構(gòu)的區(qū)別在什么地方?我們現(xiàn)在重新看整個(gè)故事,看“冰與火”的時(shí)候,我們覺(jué)得所有東西真的是0和1嗎?好人就是好人,壞人就是壞人嗎?我經(jīng)常跟大家說(shuō)云層是壞人,做好人非常累,做什么事情都理所當(dāng)然的,我愿意做壞人,我偶爾做好事時(shí),大家會(huì)記得我,否則我會(huì)成為所謂的一個(gè)標(biāo)桿。
知道這件事情以后,我發(fā)覺(jué)架構(gòu)看待問(wèn)題和普通工程師看待問(wèn)題是有區(qū)別的。大家眼里解決問(wèn)題的方法是,覺(jué)得我只要掌握一門(mén)語(yǔ)言或者工具就可以解決一個(gè)問(wèn)題。最常見(jiàn)的是,老師我怎么學(xué)自動(dòng)化去解決什么問(wèn)題,我怎么用自動(dòng)化提高工程效能等等。但是我經(jīng)常問(wèn)大家一個(gè)問(wèn)題,作為測(cè)試,我們工作的目標(biāo)是什么?提升軟件質(zhì)量,那提升軟件質(zhì)量有什么辦法?除了找Bug還可以鼓勵(lì)創(chuàng)新。還有就是把他(開(kāi)發(fā))收編成為你老公讓他幫助你寫(xiě)代碼,你可以從思想上管教他,讓他做TDD。
我們以前打游戲,工會(huì)有兩個(gè)治療,是牧師和奶騎,正好一個(gè)做測(cè)試一個(gè)做開(kāi)發(fā),我作為一個(gè)Tank經(jīng)常死在他老公手上,因?yàn)樗瞎C明我一定正常奶得住Tank,而他老婆說(shuō)只要出現(xiàn)危險(xiǎn)把技能丟了就行了,至于后面能不能過(guò),那是后面的事情,只要現(xiàn)在扛住,后面還有別的辦法容錯(cuò)。這就是測(cè)試和開(kāi)發(fā)做很多事情區(qū)別的方向之一。我們看待一件事情時(shí)候,要0和1去決定它,還是做問(wèn)題拆解。當(dāng)我聊到這里大家再去想另外一個(gè)問(wèn)題,不知道大家發(fā)生變化了沒(méi)有??jī)身?yè)P(yáng)PT是有關(guān)系的,這是龍媽?zhuān)ǖつ堇蚪z·坦格利安)。如果說(shuō)一個(gè)女孩子突然不喜歡你了你該怎么辦?有些時(shí)候我們?cè)谖⑿湃豪锼坪跤腥肆倪@個(gè)話題,聊這個(gè)話題結(jié)果馬上就有人沖出來(lái),你是不是做錯(cuò)什么事了,或者有很多的答案,直到有一個(gè)人說(shuō)了一句話“既然不合適就不要在一起了”。大家會(huì)不會(huì)發(fā)現(xiàn)看待問(wèn)題的角度不一樣,別人問(wèn)我的時(shí)候,大家往往從純技術(shù)角度,0和1的角度看問(wèn)題,說(shuō)我既然現(xiàn)在是0我要變成1,我找到解決問(wèn)題關(guān)鍵點(diǎn)就可以了。你當(dāng)時(shí)做什么事情,做錯(cuò)了ABCD等等,在座各位還有沒(méi)有單身的,沒(méi)有單身的給單身的說(shuō)一下,幾乎所有情況女孩子不喜歡你主要原因只有兩點(diǎn)。第一你不夠帥,如果說(shuō)你足夠帥,其實(shí)不存在這個(gè)問(wèn)題,會(huì)容忍你所有的缺點(diǎn);第二,你又不夠帥又不夠有錢(qián)這個(gè)問(wèn)題就嚴(yán)重了,如果你占這兩點(diǎn)很多問(wèn)題都解決了,換句話說(shuō)如果一個(gè)女孩子喜歡不喜歡你有很多原因?qū)е拢举|(zhì)上不一定。
我們從架構(gòu)和開(kāi)發(fā)角度來(lái)講,大家作為開(kāi)發(fā)人員,或者現(xiàn)在階段你們對(duì)所有東西的認(rèn)知是什么?所有的問(wèn)題都是可以解決的?比如面試的時(shí)候跟很多人說(shuō)的時(shí)候就跟你聊,說(shuō)怎么做一個(gè)一百萬(wàn)并發(fā)的系統(tǒng),那簡(jiǎn)單,我做一個(gè)F5,后面做redis,做機(jī)器,擴(kuò)展、擴(kuò)展、再擴(kuò)展?我們?cè)谌豪锝?jīng)常聊類(lèi)似的問(wèn)題,說(shuō)我有很多自動(dòng)化用例要跑怎么辦?適應(yīng)UI自動(dòng)化化怎么辦?由于原因我時(shí)間的問(wèn)題常常無(wú)法接觸,導(dǎo)致覺(jué)得最近幾年技術(shù)名詞非常非常多,都沒(méi)有聽(tīng)過(guò),但是如果過(guò)一段時(shí)間琢磨一下這個(gè)問(wèn)題好象也沒(méi)有什么本質(zhì)區(qū)別,或者說(shuō)也沒(méi)有解決問(wèn)題。大家做測(cè)試那么多年,回過(guò)頭看解決問(wèn)題了嗎?問(wèn)題在什么地方?我們自己在想這件事情,我們說(shuō)我們能改變世界,我們從0到1,相信男同胞到30幾歲會(huì)相信一句話“當(dāng)年有富婆包養(yǎng)我會(huì)從了他”。當(dāng)年想我一定能改變世界的,這是成熟男性和未成熟少年的區(qū)別,你心中有夢(mèng)想,覺(jué)得我的世界我一定能顛覆。說(shuō)實(shí)話我自己想了一下,在座所有人還是屬于非常普通的那一種,真正很牛的人是沒(méi)有辦法接近的,因?yàn)樗麄儚男W(xué)就很牛一直牛到現(xiàn)在,我們頂多是大學(xué)之后做了一個(gè)大眾選擇當(dāng)中的小眾選擇,稍微脫離了一個(gè)層次。然后,在這個(gè)小眾的圈子里再做一個(gè)小眾選擇,我相信大家做測(cè)試之前也沒(méi)有想過(guò)做測(cè)試,是從絕大多數(shù)覺(jué)得理所當(dāng)然的工作當(dāng)中選了IT行業(yè)的測(cè)試行業(yè),這是一個(gè)小眾選擇,小眾選擇里努力了一點(diǎn)做了自動(dòng)化,脫離了功能測(cè)試或者正在脫離功能測(cè)試做一個(gè)小眾選擇過(guò)程,但是我告訴大家,其實(shí)我們跟真正上面的差距非常非常大。
為什么?因?yàn)樽鳛榧軜?gòu)來(lái)說(shuō)想法就不一樣了,有一句話說(shuō)的很好,什么叫做學(xué)渣?考試好不容易湊了60分。學(xué)神是什么?試卷上只有100分所以我只能考100分。這是我們看待問(wèn)題方式的區(qū)別,所以作為架構(gòu)師來(lái)講,首先應(yīng)該想從0到1的過(guò)程是有過(guò)程的,什么叫過(guò)程?我們看0到1可能很快,0秒到1秒一瞬間過(guò)去了,但是這是宏觀在我們度量范圍中能發(fā)現(xiàn)的,如果度量速度放慢,把0到1秒的過(guò)程放慢10萬(wàn)倍你看就是0.0001秒,這個(gè)過(guò)程當(dāng)中,我們其實(shí)會(huì)想到一件事情,為什么需要有敏捷需要有精益?從0到1并不是想象中一秒那么快,對(duì)于某些生物是很遙遠(yuǎn)的事情,某些生物只能活一秒,在我們看來(lái)他們很悲劇,實(shí)際上對(duì)于他們來(lái)講他們一生比我們還要長(zhǎng),眨眼非常快,看世界非常快,很快就結(jié)束了,但是放到宇宙級(jí)別我們都會(huì)發(fā)現(xiàn)一個(gè)問(wèn)題,宏觀觀測(cè)和微觀觀測(cè)區(qū)別很大,這里就不衍生話題了因?yàn)橐劦揭Σǎ獾碾p重干涉等等。我們發(fā)現(xiàn)所有架構(gòu)都在考慮一件事情,我的核心是什么?分解問(wèn)題,不是直接的解決問(wèn)題,我要把一個(gè)大問(wèn)題分解成多個(gè)小問(wèn)題,大家都覺(jué)得這個(gè)小問(wèn)題可以接受,那我們繼續(xù)再分解,一直分解它。
所以我們重新從性能測(cè)試的角度來(lái)講,性能優(yōu)化以前怎么做?前端改前端,后端改就加資源,我們?nèi)绾巫隽骺爻瑫r(shí),我們都針對(duì)具體問(wèn)題具體解決。我們發(fā)現(xiàn),今天家里著火了我們?cè)诩依镅b滅火器,明天看缺什么就買(mǎi)什么東西補(bǔ)上,這個(gè)叫做0到1的具體問(wèn)題解決方式。我們家孩子今天不吃飯我就打一頓,明天不吃飯繼續(xù)打,打到吃飯為止,這個(gè)有用嗎?自從我有孩子我會(huì)知道,他為什么會(huì)做某些事情,所以到設(shè)計(jì)層面之內(nèi)的事情。為什么現(xiàn)在性能問(wèn)題解決了?可以說(shuō)很多情況下性能問(wèn)題都解決了,原因是什么?包括我們吃飯的問(wèn)題很多時(shí)候也解決了,不像以前飯都吃不起,現(xiàn)在至少吃得起了。當(dāng)我們?cè)谠O(shè)計(jì)層面想的時(shí)候,我們突然發(fā)覺(jué)負(fù)載均衡體系出來(lái)的內(nèi)存數(shù)據(jù)庫(kù)體系出來(lái)了,橫向體系擴(kuò)展出來(lái),微服務(wù)體系出來(lái),這些發(fā)生變化以后,以前需要處理的問(wèn)題都不存在了,CDN一旦誕生,幾乎就不要考慮靜態(tài)請(qǐng)求的問(wèn)題了,所有的請(qǐng)求都CDN緩存走了。
我們以前很擔(dān)心從A點(diǎn)到B點(diǎn)距離那么遠(yuǎn)怎么解決,現(xiàn)在有高鐵,動(dòng)車(chē),我們?cè)絹?lái)越多人是雙城計(jì),今天有一個(gè)哥們從上海來(lái)到北京,決定在北京扎根很佩服他,每?jī)蓚€(gè)禮拜回去看一次老婆,其實(shí)四個(gè)多小時(shí)他說(shuō)還好。偶爾在上海出差,就是去上海郊區(qū)也得四個(gè)小時(shí),當(dāng)然我相信北京兄弟姐妹遇到堵車(chē)的情況可能上班也需要四小時(shí),去天津還是快一點(diǎn)。我們做性能優(yōu)化我們有投資回報(bào)比。初期從0到1做這個(gè)事情就可以,后面發(fā)現(xiàn)不行了,這就是架構(gòu)和設(shè)計(jì)區(qū)別。以前,測(cè)試人員不夠就加測(cè)試人員,一直加到飽和為止。現(xiàn)在我們一定要從架構(gòu)級(jí)去改變,到一定量以后,要換一個(gè)角度看問(wèn)題,不是從0到1,而是要從0到1找到一個(gè)架構(gòu)過(guò)程。
既然知道這一點(diǎn),我們就談一下怎么構(gòu)建架構(gòu)思想?這些東西講的都沒(méi)有用,就跟大家做人一樣,告訴大家好好做人怎么怎么努力,實(shí)際情況還是要靠大家自己找到門(mén)路。從我的角度來(lái)講,我談一下我構(gòu)建架構(gòu)思想的體系。首先第一點(diǎn)就是改變視野,就是看東西的方向,其實(shí)很多時(shí)候我們會(huì)談一件事情,看東西不光要看自己,還需要看別人的方向并且找到那些內(nèi)容,當(dāng)我們做程序員、測(cè)試或者做一個(gè)具體技術(shù)的時(shí)候,我們更多強(qiáng)調(diào)的是局部?jī)?yōu)化的問(wèn)題,我沒(méi)有辦法看到整體,只能看到我自己眼前那一小塊。我訪問(wèn)對(duì)象變了,我識(shí)別不出來(lái)了,或者說(shuō)我做的結(jié)果不對(duì)了,舉一個(gè)簡(jiǎn)單例子,大家知道功能測(cè),我點(diǎn)某一個(gè)按鈕出來(lái)的情況跟預(yù)期的不一樣,我們就會(huì)提交Bug出來(lái)。這是一個(gè)普通的視角或者說(shuō)從我的角度來(lái)講我完成了我自己的本職工作,但是你問(wèn)過(guò)自己為什么會(huì)產(chǎn)生這個(gè)問(wèn)題嗎?我們做測(cè)試,我們不光要給答案,還要給預(yù)防結(jié)果,或者回避掉出現(xiàn)這種東西的情況,讓自己不要重復(fù)犯錯(cuò)。
我們家孩子也知道有一個(gè)坑在這里或者有斜坡在,我說(shuō)你跑下去,不跑,我怕,他會(huì)知道,我們呢?多少測(cè)試可以告訴開(kāi)發(fā)今天犯錯(cuò)了,明天再這里需要知道如何不犯錯(cuò),能夠預(yù)警出來(lái)。沒(méi)有,因?yàn)槲覀冏鰷y(cè)試關(guān)注在細(xì)節(jié)上,如果做全局優(yōu)化怎么辦?舉個(gè)例子,從UI級(jí)自動(dòng)化看是不是觸發(fā)操作所產(chǎn)生的請(qǐng)求,操作請(qǐng)求產(chǎn)生看,數(shù)據(jù)結(jié)構(gòu)是不是對(duì),是不是到后臺(tái)中間件,到中間件看是不是調(diào)用中臺(tái)組合了業(yè)務(wù),甚至于哪一個(gè)SQL以及這個(gè)SQL的拼接過(guò)程是不是對(duì)的,這是我們經(jīng)常講的整個(gè)APM端到端的跟蹤。而當(dāng)有了這個(gè)端到端跟蹤我們突然發(fā)覺(jué)解決問(wèn)題的關(guān)鍵其實(shí)有很多種方法。什么方法?如果我考大學(xué)成績(jī)不夠我有兩種做法,第一種是什么?就是什么差補(bǔ)什么,我語(yǔ)文考很低就補(bǔ)語(yǔ)文;第二種方法,我什么好就加強(qiáng)什么,我數(shù)學(xué)130,我考150還可以擠20分出來(lái)。有沒(méi)有別的方法?還有很多,為什么讀大學(xué),早一點(diǎn)做別的行業(yè)更有前途,大家都會(huì)意識(shí)到這個(gè)問(wèn)題,以前我讀大學(xué),大學(xué)后找工作,這就是一輩子。現(xiàn)在我們知道人生是一個(gè)過(guò)程,需要全局優(yōu)化,我需要會(huì)很多東西,等那個(gè)階段需要時(shí)候我們?cè)賱?dòng)態(tài)調(diào)整。
我這里講的是端到端的視野,在談的事情是解決價(jià)值的問(wèn)題,要看的不是現(xiàn)在我要解決什么問(wèn)題,而是有哪些東西會(huì)影響我的價(jià)值,找到最影響我價(jià)值的東西再去改變,這才是最有優(yōu)勢(shì)的全局優(yōu)化的部分。得把視野放長(zhǎng),怎么放長(zhǎng)?我回頭看一看,為什么研發(fā)不能配合我們,或者提前預(yù)防做這個(gè)事情呢?所以TDD聊的很多,希望大家在整個(gè)流水線上,將研發(fā)過(guò)程形成共同全局優(yōu)化的意識(shí),這樣我們解決問(wèn)題才不會(huì)說(shuō)對(duì)不起,我現(xiàn)在很忙,有很多東西要測(cè)。我現(xiàn)在要寫(xiě)框架,要幫助很多測(cè)試去執(zhí)行整個(gè)自動(dòng)化測(cè)試,但是大家自己捫心自問(wèn)這東西是你的價(jià)值,是公司價(jià)值,還是真正可以創(chuàng)造用戶價(jià)值?這才是關(guān)鍵,如果做不到這一點(diǎn),你做事情只是為了安心,知道自己在工作而已,所以這是我們的第一步。
第二步是量化。早期我很討厭量化,我最討厭領(lǐng)導(dǎo)說(shuō)每周都需要寫(xiě)周報(bào),我覺(jué)得實(shí)在擠不出什么東西,女人生孩子肚里有貨,但是我沒(méi)有貨,所以寫(xiě)周報(bào)什么都寫(xiě)不出來(lái)。慢慢的我發(fā)覺(jué)我寫(xiě)的東西是可以很多的,一旦我寫(xiě)不出來(lái)就沒(méi)有辦法證明我是真正進(jìn)步,如果寫(xiě)出來(lái)就可以知道真正在做什么。大家寫(xiě)周報(bào)說(shuō)今天做了什么,今天寫(xiě)測(cè)試用例。我今天總結(jié)或者量化是解決多少Bug,解決多少問(wèn)題,解決問(wèn)題時(shí)候你只是關(guān)注在證明我的工作量而已,而從更廣角度來(lái)說(shuō)我們影響的是什么?從量化到進(jìn)化,你的工作量和工作能力是有限的,你可以提高你自己的能力做更多的事情,但是你不可能做所有的事情。有一個(gè)問(wèn)題,大家看過(guò)很多美國(guó)的英雄片,無(wú)論是鋼鐵俠,美國(guó)隊(duì)長(zhǎng),都面臨很困難的問(wèn)題,這是一個(gè)悖論,就是左邊有10個(gè)普通人,右邊有一個(gè)小孩,然后有一個(gè)東西飛過(guò)來(lái)你救A不能救B,你救誰(shuí)?大家一定會(huì)面臨這個(gè)問(wèn)題,你不可能想著救所有人,地球那么大,到處有事情出現(xiàn),包括孫悟空等等,我們把所有能想象的人類(lèi)創(chuàng)造的所有的英雄,軍隊(duì)或者是警察管不了的事情,需要有民間英雄做這個(gè)事情,但也不能做所有事情啊。你做一件事情可能會(huì)帶來(lái)更多不好的地方,你救一個(gè)人你覺(jué)得真的幫助了他嗎?不一定的,為什么?從某些角度來(lái)講,如果沒(méi)有這些意外你把它救了,人類(lèi)人口上升更快,那可能又是一個(gè)災(zāi)難,沒(méi)有什么事情是絕對(duì)對(duì)錯(cuò)的。
滅霸其實(shí)做的很好,很公平啊,所以有一個(gè)段子就說(shuō),來(lái)了一個(gè)新架構(gòu)師,把公司所有代碼重構(gòu)了減少一半的代碼,并且提高了工作效率,結(jié)果所有剩下的老油條把他干掉了。我相信在座各位都覺(jué)得我們做的工作很偉大,但是有很多人吐槽我們工作做得很爛,因?yàn)槲覀兿麥缢麄兒芏嗟木蜆I(yè)機(jī)會(huì)。同樣,如果自動(dòng)化做起來(lái),AI做起來(lái),可能在座很多降級(jí)成外包了。都沒(méi)有機(jī)會(huì)上去的,因?yàn)榇蠹冶惶娲恕?/p>
所以這個(gè)過(guò)程當(dāng)中我們就會(huì)說(shuō)一件事情,希望讓自己進(jìn)化成為架構(gòu)師,就一定要量化自己做了什么,能夠找到自己進(jìn)步的數(shù)據(jù)量化點(diǎn),如果沒(méi)有那個(gè)數(shù)據(jù)量化點(diǎn)的話,其實(shí)你還在自己騙自己,因?yàn)槟阏也坏阶约哼M(jìn)步的因素,我們不要以簡(jiǎn)單解決多少問(wèn)題來(lái)說(shuō),而是以比例價(jià)值來(lái)說(shuō),我真正解決了百分之多少的問(wèn)題是有價(jià)值的問(wèn)題,這是我們?cè)谡麄€(gè)量化過(guò)程當(dāng)中應(yīng)該做的事情。
第三點(diǎn)賦能,昨天晚上吃飯還說(shuō)了某大廠正在從賦能轉(zhuǎn)換成新階段,賦能是我們談了很多的話題,也是大家恐懼的事情,為什么?中國(guó)有一句話說(shuō)教會(huì)徒弟餓死師傅,賦能就是教別人達(dá)到和你一樣的水平,當(dāng)年我寫(xiě)書(shū)的時(shí)候也很恐慌,擔(dān)心把我所有會(huì)的東西寫(xiě)在書(shū)上是不是別人看書(shū)就會(huì)了,我花5、6年做的事情,全國(guó)LoadRunner全國(guó)前10人我還是能算上的,就被大家半年掌握了?實(shí)際上根據(jù)我不完全統(tǒng)計(jì)包括我自己去看,書(shū)買(mǎi)了能看的不超過(guò)60%,看了能看完的60%當(dāng)中也就30%,看完能看幾遍看懂的可能只有其中10%,真正看完有想法的1%都不到,這是非常正常的事情。你覺(jué)得賦能給別人,我就沒(méi)有了?你想的太簡(jiǎn)單了,你真的把這些東西傳授給別人,別人能達(dá)到你的水平不是那么快可以做到的,更何況也許你還沒(méi)有能力賦能給別人,在看到別人學(xué)不會(huì)的時(shí)候,你自然就會(huì)覺(jué)得自己很安全,你沒(méi)有安全感你自己是不敢賦能的。
以前大家常見(jiàn)的問(wèn)題是幫助別人解決問(wèn)題,人家說(shuō)現(xiàn)在我寫(xiě)代碼定位不到,你馬上打開(kāi)頁(yè)面調(diào)試一下給他一個(gè)答案,貼代碼,說(shuō)謝謝謝謝,誰(shuí)解決代碼了,我們這個(gè)圈里人說(shuō)提一個(gè)代碼,我們會(huì)說(shuō)你試試什么辦法,他會(huì)說(shuō),你有本事你幫助我解決,不能解決別BB,這時(shí)我理解所有初學(xué)者希望某一個(gè)人幫助你解決問(wèn)題,你不解決可能浪費(fèi)幾個(gè)小時(shí)的時(shí)間,我很能理解,但是作為某一個(gè)階段做事情,我們希望你自己找到分析問(wèn)題的思路,什么思路?我只要幫助你把問(wèn)題從頭到尾問(wèn)清楚,你自己就知道怎么解決了,你解決不了原因是你連百度都不知道百度什么。
學(xué)生問(wèn)我“老師,我們腳本怎么跑不動(dòng)?”我說(shuō)你提供表單,這不是業(yè)務(wù),這是操作過(guò)程。我現(xiàn)在看到什么數(shù)據(jù)傳遞給客戶,客戶怎么操作把數(shù)據(jù)傳遞服務(wù)器,服務(wù)器校驗(yàn)機(jī)制和所有參數(shù)形式、結(jié)構(gòu)邏輯是什么?這是你應(yīng)該告訴我的業(yè)務(wù),是通過(guò)這個(gè)業(yè)務(wù)邏輯最后實(shí)現(xiàn)我們操作成功的表結(jié)構(gòu)變更,而不是告訴我在這里填框1就行了,或者說(shuō)給我們發(fā)一個(gè)代碼告訴,說(shuō)這就是我們的代碼體系,請(qǐng)問(wèn)我們?yōu)槭裁创a跑不通,這我怎么知道呢?
這個(gè)過(guò)程當(dāng)中,我們會(huì)說(shuō),大多數(shù)工程師級(jí)別在遇到問(wèn)題的時(shí)候,不是在想他為什么提這個(gè)問(wèn)題,我為什么解決不了這個(gè)問(wèn)題,想的是我把這個(gè)問(wèn)題幫助他解決了,答案拷給他就行了,然后結(jié)果是什么??jī)商旌髥?wèn)你同樣問(wèn)題,因?yàn)樗恢来鸢覆恢澜鉀Q問(wèn)題的方法,而且他不關(guān)心你怎么做到的,怎么分析出這個(gè)問(wèn)題的,這是關(guān)鍵。在座各位來(lái)講,要想的事情是我?guī)椭鷦e人的時(shí)候,我到底是以幫助解決問(wèn)題為本,還是幫助別人自己能獨(dú)立解決問(wèn)題的方式,我相信作為測(cè)試問(wèn)開(kāi)發(fā),你做了什么事情讓我們的自動(dòng)化腳本失敗了,他就會(huì)說(shuō)等一下我改一下就沒(méi)有了,你喜歡這樣的工程師嗎?也許你覺(jué)得工作是這樣,但是你很想知道他到底做了什么,然后你應(yīng)該做什么配合,因?yàn)檫@樣才有進(jìn)步才會(huì)賦能給你,所以架構(gòu)師級(jí)別就是如何通過(guò)自己跨站能力,形成思路,形成賦能的過(guò)程,就是我跟大家聊的這個(gè)過(guò)程。我們一個(gè)系統(tǒng)慢,行,我先告訴你為什么覺(jué)得他慢,訪問(wèn)時(shí)間很慢,那我們抓個(gè)包,我們看前端不慢,是慢在后端服務(wù)器,那這個(gè)業(yè)務(wù)可以影響多少邏輯和代碼?我們要查數(shù)據(jù)庫(kù)我們看慢SQL是那些,大家提問(wèn)的時(shí)候往往原因都不知道,所以不能定位,一旦可以定位一定可以解決這個(gè)問(wèn)題。
大家想成為架構(gòu)師級(jí)別,一定要做到總體判斷問(wèn)題,而不是局部解決問(wèn)題,因?yàn)榫植拷鉀Q問(wèn)題在這個(gè)階段已經(jīng)不夠用了,很多人可以解決局部問(wèn)題,但是很少有人能看到整體問(wèn)題的方向是什么,一句話解決它,比如從本質(zhì)上講為什么測(cè)試配合開(kāi)發(fā)做自動(dòng)化測(cè)試,證明我能夠適應(yīng)它從而跑幾次,而不是開(kāi)發(fā)人員為什么不做成規(guī)范的內(nèi)容,然后來(lái)適應(yīng)我的測(cè)試讓大家質(zhì)量達(dá)到標(biāo)準(zhǔn),這是一個(gè)思路轉(zhuǎn)變,你能不能推動(dòng)他做這個(gè)事情,賦能做這個(gè)自動(dòng)化呢?你肯定說(shuō),我教會(huì)他我怎么辦,你是測(cè)試你設(shè)計(jì)測(cè)試,執(zhí)行層面原則上不應(yīng)該浪費(fèi)你的時(shí)間,這才是角度看法的區(qū)別。
聊完第二個(gè)章節(jié)中就談了三件事情,如何展開(kāi)自己視野,找到自己量化的進(jìn)步方向,以及如何賦能給別人,最后聊一下怎么成長(zhǎng)。既然知道我要往前走,如何做到這一點(diǎn)呢?方法比較簡(jiǎn)單。這是敏捷上的幾個(gè)名言,“守破離”,來(lái)自于日本的劍道,我這里加了關(guān)于它的說(shuō)明,我們做任何事情都有一個(gè)過(guò)程,從模仿到規(guī)范,從規(guī)范到脫離,都是這么一個(gè)過(guò)程。首先第一點(diǎn)我希望大家記住一句話,如果一個(gè)事情絕對(duì)正確,你相信就做,那一定有問(wèn)題,不存在絕對(duì)正確的事情。我們說(shuō)沒(méi)有世界不是從0和1組成,是0到1過(guò)程組成的,這個(gè)話說(shuō)起來(lái)挺對(duì),但是對(duì)企業(yè)和現(xiàn)狀都不是那么合適,你一定要找到符合你的0.6或者0.7的狀態(tài)。那么這其實(shí)是我們所謂的后面“離”的部分,首先我需要模仿別人去做一個(gè)所謂的架構(gòu)師需要的知識(shí)面,需要解決方案,在一定階段,你會(huì)發(fā)覺(jué)我和別的公司不一樣,我和別的人不一樣,我得找到我們公司的特點(diǎn),研發(fā)的特點(diǎn)是什么,運(yùn)維的特點(diǎn)是什么,需求的特點(diǎn)是什么,我們行業(yè)的特點(diǎn)是什么,我們才能找到符合這個(gè)特點(diǎn)的我自己的定位,所以我們會(huì)說(shuō)“守破離”的概念,這個(gè)概念中關(guān)鍵的是如何確認(rèn)個(gè)人價(jià)值和客戶價(jià)值。
怎么去聊這個(gè)話題?首先,我們說(shuō)過(guò)“守破離”基于第一模仿,第二調(diào)整,第三構(gòu)建自己獨(dú)立思想的過(guò)程,在這個(gè)過(guò)程當(dāng)中需要記住兩點(diǎn),你做這件事是基于兩個(gè)模式做,第一就是我個(gè)人的價(jià)值,如何實(shí)現(xiàn)我自己的一個(gè)學(xué)習(xí)過(guò)程,學(xué)什么,學(xué)的過(guò)程如何量化證明我得到了一個(gè)指標(biāo),也許你通過(guò)某些認(rèn)證,某些考試或者某些代碼編寫(xiě),比如,你寫(xiě)兩萬(wàn)行代碼水平到一個(gè)階段,寫(xiě)代碼很快了,到這個(gè)階段你問(wèn)自己一個(gè)問(wèn)題,我現(xiàn)在做別人做的所有框架,那這個(gè)框架是我想解決的問(wèn)題嗎?我在模仿別人,這不是我的,所以我要根據(jù)我的認(rèn)知做事情,大家會(huì)說(shuō)自己的框架、體系、思路等等。這是個(gè)人價(jià)值的部分,同樣的,也要和企業(yè)價(jià)值同步,因?yàn)槟闶且粋€(gè)人,你在人的圈子里,你就是在江湖,有江湖才有人,有江湖就有恩怨所以不能簡(jiǎn)單說(shuō)我把事情做好就可以了,我相信很多人都會(huì)覺(jué)得一件事情,做技術(shù)很簡(jiǎn)單,我把事情搞定就可以了,但是你確定你搞定這件事情是對(duì)的嗎?你想過(guò)這個(gè)問(wèn)題沒(méi)有?
就跟大家前一段時(shí)間知道的,所有網(wǎng)絡(luò)爬蟲(chóng)一樣,你做事情很簡(jiǎn)單,幫助把信息爬出來(lái),那有什么好處呢?第一比價(jià),可以買(mǎi)到最便宜的東西,第二是比別人更快得到信息,其實(shí)這個(gè)有法律邊界問(wèn)題你考慮過(guò)嗎?有人說(shuō)信息就在這里我們?nèi)ヅ溃@有什么問(wèn)題呢?那你家門(mén)沒(méi)鎖進(jìn)來(lái)就把東西拿進(jìn)來(lái)了你覺(jué)得違法嗎?這是有法律邊界的,我們這里不討論例子合適不合適或者是否有悖論,但是你一定面臨別人系統(tǒng)可能不夠安全,或者不夠健壯被數(shù)據(jù)爬掉的,可能在自己網(wǎng)站說(shuō)我收集你數(shù)據(jù)是系統(tǒng)需要,不會(huì)對(duì)外公開(kāi),但是我不能保證我對(duì)別人爬了或者破了,那信息還是泄露了。大家知不知道信息什么最值錢(qián)?很抱歉你信息不值錢(qián)了,因?yàn)榈教幎加刑菀椎玫搅耍钱?dāng)你孩子誕生那一天,你一旦做產(chǎn)檢時(shí)候,你孩子信息才最值錢(qián),因?yàn)槟愫⒆訒?huì)存在相當(dāng)長(zhǎng)的消費(fèi)過(guò)程,從生下來(lái)就有人打電話要不要保姆,現(xiàn)在問(wèn)你需要不需要月子會(huì)所,拍照,稍微大點(diǎn)找不要去早托,讀小學(xué)的輔導(dǎo)班,初中輔導(dǎo)班等等,你數(shù)據(jù)會(huì)賣(mài)幾十遍,每個(gè)機(jī)構(gòu)花幾十塊錢(qián)買(mǎi)一個(gè)東西,因?yàn)樗滥愫⒆釉撟x這個(gè)了,是這時(shí)間段的用戶。這是一件非常非常可怕的事情。
當(dāng)我們做圍繞客戶架構(gòu),圍繞個(gè)人架構(gòu)的時(shí)候,大家一定記住一件事情,我今天想說(shuō)重點(diǎn)!世界不是0和1,而是0和1之間有很多模糊部分,不要過(guò)分圍繞自己解決問(wèn)題的一個(gè)點(diǎn)想,你想得再厲害,他所帶來(lái)的結(jié)果都是你想的事情。我發(fā)現(xiàn)我是想法很好,但真正在別的地方應(yīng)用就不一樣了,我們需要去找到在整個(gè)價(jià)值端長(zhǎng)的過(guò)程。
聊完這個(gè)事情,到底怎么變成架構(gòu)師的思路或者展開(kāi)一個(gè)視野呢?如果大家聽(tīng)我上次講的時(shí)候,我本身想做一個(gè)演示,但是環(huán)境情況沒(méi)有做到,今天也很難做到,但是我做了一個(gè)事情給大家看,當(dāng)我做PPT時(shí)我是怎么做的?我其實(shí)是作為一個(gè)具體實(shí)現(xiàn)部分的,對(duì)大家來(lái)講也面臨這個(gè)過(guò)程,我去實(shí)踐一個(gè)東西就是找明確的答案是什么?就是0和1沒(méi)有別的選擇,但是做這個(gè)事情我需要問(wèn)自己,我如何表達(dá)0到1的過(guò)程,讓大家知道我在講什么,所以我需要做一個(gè)事情,就是畫(huà)完整思路導(dǎo)圖成為我之前的內(nèi)容。
思維導(dǎo)圖是把我腦子里想的0.1,0.2、0.3內(nèi)容放在這里,抽到我覺(jué)得合適的各個(gè)點(diǎn)的內(nèi)容出來(lái),他們可能都不是1,這只是一個(gè)想法和概念,我希望通過(guò)ROI聊技術(shù),有些時(shí)候性能優(yōu)化沒(méi)有必要,我們服務(wù)器上的太快不需要優(yōu)化了,我只要把價(jià)格降下來(lái)本身就不是問(wèn)題。比如,現(xiàn)在換一個(gè)方法變成更快充電的,更快充電的話,充電不安全怎么辦?我用兩塊電池充這個(gè)問(wèn)題也解決了。包括傳輸當(dāng)中的問(wèn)題,我需要造一個(gè)手機(jī)殼,我手機(jī)主題變的時(shí)候這個(gè)手機(jī)跟著也變,技術(shù)角度你覺(jué)得無(wú)解,很簡(jiǎn)單啊。既然做不到這一點(diǎn)先做一件事情,我給客戶7個(gè)手機(jī)殼,然后我送你一個(gè)APP能夠產(chǎn)生7種不同的主題,你換一個(gè)主題換一個(gè)手機(jī)殼出現(xiàn),這解決一定的問(wèn)題了吧?接著你可以拍一張照片可以識(shí)別照片顏色體系,告訴你應(yīng)該選哪一個(gè)階段,第二個(gè)手段,手機(jī)殼實(shí)現(xiàn)圖形化的能夠動(dòng)態(tài)變化的內(nèi)容,就是可變化的LED,通過(guò)藍(lán)牙傳輸重新出現(xiàn)的就搞定了,我們看這塊投影屏也是這種技術(shù),這是可以實(shí)現(xiàn)的,只是沒(méi)有做到那個(gè)級(jí)別,一旦我們出現(xiàn)超導(dǎo)體以后,電子運(yùn)用也解決了,只是還沒(méi)有到那個(gè)階段,現(xiàn)在受制于基礎(chǔ)工業(yè)問(wèn)題沒(méi)有解決。
思維導(dǎo)圖來(lái)談,如何理解這個(gè)問(wèn)題?發(fā)現(xiàn)以前不能解決的問(wèn)題都可以解決,因?yàn)橐郧安荒芙鉀Q的問(wèn)題都是在很小的領(lǐng)域,但是現(xiàn)在放大領(lǐng)域看的時(shí)候都不是問(wèn)題。我們兩個(gè)吵架小問(wèn)題,現(xiàn)在我們覺(jué)得不可調(diào)整,放大了看,等到生死問(wèn)題時(shí)候,一下子把這個(gè)放淡了。量化角度,架構(gòu)師角度都是可以改變一個(gè)思想。
今天跟大家分享東西可能蠻空的,很無(wú)聊的,很適合這個(gè)時(shí)間的,大家可以打盹聽(tīng),如果大家沒(méi)有睡覺(jué),看手機(jī)比較少,偶爾拍拍照,那我達(dá)到目的就到了。話說(shuō)一萬(wàn)遍就是這樣,架構(gòu)怎么走,每個(gè)人都有自己的路,我想告訴大家答案不是唯一的,是根據(jù)大家的過(guò)程調(diào)整出來(lái)的,有一些實(shí)踐大家是可以做到的。
謝謝大家!




















