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