新聞中心
研發(fā)管理有著廣義和狹義的定義,總的來說,研發(fā)管理就是在研發(fā)體系基礎(chǔ)之上,借助信息平臺(tái)進(jìn)行的團(tuán)隊(duì)建設(shè)、流程設(shè)計(jì)、績(jī)效管理、風(fēng)險(xiǎn)管理、成本管理、項(xiàng)目管理和知識(shí)管理等活動(dòng)。 簡(jiǎn)單來講,研發(fā)管理是面向結(jié)果,過程敏捷的一種實(shí)踐。作為一名技術(shù)管理者,既需要培養(yǎng)團(tuán)隊(duì)的ABC,又需要管理你的老板,保持團(tuán)隊(duì)的新陳代謝,因?yàn)橐磺卸际侨说母?jìng)爭(zhēng)。

全棧,不是全能,和所選擇的技術(shù)棧甚至業(yè)務(wù)棧相關(guān)。例如以LNMP(Linux + Nignx + MySQL+ PHP),那么掌握了這四種技能,算不算一個(gè)全棧工程師呢?個(gè)人覺得可以的。全棧工程師就是技能涵蓋了系統(tǒng)中所采用的技術(shù)棧。但是隨著技術(shù)棧的變化,例如引入了緩存Memcache乃至其他分布式緩存,那原來的全棧工程師還是全棧么?全棧是否要隨之變化呢?這是一種動(dòng)態(tài)性演進(jìn),從而衍生出了所謂全棧架構(gòu)師的概念。
面向全棧的技術(shù)管理試圖從采用系統(tǒng)思維的方式來探討研發(fā)管理尤其是技術(shù)管理的可行性和方法。從系統(tǒng)的角度看,包括時(shí)間,空間 和人三個(gè)維度。對(duì)于研發(fā)而言,人是核心競(jìng)爭(zhēng)力,可以把技術(shù)棧劃分為面向空間的技術(shù)和面向時(shí)間的技術(shù),然而時(shí)空又是密不可分的。
這是個(gè)人設(shè)想的全棧技術(shù)棧,面向空間的技術(shù)就象庖丁解牛,是對(duì)問題本身的分解和實(shí)現(xiàn);面向時(shí)間的技術(shù),主要是效率,開發(fā)的效率,程序運(yùn)行的效率等等。
面向全棧的技術(shù)管理主要是通過系統(tǒng)性的思維方式解決技術(shù)研發(fā)管理的問題。這是典型的九宮格矩陣,從時(shí)間和空間的維度提出了系統(tǒng)思考的維度。可以縮放系統(tǒng)的概念范圍,例如到模塊的層面,會(huì)發(fā)現(xiàn)很多有意思的結(jié)論。
全棧的動(dòng)態(tài)根源主要有兩方面的原因,商務(wù)驅(qū)動(dòng)和技術(shù)驅(qū)動(dòng)都會(huì)導(dǎo)致架構(gòu)設(shè)計(jì)的優(yōu)化。商業(yè)需求是個(gè)大話題,超出了很多技術(shù)人的領(lǐng)域,這里主要看研發(fā)中技術(shù)管理的全棧思維方式。用一句高大上的詞,就是技術(shù)前瞻性。 如何考量技術(shù)的前瞻性,可以借鑒TRIZ的方法。
TRIZ 是工程領(lǐng)域的神人阿奇舒勒提出的,關(guān)于TRIZ的相關(guān)知識(shí)推薦創(chuàng)新算法一書。
TRIZ 中直接可以借鑒的就是技術(shù)系統(tǒng)的9個(gè)演進(jìn)方向,可以指引我們對(duì)系統(tǒng)架構(gòu)的演進(jìn)思考。
技術(shù)的完備性是思考的第一因素,我們的系統(tǒng)是完備的么?如何定位我們系統(tǒng)架構(gòu)的完備性?沒有監(jiān)控的系統(tǒng)是完備的么?Bob 大叔的Clean Architecture 給出一種完備系統(tǒng)的參考。
有始就有終,每個(gè)系統(tǒng)或者每種技術(shù)都有者自己的生存周期,或者自己成長(zhǎng)的S曲線。技術(shù)選型的時(shí)候需要對(duì)所選技術(shù)所處的階段予以考慮。
系統(tǒng)自身的動(dòng)態(tài)性包括三個(gè)方面,第一就是移動(dòng)性,從互聯(lián)網(wǎng)到移動(dòng)互聯(lián)網(wǎng),從web到手機(jī)APP, 不是一種偶然,而是技術(shù)系統(tǒng)發(fā)展的必然。柔和性說明系統(tǒng)的可塑性強(qiáng),簡(jiǎn)單地說,可重用性是柔和性的一種具體體現(xiàn)。可控性可否映射到配置化或者參數(shù)化么?
系統(tǒng)的傳遞性強(qiáng)調(diào)了通信的重要性,上圖給出了大神AliStair 的六邊形架構(gòu),指出了對(duì)外接口的作用,被當(dāng)作了微服務(wù)架構(gòu)的理論基礎(chǔ)。引申一下,為什么會(huì)有“Social for Anything” 呢?
子系統(tǒng)的不均衡正是差異性的具體表現(xiàn),每個(gè)子系統(tǒng)都有著自己的進(jìn)化曲線, 這是我們關(guān)注系統(tǒng)瓶頸的一種思路。
回顧上面的九宮格系統(tǒng)思維,最高層就是超系統(tǒng)。主機(jī)托管IDC資源逐漸演變?yōu)镮AAS,負(fù)載均衡、集群服務(wù)等進(jìn)化為PAAS, 應(yīng)用軟件進(jìn)化為SAAS,后臺(tái)的服務(wù)進(jìn)化為BAAS,連數(shù)據(jù)報(bào)表類的服務(wù)都在往DAAS上演進(jìn),所謂的平臺(tái)化或者構(gòu)建生態(tài)系統(tǒng)都是在向超系統(tǒng)的演化。
九宮格系統(tǒng)的最底層是子系統(tǒng),子系統(tǒng)在向微觀場(chǎng)的方向演進(jìn),正像“社會(huì)化大分工不斷細(xì)化”那樣,職責(zé)的原子化,顆粒度的細(xì)化等。舉個(gè)例子,使用高效資源中的SSD 硬盤, 鑒于SSD的高效,衍生了RocksDB等匹配的存儲(chǔ)引擎。更普遍的是,就是現(xiàn)在如日中天的微服務(wù)。
協(xié)調(diào)性直接影響的是系統(tǒng)的效率。流程,工具,子系統(tǒng),最重要的是人與系統(tǒng)直接的匹配,也是大家熟知的康威定律。
系統(tǒng)架構(gòu)設(shè)計(jì)的時(shí)候,我們往往強(qiáng)調(diào)以終為始。所謂終,延展一下就是心目中的理想系統(tǒng)。系統(tǒng)的組成是復(fù)雜的,架構(gòu)的約束存在著自身的矛盾,提高理想度中有用對(duì)無用的比值是提高核心約束的過程,將部分功能轉(zhuǎn)移是一種借力打力。
如何匹配系統(tǒng)演進(jìn)的方式呢,這可能是就是全棧小團(tuán)隊(duì)的用武之地。全棧團(tuán)隊(duì)也有著狹義廣義的說法,但基本都是業(yè)務(wù)線分割,高度自治,覆蓋技術(shù)棧支持DevOps的小團(tuán)隊(duì),自身就是一個(gè)完備的系統(tǒng)。
全棧團(tuán)隊(duì)的管理包括《老曹眼中的敏捷開發(fā)》中的ABC,如何促進(jìn)團(tuán)隊(duì)的動(dòng)態(tài)流動(dòng),通過敏捷過程完成連續(xù)性交付,同時(shí)提高DevOps及工具支撐。
敏捷過程往往會(huì)帶來一些副作用,例如技術(shù)債務(wù)。技術(shù)債至少可以分為6類,甚至可以更細(xì)。我們能算一算每項(xiàng)技術(shù)債的利息么?
馬丁大叔的《重構(gòu)》是一種經(jīng)典,但代碼層面的重構(gòu)并不適合架構(gòu)或者系統(tǒng)層面的重構(gòu),因?yàn)橹貥?gòu)的前提條件在系統(tǒng)層面往往是不成立的。因此,refactor 會(huì)演變成refine。
全棧團(tuán)隊(duì)的分享是提高系統(tǒng)流動(dòng)性的有效方法??梢杂袌F(tuán)隊(duì)內(nèi)部的周期性分享,專業(yè)的技術(shù)技能培訓(xùn),內(nèi)部社區(qū)的建立,投身外部社區(qū)等等,讓團(tuán)隊(duì)做自己的主人。
以上,是分享的全部?jī)?nèi)容。研發(fā)管理或者技術(shù)管理的分享一般都會(huì)充滿爭(zhēng)議,管理本身就是面向結(jié)果的實(shí)踐。因?yàn)闀r(shí)空的變化,人員的不同,很多的成功和最佳實(shí)踐往往無法復(fù)制,我們企圖探索一些可以實(shí)踐的不變的東西,但只是,在路上。
【本文來自專欄作者“老曹”的原創(chuàng)文章,作者微信公眾號(hào):喔家ArchiSelf,id:wrieless-com】
本文標(biāo)題:老曹:面向全棧的技術(shù)管理
瀏覽路徑:http://www.fisionsoft.com.cn/article/cdhcioo.html


咨詢
建站咨詢
