程序員的價值
? 程序員的迷茫-找尋不到價值
在浩大的軟件世界里术瓮,作為一名普通程序員,顯得十分渺小贰健,甚至?xí)械矫悦0摹N覀儍?nèi)心崇拜技術(shù),卻也對日新月異的技術(shù)抱有深深的恐懼伶椿。技術(shù)市場就像這喜怒不定的老天爺辜伟,今天下個大數(shù)據(jù)雨,明天刮個人工智能風(fēng)脊另,面對琳瑯滿目的技術(shù)浪潮的沖擊导狡,程序員難免深感無力,深怕錯過了技術(shù)潮流從而失去了職場競爭力偎痛。有時候我會思考難道在技術(shù)領(lǐng)域內(nèi)不斷緊跟新潮旱捧,不斷提升技能就是我的價值所在? 那么我是技術(shù)的主人還是技術(shù)的奴隸?
人之所以迷茫往往是找不到工作生活的重心踩麦,感受不到工作或生活的價值枚赡。那么什么是價值呢?說的大一點就是我改變了世界谓谦,說的小一點就是我的所作所為改善了某些問題贫橙。如果不清楚自己的行為、目標(biāo)反粥、價值三者的關(guān)系卢肃,那么又何來重心谓松?又如何能分得清重要性與優(yōu)先級呢?
程序員的迷茫不僅僅是面對技術(shù)繁雜的無力感践剂,更重要的是因為長期埋沒于軟件世界的浩大的分工體系中鬼譬,無法看清從業(yè)務(wù)到軟件架構(gòu)的價值鏈條,無法清楚定位自己在分工體系的位置逊脯,處理不好自身與技術(shù)优质、業(yè)務(wù)的關(guān)系所致。
很多程序員打心底不喜歡業(yè)務(wù)军洼,這一點我曾經(jīng)也經(jīng)歷過巩螃,我更寧愿從事框架工具、技術(shù)組件研究的相關(guān)事情匕争。我有個朋友經(jīng)常吐槽我說:"你們天天加班加點寫了那么多代碼避乏,然后呢?有改變什么嗎甘桑?還不是寫出了一堆垃圾拍皮。" 仔細(xì)想想很多時候業(yè)務(wù)在我們腦海中存留的只是邏輯和流程,我們丟失的是對業(yè)務(wù)場景的感受跑杭,對用戶痛點的體會铆帽,對業(yè)務(wù)發(fā)展的思考。這些都是與價值緊密相關(guān)的部分德谅。我們很自然的用戰(zhàn)術(shù)的勤快掩蓋戰(zhàn)略的懶惰爹橱!那么這樣的后果就是我們把自己限死在流水線的工位上,閹割了自己能夠發(fā)現(xiàn)業(yè)務(wù)價值的能力窄做,而過多關(guān)注新技術(shù)對職場競爭力的價值愧驱。這也就是我們面對繁雜技術(shù),而產(chǎn)生技術(shù)學(xué)習(xí)焦慮癥的根本原因椭盏。
? 業(yè)務(wù)组砚、技術(shù)與軟件系統(tǒng)的價值鏈
那么什么是業(yè)務(wù)呢?就是指某種有目的的工作或工作項目庸汗,業(yè)務(wù)的目的就是解決人類社會與吃喝住行息息相關(guān)的領(lǐng)域問題惫确,包括物質(zhì)的需求和精神的需求。使開展業(yè)務(wù)活動的主體和受眾都能得到利益蚯舱。通俗的講業(yè)務(wù)就是用戶的痛點改化,是業(yè)務(wù)提供方(比如公司)的盈利點。而技術(shù)則是解決問題的工具和手段枉昏。比如為了解決用戶隨時隨地購物的業(yè)務(wù)問題時陈肛,程序員利用 web 技術(shù)構(gòu)建電子商務(wù) App,而當(dāng)需求升級為幫助用戶快速選購商品時兄裂,程序員會利用數(shù)據(jù)算法等技術(shù)手段構(gòu)建推薦引擎句旱。技術(shù)如果脫離了業(yè)務(wù)阳藻,那么技術(shù)應(yīng)用就無法很好的落地,技術(shù)的研究也將失去場景和方向而業(yè)務(wù)脫離了技術(shù)谈撒,那么業(yè)務(wù)的開展就變得極其昂貴和低效腥泥。
所以回過頭來我們想想自己沒日沒夜寫了那么多的代碼從而構(gòu)建起來的軟件系統(tǒng),它的價值何在呢啃匿?說白了就是為了解決業(yè)務(wù)問題蛔外,所以當(dāng)你所從事的工作內(nèi)容并不能為解決業(yè)務(wù)問題帶來多大幫助的時候,你應(yīng)該要及時做出調(diào)整溯乒。那么軟件系統(tǒng)又是如何體現(xiàn)它自身的價值呢夹厌?在我看來由如下方面體現(xiàn):
業(yè)務(wù)領(lǐng)域與功能:比如支付寶立足支付領(lǐng)域而推出的轉(zhuǎn)賬、收款功能等, 比如人工智能自動駕駛系統(tǒng)等裆悄。
服務(wù)能力:這就好比火車站購票窗口矛纹,評判它的服務(wù)能力的標(biāo)準(zhǔn)就是它能夠同時處理多少的用戶購票業(yè)務(wù),能不能在指定時間內(nèi)完成購票業(yè)務(wù)光稼,能不能 7*8 小時持續(xù)工作或南。對應(yīng)到軟件系統(tǒng)領(lǐng)域,則表現(xiàn)為
系統(tǒng)正確性(程序能夠正確表述業(yè)務(wù)流程钟哥,沒有 Bug)迎献。
可用性(可以 7*24 小時*365 不間歇工作)。
大規(guī)模(高并發(fā)腻贰,高吞吐量)。
互聯(lián)網(wǎng)公司正是借助大規(guī)模的軟件系統(tǒng)承載著繁多的業(yè)務(wù)功能扒秸,使其擁有巨大的服務(wù)能力并借助互聯(lián)網(wǎng)技術(shù)突破了空間限制播演,高效低廉解決了業(yè)務(wù)問題,創(chuàng)造了豐厚的利潤伴奥,這是人肉所不可比擬的写烤。
理解了這一層面的概念,你就可以清楚這個價值鏈條即:公司依靠軟件系統(tǒng)提供業(yè)務(wù)服務(wù)而創(chuàng)造價值拾徙,程序員則是通過構(gòu)建并持續(xù)演進(jìn)軟件系統(tǒng)服務(wù)能力以及業(yè)務(wù)功能以支撐公司業(yè)務(wù)發(fā)展從而創(chuàng)造價值洲炊。
有了這個價值鏈條,我們就可以反思自己的工作學(xué)習(xí)對軟件系統(tǒng)的服務(wù)能力提升起到了多大的推動作用尼啡?可以反思自己的工作學(xué)習(xí)是否切實在解決領(lǐng)域的業(yè)務(wù)問題暂衡,還是只是做一些意義不大的重復(fù)性工作。
前兩天面試了一個候選人崖瞭,他的工作是從事票務(wù)系統(tǒng)開發(fā)狂巢,他說自己在研究 linux 內(nèi)核與匯編語言,我就問他 linux 內(nèi)核和匯編語言的學(xué)習(xí)對你的工作產(chǎn)生了哪些幫助书聚?能否舉一個例子唧领?他啞口無言藻雌,我內(nèi)心就覺得這樣一個熱愛學(xué)習(xí)的好苗子正迷茫找不到重心,正在做一件的浪費精力的事情斩个。正確的學(xué)習(xí)方式應(yīng)該是將學(xué)習(xí)與具體業(yè)務(wù)場景結(jié)合起來胯杭,和公司通過軟件系統(tǒng)開展業(yè)務(wù)服務(wù)而創(chuàng)造價值,程序員通過提升軟件系統(tǒng)服務(wù)能力創(chuàng)造價值這一鏈條串接起來受啥,從對這些價值產(chǎn)生幫助的程度去思考優(yōu)先級歉摧。學(xué)習(xí)本身沒有錯,錯的往往就是那顆初心腔呜。
現(xiàn)在你再來看高并發(fā)分布式相關(guān)的知識叁温,你會發(fā)現(xiàn)并不是因為這些知識比較高深、比較時髦核畴,很多公司有需求才值得學(xué)習(xí)膝但,而是他們對價值鏈條有著實實在在的貢獻(xiàn)。
? 價值驅(qū)動的架構(gòu)
一談到軟件系統(tǒng)谤草,人們免不了想起架構(gòu)這件事來跟束。之所以此處去談及架構(gòu)是因為每一個程序員本質(zhì)都是軟件架構(gòu)體系中的一分子,我們可能深埋于體系流水線之中丑孩,感受不到位置和價值冀宴。但如果站在架構(gòu)這一高度去看這些問題則將會非常透徹。那么架構(gòu)究竟是什么温学?和上述的價值鏈又有什么關(guān)系呢略贮?
? 什么是架構(gòu)
在我看來軟件架構(gòu)就是將人員、技術(shù)等資源組織起來以解決業(yè)務(wù)問題仗岖,支撐業(yè)務(wù)增長的一種活動逃延。可能比較抽象,我想我們可以從架構(gòu)師的一些具體工作任務(wù)來理解這句話含義:
組織業(yè)務(wù):架構(gòu)師通過探索和研究業(yè)務(wù)領(lǐng)域的知識轧拄,構(gòu)建自身看待業(yè)務(wù)的 "世界觀"揽祥。他會基于這種認(rèn)識拆分業(yè)務(wù)生命周期,確立業(yè)務(wù)邊界檩电,構(gòu)建出了一套解決特定業(yè)務(wù)問題的領(lǐng)域模型拄丰。并且確認(rèn)模型之間、領(lǐng)域之間的關(guān)系與協(xié)作方式俐末。完成了對業(yè)務(wù)領(lǐng)域內(nèi)的要素的組織工作料按。
組織技術(shù):為了能在計算機世界中運作人類社會的業(yè)務(wù)模型,架構(gòu)師需要選用計算機世界中合適的框架鹅搪、中間件站绪、編程語言、網(wǎng)絡(luò)協(xié)議等技術(shù)工具依據(jù)之前設(shè)計方案組織起來形成一套軟件系統(tǒng)方案丽柿,在我看來軟件系統(tǒng)就像是一種技術(shù)組織恢准,即技術(shù)組件魂挂、技術(shù)手段依據(jù)某種邏輯被組織起來了,這些技術(shù)工具被確定了職責(zé)馁筐,有了明確分工涂召,并以實現(xiàn)業(yè)務(wù)功能為目標(biāo)集合在了一起。比如 RPC 框架或消息隊列被用于內(nèi)部系統(tǒng)之間的通信服務(wù)就如同信使一般敏沉,而數(shù)據(jù)庫則負(fù)責(zé)記錄結(jié)果果正,它更像是一名書記員。
組織人員:為了能夠?qū)崿F(xiàn)利用軟件系統(tǒng)解決業(yè)務(wù)問題的目標(biāo)盟迟,架構(gòu)師還需要關(guān)注軟件系統(tǒng)的構(gòu)建過程秋泳,他以實現(xiàn)軟件系統(tǒng)為號召,從公司組織中聚集一批軟件工程師攒菠,并將這些人員按不同工種迫皱、不同職責(zé)、不同系統(tǒng)進(jìn)行組織辖众,確定這些人員之間的協(xié)作方式卓起,并關(guān)注這個組織系統(tǒng)是否運作良好比如溝通是否順暢、產(chǎn)出是否達(dá)到要求凹炸、能否按時間完成等戏阅。
組織全局,對外輸出:架構(gòu)師的首要目標(biāo)是解決業(yè)務(wù)問題啤它,推動業(yè)務(wù)增長奕筐。所以他非常關(guān)心軟件的運行狀況。因為只有在軟件系統(tǒng)運行起來后蚕键,才能對外提供服務(wù)救欧,才能在用戶訪問的過程中,解決業(yè)務(wù)問題锣光。架構(gòu)師需要關(guān)注運行過程中產(chǎn)生的數(shù)據(jù)比如業(yè)務(wù)成功率,系統(tǒng)運行資源占用數(shù)據(jù)铝耻、用戶反饋信息誊爹、業(yè)務(wù)增長情況等,這些信息將會幫助架構(gòu)師制定下一步架構(gòu)目標(biāo)和方向瓢捉。
所以軟件架構(gòu)不僅僅只是選用什么框架频丘、選用什么技術(shù)組件這么簡單。它貫穿了對人的組織泡态、對技術(shù)的組織搂漠、對業(yè)務(wù)的組織,并將這三種組織以解決業(yè)務(wù)問題這一目標(biāo)有機的結(jié)合在了一起某弦。
很多面試的候選人在被問及他所開發(fā)的系統(tǒng)采用什么架構(gòu)的問題時桐汤,只會羅列出一些技術(shù)組件而克、技術(shù)框架等技術(shù)要素,這樣看來其根本沒有理清架構(gòu)的深層含義怔毛。也有一些架構(gòu)師只專注對底層技術(shù)的研究员萍,以為打造一個卓越的系統(tǒng)是非常牛逼的事情,可是他忽略了軟件系統(tǒng)的價值是以解決業(yè)務(wù)問題的能力拣度、支撐業(yè)務(wù)增長的能力為衡量標(biāo)準(zhǔn)碎绎,所以最后生產(chǎn)出了很多對組織,對業(yè)務(wù)沒有幫助的系統(tǒng)抗果。
? 成本與收益
正如之前所說軟件系統(tǒng)只有在運行的時候才能創(chuàng)造價值筋帖,也就是說軟件系統(tǒng)能否 7*24 小時*365 天穩(wěn)定的工作關(guān)系到公司的收益水平。所以開發(fā)團隊對生產(chǎn)環(huán)境的發(fā)布總是小心翼翼冤馏,對解決生產(chǎn)環(huán)境的問題總是加班加點日麸。而軟件系統(tǒng)的成本則體現(xiàn)在軟件構(gòu)建過程,這時候我們就能理解那些工程技術(shù)如項目管理宿接、敏捷開發(fā)赘淮、單元測試、持續(xù)集成睦霎、持續(xù)構(gòu)建梢卸,版本管理等的價值了,他們有的是保證軟件系統(tǒng)正確性副女,有的是為了降低溝通成本蛤高,有的是為了提升開發(fā)效率等但總的來說就是為了降低軟件的構(gòu)建成本。所以在提升系統(tǒng)服務(wù)能力碑幅,創(chuàng)造更多業(yè)務(wù)收益的同時戴陡,降低構(gòu)建成本也是一種提升收益的有效手段。
作為一名軟件工程師而言沟涨,我們往往處在軟件構(gòu)建過程體系中的某個環(huán)節(jié)恤批,我們可以基于成本與收益的關(guān)系去思考自己每一項技能的價值,學(xué)習(xí)新的有價值的技能裹赴,甚至在工作中基于成本與收益的考量選擇合適的技術(shù)喜庞。比如在邏輯不大發(fā)生變化的地方,沒有必要去做過多的設(shè)計棋返,應(yīng)用各種花俏的設(shè)計模式等浪費時間延都。這樣我們才能成為技術(shù)的主人。
? 架構(gòu)目標(biāo)需要適應(yīng)業(yè)務(wù)的發(fā)展
架構(gòu)的目標(biāo)就是為了支撐業(yè)務(wù)增長睛竣,就是提升軟件系統(tǒng)的服務(wù)能力晰房。可是話雖說如此,但真實卻要做很多取舍殊者。比如對初創(chuàng)團隊而言与境,其產(chǎn)品是否解決業(yè)務(wù)問題這一設(shè)想還沒得到確認(rèn),就立即去構(gòu)造一個高性能幽污、高可用的分布式系統(tǒng)嚷辅,這樣的架構(gòu)目標(biāo)遠(yuǎn)超出業(yè)務(wù)發(fā)展的需求,最后的結(jié)果就是浪費大量人力物力距误,卻得不到任何起色簸搞。架構(gòu)師需要審時度勢,仔細(xì)衡量正確性准潭、大規(guī)模趁俊、可用性三者的關(guān)系齿桃,比如今年業(yè)務(wù)蓬勃發(fā)展日均訂單 300 萬辐赞,基于對未來的可能預(yù)測,明年可能有 3000 萬的訂單砾医,那么架構(gòu)師應(yīng)該要著重考慮大規(guī)模和可用性泼掠。而且每一點提升的程度怔软,也需要架構(gòu)師衡量把握,比如可用性要達(dá)到 2 個 9 還是 3 個 9择镇。
回顧自己以往的工作很多時候就是因為沒有確立架構(gòu)目標(biāo)導(dǎo)致浪費了組織很多資源挡逼,比如在之前的創(chuàng)業(yè)團隊中,由于本人有一定的代碼潔癖腻豌,經(jīng)常會花費很多時間和同事計較代碼質(zhì)量家坎,這樣本可以更快上線的功能卻需要被延遲,當(dāng)時過度追求正確性的行為是與創(chuàng)業(yè)團隊快速驗證想法的業(yè)務(wù)需求不匹配的吝梅。另外一點比較深刻的案例則是在本人擔(dān)任一個技術(shù)團隊負(fù)責(zé)人的時候虱疏,在一次述職報告的時候,leader 問我對接下來團隊工作有什么計劃苏携?我當(dāng)時說了一堆什么改進(jìn)代碼質(zhì)量做瞪,每天晨會,任務(wù)透明化右冻,建立迭代機制等等穿扳,然后就被各種批駁一通。當(dāng)時團隊基本以外包人員為主国旷,人員水平較差,開發(fā)出來的金融系統(tǒng)也是千瘡百孔而這條業(yè)務(wù)線最重要的業(yè)務(wù)價值則是按計劃實現(xiàn)潛在投資方的需求茫死,爭取拉到投資跪但。所以不久 leader 就召集測試架構(gòu)的相關(guān)人員與我這邊一同梳理對核心功能的測試工作,將研發(fā)、測試屡久、上線的流程自動化忆首。當(dāng)時并不理解這樣做核心價值是什么?但回過頭來看這樣的工作方式恰好符合了業(yè)務(wù)發(fā)展的需求被环,即確保系統(tǒng)是符合設(shè)計需求的糙及,保證系統(tǒng)達(dá)到可接受的正確性,為后續(xù)能過快速前進(jìn)打下基礎(chǔ)筛欢,最重要的是為企業(yè)降低了構(gòu)建成本浸锨。所以程序員想要工作出業(yè)績,必須認(rèn)清楚系統(tǒng)背后的業(yè)務(wù)價值版姑,按價值去梳理工作優(yōu)先級柱搜,而不是像我一般過度糾結(jié)細(xì)節(jié),追求技術(shù)理想化剥险。
? 成也分工聪蘸,敗也分工
正如在程序員的迷茫那一章節(jié)提到的:程序員的迷茫因為長期埋沒于軟件世界的浩大的分工體系中,無法看清從業(yè)務(wù)到軟件架構(gòu)的價值鏈條表制,無法清楚定位自己在分工體系的位置健爬,處理不好自身與技術(shù)、業(yè)務(wù)的關(guān)系所致么介。所以在這里我想談?wù)劮止つ茸瘛<軜?gòu)師為了使軟件系統(tǒng)更好的服務(wù)業(yè)務(wù),必然將軟件系統(tǒng)生命周期進(jìn)行拆分夭拌,比如分出開發(fā)生命周期魔熏、測試生命周期、用戶訪問生命周期鸽扁、軟件運維生命周期蒜绽。并根據(jù)不同的生命周期劃分出不同的職責(zé)與角色,比如開發(fā)人員負(fù)責(zé)開發(fā)周期負(fù)責(zé)完成軟件研發(fā)桶现,測試人員負(fù)責(zé)對開發(fā)人員交付的成果進(jìn)行測試等躲雅,于是就形成了分工。一旦分工形成骡和,每一個分工組織都會有自己的價值追求相赁,架構(gòu)師關(guān)注的頂層的價值即軟件系統(tǒng)能否支撐業(yè)務(wù)增長被分工的形式打碎到各個組織中。分工是有其價值的慰于,他使得復(fù)雜昂貴的任務(wù)可以被簡單钮科、并行、可替換的流水線方式解決婆赠。但久而久之绵脯,價值碎片化的問題就出現(xiàn)了,比如測試人員只關(guān)注找出更多問題,開發(fā)人員只關(guān)注快速開發(fā)更多的系統(tǒng)蛆挫,運維人員只關(guān)注保障系統(tǒng)穩(wěn)定赃承。三者之間常常都只站在自己的立場去要求對方怎么做,沒有人再關(guān)注整體價值悴侵,產(chǎn)生諸多矛盾增加軟件實施成本瞧剖。而身處流水線中的一員,又因為困擾于重復(fù)性工作可免,迷茫于工作的意義抓于,甚至感覺自己做為了人的創(chuàng)意與靈感都被扼殺了。所以我的朋友吐槽我說你寫了那么多代碼然后并沒有怎么樣是非常有道理的巴元,那是因為我只關(guān)注著做為流水工人的價值要求毡咏,看不到生態(tài)鏈最頂端的價值。
我們仔細(xì)想想那些團隊領(lǐng)導(dǎo)逮刨,精英領(lǐng)袖哪一個不是為著更廣大的價值所負(fù)責(zé)呕缭,比如項目經(jīng)理只需要關(guān)心自身項目的商業(yè)價值,而公司 CEO 則關(guān)心公司范疇內(nèi)所有業(yè)務(wù)的總體商業(yè)價值修己。所以關(guān)注的價值越大且職位也就越高恢总。這些高層領(lǐng)導(dǎo)者們把控著整體的價值鏈條,及時糾正底層分工組織的價值目標(biāo)與整體價值目標(biāo)出現(xiàn)偏差的問題睬愤。
? 從價值出發(fā)-找尋學(xué)習(xí)與工作的新思路
迷茫能引發(fā)思考片仿,架構(gòu)則塑造了視野,而價值則是我們之所以存活尤辱,之所以工作的邏輯起點砂豌。基于這樣一種價值思維,對我們的學(xué)習(xí)和工作又可以有哪些改啟示呢光督?
明確自身的業(yè)務(wù)相關(guān)主體:找出你工作的協(xié)作關(guān)系網(wǎng)內(nèi)的業(yè)務(wù)方和客戶方阳距,這樣你就可以從客戶方中找到離你最近的業(yè)務(wù)價值點,從你的業(yè)務(wù)方中挖掘更多的資源结借。甚至你可以按這個思路順著網(wǎng)絡(luò)向上或向下挖掘價值鏈條筐摘,整合更多的上下游資源以實現(xiàn)更大的價值。
向前一步船老,為更大的價值負(fù)責(zé):不要因為自己是開發(fā)人員就不去關(guān)注軟件運維咖熟,不要因為只是測試就不關(guān)注軟件開發(fā),因為你關(guān)注的越多你越能看清全局的價值目標(biāo)柳畔。如果只關(guān)注一畝三分地馍管,那么注定這輩子只能困守在這一畝三分地里,成為一名流水線上焦慮至死的碼農(nóng)薪韩。試著轉(zhuǎn)變思維咽斧,從架構(gòu)師的角度思考價值問題堪置,看看能否將技術(shù)貫穿到業(yè)務(wù)、到用戶张惹、到最終的價值去。之前我的朋友說過要把產(chǎn)品經(jīng)理踢到運營位置去岭洲,把程序員踢到產(chǎn)品經(jīng)理位置去宛逗,這樣才是正確做事方式。這句話也是類似的意思盾剩,向前一步才能懂得怎么做的更好雷激。
像架構(gòu)師一樣思考,用價值找尋重心:人的迷茫是因為找不到重心告私,而價值的意義在于引導(dǎo)我們思考做哪些事情才能實現(xiàn)價值屎暇,先做哪些事情會比后做哪些事情更能創(chuàng)造收益。像架構(gòu)師那樣全局性思考驻粟,把遇到問題進(jìn)行拆分根悼,把學(xué)習(xí)到的事物串聯(lián)起來,努力構(gòu)成完整的價值鏈條蜀撑。
學(xué)會連接挤巡,構(gòu)建體系:前幾天看到一篇文章對今日頭條的產(chǎn)品形態(tài)極盡批判之詞,指責(zé)它的智能算法將人類封死在自己的喜好之中酷麦,將人類社會進(jìn)一步碎片化矿卑。這似乎很有道理,有趣的是互聯(lián)網(wǎng)將我們連接至廣袤的世界沃饶,卻也把我們封閉在獨屬于自己的小世界里母廷。依舊是我的那位朋友,他說他的最大價值在于連接糊肤,將不同的人連接在一起琴昆,有趣的事情可能就會即將發(fā)生⌒郑或許算法的天性就是順從與迎合椎咧,但人最終想理解這個世界還是需要依靠自身的行動與不同人之間建立聯(lián)系,這也是一種擺脫流水線限制的有效方式把介。另外勤讽,我們自身也是某種事物連接的產(chǎn)物,比如架構(gòu)師拗踢,他是業(yè)務(wù)脚牍、技術(shù)、管理連接在一起的一種產(chǎn)物巢墅。所以我們應(yīng)當(dāng)樹立自身的知識體系以吸收融合新知識诸狭,將孤立的概念連接起來券膀,形成自身的價值鏈條。比如這篇文章將我從事技術(shù)開發(fā)經(jīng)驗驯遇、與對架構(gòu)的理解以及自身過往經(jīng)歷結(jié)合起來芹彬,這也是一種內(nèi)在的體系梳理。程序員的價值
? 程序員的迷茫-找尋不到價值
在浩大的軟件世界里叉庐,作為一名普通程序員舒帮,顯得十分渺小,甚至?xí)械矫悦6傅N覀儍?nèi)心崇拜技術(shù)玩郊,卻也對日新月異的技術(shù)抱有深深的恐懼。技術(shù)市場就像這喜怒不定的老天爺枉阵,今天下個大數(shù)據(jù)雨译红,明天刮個人工智能風(fēng),面對琳瑯滿目的技術(shù)浪潮的沖擊兴溜,程序員難免深感無力侦厚,深怕錯過了技術(shù)潮流從而失去了職場競爭力。有時候我會思考難道在技術(shù)領(lǐng)域內(nèi)不斷緊跟新潮昵慌,不斷提升技能就是我的價值所在? 那么我是技術(shù)的主人還是技術(shù)的奴隸假夺?
人之所以迷茫往往是找不到工作生活的重心,感受不到工作或生活的價值斋攀。那么什么是價值呢已卷?說的大一點就是我改變了世界,說的小一點就是我的所作所為改善了某些問題淳蔼。如果不清楚自己的行為侧蘸、目標(biāo)、價值三者的關(guān)系鹉梨,那么又何來重心讳癌?又如何能分得清重要性與優(yōu)先級呢?
程序員的迷茫不僅僅是面對技術(shù)繁雜的無力感存皂,更重要的是因為長期埋沒于軟件世界的浩大的分工體系中晌坤,無法看清從業(yè)務(wù)到軟件架構(gòu)的價值鏈條,無法清楚定位自己在分工體系的位置旦袋,處理不好自身與技術(shù)骤菠、業(yè)務(wù)的關(guān)系所致。
很多程序員打心底不喜歡業(yè)務(wù)疤孕,這一點我曾經(jīng)也經(jīng)歷過商乎,我更寧愿從事框架工具、技術(shù)組件研究的相關(guān)事情祭阀。我有個朋友經(jīng)常吐槽我說:"你們天天加班加點寫了那么多代碼鹉戚,然后呢鲜戒?有改變什么嗎?還不是寫出了一堆垃圾抹凳。" 仔細(xì)想想很多時候業(yè)務(wù)在我們腦海中存留的只是邏輯和流程遏餐,我們丟失的是對業(yè)務(wù)場景的感受,對用戶痛點的體會却桶,對業(yè)務(wù)發(fā)展的思考境输。這些都是與價值緊密相關(guān)的部分。我們很自然的用戰(zhàn)術(shù)的勤快掩蓋戰(zhàn)略的懶惰颖系!那么這樣的后果就是我們把自己限死在流水線的工位上,閹割了自己能夠發(fā)現(xiàn)業(yè)務(wù)價值的能力辩越,而過多關(guān)注新技術(shù)對職場競爭力的價值嘁扼。這也就是我們面對繁雜技術(shù),而產(chǎn)生技術(shù)學(xué)習(xí)焦慮癥的根本原因黔攒。
? 業(yè)務(wù)趁啸、技術(shù)與軟件系統(tǒng)的價值鏈
那么什么是業(yè)務(wù)呢?就是指某種有目的的工作或工作項目督惰,業(yè)務(wù)的目的就是解決人類社會與吃喝住行息息相關(guān)的領(lǐng)域問題不傅,包括物質(zhì)的需求和精神的需求。使開展業(yè)務(wù)活動的主體和受眾都能得到利益赏胚。通俗的講業(yè)務(wù)就是用戶的痛點访娶,是業(yè)務(wù)提供方(比如公司)的盈利點。而技術(shù)則是解決問題的工具和手段觉阅。比如為了解決用戶隨時隨地購物的業(yè)務(wù)問題時崖疤,程序員利用 web 技術(shù)構(gòu)建電子商務(wù) App,而當(dāng)需求升級為幫助用戶快速選購商品時典勇,程序員會利用數(shù)據(jù)算法等技術(shù)手段構(gòu)建推薦引擎劫哼。技術(shù)如果脫離了業(yè)務(wù),那么技術(shù)應(yīng)用就無法很好的落地割笙,技術(shù)的研究也將失去場景和方向而業(yè)務(wù)脫離了技術(shù)权烧,那么業(yè)務(wù)的開展就變得極其昂貴和低效。
所以回過頭來我們想想自己沒日沒夜寫了那么多的代碼從而構(gòu)建起來的軟件系統(tǒng)伤溉,它的價值何在呢般码?說白了就是為了解決業(yè)務(wù)問題,所以當(dāng)你所從事的工作內(nèi)容并不能為解決業(yè)務(wù)問題帶來多大幫助的時候谈火,你應(yīng)該要及時做出調(diào)整侈询。那么軟件系統(tǒng)又是如何體現(xiàn)它自身的價值呢?在我看來由如下方面體現(xiàn):
業(yè)務(wù)領(lǐng)域與功能:比如支付寶立足支付領(lǐng)域而推出的轉(zhuǎn)賬糯耍、收款功能等, 比如人工智能自動駕駛系統(tǒng)等扔字。
服務(wù)能力:這就好比火車站購票窗口囊嘉,評判它的服務(wù)能力的標(biāo)準(zhǔn)就是它能夠同時處理多少的用戶購票業(yè)務(wù),能不能在指定時間內(nèi)完成購票業(yè)務(wù)革为,能不能 7*8 小時持續(xù)工作扭粱。對應(yīng)到軟件系統(tǒng)領(lǐng)域,則表現(xiàn)為
系統(tǒng)正確性(程序能夠正確表述業(yè)務(wù)流程震檩,沒有 Bug)琢蛤。
可用性(可以 7*24 小時*365 不間歇工作)。
大規(guī)模(高并發(fā)抛虏,高吞吐量)博其。
互聯(lián)網(wǎng)公司正是借助大規(guī)模的軟件系統(tǒng)承載著繁多的業(yè)務(wù)功能,使其擁有巨大的服務(wù)能力并借助互聯(lián)網(wǎng)技術(shù)突破了空間限制迂猴,高效低廉解決了業(yè)務(wù)問題慕淡,創(chuàng)造了豐厚的利潤,這是人肉所不可比擬的沸毁。
理解了這一層面的概念峰髓,你就可以清楚這個價值鏈條即:公司依靠軟件系統(tǒng)提供業(yè)務(wù)服務(wù)而創(chuàng)造價值,程序員則是通過構(gòu)建并持續(xù)演進(jìn)軟件系統(tǒng)服務(wù)能力以及業(yè)務(wù)功能以支撐公司業(yè)務(wù)發(fā)展從而創(chuàng)造價值息尺。
有了這個價值鏈條携兵,我們就可以反思自己的工作學(xué)習(xí)對軟件系統(tǒng)的服務(wù)能力提升起到了多大的推動作用?可以反思自己的工作學(xué)習(xí)是否切實在解決領(lǐng)域的業(yè)務(wù)問題搂誉,還是只是做一些意義不大的重復(fù)性工作徐紧。
前兩天面試了一個候選人,他的工作是從事票務(wù)系統(tǒng)開發(fā)勒葱,他說自己在研究 linux 內(nèi)核與匯編語言浪汪,我就問他 linux 內(nèi)核和匯編語言的學(xué)習(xí)對你的工作產(chǎn)生了哪些幫助?能否舉一個例子凛虽?他啞口無言死遭,我內(nèi)心就覺得這樣一個熱愛學(xué)習(xí)的好苗子正迷茫找不到重心,正在做一件的浪費精力的事情凯旋。正確的學(xué)習(xí)方式應(yīng)該是將學(xué)習(xí)與具體業(yè)務(wù)場景結(jié)合起來呀潭,和公司通過軟件系統(tǒng)開展業(yè)務(wù)服務(wù)而創(chuàng)造價值,程序員通過提升軟件系統(tǒng)服務(wù)能力創(chuàng)造價值這一鏈條串接起來至非,從對這些價值產(chǎn)生幫助的程度去思考優(yōu)先級钠署。學(xué)習(xí)本身沒有錯,錯的往往就是那顆初心荒椭。
現(xiàn)在你再來看高并發(fā)分布式相關(guān)的知識谐鼎,你會發(fā)現(xiàn)并不是因為這些知識比較高深、比較時髦趣惠,很多公司有需求才值得學(xué)習(xí)狸棍,而是他們對價值鏈條有著實實在在的貢獻(xiàn)身害。
? 價值驅(qū)動的架構(gòu)
一談到軟件系統(tǒng),人們免不了想起架構(gòu)這件事來草戈。之所以此處去談及架構(gòu)是因為每一個程序員本質(zhì)都是軟件架構(gòu)體系中的一分子塌鸯,我們可能深埋于體系流水線之中,感受不到位置和價值唐片。但如果站在架構(gòu)這一高度去看這些問題則將會非常透徹丙猬。那么架構(gòu)究竟是什么?和上述的價值鏈又有什么關(guān)系呢费韭?
? 什么是架構(gòu)
在我看來軟件架構(gòu)就是將人員茧球、技術(shù)等資源組織起來以解決業(yè)務(wù)問題,支撐業(yè)務(wù)增長的一種活動星持。可能比較抽象袜腥,我想我們可以從架構(gòu)師的一些具體工作任務(wù)來理解這句話含義:
組織業(yè)務(wù):架構(gòu)師通過探索和研究業(yè)務(wù)領(lǐng)域的知識,構(gòu)建自身看待業(yè)務(wù)的 "世界觀"钉汗。他會基于這種認(rèn)識拆分業(yè)務(wù)生命周期,確立業(yè)務(wù)邊界鲤屡,構(gòu)建出了一套解決特定業(yè)務(wù)問題的領(lǐng)域模型损痰。并且確認(rèn)模型之間、領(lǐng)域之間的關(guān)系與協(xié)作方式酒来。完成了對業(yè)務(wù)領(lǐng)域內(nèi)的要素的組織工作卢未。
組織技術(shù):為了能在計算機世界中運作人類社會的業(yè)務(wù)模型,架構(gòu)師需要選用計算機世界中合適的框架堰汉、中間件辽社、編程語言、網(wǎng)絡(luò)協(xié)議等技術(shù)工具依據(jù)之前設(shè)計方案組織起來形成一套軟件系統(tǒng)方案翘鸭,在我看來軟件系統(tǒng)就像是一種技術(shù)組織滴铅,即技術(shù)組件、技術(shù)手段依據(jù)某種邏輯被組織起來了就乓,這些技術(shù)工具被確定了職責(zé)汉匙,有了明確分工,并以實現(xiàn)業(yè)務(wù)功能為目標(biāo)集合在了一起生蚁。比如 RPC 框架或消息隊列被用于內(nèi)部系統(tǒng)之間的通信服務(wù)就如同信使一般噩翠,而數(shù)據(jù)庫則負(fù)責(zé)記錄結(jié)果,它更像是一名書記員邦投。
組織人員:為了能夠?qū)崿F(xiàn)利用軟件系統(tǒng)解決業(yè)務(wù)問題的目標(biāo)伤锚,架構(gòu)師還需要關(guān)注軟件系統(tǒng)的構(gòu)建過程,他以實現(xiàn)軟件系統(tǒng)為號召志衣,從公司組織中聚集一批軟件工程師屯援,并將這些人員按不同工種猛们、不同職責(zé)、不同系統(tǒng)進(jìn)行組織玄呛,確定這些人員之間的協(xié)作方式阅懦,并關(guān)注這個組織系統(tǒng)是否運作良好比如溝通是否順暢、產(chǎn)出是否達(dá)到要求徘铝、能否按時間完成等耳胎。
組織全局,對外輸出:架構(gòu)師的首要目標(biāo)是解決業(yè)務(wù)問題惕它,推動業(yè)務(wù)增長怕午。所以他非常關(guān)心軟件的運行狀況。因為只有在軟件系統(tǒng)運行起來后淹魄,才能對外提供服務(wù)郁惜,才能在用戶訪問的過程中,解決業(yè)務(wù)問題甲锡。架構(gòu)師需要關(guān)注運行過程中產(chǎn)生的數(shù)據(jù)比如業(yè)務(wù)成功率兆蕉,系統(tǒng)運行資源占用數(shù)據(jù)、用戶反饋信息缤沦、業(yè)務(wù)增長情況等虎韵,這些信息將會幫助架構(gòu)師制定下一步架構(gòu)目標(biāo)和方向。
所以軟件架構(gòu)不僅僅只是選用什么框架缸废、選用什么技術(shù)組件這么簡單包蓝。它貫穿了對人的組織、對技術(shù)的組織企量、對業(yè)務(wù)的組織测萎,并將這三種組織以解決業(yè)務(wù)問題這一目標(biāo)有機的結(jié)合在了一起。
很多面試的候選人在被問及他所開發(fā)的系統(tǒng)采用什么架構(gòu)的問題時届巩,只會羅列出一些技術(shù)組件硅瞧、技術(shù)框架等技術(shù)要素,這樣看來其根本沒有理清架構(gòu)的深層含義姆泻。也有一些架構(gòu)師只專注對底層技術(shù)的研究零酪,以為打造一個卓越的系統(tǒng)是非常牛逼的事情,可是他忽略了軟件系統(tǒng)的價值是以解決業(yè)務(wù)問題的能力拇勃、支撐業(yè)務(wù)增長的能力為衡量標(biāo)準(zhǔn)四苇,所以最后生產(chǎn)出了很多對組織,對業(yè)務(wù)沒有幫助的系統(tǒng)方咆。
? 成本與收益
正如之前所說軟件系統(tǒng)只有在運行的時候才能創(chuàng)造價值月腋,也就是說軟件系統(tǒng)能否 7*24 小時*365 天穩(wěn)定的工作關(guān)系到公司的收益水平。所以開發(fā)團隊對生產(chǎn)環(huán)境的發(fā)布總是小心翼翼,對解決生產(chǎn)環(huán)境的問題總是加班加點榆骚。而軟件系統(tǒng)的成本則體現(xiàn)在軟件構(gòu)建過程片拍,這時候我們就能理解那些工程技術(shù)如項目管理、敏捷開發(fā)妓肢、單元測試捌省、持續(xù)集成、持續(xù)構(gòu)建碉钠,版本管理等的價值了纲缓,他們有的是保證軟件系統(tǒng)正確性,有的是為了降低溝通成本喊废,有的是為了提升開發(fā)效率等但總的來說就是為了降低軟件的構(gòu)建成本祝高。所以在提升系統(tǒng)服務(wù)能力,創(chuàng)造更多業(yè)務(wù)收益的同時污筷,降低構(gòu)建成本也是一種提升收益的有效手段工闺。
作為一名軟件工程師而言,我們往往處在軟件構(gòu)建過程體系中的某個環(huán)節(jié)瓣蛀,我們可以基于成本與收益的關(guān)系去思考自己每一項技能的價值陆蟆,學(xué)習(xí)新的有價值的技能,甚至在工作中基于成本與收益的考量選擇合適的技術(shù)惋增。比如在邏輯不大發(fā)生變化的地方遍搞,沒有必要去做過多的設(shè)計,應(yīng)用各種花俏的設(shè)計模式等浪費時間器腋。這樣我們才能成為技術(shù)的主人。
? 架構(gòu)目標(biāo)需要適應(yīng)業(yè)務(wù)的發(fā)展
架構(gòu)的目標(biāo)就是為了支撐業(yè)務(wù)增長钩杰,就是提升軟件系統(tǒng)的服務(wù)能力纫塌。可是話雖說如此讲弄,但真實卻要做很多取舍措左。比如對初創(chuàng)團隊而言,其產(chǎn)品是否解決業(yè)務(wù)問題這一設(shè)想還沒得到確認(rèn)避除,就立即去構(gòu)造一個高性能怎披、高可用的分布式系統(tǒng),這樣的架構(gòu)目標(biāo)遠(yuǎn)超出業(yè)務(wù)發(fā)展的需求瓶摆,最后的結(jié)果就是浪費大量人力物力凉逛,卻得不到任何起色。架構(gòu)師需要審時度勢群井,仔細(xì)衡量正確性状飞、大規(guī)模、可用性三者的關(guān)系,比如今年業(yè)務(wù)蓬勃發(fā)展日均訂單 300 萬诬辈,基于對未來的可能預(yù)測酵使,明年可能有 3000 萬的訂單,那么架構(gòu)師應(yīng)該要著重考慮大規(guī)模和可用性焙糟。而且每一點提升的程度口渔,也需要架構(gòu)師衡量把握,比如可用性要達(dá)到 2 個 9 還是 3 個 9穿撮。
回顧自己以往的工作很多時候就是因為沒有確立架構(gòu)目標(biāo)導(dǎo)致浪費了組織很多資源缺脉,比如在之前的創(chuàng)業(yè)團隊中,由于本人有一定的代碼潔癖混巧,經(jīng)常會花費很多時間和同事計較代碼質(zhì)量枪向,這樣本可以更快上線的功能卻需要被延遲,當(dāng)時過度追求正確性的行為是與創(chuàng)業(yè)團隊快速驗證想法的業(yè)務(wù)需求不匹配的咧党。另外一點比較深刻的案例則是在本人擔(dān)任一個技術(shù)團隊負(fù)責(zé)人的時候秘蛔,在一次述職報告的時候,leader 問我對接下來團隊工作有什么計劃傍衡?我當(dāng)時說了一堆什么改進(jìn)代碼質(zhì)量深员,每天晨會,任務(wù)透明化蛙埂,建立迭代機制等等倦畅,然后就被各種批駁一通。當(dāng)時團隊基本以外包人員為主绣的,人員水平較差叠赐,開發(fā)出來的金融系統(tǒng)也是千瘡百孔而這條業(yè)務(wù)線最重要的業(yè)務(wù)價值則是按計劃實現(xiàn)潛在投資方的需求,爭取拉到投資屡江。所以不久 leader 就召集測試架構(gòu)的相關(guān)人員與我這邊一同梳理對核心功能的測試工作芭概,將研發(fā)、測試惩嘉、上線的流程自動化罢洲。當(dāng)時并不理解這樣做核心價值是什么?但回過頭來看這樣的工作方式恰好符合了業(yè)務(wù)發(fā)展的需求文黎,即確保系統(tǒng)是符合設(shè)計需求的惹苗,保證系統(tǒng)達(dá)到可接受的正確性,為后續(xù)能過快速前進(jìn)打下基礎(chǔ)耸峭,最重要的是為企業(yè)降低了構(gòu)建成本桩蓉。所以程序員想要工作出業(yè)績,必須認(rèn)清楚系統(tǒng)背后的業(yè)務(wù)價值劳闹,按價值去梳理工作優(yōu)先級触机,而不是像我一般過度糾結(jié)細(xì)節(jié)帚戳,追求技術(shù)理想化。
? 成也分工儡首,敗也分工
正如在程序員的迷茫那一章節(jié)提到的:程序員的迷茫因為長期埋沒于軟件世界的浩大的分工體系中片任,無法看清從業(yè)務(wù)到軟件架構(gòu)的價值鏈條,無法清楚定位自己在分工體系的位置蔬胯,處理不好自身與技術(shù)对供、業(yè)務(wù)的關(guān)系所致。所以在這里我想談?wù)劮止し毡簟<軜?gòu)師為了使軟件系統(tǒng)更好的服務(wù)業(yè)務(wù)产场,必然將軟件系統(tǒng)生命周期進(jìn)行拆分,比如分出開發(fā)生命周期舞竿、測試生命周期京景、用戶訪問生命周期、軟件運維生命周期骗奖。并根據(jù)不同的生命周期劃分出不同的職責(zé)與角色确徙,比如開發(fā)人員負(fù)責(zé)開發(fā)周期負(fù)責(zé)完成軟件研發(fā),測試人員負(fù)責(zé)對開發(fā)人員交付的成果進(jìn)行測試等执桌,于是就形成了分工鄙皇。一旦分工形成,每一個分工組織都會有自己的價值追求仰挣,架構(gòu)師關(guān)注的頂層的價值即軟件系統(tǒng)能否支撐業(yè)務(wù)增長被分工的形式打碎到各個組織中伴逸。分工是有其價值的,他使得復(fù)雜昂貴的任務(wù)可以被簡單膘壶、并行错蝴、可替換的流水線方式解決。但久而久之颓芭,價值碎片化的問題就出現(xiàn)了漱竖,比如測試人員只關(guān)注找出更多問題,開發(fā)人員只關(guān)注快速開發(fā)更多的系統(tǒng)畜伐,運維人員只關(guān)注保障系統(tǒng)穩(wěn)定。三者之間常常都只站在自己的立場去要求對方怎么做躺率,沒有人再關(guān)注整體價值玛界,產(chǎn)生諸多矛盾增加軟件實施成本。而身處流水線中的一員悼吱,又因為困擾于重復(fù)性工作慎框,迷茫于工作的意義,甚至感覺自己做為了人的創(chuàng)意與靈感都被扼殺了后添。所以我的朋友吐槽我說你寫了那么多代碼然后并沒有怎么樣是非常有道理的笨枯,那是因為我只關(guān)注著做為流水工人的價值要求,看不到生態(tài)鏈最頂端的價值。
我們仔細(xì)想想那些團隊領(lǐng)導(dǎo)馅精,精英領(lǐng)袖哪一個不是為著更廣大的價值所負(fù)責(zé)严嗜,比如項目經(jīng)理只需要關(guān)心自身項目的商業(yè)價值,而公司 CEO 則關(guān)心公司范疇內(nèi)所有業(yè)務(wù)的總體商業(yè)價值洲敢。所以關(guān)注的價值越大且職位也就越高漫玄。這些高層領(lǐng)導(dǎo)者們把控著整體的價值鏈條,及時糾正底層分工組織的價值目標(biāo)與整體價值目標(biāo)出現(xiàn)偏差的問題压彭。
? 從價值出發(fā)-找尋學(xué)習(xí)與工作的新思路
迷茫能引發(fā)思考睦优,架構(gòu)則塑造了視野,而價值則是我們之所以存活壮不,之所以工作的邏輯起點汗盘。基于這樣一種價值思維,對我們的學(xué)習(xí)和工作又可以有哪些改啟示呢询一?
明確自身的業(yè)務(wù)相關(guān)主體:找出你工作的協(xié)作關(guān)系網(wǎng)內(nèi)的業(yè)務(wù)方和客戶方隐孽,這樣你就可以從客戶方中找到離你最近的業(yè)務(wù)價值點,從你的業(yè)務(wù)方中挖掘更多的資源家凯。甚至你可以按這個思路順著網(wǎng)絡(luò)向上或向下挖掘價值鏈條缓醋,整合更多的上下游資源以實現(xiàn)更大的價值。
向前一步绊诲,為更大的價值負(fù)責(zé):不要因為自己是開發(fā)人員就不去關(guān)注軟件運維送粱,不要因為只是測試就不關(guān)注軟件開發(fā)复斥,因為你關(guān)注的越多你越能看清全局的價值目標(biāo)嘁捷。如果只關(guān)注一畝三分地宛官,那么注定這輩子只能困守在這一畝三分地里英染,成為一名流水線上焦慮至死的碼農(nóng)樟蠕。試著轉(zhuǎn)變思維续搀,從架構(gòu)師的角度思考價值問題捧弃,看看能否將技術(shù)貫穿到業(yè)務(wù)拿诸、到用戶跟压、到最終的價值去胰蝠。之前我的朋友說過要把產(chǎn)品經(jīng)理踢到運營位置去,把程序員踢到產(chǎn)品經(jīng)理位置去震蒋,這樣才是正確做事方式茸塞。這句話也是類似的意思,向前一步才能懂得怎么做的更好查剖。
像架構(gòu)師一樣思考钾虐,用價值找尋重心:人的迷茫是因為找不到重心,而價值的意義在于引導(dǎo)我們思考做哪些事情才能實現(xiàn)價值笋庄,先做哪些事情會比后做哪些事情更能創(chuàng)造收益效扫。像架構(gòu)師那樣全局性思考倔监,把遇到問題進(jìn)行拆分,把學(xué)習(xí)到的事物串聯(lián)起來菌仁,努力構(gòu)成完整的價值鏈條浩习。
學(xué)會連接,構(gòu)建體系:前幾天看到一篇文章對今日頭條的產(chǎn)品形態(tài)極盡批判之詞掘托,指責(zé)它的智能算法將人類封死在自己的喜好之中瘦锹,將人類社會進(jìn)一步碎片化。這似乎很有道理闪盔,有趣的是互聯(lián)網(wǎng)將我們連接至廣袤的世界弯院,卻也把我們封閉在獨屬于自己的小世界里。依舊是我的那位朋友泪掀,他說他的最大價值在于連接听绳,將不同的人連接在一起,有趣的事情可能就會即將發(fā)生异赫∫握酰或許算法的天性就是順從與迎合,但人最終想理解這個世界還是需要依靠自身的行動與不同人之間建立聯(lián)系塔拳,這也是一種擺脫流水線限制的有效方式鼠证。另外,我們自身也是某種事物連接的產(chǎn)物靠抑,比如架構(gòu)師量九,他是業(yè)務(wù)、技術(shù)颂碧、管理連接在一起的一種產(chǎn)物荠列。所以我們應(yīng)當(dāng)樹立自身的知識體系以吸收融合新知識,將孤立的概念連接起來载城,形成自身的價值鏈條肌似。比如這篇文章將我從事技術(shù)開發(fā)經(jīng)驗、與對架構(gòu)的理解以及自身過往經(jīng)歷結(jié)合起來诉瓦,這也是一種內(nèi)在的體系梳理川队。