CTO和普通程式設計師究竟有什麼不同?
網際網路的蓬勃發展,讓無數的程式設計師身價水漲船高,都變成了「香餑餑」,更有了不少「創業」,「當上 CTO,迎娶白富美的傳說」。都說不想當元帥的士兵不是好士兵,我覺得這件事見仁見智,但提升自己的價值,讓自己變得更優秀更有競爭力,一定是一線城市的大部分 IT 人內心的追求。
誠然,並不是所有程式設計師都會變成 CTO,程式設計師——>CTO 的路徑像是一個漏斗,極少數人沉澱下來,在業界掀起一陣陣颶風。這些 CTO 比起普通的程式設計師,強在哪?豐富的技術知識只是基礎,更重要的是戰略眼光,管理把控能力。那麼 CTO 所思所想,和普通程式設計師究竟有什麼不同?
普通的程式設計師往往只負責模組的開發,程式碼的優化,和新技術的鑽研,哦對我說的是普通程式設計師,而不是隻會 fork 的小白程式設計師;而走向管理領域的高階程式設計師也許已經開始負責團隊,揹負團隊進度和效率。而 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 的步伐,放眼國內外,快速、敏捷、儘可能多的優化團隊開發手段和流程,減少開發、運維、運營之間的溝通壁壘,將資料化融入到技術推進的方方面面。而當你在這些方面有了核心競爭力,就不再只是一名普通的程式設計師了。
文章素材來自 Cloud Insight 部落格