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