技術人的靈魂3問,阿里工程師如何解答?
在業(yè)務團隊做事的工程師摸爬滾打了一段時間后,一定會有所疑問。團隊同學在最初的一段時間都提出這樣的疑惑:如何在業(yè)務中發(fā)現(xiàn)有技術價值的問題?發(fā)現(xiàn)問題后如何思考和發(fā)起再到解決?最后的技術結果跟業(yè)務結果如何銜接?很多時候我們聽別人說“思考是不夠的/要多思考”,其實都是在說這幾點。接下來,阿里高級前端技術專家氐宿談一談遇到這三個問題時,他是如何解決的?
如何在業(yè)務中發(fā)現(xiàn)有技術價值的問題?
一位科學家一生可用于研究的時間極其有限,然而,世界上的研究主題卻多得數(shù)不清。如果只因為稍微覺得有趣就選為研究主題,將在還沒來得及做真正重要的事時,一生就結束了。——利根川進
其實要解答這個問題之前,我們要理解一個概念,什么是有價值的問題?議題度高和解答質高的問題我理解就是有價值的問題,比較通俗的理解就是這個問題是否存在,當前要解決這個問題的必要性夠不夠,問題對應的解決方案可行性高不高。如果要在業(yè)務里發(fā)現(xiàn)這種問題,首先要理解業(yè)務戰(zhàn)略、打法和定位。那如何才能把這個前置信息做好,對工程師來說是一個比較大的挑戰(zhàn)。
首先工程師其實大多數(shù)都是從事一線開發(fā),對業(yè)務理解可能僅限于自己在做的事情。很多信息都是別人過濾了五六手之后的信息,得到的可能就是一個任務和為什么做這個任務。相對比之下肯定不如制定戰(zhàn)略的人懂得戰(zhàn)略背后的意義,信息也是不對等的。所以首先我們要收集信息,然后整理歸納,最后分析問題。
先來說說收集信息
其實有點像信息科學里的情報學。收集信息最好的方式就是參加所處業(yè)務老大的KO會,各種KO會會把戰(zhàn)略上的拆解和背后的思考整體梳理之后宣講傳達給BU或部門的同學,雖然我們沒有親身參與到腦暴過程,但是也會對背后的思考有一定的理解,切記,一定要記得劃重點記筆記。
獲取第一手信息之后,我們要經過簡單梳理開始收集外部信息,整理整體的知識脈絡,這里我經常用的就是阿里學習(業(yè)務寶庫阿里學習,技術寶庫ATA,注:阿里內部兩個學習平臺),可以獲取不少業(yè)務相關的分享,當然很多外部渠道也同樣可以收集到。比如這段資料[1]就是外部收集到的,可以得出幾個關鍵詞,數(shù)字技術賦能旅行行業(yè)、我們不是OTA,這些都要整理到自己收集的信息池里。當然以上我提到的都是信息獲取源的一種。具體收集信息的釋義可以查一下百科[2],可以按照百科上的方法論學習一遍,以便找到適合自己的方法。總之這里我們要像產品經理一樣去收集這些信息[3]。這里也鼓勵跟不同領域不同BU的同學多交流,不限于線下扯淡式的交流和線上問問題的方式(這里建議先看下知乎里這個回答關于學會問問題[4] 以及 如何進行有效社交[5])。
分析問題
我們通過不同信息源獲取到的信息是散落的,如何經過加工融入自己的思考體系呢?首先信息不能是簡單的堆疊,我們要通過不同的入口理出頭緒??梢允褂肕ECE法則進行思考拆解,通過無遺漏無重復地分類來把握整體,列出腦圖和邏輯樹,最后將邏輯樹的信息匹配需求場景,可以嘗試通過C端和B端不同入口去還原需求場景。這中間可以結合一定的方法論(演繹推理和歸納推理),去把問題和挑戰(zhàn)細化出來,幫助我們理解BU的戰(zhàn)略,同時我們也能從自身出發(fā)把戰(zhàn)略拆解到對應的項目。舉例來說去年我個人分析飛豬在整個C端面臨的主要問題之一還是流量格局過于單一,B端供應鏈的成熟度不夠導致無法給到商家更實質的體驗服務,飛豬的類目交叉不夠背后是各垂直業(yè)務存在業(yè)務隔離。
發(fā)現(xiàn)問題到執(zhí)行該如何銜接
拿到這三個問題我們不能馬上就開干,我們還要提煉這個問題帶來的核心價值。否則很容易就會出現(xiàn)投入了巨大工作之后,最后的技術產出和業(yè)務結果銜接不上,所以說思考不要用蠻力,工作不只靠體力。要去看里面跟自己角色相關的工作在什么地方?以端側來說,有優(yōu)勢的一點是靠近產品側靠近用戶側,所以基本展現(xiàn)模式都可以通過產品原型進行抽象,形成體系化。以流量體系建設舉例我們要對用戶進行分層,比較合理的方式可以用到幾個經典模型RFM、AIPL、AARRR及其變種,以便沉淀出承接的技術平臺或產品。如流量體系建設我們在思考分層過后,把用戶按心智劃分之后,又從所屬域分為散落在阿里域外的用戶和阿里域內的內部用戶,從而針對性的設計出兩個平臺產品。
見龍在田,利見大人
作為項目發(fā)起者,我們要關注每一個環(huán)節(jié)。所以首先我們要找到對應的業(yè)務方去“售賣”我們的思考。要找到目標一致的人一起做事,這里首先需要知道的是你要清楚你的業(yè)務方都是誰?他們都負責什么?我的方法比較簡單,直接看運營在職能上的劃分,要清楚自己對的人負責的方向以及他所負責的KPI。另外切記,一定要和對口PD一起去找,通常來說最直接的合作方是能幫你處理業(yè)務和技術銜接的那個人。
上下游的人都找到后,要開始準備KO,理出需求排出優(yōu)先級。因為在資源有限的情況下,我們究竟該先做哪些?不重要的要放在后面去做,優(yōu)先考慮你產品最核心的功能。通常平臺產品最優(yōu)先的是運營使用的功能,所以要跟合作方確認哪些功能他們認為最重要。
站在巨人的肩膀上做創(chuàng)新
阿里巴巴已經非常大了,我們相信每一個想法都會有人想過,所以盡量不要走重復的路踩同一個坑,同理小公司利用開源技術亦是如此。那么在項目開始做的時候,如果是平臺,我們需要先拆出核心功能,這個核心功能要去看集團是否已經有人在做了或是有成熟方案,避免重復造輪子,同時也能最快最直接的解決你最緊急核心的問題。這其中最簡單直接方法就是搜索ATA(阿里內部技術論壇)和語雀(內部同學通常有知識記錄的習慣),拆關鍵詞找到做事情的關鍵人。你要相信你絕不是第一個想到該問題的人,一些通用問題一定在集團內已經有通用的服務提供出來,即使沒有也會有比較成熟的方案。
如果集團內部就是沒有成型方案,這個方向也屬于工業(yè)界比較前沿的領域。遇到類似這種問題,可以先看看是否有繞開的可能性,如果確實繞不開可以試試找到適合解決該問題的基礎團隊一起合作和共建。外部是否有付費方案可以購買和借鑒,總之要保障業(yè)務先贏。因為業(yè)務工程師要思考的是你給業(yè)務能帶來怎樣的價值,你的核心價值不是處理非常復雜的技術問題,而是用你的技術能給業(yè)務帶來怎樣的價值增量。同樣的利用某種技術或模型模式解決了非常復雜的業(yè)務問題,并且是具有普適價值的技術,這也是業(yè)務端工程師帶給業(yè)務帶來的價值。
立足當下,放眼未來
知幾,其神乎!
要看當下更要看未來,不光技術要看未來,行業(yè)也要看未來。站在當下思考能解決業(yè)務目前遇到的最大的問題,思考未來能為業(yè)務帶來彎道超車的機會。比如飛豬如果在行業(yè)里要追趕同行業(yè)的競品,在資源投入方面沒辦法跟對方的體量比較的情況下,我們做到最后,最好的結果可能也只是追平對手。所以我們亟須找到未來行業(yè)爭勝的關鍵按鈕,把時間和精力聚焦在關鍵節(jié)點,用全球Fun戰(zhàn)略突圍。所以飛豬也要為國際化做好準備,這個領域里同樣有前人探尋的技術經驗供我們借鑒。所以為了讓我們能更聚焦業(yè)務,可以說去年的平臺化是為業(yè)務做了非常好的鋪墊。
最后的技術結果跟業(yè)務結果如何銜接
其實這個小標題有點偽命題的意思,如果一開始我們就把業(yè)務理解的很清楚,執(zhí)行沒有偏離航道比較專注目標的話,不大可能會出現(xiàn)拿不到業(yè)務結果的情況,最后只剩下一個問題:拿到業(yè)務結果的同時技術價值如何體現(xiàn)?
從我自身出發(fā),也常常有同學問我,在業(yè)務做開發(fā),重復造輪子會被人挑戰(zhàn),但事情都有人干了我們的價值在哪?我之前一直都會回答,“搞基礎技術的團隊一直在基礎工程/技術領域深耕,他們也需要關注從技術價值到業(yè)務價值的轉變和銜接,本質上缺少業(yè)務場景,如果我們與他們合作就形成了互補,既拿到了業(yè)務結果同時也能從自身技術成長上得到一定歷練”。
但之后我回想這段對話,是有很多問題在里面的。從業(yè)務工程師角度出發(fā),我們要關注的核心就是保障業(yè)務先贏,如果沒有達到這個目標就容易變成工程師自嗨。所以我們在業(yè)務端需要的是有技術視野能看到集團其他團隊或者外部團隊在做的事,能主動交流讓這件事變成共贏,如果沒有其他人在搞,我們去搞要有人站出來看這個投入產出比是否合理?也就是我們在開篇說的議題度和解答質都高的有價值的問題。這個問題在集團其他團隊是否存在共性,我們解決了能否為他們帶來價值?當然結合我們在前面講到的在業(yè)務中發(fā)現(xiàn)有技術價值的問題,其實這里就有一個比較明確的答案,重中之重就是做之前把Why思考的清楚清晰,做最正確的事。只有做到這點,解決這個問題帶來的業(yè)務價值就自然而然非常清晰的定位出來。所以說最好的工程師必須要懂產品。
也寫給未來
小聊一下題外話,組里有同學會問我業(yè)務前端未來是否會被淘汰?因為我們在做的lowcode/nocode是在革自己的命。其實產生這種想法首先就是沒有站在集團未來發(fā)展的角度去思考也就是常說的屁股太小,其次是沒有站在整個前端領域去回顧前端發(fā)展歷程導致的悲觀和擔憂。
從目前在做的方向上來說,還是要思考如何解決低質量代碼建設和低效的重復工作占用工程師大部分精力,將工程師的能量解放出來提升集團整體的研發(fā)效能。另一層面從前端以往在系統(tǒng)分層里的位置一直都屬于應用層,就是最上層的表象/展現(xiàn)/渲染,應用層在過去幾十年間經過了不斷的變化和演進,職業(yè)也從最早的GUI工程師演進到之后的web前端/客戶端研發(fā)工程師,這中間也經歷過flash工程師的時代,在此期間應用層/展現(xiàn)層一直都在變化,所以前端同學總覺得狀態(tài)是一直在學習新知識。但這個發(fā)展歷程其實是有規(guī)律可循的,所謂萬變不離其宗,應用層雖然在不斷變化但無非都是朝著兩個大方向在發(fā)展,一個是工程效率提升(工程角度出發(fā)),一個是圖形圖像研究(用戶角度出發(fā))。這兩個大方向上目前也有非常復雜龐大的樹狀知識體系,并且還在不斷延伸。同時隨著機器學習領域的興起和硬件性能、網絡帶寬的提升以及人們在視覺呈現(xiàn)設備上的升級,帶來的可能又是新一輪的技術洗牌,然后在兩個方向上再來一次。所以從這個視角出發(fā)未來前端是不會消亡的可能只是會換一種形式存在,但是不學習的工程師是會消亡的。
最后
最后我想說的是來到一個新業(yè)務不要著急的去拿這兩個結果(業(yè)務和技術),所謂“潛龍勿用”。要先去看業(yè)務在集團所處的位置,怎么和其他業(yè)務產生關聯(lián)的,要去收集信息和問題,帶著問題深入去做事情,通過跟其他人的信息交流補全業(yè)務痛點。先收集問題,邊做邊思考,先沉下心做業(yè)務項目。要有導彈型思維,就是不管三七二十一,先干起來再說。在行動中實現(xiàn)智能導航,鎖定并跟蹤目標,根據(jù)實際情況修正自身路徑,直至擊中目標。
其實寫了比較多,也是對我做事情的方法論做了一遍梳理和總結,也是說最好不要讓業(yè)務推著你走,而是最終要做到你帶著業(yè)務走。這個“帶”可能最初是理解業(yè)務打法之后的一種業(yè)務朝著你理解的方向去走的體感,但經過長期訓練,這部分其實可以做實,最后真的是你通過技術創(chuàng)新引領行業(yè)變革最后驅動業(yè)務向前推進。當然這些是我來阿里三年的體會,雖然在來之前也已經工作了七八年,但在阿里成長的速度遠遠超過之前的成長,并且也才剛剛三年還是個“新人”,所以在這里也給自己個寄語,希望五年、十年之后我的思考又會升華到一個層次。同時也歡迎大家拍磚/評論, 原來我都是戰(zhàn)戰(zhàn)兢兢發(fā)文跟大家說輕拍,需要鼓勵,但之后也是發(fā)現(xiàn)鼓勵是最不容易發(fā)現(xiàn)問題,這會導致發(fā)現(xiàn)不了自身思考上的盲點和盲區(qū),缺少成長路上的經驗值,所以這里鼓勵大家一起多交流。
最后的最后也給大家推薦相關的幾本書,可能會對大家在上面幾處沒有展開來講的去更詳細的學習,希望有所幫助:《金字塔原理》、《麥肯錫教我的思考武器》、《思考,快與慢》、《影響力》、《自控力》、《敏捷性開發(fā)》。
PS:飛豬用戶技術部招P7-P8前端、客戶端、Java無線服務端,base杭州,歡迎來撩。部門漂亮的單身妹子眾多,優(yōu)秀前端請聯(lián)系 kuilin.qkl@alibaba-inc.com
參考資料:
[1]《飛豬“新旅行聯(lián)盟”賦能商家能講出什么新故事?》
http://www.sohu.com/a/260195063_100188883
[2]https://baike.baidu.com/item/信息收集/4012739
[3]《如何高效地獲取、收集和整理信息》http://www.woshipm.com/pmd/70847.html
[4]《成為聰明人的第一步,是學會「問對問題」》https://zhuanlan.zhihu.com/p/32635275
[5]《如何區(qū)分有效社交與無效社交?》https://www.zhihu.com/question/26941188/answer/520152258