想知道嗎?CTO 比普通程序員強(qiáng)在哪?
互聯(lián)網(wǎng)的蓬勃發(fā)展,讓無數(shù)的程序員身價水漲船高,都變成了「香餑餑」,更有了不少「創(chuàng)業(yè)」,「當(dāng)上 CTO,迎娶白富美的傳說」。都說不想當(dāng)元帥的士兵不是好士兵,我覺得這件事見仁見智,但提升自己的價值,讓自己變得更優(yōu)秀更有競爭力,一定是一線城市的大部分 IT 人內(nèi)心的追求。
誠然,并不是所有程序員都會變成 CTO,程序員——>CTO 的路徑像是一個漏斗,極少數(shù)人沉淀下來,在業(yè)界掀起一陣陣颶風(fēng)。這些 CTO 比起普通的程序員,強(qiáng)在哪?豐富的技術(shù)知識只是基礎(chǔ),更重要的是戰(zhàn)略眼光,管理把控能力。那么 CTO 所思所想,和普通程序員究竟有什么不同?
普通的程序員往往只負(fù)責(zé)模塊的開發(fā),代碼的優(yōu)化,和新技術(shù)的鉆研,哦對我說的是普通程序員,而不是只會 fork 的小白程序員;而走向管理領(lǐng)域的高級程序員也許已經(jīng)開始負(fù)責(zé)團(tuán)隊(duì),背負(fù)團(tuán)隊(duì)進(jìn)度和效率。而 CTO,往往不僅要考慮優(yōu)化團(tuán)隊(duì)的開發(fā)工具、流程,肩負(fù)起把控整體技術(shù)方向的重任,要具有前瞻性,同時還要對企業(yè)績效負(fù)責(zé)。尤其是技術(shù)驅(qū)動型公司,你問這樣的公司 CTO 好招么,答案通常是「很難招」。技術(shù)選型其實(shí)是創(chuàng)業(yè)公司最糾結(jié)的問題,很多團(tuán)隊(duì)往往一上來基于已有的程序員的個人習(xí)慣和愛好,選擇了一個技術(shù)方案,然后到某一天一看,我靠,全是坑(當(dāng)然,也可能與執(zhí)行者的能力有關(guān))。
圖為通常來說程序員的發(fā)展路線:
影響企業(yè)績效的因素在方方面面,核心因素卻往往集中在產(chǎn)品上。不夸張地說,應(yīng)用程序的性能對于企業(yè)績效有著非常巨大的影響?;ヂ?lián)網(wǎng)產(chǎn)品遍地開花,SDK 層出不窮,用戶對于一種新產(chǎn)品的嘗試時間與互聯(lián)網(wǎng)產(chǎn)品更新的速度成反比。用戶體驗(yàn)這個已經(jīng)被講爛的概念依然還是提升產(chǎn)品價值的關(guān)鍵按鈕,無論是 2C 還是 2B。
一旦用戶未在你所負(fù)責(zé)的產(chǎn)品中獲得最佳體驗(yàn),或者直接解決痛點(diǎn),他們會毫不猶豫的選擇其他平臺。
這個問題普通程序員通常解決不了,而一名優(yōu)秀的 CTO 就需要下點(diǎn)功夫了。如何成為一名優(yōu)秀的 CTO,這是一個問題,而一個問題往往是另一個問題的解決方案。為什么一個團(tuán)隊(duì)需要優(yōu)秀的 CTO?是因?yàn)樾枰腥藖韼ьI(lǐng)技術(shù)團(tuán)隊(duì)優(yōu)化應(yīng)用性能——解決用戶體驗(yàn)的難題,提升開發(fā)、運(yùn)維,把控技術(shù)團(tuán)隊(duì)的戰(zhàn)略方向。那么,優(yōu)化應(yīng)用性能,獲得好的用戶體驗(yàn),提升開發(fā)、運(yùn)維效率,又該怎么做呢?
為了確保應(yīng)用程序能夠達(dá)到甚至超越用戶的高期望,需要不斷優(yōu)化底層 IT 基礎(chǔ)設(shè)施的性能。然而,隨著基礎(chǔ)設(shè)施變得越來越動態(tài)化,混合化和復(fù)雜化,一波波新的挑戰(zhàn)隨之而生,讓不少 CTO 多了幾根白頭發(fā)。
但是一個問題的產(chǎn)生,往往意味著相應(yīng)的解決方法正在路上。為了優(yōu)化應(yīng)用程序的性能,優(yōu)秀的 CTO 需要足夠主動和敏捷。
主動優(yōu)化包括物理和虛擬服務(wù)器,網(wǎng)絡(luò),存儲設(shè)備,數(shù)據(jù)庫,終端用戶服務(wù),云,和大數(shù)據(jù)環(huán)境在內(nèi)的所有基礎(chǔ)設(shè)施。需要將 IT 團(tuán)隊(duì)帶領(lǐng)成為不僅能夠迅速識別和解決問題,同時具有強(qiáng)大的反脆弱性,在問題對用戶體驗(yàn)產(chǎn)生不利影響之前,先發(fā)制人的組織。以下五大關(guān)鍵措施或許可以幫助我們實(shí)現(xiàn)一點(diǎn)。
1. 捕捉和報告性能指標(biāo)
鑒于良好性能的重要性,對于 IT 團(tuán)隊(duì)來說只在基礎(chǔ)設(shè)施組件出現(xiàn)問題時產(chǎn)生告警是不足夠的。CTO 需要讓團(tuán)隊(duì)能夠提前發(fā)現(xiàn)潛在的性能問題,并主動解決。例如,通過免費(fèi)或付費(fèi)的第三方工具及一些開源工具,配置告警,在問題出現(xiàn)之前解決。不同的團(tuán)隊(duì),往往有最為適合自己的基礎(chǔ)設(shè)施監(jiān)控手段,優(yōu)秀的 CTO 需要能夠綜合衡量團(tuán)隊(duì)大小,開發(fā)、運(yùn)維水平,與人力和資金成本,選擇最符合公司當(dāng)下情況的監(jiān)控方式。對于變動型較大或者高速發(fā)展的公司,盲目增加人力和花費(fèi)時間去進(jìn)行自主開發(fā)系統(tǒng)監(jiān)控解決方案往往造成時間的浪費(fèi),得不償失。
2. 統(tǒng)一視圖和工具來增加可視性,并加快問題解決
由于開源工具與第三方解決方案層出不窮,不少 IT 團(tuán)隊(duì)也勇于嘗試新工具、新方法。雖然有很多新的工具,解決不同方面的問題,但當(dāng)問題出現(xiàn)時,團(tuán)隊(duì)成員仍然花費(fèi)許多時間開會討論,不斷地開會浪費(fèi)了許多時間。而與此同時,用戶卻經(jīng)歷著槽糕的體驗(yàn)。為什么明明有許多工具卻依然采取本辦法溝通呢?原因有兩個,一個是很多 IT 團(tuán)隊(duì)內(nèi)部在使用不同的協(xié)作、監(jiān)控等工具,另一個是其實(shí)團(tuán)隊(duì)內(nèi)部并沒有養(yǎng)成利用監(jiān)控平臺或者協(xié)作工具的習(xí)慣。這種時候 CTO 就需要發(fā)揮作用,采用一個統(tǒng)一且功能強(qiáng)大的視圖和架構(gòu)來監(jiān)測關(guān)鍵的 IT 服務(wù),無論是虛擬機(jī),物理主機(jī),云主機(jī),或者其他組件,同時采取深刻理解DevOps,掌握提升協(xié)作、溝通效率,優(yōu)化開發(fā)流程,節(jié)省運(yùn)維成本,提前發(fā)現(xiàn)問題的方法。
3. 跟蹤用戶體驗(yàn)
IT 團(tuán)隊(duì)可能擁有大量的性能指標(biāo),但是如果不知道用戶的真實(shí)體驗(yàn),就還是無法真正了解性能表現(xiàn)。什么是真實(shí)的體驗(yàn)?就是用戶在實(shí)際操作中,是如何使用我們的產(chǎn)品的,在某個界面停留多久,對哪個環(huán)節(jié)不滿意,諸如此類。IT 團(tuán)隊(duì)需要分析端到端的基礎(chǔ)設(shè)施的響應(yīng)時間,并借助虛擬交易功能,持續(xù)跟蹤交易響應(yīng)時間,即使在用戶不使用應(yīng)用程序的情況下。
4. 采用嚴(yán)格的 SLA 管理
一旦企業(yè)的全面監(jiān)測到位, IT 團(tuán)隊(duì)針對服務(wù)水平協(xié)議(SLAs)跟蹤性能和體驗(yàn)是至關(guān)重要的。IT 團(tuán)隊(duì)需要能夠跟蹤 SLA 合規(guī)性,當(dāng)潛在問題出現(xiàn)時,立即識別和解決。通過跟蹤 SLAs,IT 企業(yè)可以評估他們在管理用戶體驗(yàn)和基礎(chǔ)設(shè)施性能上的有效性。 這一評估對于準(zhǔn)確計量團(tuán)隊(duì)績效,設(shè)定目標(biāo)和跟蹤進(jìn)展也是至關(guān)重要的。
5. 將 IT 和非 IT 數(shù)據(jù)相關(guān)聯(lián),進(jìn)行高效的容量規(guī)劃
滿足用戶不斷提高的期望,并不僅僅是跟蹤 IT 數(shù)據(jù)。通過關(guān)聯(lián) IT 和業(yè)務(wù)數(shù)據(jù),團(tuán)隊(duì)可以主動識別瓶頸,提高終端用戶體驗(yàn)。比如,將服務(wù)器 CPU 利用率指標(biāo)和簡單的歷史數(shù)據(jù)相關(guān)聯(lián);比如,將用戶登錄或交易的數(shù)量與 IT 數(shù)據(jù)一起進(jìn)行展示,可以為適應(yīng)未來發(fā)展的容量規(guī)劃,提供有意義的見解。下圖為某團(tuán)隊(duì)將 PHP 請求、響應(yīng)時間等數(shù)據(jù)和系統(tǒng)性能數(shù)據(jù)一起導(dǎo)入 Cloud Insight 儀表盤進(jìn)行展示的例子。
插播一個好玩的,下圖為某團(tuán)隊(duì)成員別出心裁將鍵盤使用記錄導(dǎo)入儀表盤進(jìn)行展示,也許鍵盤記錄只是一種出于好玩的別出心裁,但同理,也可以將運(yùn)營數(shù)據(jù)、業(yè)務(wù)數(shù)據(jù)、系統(tǒng)性能數(shù)據(jù)一起導(dǎo)入儀表盤進(jìn)行展示,這對一個快速增長的 IT 團(tuán)隊(duì)來說,就很有價值了。
總結(jié)
數(shù)據(jù)驅(qū)動互聯(lián)網(wǎng)高速發(fā)展的時代,技術(shù)團(tuán)隊(duì) Leader 除了技術(shù)過硬,眼光獨(dú)到,還要將緊跟 DevOps 的步伐,放眼國內(nèi)外,快速、敏捷、盡可能多的優(yōu)化團(tuán)隊(duì)開發(fā)手段和流程,減少開發(fā)、運(yùn)維、運(yùn)營之間的溝通壁壘,將數(shù)據(jù)化融入到技術(shù)推進(jìn)的方方面面。而當(dāng)你在這些方面有了核心競爭力,就不再只是一名普通的程序員了。