1. 程式人生 > >當我在做技術管理時,我在做什麼?

當我在做技術管理時,我在做什麼?

CEO主要管四方面:人事物財。對於CTO,我認為也是管四個方面:人事物文。

  ·團隊管理

  ·專案管理

  ·技術管理

  ·文化建設

  團隊管理團隊由追求一個或多個共同目標的一群人組成,經過一些規則約束在一起工作。要讓高效協作,需以人為本,讓成員在各自位置得到最有效發揮,個體與整體相互促進成長

  1. 組織架

  組織架構是公司骨架,明確各個崗位的職責、管理範圍、責任鏈。以下為負責技術開發部分:

  

組織架構

  2. 招聘

  招人這件事本身就是個技術活。從哪兒招?要發什麼樣的招聘文案吸引人?面試時問什麼?怎麼知道對方是不是有料?什麼樣的人適合留下來?

  有效過的招聘渠道大概有3種:內部推薦,專業招聘網站,社群論壇。其中內推最靠譜。為了鼓勵更多內推,我們推行了內推獎勵機制:內部推薦成功後,推薦人可獲一定獎勵。

  不同的技術崗位需要掌握的技術技能自然不同,因此刷選時也需要面試官對面試崗位技能都有所掌握,然而每一門技術的技能樹各不相同。

  

前端工程師技能樹

  技術崗位都需要定一些面試題目來提高候選人篩選效率和標準化結果評估。

  面試很佔用人的時間、精力,對於應聘者,耐心引導,應避免面試緊張導致應聘者沒有發揮好從而給出錯誤結論。

  讓新人儘快通過磨合,熟悉開發流程,掌握專業技能,儘早能獨立完成開發任務。以下方案:

  ·引入Mentor導師制度

  ·[xx公司新人注意事項]

  ·code review[Code Review Tips]

  ·pair programming

  ·內部培訓、分享

  ·官方BLOG

  ·外部技術交流會

  Mentor制度

  指定一名同類崗位、高一級別的同事任導師,帶新人熟悉環境、流程、規範等,儘快通過磨合,熟悉團隊、有歸宿感。

  開發人員一開始也可能不懂如何指導新人。為解決這種問題,我整理了一份文件,可以是WIKI中的的連結索引。不要分享整個文件給新人,讓他鍛鍊自學能力。

  

新人注意事項

  Code Review

  我們在日常開發中鼓勵並推行程式碼審查。

  專案開發階段時,我會根據開發組成員的級別設定審查鏈,按照中級審初級,高階審中級,高階互審

  沒有合適的人時我來審查,開發任務完成後,任務開發者需要發Pull/MergeRequest給指定好的審查者進行審查和合並,確保每次程式碼合併前都有2個人能看到過,一般只有在做演示出現exception,需要緊急合併做部署時才會跳過code review流程。

  推行程式碼審查需要有兩個人以上的協作,自然是有代價的,那有什麼好處?

  程式碼審查相當於另一種pair programing,大家的程式設計水平都能提高(無論是提出問題的,還是被指出問題的)

  讓一個新人融入團隊沒有比在一起討論程式碼更快的方式了,特別是對於新人而言,對程式碼規範不熟悉,通過Code Reivew能有效減少低質量程式碼的Check in,對個人、對團隊、對專案都是很有益的一項安排。

  我日常對進行Code Reivew發現問題做總結,在團隊內也做過一次專題培訓。

code review examples

  特別提一下,設定固定的審查鏈的好處是減少審查者的負擔,每個人只需負責1~2個的程式碼審查;階級式的安排,可以讓高階的不用反覆的去提點低階人的一些低階錯誤,反覆指出一些低階問題對高階人員是負擔也是干擾,容易累積高階人員缺乏成就感的情緒(程式設計師的一個特質是喜歡有挑戰性的任務)。

  結隊程式設計

  結對程式設計的好處不用多說,應鼓勵結對程式設計。我不會強制安排,不會要求像教科書般要求在某個時間規規矩矩的一個看一個寫,實際上一般的情景是某個同事有問題時,需要找我或作指導的其他同事,拿上電腦大家坐在一起討論、直接敲程式碼:

