天天看點

程式員、架構師、技術經理、技術總監和CTO有啥差別?

程式員

程式員,英文名coder/programmer,大家常自嘲叫碼農的階段。這個角色職責是把需求或産品實作為使用者可用的軟體産品。

此職位為執行級别。另外因為經驗較少,一般需要求助别人,或與别人一起完(ban)成(zhuan)一個任務。

此階段大概要經曆3年,程式員的職責如下:

1、負責公司營運系統的設計與開發工作

2、營運資料處理和分析

進階程式員

進階程式員學名工程師。到了這個level,英文名可改叫做engineer或developer。此時你的功力開始增強,這與你平時的積累努力是分不開的,祝賀你~

此時的你不僅可以完成任務,開始注重代碼的品質,能夠寫出工業級的代碼。

你的經驗可勝任子產品級的系統設計,承擔完成較為複雜的技術,能有效的自我管理,有幫助别人快速解決問題(trouble shooting)的能力。

此階段你需要經曆到7、8年左右的體驗,中間要經曆一段深刻自我曆練的過程。

有時給人緻命一擊其實是心裡的小蟊賊。一般人在5年前後遇到一個門檻,碰到天花闆+彷徨期,或者你打心眼裡不在喜歡程式設計,可嘗試轉為其它角色,如産品經理,售前售後支援等崗位,也不失為好選擇。

當我們熬過這段兒,就會“山随平野盡,江入大荒流“,漸入佳境矣。

進階程式員定義軟體功能、做開發計劃推進和管理。可以帶幾個個幫手把産品規劃的功能實作,你是團隊中的”大手“,遇到難題也是你親自攻艱克難。

是以,一個進階程式員,他的職責很清晰:

1、負責産品核心複雜功能的方案設計、編碼實作

2、負責疑難BUG分析診斷、攻關解決

架構師

到了架構師級别,想必你已經學會降龍十八掌,可登堂入世,成為一位準(lao)專(you)家(tiao)。

我們大喊聲:“單打獨鬥,老衲誰也不懼!“,遂開始上司一衆技術高手,指點武功,來設計和完成一個系統,大多是分布式,高并發的系統架構平台。

架構師的任務是為公司産品的業務問題提供高品質技術解決方案。可能每條産品線都設定了架構師,也可能多條生産品線的的後端是由一個架構師設計的平台提供。

通過上面架構師的部分成果,總結其職責如下:

1、需求分析:“知彼”有時比“知已”還重要。管理市場,産品等的需求,确立關鍵需求。堅持技術上的優秀與需求的願景統一,提升技術負債意識,提供技術選項,風險預判,工期等解決方案。

2、架構設計:在産品功能中抽取中非功能的需求,由關鍵需求變成概念型架構。列出功能樹,分層治之,如使用者界面層、系統互動層,資料管理層。達成高擴充,高可用,高性能,高安全,易運維,易部署,易接入等能力。

3、功能設計與實作:對架構設計的底層代碼級别實作。如公共核心類,接口實作,應用發現規則、接口變更等。

技術經理

人生就是不斷上升的過程,你已經到達經理的層次了。如今的你,需要不斷提高上司力,需要定期召開團隊會議讨論問題。

首先我們要更加自信,在工作中顯示自己的功力,給講話增添力量。如:“本次項目雖然有很大的困難,我們也需苦戰到底。當然示先垂範,身先士卒,方能成功!”

技術經理有時候也可能叫系統分析員,一些小公司可能會整個公司或者部門有一個技術經理。技術經理承擔的角色主要是系統分析、架構搭建、系統建構、代 碼走查等工作,如果說項目經理是總統,那麼技術經理就是總理。當然不是所有公司都是這樣的,有些公司項目經理是不管技術團隊的,隻做需求、進度和同客戶溝 通,那麼這個時候的項目經理就好像工廠裡的跟單人員了,這種情況在外包公司比較多。對于技術經理來說,着重于技術方面,你需要知道某種功能用哪些技術合 适,需要知道某項功能需要多長的開發時間等。同時,技術經理也應該承擔提高團隊整體技術水準的工作。

你需要和大家站在一起,因為人們也都有解決問題的能力,更需要有以下的能力與責任:

1、任務管理:開發工作量評估、定立開發流程、配置設定和追蹤開發任務

2、品質管理:代碼review、開發風險判斷/報告/協調解決

3、效率提升:代碼底層研發和教育訓練、最佳代碼實踐規範總結與推廣、自動化生産工具、自動化部署工具

4、技術能力提升:招聘面試、試題主拟、新人指導、項目複盤與改進

技術總監

如果一個研發團隊超過20人,有多條産品線或業務量很大,這時已經有多個技術經理在負責每個業務,這時需要一位技術總監。

技術總監的職責:

1、組建平台研發部,與架構師共建軟體公共平台,友善各條産品業務線研發。

2、通過技術平台、通過高一層的職權,管理和協調公司各個部門與本部門各條線。現在每個産品線都應該有合格的技術經理和進階程式員。

CTO

首席技術官,英文名Chief Technology Officer。是與CEO、COO、CFO同級的上司者,是技術和業務融合的領袖。

國内與國外對CTO的定義有些許不同。

美國對CTO的職責是設計公司三年内的産品和服務的技術發展方向,較少參與技術團隊的日常管理和項目管理事務。基本是前瞻性的政策思維,比如Google的謝爾蓋.布林一直保持對技術方向的敏銳,比如無人駕駛汽車,人工智能等走向。

在國内,CTO大部分則偏重于研發管理,相當于技術總監的Plus版。它相當于美國網際網路公司常設的工程師副總裁+CTO的工作并集。但總體事情比美國的CTO層次低,大部分CTO的是上司技術團隊開發各類産品,解決技術問題,管理不同的項目,排期傳遞。還有一部分的職能類似于架構師或總工程師,作為技術側的權威,為下一步的發展方向 做研究探讨,為CEO提供建設型決定參考。

CTO的職責如下清單:

1、技術願景:識别新技術、利用新技術、整合新技術、驅動新技術。驅動商業戰略、驅動産品戰略

2、技術架構:建立主營業務中的技術架構與實施模式,建立技術體系标準

3、流程制度:建立高品質,高效率的技術團隊。健全的項目管理體系;完善的員工能力發展體系

4、知識教育訓練:建立以研發内容為主的知識庫管理體系、技術分享與技術文化的體系

5、業務支撐:與其它部門的溝通協作,如HR、市場、BD、财務、客服等提供技術管理接口;在産品技術層面能夠領先于業内同行

6、影響力:在公司内部與行業中具備一定影響力與口碑

7、視野&格局&執行力:看待問題全面,具有強大的學習力,具備技術前瞻力,敏銳的市場嗅覺,戰略落地的能力

小結

CTO做的事情,是商業、産品、技術、管理、團隊相平衡的綜合統管,公司的技術研發方向與重點商業化的結果負責,激勵員工,營造工程師文化。

而技術總監主要是協調團隊内部各個資源,引入工具,和方法提升工作效率。

技術經理角色相對具體,績效考核,産品落地,執行優勝劣汰的規則。