引子
對(duì)于每個(gè)軟件系統(tǒng)脾歇,我們都可以通過(guò)業(yè)務(wù)和架構(gòu)兩個(gè)維度來(lái)體現(xiàn)它的價(jià)值藕各。
尤其是軟件開(kāi)發(fā)人員焦除,應(yīng)該確保自己的系統(tǒng)在這兩個(gè)維度上的實(shí)際價(jià)值都能長(zhǎng)時(shí)間維持在很高的狀態(tài)。
不過(guò)很可惜乌逐,他們可能更多情況只關(guān)注一個(gè)維度,而忽略另一個(gè)绢慢;
假如關(guān)注了錯(cuò)誤的維度洛波,這導(dǎo)致了系統(tǒng)價(jià)值最終趨降為0,非掣苛可惜焰扳。
1、業(yè)務(wù)與技術(shù)兼顧的難題
在我們?nèi)粘9ぷ髦猩瑯I(yè)務(wù)迭代支持與系統(tǒng)架構(gòu)技術(shù)優(yōu)化就如同魚與熊掌一樣育瓜,不可同時(shí)兼顧。
case1:
當(dāng)我們發(fā)現(xiàn)系統(tǒng)性能有些差停蕉,評(píng)估需要考慮優(yōu)化一下钙态,降低系統(tǒng)接口平響,同時(shí)提升用戶體驗(yàn)...
但是這時(shí)候產(chǎn)品同學(xué)風(fēng)風(fēng)火火的跑過(guò)來(lái)說(shuō)蚓挤,最近有個(gè)業(yè)務(wù)改版需求/新業(yè)務(wù)功能需要緊急上線支持一下.....
Q:你會(huì)怎么辦驻子?
-- 要不技術(shù)優(yōu)化的事崇呵,等這次需求完成后再說(shuō)吧...
case2:
我們的每到年初就要做得技術(shù)規(guī)劃,是不是總感覺(jué)計(jì)劃趕不上變化...
每到年中域慷、年末復(fù)盤時(shí)候,現(xiàn)實(shí)總會(huì)與規(guī)劃大相徑庭抵窒,要么是規(guī)劃的事沒(méi)有做或者換了個(gè)低成本方案簡(jiǎn)單實(shí)現(xiàn)了李皇,要么是中途出現(xiàn)了一些新的事情打亂了原來(lái)的規(guī)劃計(jì)劃。
Q:重新來(lái)一遍掉房,你會(huì)怎么來(lái)避免圃阳?
-- 規(guī)劃 vs 變化
以上的情況工作中大家應(yīng)該挺常見(jiàn)的,那遇到類似的問(wèn)題我們應(yīng)該秉承什么原則呢富寿?有沒(méi)有有效解決的措施呢锣夹??
2、業(yè)務(wù)與技術(shù)哪個(gè)更重要变勇?
美國(guó)前總統(tǒng)艾森豪威爾提出個(gè)經(jīng)典的“緊急/重要矩陣”贴唇。
我有兩種難題:緊急的和重要的,而緊急的難題永遠(yuǎn)是不重要的链患,重要的難題永遠(yuǎn)是不緊急的瓶您。
Q:哪個(gè)維度更重要呀袱?
在研發(fā)同學(xué)看來(lái),重要級(jí)別一目了然:
重要的事:架構(gòu)設(shè)計(jì)優(yōu)化明棍,讓系統(tǒng)具有足夠的“彈”性
緊急的事:業(yè)務(wù)迭代支持油吭,讓系統(tǒng)支撐業(yè)務(wù)持續(xù)發(fā)展
例如:日常業(yè)務(wù)迭代支持一貫緊急高優(yōu),但從架構(gòu)設(shè)計(jì)合理性建設(shè)看來(lái)歌豺,似乎沒(méi)有那么多關(guān)聯(lián)心包;而系統(tǒng)技術(shù)優(yōu)化看來(lái)很重要蟹腾,但往往沒(méi)有機(jī)會(huì)排的上期。
關(guān)于哪個(gè)更重要的討論值戳,當(dāng)然仁者見(jiàn)仁智者見(jiàn)智
假如對(duì)于這個(gè)問(wèn)題炉爆,由業(yè)務(wù)部門來(lái)回答,那就是業(yè)務(wù)更重要-系統(tǒng)支持業(yè)務(wù)迭代赴捞,保障業(yè)務(wù)正常發(fā)展很重要郁稍。?
3、研發(fā)更需要關(guān)注什么恢着?
我們可以試著將此四類情況做下排序:
1)重要且緊急
2)重要不緊急
3)不重要但緊急
4)不重要且不緊急
系統(tǒng)架構(gòu)設(shè)計(jì)優(yōu)化:重要(占據(jù)第1财破、2位)
業(yè)務(wù)迭代支持:緊急(占據(jù)第1狈究、3位)。
但是我們?nèi)粘9ぷ髦卸蹲叮瑯I(yè)務(wù)部門與研發(fā)部門經(jīng)常犯的錯(cuò)誤就是將第三優(yōu)先級(jí)的事情提到了第優(yōu)先級(jí)去做磅废。將重要的系統(tǒng)技術(shù)優(yōu)化事項(xiàng)被業(yè)務(wù)迭代所排擠。
我們研發(fā)人員經(jīng)常會(huì)抱怨竟趾,沒(méi)有時(shí)間來(lái)做技術(shù)優(yōu)化,自我調(diào)侃為:“又在搬磚...”玫鸟、“又在加班寫B(tài)UG了...”
似乎我們忘記了:業(yè)務(wù)部門就是只盯著業(yè)務(wù)的犀勒,對(duì)于系統(tǒng)架構(gòu)的評(píng)估和優(yōu)化,本來(lái)就是研發(fā)人員的工作職責(zé)钦购!
如何平衡好這兩者的工作褂萧,是研發(fā)人員的晉級(jí)修養(yǎng)之路。
不要忽略系統(tǒng)架構(gòu)的價(jià)值怨规,假如有一天系統(tǒng)難以維護(hù)到只能推翻重來(lái)的地步锡足,可以說(shuō)是系統(tǒng)技術(shù)優(yōu)化跟不上業(yè)務(wù)快速迭代舶得,同時(shí)側(cè)面說(shuō)明了研發(fā)同學(xué)的本職工作做得不夠格。?
4纫骑、可供參考的實(shí)踐方案
上面說(shuō)了很多技術(shù)架構(gòu)優(yōu)化與業(yè)務(wù)迭代支持兩者難以平衡的難題九孩。那有沒(méi)有可以平衡的好方法呢?
我從自身工作實(shí)踐中整理一些經(jīng)驗(yàn)煤墙,主要就是“總-分-總”的原則宪拥,供大家試用參考:
1她君、【總】項(xiàng)目立項(xiàng),評(píng)估目標(biāo)收益
做事要有價(jià)值球涛,尤其技術(shù)優(yōu)化類項(xiàng)目,一定要想明白收益點(diǎn)是什么捺典,同時(shí)搞清楚投入產(chǎn)出的性價(jià)比如何魏烫。
這個(gè)階段建議多花點(diǎn)時(shí)間肝箱,多調(diào)研分析下,建議目標(biāo)盡量可量化呐赡,可達(dá)成骏融。
【項(xiàng)目目標(biāo)制定-示例】
項(xiàng)目:XX系統(tǒng)性能優(yōu)化
目標(biāo):系統(tǒng)服務(wù)平響 <= 200ms(90分位值 <= 500ms)
2档玻、【分】拆分細(xì)化,評(píng)估優(yōu)化改造范圍
確定目標(biāo)后霹琼,需要將目標(biāo)進(jìn)行動(dòng)作拆解凉当,并評(píng)估每項(xiàng)動(dòng)作的目標(biāo)達(dá)成占比以及優(yōu)先級(jí)。
功能點(diǎn)拆分注意要以終為始忠藤,保障不要偏離目標(biāo)楼雹。
具體的方法可參考:
1)按流程邏輯拆分
2)按工作模塊拆分
3)按數(shù)據(jù)流拆分
可能前期對(duì)于各個(gè)點(diǎn)的評(píng)估并不一定太準(zhǔn)贮缅,允許后期調(diào)整,但不應(yīng)該大幅度調(diào)整祭芦,否則需要重新做下考量憔鬼。
【項(xiàng)目細(xì)化拆分-示例】
并發(fā)、服務(wù)依賴優(yōu)化昌跌、cache蚕愤、表結(jié)構(gòu)拆分、表索引優(yōu)化悬嗓、邏輯優(yōu)化(循環(huán)套循環(huán))裕坊、Redis 大Key優(yōu)化、資源隔離 等等
3周瞎、【總】歸類收斂饵蒂,規(guī)劃可行的項(xiàng)目里程碑
功能評(píng)估按同一類型進(jìn)行歸類退盯,將各子優(yōu)化項(xiàng)拆分到日常業(yè)務(wù)迭代中去,或者穿插到各需求開(kāi)發(fā)間隙中去囤攀,小步快跑宫纬,保障項(xiàng)目穩(wěn)步推進(jìn)。
【歸類收斂-示例】
4、【保障】匯報(bào)跟進(jìn)蝌蹂,項(xiàng)目迭代進(jìn)度推進(jìn)
可建立以每周為單位的項(xiàng)目匯報(bào)制度孤个,召集相關(guān)同學(xué)定期例會(huì)跟進(jìn),項(xiàng)目進(jìn)度&問(wèn)題持續(xù)Review斥废,保障項(xiàng)目整體推進(jìn)進(jìn)度。
項(xiàng)目進(jìn)度匯報(bào)主要關(guān)注點(diǎn):
總結(jié)
很多人將業(yè)務(wù)與技術(shù)之間理還亂的關(guān)系稱為“相愛(ài)相殺”捧灰,其實(shí)技術(shù)與業(yè)務(wù)并不是對(duì)立的毛俏,而是相輔相成的饲窿。
技術(shù)作為理論基礎(chǔ),業(yè)務(wù)作為實(shí)踐去檢驗(yàn)落地唧席。我們所學(xué)的技術(shù)嘲驾,業(yè)務(wù)是我們的落地點(diǎn)辽故,業(yè)務(wù)成功了同樣能反襯體現(xiàn)出技術(shù)價(jià)值腐碱。
?- END -
作者:架構(gòu)精進(jìn)之路,專注軟件架構(gòu)研究喂走,技術(shù)學(xué)習(xí)與個(gè)人成長(zhǎng)谋作,關(guān)注并私信我回復(fù)“01”遵蚜,送你一份程序員成長(zhǎng)進(jìn)階大禮包。
Thanks for reading!