pair programming

  內部培、分享

  團隊的強大不能依賴個體,新知識只有一個人掌握時,不等於團隊掌握了,分享出來團隊技術才能成長。

  在每週五下午,我會不定期的安排一些內部的培訓,技術的、設計的、產品的,不限制領域,既是對個人的一次鍛鍊,又同時是給大家一個休息、坐在一起討論的時間。

  技術部落格

  知識的累積和鞏固途徑由淺到深可分為聽讀寫說,但聽別人說不如自己讀書,讀書不如動手寫,寫不如說出來給別人聽。能親口說出來的知識掌握得最牢固,不是人人都有勇氣在別人面前開口,因此開設技術blog,把掌握到知識出來。

  只是內部交流是不足夠的,還要看看別人是怎麼做的,做法很簡單要麼走出去要麼請人來。我們會不定期安排一些優秀的員工,參加的一些技術沙龍活動開拓眼界和學習。

  5. 效率管理

  程式設計師最煩什麼?最煩的不是任務有多難多重,而是在寫程式碼時被幹擾打斷。為此我需要從溝通方式、工作流程、協作方式各種方面來解決干擾的問題,我大概歸納為四化

  ·溝通明朗化

  ·工作流程化

  ·開發自動化

  ·協作清晰化

  提高溝通效率

  微信或QQ混合了非工作訊息的通知,開發人員不能很好的區分開這是有工作訊息、還是普通社交聊天訊息,很容易錯過重要的工作資訊。注意,這裡說的是企業內部的溝通工具的選擇,對外該用什麼的還用什麼,兩者並不衝突。

  工作流程化

  在團隊中,特別是進行軟體開發專案時,需要有一定的流程指引。大家在一起進行工作時可以分工、分步協作,清楚知道自己、別人下一步會做什麼,自己會不會被幹擾,從而提高協作效率。

  ·開發流程規範規範了從需求確定、專案評估、專案確立、開發、驗收交付到專案結束總結各個階段的各角色的工作內容範圍和輸入輸出的文件

  ·開發流程圖建立feature分支-> 提交PR/MR -> code review -> 部署staging-> QA -> 部署production

  ·提倡git flow - 使用Github/Gitlab flow,程式碼提交使用Pull/MergeRequest來進行code review。

  定好工作流程,大家從中找到自己的位置和角色,知道在什麼階段要做什麼、下一步做什麼、要跟誰協作,不能有一頭霧水的感覺。

  

  提倡善用工具最大程度做到自動化,這種思維是貫穿整個開發流程各個環節的。比如最普通的Terminal(終端shell),推薦使用帶互動的shell(如zsh/Fishshell)來輔助cli的操作,鼓勵善用alias來簡化重複的使用命令;

  程式碼開發時鼓勵使用支援自動完成的IDE、編輯器(如SublimeText),鼓勵善用程式碼snippet來減少重複編碼的操作;

  程式碼測試使用自動化測試(可配合guard或者livereload達到儲存時自動跑相關測試);

  程式碼提交使用自動化命令(gitlab-send-merge-requestof git-cmd-helpers),一步完成程式碼提交併發Merge request

  專案部署使用自動化部署工具(如ChefCapistrano),做到一鍵部署;

  使用CIGitlabCI)進行自動化測試、自動構建、構建結果通知、自動部署、自動打包上傳app package,達到DevOps的自動化;

  服務使用健康監控(如MonitGod),自動監測服務健康並自動重啟服務;

  一句話就是儘量把重複的工作丟給機器去做,人力應該專注在機器解決不了的地方。

  協作清晰化讓你知道什麼時候要去找誰做什

  為了解決協作清晰問題,我們使用3種管理方法:

  ·團隊共享日程表

  ·團隊協作(非特定專案)任務管理

  ·具體的專案管理佈告板

  一個專案開發時必定會定下一些關鍵的時間節點,如何時開會、開發完成、會議演示、正式上線;公司內人員活動變化,如公共節假日安排、團建、面試安排、團隊成員生病請個假什麼的等等。

  在團隊中清晰透明、避免衝突。具體做法使用GoogleCalendar進行日曆共享,客戶端使用MacCalendar檢視,約定好事件的標題格式“[公司名-專案名事件類別事件標題

  在推行新制度時,使用流行的服務和系統自帶的工具,可降低推行阻力。

  日曆只能也只應該記錄事件標題和日期時間,更具體的內容,我們在Trello上建了一個board來進行管理,如我們的團隊分享安排、團建安排、假期的安排等。

  至於更具體的專案開發任務,可使用獨立專案管理工具

  6. 管理

  是人就會有情緒,瞭解員工的情緒問題也是管理的日常之一。在公司還沒有強大到有專職的程式設計師鼓勵師時,也只有親身上陣,我推行了3種方式:

  ·員工一對一談話聊天是舒緩情緒很簡單有效的一種方式,無論工作問題、生活問題,都可以坐下來面對面聊一聊,討論下解決方法

  ·員工年度調查有些話不適合、不方便當面說的,那麼可以寫下來,,收集對工作流程、工作環境、薪資待遇、公司發展建議等

  ·戶外團建活動離開工作環境人的情緒會得到放鬆,為此我擬訂過團隊建設活動計劃

  專案管理要注意三點:

  ·需求清晰要做什麼,做給誰用,做成什麼樣

  ·任務清晰安排什麼人,在什麼時候,具體做什麼

  ·節點清晰要在什麼時候做完

  針對以上這3點我制定了以下文件、規範:

  ·明確需求- [PRD文件規範]

  ·明確任務- [Trello使用規範]

  ·明確節點- [Agenda]

  文件規範

  PRD(產品需求文件),相當於是產品的工程設計圖紙。一份PRD應該包括:產品說明文件、資訊架構圖、功能結構圖、邏輯流程等。

  當整理過一份完整的PRD後,其實已經對產品的邏輯性、合理性做了一次梳理,再傳達到開發團隊手裡時,能有效減少返工、無效需求的折騰

  Trello

  是個看板風格的協作工具,上手簡單。由於Trello本身十分鬆散靈活,100個團隊有100種用法,因此為了方便統籌管理,我制定了一些使用流程並整理成規範文件,包含對listlabel使用以及card生命週期的流轉,讓每個任務從需求轉化為任務,分配、評估、開發、部署、測試、上線,意圖讓每一步都清晰可預期,參與者之間協作配合清晰可見。

  專案管理佈告版也會對客戶(外部客戶或其它部門)開放,希望從一開始大家就可以參與到日常開發流程中,掌握專案開發進度,也方便收集對需求討論、BUG反饋,以及分配一些他們要配合的工作,讓協作內外貫通。

  Agenda

  一個專案開發,需要定一些時間節點,如什麼時候正式立項,以便專案經理可以召集開發團隊、召開立項會議;什麼時候做交付演示,以便讓QA工程師可以準備使用者故事;什麼時候正式上線,以便專案組技術組長可以準備交付文件;時候做上線推廣以便運維人員可以做好伺服器壓力測試調整伺服器配置。

  前面在說如何解決團隊協作清晰化中,提到了使用團隊日曆共享計劃”。因此要求專案經理給每個專案新增2種事件型別,一個是CHECKPOINT(檢查點),一個是DEADLINE(最後期限)。

  CHECKPOINT是階段性的時間節點,DEADLINE是當前版本最終的交付限期;一個開發版本內可以有多個CHECKPOINT,但只有一個DEADLINE

  做事應有始有終,我要求每個專案的每個大版本開發,都要定一個DEADLINE(最後期限),期限是構成目標的要素,沒有期限則沒有目標,沒有目標何從談管理?

  CHECKPOINT則是一些階段性的目標,到達一個DEADLINE之前,可以有多個CHECKPOINT;一個CHECKPOINT可以是任何關鍵事件,如階段演示、交付演示,可安排階段小結會議來討論技術問題調整開發計劃。

  個人管理

  在日常工作中,往往又有一些個人的自我管理&代辦事項。如某項技術調研、培訓文件準備等不適合放入協作的任務列表的,也要管理起來,做法如下:

  ·不需要協作的,放入Wunderlist(可跨多終端);

  ·需要team範圍知曉的、有明確日程安排的,放Agenda;

  ·跟具體專案相關的,放在對應的專案trello board

  控制

  專案開發有如組織團隊賽跑,需要控制好節奏,什麼時候要留力調整速度,什麼時候要加速衝刺,都應該有規劃。

  根據這些年來的專案開發經驗,我整理了一個開發流程規範,劃分出幾個階段,每個階段有主要參與的角色及其主要任務、有輸入輸出的結果,以便專案參與者明確自己角色的任務。

  選定專案管理框架/風格:Kanban + Scrum

  選定專案管理工具:預設:Trello + Scrum Extension

  其他:RedmineTeambitionWorktileTower

  角色安排:專案經理,產品經理,專案組長,開發,測試,運維流程安排:

  1. 需求確定

相關推薦

技術管理什麼?

CEO主要管四方面:人事物財。對於CTO,我認為也是管四個方面:人事物文。   ·人- 團隊管理   ·事- 專案管理   ·物- 技術管理   ·文- 文化建設   團隊管理團隊由追求一個或多個共同目標的一群人組成,經過一些規則約束在一

談論迭代器談些什麼?

當談論迭代器時,我談些什麼? 花下貓語:之前說過,我對於程式語言跟其它學科的融合非常感興趣,但我還說漏了一點,就是我對於 Pyth

技術選型要註意些什麽?

相關 zookeepe 閑聊 基本 新語言 tpi ear 工作態度 復制 FROM https://36kr.com/p/5097526.html 編者按:本文來自微信公眾號"InfoQ"(ID: infoqchina),作者:周明耀,浙江大學工學碩士,13 年軟件研

技術面試官是這樣甄別大忽悠的——如果面試你有這樣的表現估計懸

 記得我剛做技術面試官的時候,還比較單純,別人說什麼就信什麼。這本來也沒多大的錯,雖然有些候選人會誇張自己的技能,但畢竟大多數候選人都是比較誠實的,相信絕大多數的技術面試官也像我這樣,會以君子之心度人的。     但我面試了一陣後,有專案經理向我

在研究Cocos-2dx的源代碼在想什麽]-Ref類一切的起源

