當(dāng)前位置:首頁 > 公眾號精選 > 架構(gòu)師社區(qū)
[導(dǎo)讀]程序員的迷茫不僅僅是面對技術(shù)繁雜的無力感,更重要的是因為長期埋沒于軟件 世界的浩大的分工體系中,無法看清從業(yè)務(wù)到軟件架構(gòu)的價值鏈條,無法清楚定位自己在分工體系的位置,處理不好自身與技術(shù)、業(yè)務(wù)的關(guān)系所致。



程序員的迷茫不僅僅是面對技術(shù)繁雜的無力感,更重要的是因為長期埋沒于軟件 世界的浩大的分工體系中,無法看清從業(yè)務(wù)到軟件架構(gòu)的價值鏈條,無法清楚定位自己在分工體系的位置,處理不好自身與技術(shù)、業(yè)務(wù)的關(guān)系所致。


很多程序員打心底不喜歡業(yè)務(wù),這一點我曾經(jīng)也經(jīng)歷過,我更寧愿從事框架工 具、技術(shù)組件研究的相關(guān)事情。我有個朋友經(jīng)常吐槽我說:”你們天天加班加點寫了那么多代碼,然后呢?有改變什么嗎?還不是寫出了一堆垃圾?!?/span>


仔細想想很多時候業(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ù)呢?

就是指某種有目的的工作或工作項目,業(yè)務(wù)的目的就是解決人類社會與吃喝住行息息相關(guān)的領(lǐng)域問題,包括物質(zhì)的需求和精神的需求,使開展業(yè)務(wù)活動的主體和受眾都能得到利益。是解決問題的工具和手段。比如為了解決用戶隨時隨地購物的業(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ù)演進軟件系統(tǒng)服務(wù)能力以及業(yè)務(wù)功能 以支撐公司業(yè)務(wù)發(fā)展從而創(chuàng)造價值。

有了這個價值鏈條,我們就可以反思自己的工作學(xué)習(xí)對軟件系統(tǒng)的服務(wù)能力提升 起到了多大的推動作用?可以反思自己的工作學(xué)習(xí)是否切實在解決領(lǐng)域的業(yè)務(wù)問題, 還是只是做一些意義不大的重復(fù)性工作。


什么是架構(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)進行組織,確定這些人員之間的協(xié)作方式,并關(guān)注這個組織系統(tǒng)是否運作良好比如溝通是否順暢、產(chǎn)出是否達到要求、能否按時間完成等。


組織全局,對外輸出:架構(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ù)能力??墒窃掚m說 如此,但真實卻要做很多取舍。比如對初創(chuàng)團隊而言,其產(chǎn)品是否解決業(yè)務(wù)問題這一 設(shè)想還沒得到確認(rèn),就立即去構(gòu)造一個高性能、高可用的分布式系統(tǒng),這樣的架構(gòu)目標(biāo)遠超出業(yè)務(wù)發(fā)展的需求,最后的結(jié)果就是浪費大量人力物力,卻得不到任何起色。


架構(gòu)師需要審時度勢,仔細衡量正確性、大規(guī)模、可用性三者的關(guān)系,比如今年業(yè)務(wù) 蓬勃發(fā)展日均訂單 300 萬,基于對未來的可能預(yù)測,明年可能有 3000 萬的訂單,那么架構(gòu)師應(yīng)該要著重考慮大規(guī)模和可用性。


而且每一點提升的程度,也需要架構(gòu)師衡量把握,比如可用性要達到 2 個 9 還是 3 個 9?;仡欁约阂酝墓ぷ骱芏鄷r候就是因為沒有確立架構(gòu)目標(biāo)導(dǎo)致浪費了組織很多資源,比如在之前的創(chuàng)業(yè)團隊中,由于本人有一定的代碼潔癖,經(jīng)常會花費很多時間和 同事計較代碼質(zhì)量,這樣本可以更快上線的功能卻需要被延遲,當(dāng)時過度追求正確性 的行為是與創(chuàng)業(yè)團隊快速驗證想法的業(yè)務(wù)需求不匹配的。


從價值出發(fā)-找尋學(xué)習(xí)與工作的新思路

向前一步,為更大的價值負(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)師那樣全局性思考,把遇到問題進行拆分,把學(xué)習(xí)到的事物串聯(lián)起來,努力構(gòu)成完整的價值鏈條。


作者:涼風(fēng)羽Richard

來源:掘金



如有收獲,點個在看,誠摯感謝

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉
關(guān)閉