ane isn leaks style 內存泄漏 列表 incr ons public 【名詞解釋】 引用計數:引用計數是現代內存管理中常常使用到的一個概念。它的基本思想是通過計數方式實現多個不同對象同一時候引用一個共享對象,詳細地講,當創建一個對象的實例並在

談跑步談些什麼

上一個週六,我第一次參加了馬拉松活動。說是馬拉松,實際上參與的是最低一檔的距離:6公里。6公里這個距離對於不愛運動的人來說,可能是一個非常可怕的數字,但對於經常跑步的人而言,實在是一個拿不出手的距離。這個離半馬21公里,全馬42公里還是差得太遠,更別說現在還

面試官問「你有什麼要問的嗎」應該問什麼?

作者:楊毅 連結:https://www.zhihu.com/question/28058827/answer/39392149 來源:知乎 著作權歸作者所有,轉載請聯絡作者獲得授權。如果面試官職位、級別較低(中層經理及以下職位),可以問以下幾個問題: Ø如何評估員工在試用期內的表現?考核標準是什麼呢? Ø公

失去連接為什麽SecureCRT窗口或標簽會關閉?

其中 為什麽 disco http 選項卡 是否 關閉窗口 解答 connect SecureCRT提供了一個選項,允許在其中的連接關閉時自動關閉窗口或選項卡。默認情況下不啟用此選項,因此如果您看到此行為,則可能是您已啟用它(或者由創建SecureCRT安裝的配置文件的任何

談 HTTP 談些什麼?

![](https://upload-images.jianshu.io/upload_images/80097-faada4f8959b98c9.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 當我們開啟網站時也許不會去留意網站前面的HTT

面試官問ArrayList和LinkedList哪個更佔空間這麼答讓他眼前一亮

前言 今天介紹一下Java的兩個集合類,ArrayList和LinkedList,這兩個集合的知識點幾乎可以說面試必問的。 對於這兩個集合類,相信大家都不陌生,ArrayList可以說是日常開發中用的最多的工具類了,也是面試中幾乎必問的,LinkedList可能用的少點,但大多數的面試也會有所涉及,尤其是關於

為應屆畢業生應該咋找工作

畢業 提高自己 承諾 失業 找工作 話題 進入 能量 style 曾幾何時,我們高中畢業了。我們歡呼雀躍:終於可以和繁重的學業說拜拜了! 。。。直到我們進入了大學; 曾幾何時,我們大學畢業了。我們歡呼雀躍:終於可以自己獨立步入社會了! 。。。卻發現找工作困難重重; 曾幾何時

語音識別搭配AI之後的語音助手更懂的心了

一定的 平均值 數據信息 均值 音頻 問題 做的 在屏幕上 要求 歡迎大家前往騰訊雲+社區,獲取更多騰訊海量技術實踐幹貨哦~ 本文由騰訊雲AI中心發表於雲+社區專欄 我今天演講主要分四個部分,第一個是分享語音識別概述,然後是深度神經網絡的基礎;接下來就是深度學習在語音

除了技術知識之外還需要了解什麼知識?

有時候真的感覺,知識的貧乏,讀書能夠改變人的一生或者一個人的命運吧~多讀書總歸沒有錯。 1.比特幣相關知識 2.全球經濟為什麼崩盤,繼上次金融危機又發生了什麼事情  3.國家的經濟政策 4.為什麼虛擬加密貨幣會興起? 5.比特幣與區塊鏈之間的關係? 6.什麼是區

對於新舊技術的爭論很low的想法

身處IT領域不可避免的會面對新舊技術的迭代更新,自然也少不了新舊技術誰好誰壞的爭論。因為最近自己也遇到了新舊技術的“戰爭”,所以順道說說自己的看法,當然,我的看法很low。 效率 or 可靠性? 我們經常會聽到這樣的言論,新技術可以提升效率,包括我自己也這麼說。不論是新技術還是老技術不可

百度貼吧前負責人:產品16年有9條心得

舒迅,現任百度銷售副總裁助理,綜合業務管理部總監。2009年至2011年,他出任百度貼吧事業部總經理,兩年間,帶領團隊取得了貼吧登入使用者增長10倍,瀏覽量增長超過3倍的成績。 在這篇文章中,他總結出了打造網際網路產品的9條心法,滿滿都是乾貨! 我曾經在一

年輕不寫單元測試

在一個多人協作的大型專案中,我們在開發的過程中可能經常會面臨到這樣的問題: 哎,這次我沒有改動到這裡啊,這怎麼會有bug呢 哎,怎麼新加了個功能原來的功能受影響了呢 哎,這裡的樣式為什麼亂掉了 當我們被提出這些bug的時候,我們是二臉懵逼的,因為這不符合一個程式設計師的預期!!!那麼我們如何能夠避免

在匯入我們老師寫的程式碼他是用的學生機是win7系統然後匯入到eclipse發現專案裡面中文都變成了問號形式的亂碼。

我在匯入我們老師寫的程式碼時,他是用的學生機,是win7系統,然後我匯入到eclipse時,發現專案裡面中文都變成了問號形式的亂碼。 我按照別人的指引修改把工作空間的編碼格式改為UTF-8,還有Java檔案也改成了UTF-8,然後還是沒有成功,最後得到老師指引,他說要跟單獨檔案修改resource改

【Liigo's blog】沉默著的時候覺得充實;將開口同時感到空虛……

當我沉默著的時候,我覺得充實; 我將開口,同時感到空虛…… 相對於籃球,我更喜歡足球; 相對於象棋,我更喜歡圍棋; 相對於C ,我更喜歡Rust;…… 莊曉立(Liigo),男,80後,山東省梁山縣人,2002年畢業於山東理工大學,十多年來長期從事軟體技術研究和基礎產

【Augusdi的專欄】攀登技術的高峰與大家共勉!

1024超級勳章 授予原創文章總數達

本週新鮮事:有的技術線負責人0點打電話都睡覺了很會養生。

大家知道 VIVO 上週釋出了一款很有逼格的手機 VIVO NEX,這款手機有個很炫的功能就是採用升降前置攝像頭配置,就是你拍照的時候會從手機頂部彈出一個鏡頭進行拍照,不用的時候會自動縮回去。但是呀,自從有人買了這個手機之後,還發現了一些有趣的事情。 NEX 事件 給大家說個笑死人的事情:前幾天 VIVO