- 大家有一個很一致的感受就是創業是非常孤獨的
- 作為一個技術管理者特別是作為創業團隊的技術管理者有時候也是非常孤獨的
大概分了一個類
- 創業公司
- 中型創業公司
- 成熟公司
最近創業公司非常多,這種公司的特點是
- 十幾個人
- 目標很堅定
- 沒有太多的組織結構
- 大家往一個目標去奔,不停的做一些事情出來
比如華為、騰訊,它們的體系是非常健全的,花費了大量的人力和物力去搭建和完善內部的研發體系和研發平台,包括整個組織結構都是非常成熟的,個人在裏面更多是追尋業務目標能夠把 KPI 做好,這是成熟公司的一些例子;
什麽叫中型創業公司?
- 它的資金和背景很雄厚
- 可能一成立一下團隊就擴張的非常大
- 他們也有很強的背景和資源
大家都在搶時間窗口,都希望在這個短的時間和機會窗口中把目標和業務順勢擴張起來 這種創業公司的團隊的擴張會非常快
- 2013 年 12 月份左右正式宣布我們要去做一加,最初用戶和消費群體是在中國
- 不到一年的時間裏覆蓋到四十多個國家和地區,包括歐盟、北美、印度和亞太等國家地區,用戶範圍大概是四十多個國家
帶來的後果是業務發展太快了,實際上是會對我們的內部和公司技術體系帶來了很大的挑戰
- 我們是一個跨地區、跨不同國家協作開發的模式
- 辦公地點有十個左右,溝通成本和網絡成本包括其它成本是非常大的。
- 十幾個人成立這家公司,現在有 900 人左右 組織規模擴充了 90 倍,這是非常恐怖的
來的嚴重後果是因為大家來自不同國家、不同背景、不同習慣,裏面會有很多工作上的摩擦,溝通上也存在各種各樣的問題。
- 我們團隊內在討論一個問題的照片
- 我們在討論一個產品的細節
- 需求一周之內變了五次
- 這個問題昨天討論大家都有不同的意見
大家不停的爭吵,我們花了兩個小時時間還沒有拿出一個結論
需求不斷在變,會有各種各樣的突發性的問題出現,對我們研發體系的挑戰也是非常大的。這是我們的現狀和我們走過來大概是什麽樣子
創業公司?大公司 or 有活力的公司也都會這樣吧。
最早的一波員工可能是從不同的公司或互聯網公司過來,就把(大)公司現成的架構帶過來了,這個架構好不好,可能非常好
- 適應大部分平台的企業
- 服務化做得非常好
- 文化做的非常好
- 分了很多應用和服務
這到底適不適合創業公司或適不適合一加的現狀
我們最初的時候開發人員就十幾個,一下子五六十個應用系統,部署非常覆雜(出現問題之後要去找問題)。
後面我們把它簡單化、程序化、層次化出來。這樣帶來的好處是效率高了
- 團隊受制於哪一點
- 團隊能不能做這些事情
- 每一個架構都有原因
比如說像淘寶的架構也是發展了好多年才發展到這個階段
如果創業公司一上來就用很覆雜的架構,這對整個團隊或業務帶來非常大的影響,這是體會比較深的。
最早我們的架構是從其它公司帶出來的,底下有 DB,中間有一層 JAVA,JAVA 是做後面的服務,上面還有一層是 PHP,PHP 是做 Web 頁面,可能有些緩存,最早看到這個架構的時候也有一點詫異,這樣帶來的影響是什麽?
其實架構無所謂好壞,但是在創業團隊裏,是初次組建的團隊,這個模式帶來很大的問題
比如做一個小小的功能需要
- 進來一個 JAVA 人員和 PHP 的人員
- 可能還需要頁面或測試的人員
一個小功能可能要十個人,這對資源是極大的浪費。
後面我們改進,把它刪減掉,不要垂直的模式,現在團隊的現狀就是 JAVA 和 PHP 都有,從前到後一個模塊、一個系統搞定,模塊與模塊、系統與系統之間語言的交付統一通過服務中心或管控方式管理起來
這樣帶來最大的好處就是
十個開發人員可以同時做十個項目,整個項目叠代是非常快的,這對我們現狀來說是非常重要的一點。
當然這裏面也不會探討哪個語言好、哪個語言壞,其實沒有好與壞,只有適應場景,他是不是能去做這個事情。
對於創業公司來說,對小公司來說還好
- 十幾號人大家形成簡單的討論或達成一致應該怎麽樣去做,可以很快的溝通交流
但是對於像我們這樣的團隊不大不小
- 大家做項目是非常需要統一和協調的,沒有規範
- 如果開發者的能力都非常好、溝通非常順暢、意見很一致的情況下都沒有問題
但是當你的團隊擴大的時候
- 團隊可能會有不同的方式
- 這裏面就會存在很多爭論爭吵或者矛盾、沖突,導致研發效率嚴重下降
我們有過慘痛的經歷,所以進來以後把研發體系和流程做了搭建,可能不像騰訊有一個完整的體系,簡單的會用開源的工具和平台把研發體系和輔助體系相關的東西理順,最終研發體系是為開發人員服務的,不應該限制它,但是讓大家有一致的思想。後面我們也會用一些技術,比如說 Docker,把我們的運維體系做的更完善。在團隊急劇擴大的過程中大家一定要重視研發體系的搭建,大家有一致的研發方式和理解,使效率推進更快。
這是大概的總結,總結只有四個字,因為我覺得
不同的技術架構在某些情況下都是可以去用的,量體裁衣:
- 你現在團隊的規模程度
- 業務類型是什麽樣的業務
- 開發人員的能力在哪裏
- 預算大概是什麽樣的
采取合適的架構。盡量簡單清晰
效率優先,能夠一個人解決的事情絕對不要安排兩個人
我覺得在公司溝通成本是最大的,大家溝通稍微有些不一樣或者理解不一致的情況下會導致很大的團隊的抱怨
- 所以能夠一個人解決的讓他去做,給他更大的空間,不要讓兩個人進去。
- 再就是盡量利用開源或成熟產品,不要重覆發明輪子,因為我們也是全球業務,我們也搭建機房,直接用海外 AWS 的產品,幫助我們迅速開展業務。
架構觀念,聚焦業務,隨時調整輕重緩急。
在我們公司每天碰到三個問題:
- 我們想做的事情太多了,我們的
- 產品計劃已經排到明年下半年了
- 各種基礎設施要做
- 因為我們也是在一個競爭非常激烈的行業,大家都知道手機行業競爭激烈
- 大家都在搶時間窗口,我們從無到有,要做的事情非常非常多。
- 我們沒有那麽多的資源,雖然公司發展比較快,但是也沒有達到土豪的階段或者一下子招很多非常優秀的人才進來
- 資源永遠是有限的,不管投多少人進來,你發現還是很多事情沒有人去做。
- 就是沒有時間,我們每天都在跟時間賽跑,希望把我們的產品和系統,內部的、外部的都能夠做的很好,能夠支撐業務的發展或者讓我們的業務跑的更快,這是每天思考的問題。每個業務部門都有很多事情要做,全都推到我們這邊來的時候事情像山一樣壓過來,這樣的情況下怎麽辦?我們發現很多內部基礎建設的很多問題,人員素質、人員能力一直得不到很好的提高,大家效率很低,我們一直想辦法解決掉,當業務過來的時候我們完全沒有時間做這些事情。
- 在創業公司核心的還是業務優先
- 不管怎麽跑,要先跑起來,可能跑的很爛,可能這個路修的不是很好
- 讓業務線跑起來,不能先修一條柏油大路,先修三個月
修完了在上面跑吧,那沒用,對我們來說沒有時間。
- 但是一定要區分哪些是核心業務,這裏面有一個重要的觀點就是重要性的四象限,哪些是核心的業務,一定要聚焦,比如這個月有十幾個系統需要開發,在這樣的情況下同時鋪十條線業務會做的怎麽樣,為什麽不集中力量把最核心的業務做掉,
少即是多,這是學習到的很深刻的一課。
我們比較被動不停的支撐業務,來一個業務做一個,可能業務有他的規劃,他不知道下一步做什麽,不停的調整,後面發現這個模式非常被動,整個技術團隊也在疲於奔命的去做。
後面我們做了
- 整合系統的規劃和思考
- 幫助業務理清楚今年到底做哪些事情
- 什麽階段做什麽事情
把這些系統跟業務部門不停的溝通,強迫他們系統化的思考,最後發現達到一致
- 所有業務部門都可以去理解這個階段為什麽做這事情
- 這個事情為什麽不能現在去做
- 這樣對開發節奏的掌控是非常重要的。
每個業務線在不同的時間和階段業務需求都會過來,怎麽辦?
- 告訴他做不了,他就會說這會影響到我們的口碑,後面我們做了什麽事情?
- 我們把部門定期一個月讓所有部門按照標準把這個月的規劃做出來,強迫所有業務部門做好規劃和計劃
- 做好之後合並在一起,把所有業務部門的頭抓過來一起開會,明確在這邊做這件事情,自己做優先級確定好
大家定下來我們就按照這個方式去走,這個效果非常好,也是印象比較深刻的一點。
所以在這種企業裏一定要聚焦,區分你核心的業務在哪裏,你的團隊大概有多少資源做這個事情。
這是我從業十二年的感受,他們是體會不到的,所以不要指望業務理解技術這個事情,也不要讓技術反推業務,利用一些方法和技巧來實現比較正向的反饋。
再一個感受比較深的經驗是技術和管理的比重隨時要調整和平衡。
- 大部分的技術管理者都是技術出身的
- 大部分的技術人員對技術都是非常狂熱的
我在這方面也犯過錯,我剛到公司的時候發現很多技術上的問題、架構上的問題,我會自己投進去,滿腔熱血做很多事情
問題就是如果你是一個小團隊沒問題,但如果你的團隊足夠大,比如說幾十號人上百號人規模的時候
一定要控制參與度或者你對具體事情的參與度,把更多精力放在團隊的管理上或者是文化的管理上。這個比例具體怎麽分,沒有絕對的比例,看你公司的情況和環境,有些公司文化做的特別好,但有些公司全部聚焦在業務,這樣就需要技術管理者花費更多的時間在團隊上、人員管理上或其它的非技術方面的事務方面,這也是我印象比較深刻或走了一些彎路的地方。
再一個感受比較深的是招人
- 招人要慢
- 辭退要快
我今年核心的工作就是找人,找到合適的人,是非常非常難的事情,我覺得找人很難。 在這個過程中我們有很多的方法,
- 通過傳統的招聘渠道
- 也通過一些新興的招聘工具
- 包括獵聘我們都嘗試過
效果都不是很好。
總結下來最好的效果還是內部推薦,進來的素質包括他對公司文化的理解非常到位。
我覺得作為創業公司的技術負責人自己一定要花更多的精力和時間在找人上面,找到一個人真的可以去給你解決很多問題。今年上半年我大概有三分之一的時間找人,不停的找人、了解、溝通。
- 除了專業能力還有文化和創業堅守是非常重要的,這點我體會不是很深
最早我要求專業能力非常過硬,來了之後就能用,但是我發現除了專業能力之外,特別是像我們公司文化是比較混合的情況,因為辦公室裏
- 來自不同國家
- 不同文化的人
有些進來之後會把他已有的習慣或以前工作的方式帶進來
- 每個人的工作方式都不一樣
- 他不理解創業公司為什麽要這樣
- 他並沒有深刻的認識
創業公司可能最初追求業務,他可能不理解,他可能看到這麽多問題
- 後勤沒有做好
- 加班的零食可能少了一點
- 有各種各樣的抱怨
後面發現在招聘的時候文化和他個人創業精神的理解上一定要去重點把關的,一定要匹配你公司的文化。
這個論點在 intercom 那份 PDF 也有討論到,兩邊論點可以碰撞一下。
辭退要非常迅速
特別是最早期的時候團隊擴張太快
- 招聘上可能沒有做的很好
- 沒有把關的很好
導致辭退一些同事,不一定是能力不行,是他跟公司的匹配度和做事方式調整不過來。 確實不合格的要把他辭掉,因為不僅僅影響到他自己的工作,會影響到他身邊的人、他工作同事的狀態,會有一些蔓延的後果。
如果他持續犯一個錯誤,我們給他一個月時間指導改正,如果還改不過來,只能是離開,對公司和個人都是好事,這也是我在一加學到的很重要的一點。
再一個感受就是
永遠不要忽視溝通的作用和力量。
我認同研發加班是正常的,但是一定是在有效率的加班,而不只是為了加班就坐在那裏做一些表現。比如說溝通上業務方有一些想法,他有很多的需求,可能大家在做事情的過程中理解不一樣,做完之後有問題,又用另外的方式去做,這會導致不必要的沖突和矛盾,所以溝通這一塊是非常重要的技巧,
- 要跟上司溝通
- 跟老板溝通
- 跟下面所有的兄弟溝通我們有哪些問題,應該怎麽去做
- 和業務找到一種很好的渠道。
溝通只是第一步,一定要形成固定的機制。
正確的激勵導向,使團隊快樂
創業公司大家的時間和精力都放在業務上,我們要不要做 KPI,怎麽激勵和鼓勵員工?
去年我們犯了一些錯誤,公司體制也不健全,很多事情也沒有做的很好,這方面引導員工告訴他應該怎麽樣才能得到更多的激勵,這方面可能也做的不是很好,我們現在也在探索,比如說
- 要不要 KPI,員工還是要有一個清晰的目標,如果他做的好確實要有激勵和獎勵措施給他,可以是實質上的獎勵,也可以是精神上的獎勵,
這個是非常重要的事情,這個事情我們也犯了很多錯誤。再一個是使團隊快樂,創業公司壓力非常大,也很辛苦,要有各種各樣的活動和團建,讓大家更 Happy,成員之間的感情要很好,大家更有勁。
在一個公司作為管理者,需要的素質有五個:
- 一是指得了路
- 二是扛得了槍,公司每天都有很多問題或技術難題,你作為技術負責人自己要深入進去,帶動大家解決問題,或者給大家提供建議讓大家做事
- 三是吃得了苦,相信在創業公司待過的都能有一些體會
- 四是賣得了萌,你帶一個技術團隊或者是兄弟,需要在團隊文化建設或團隊氛圍做很多事情,活躍你所有的成員,做很多團結方面的事情,跟大家打成一片
- 五是受得了委屈,很多時候你做了很多決策、想法或事情,可能下面的兄弟不理解你,另外一種方式做可能更簡單,可能你比他們看的更遠,可是大家不理解你,或者大家的要求你沒有滿足,大家指責你,可能有這樣的沖突或爭吵,我覺得這是基本素質,技術負責人要能夠受得了委屈,想辦法解決,如果你是對的沒關系笑一笑就好了,如果你是錯的那想想怎麽改善。
- 第一條是鍛煉身體,保持良好的體力和心態
- 第二是每天寫管理日志,如實記錄,定期反思
- 三是保持學習,每天至少預留 30 分鐘時間思考,30 分鐘時間學習
- 四是定期的一對一會談。
核心觀點,不同公司在不同階段有不同的關註點和解決方法,沒有標準答案
需要每一個技術管理者包括 CTO 去思考:
- 從你的團隊到能力
- 從你公司的業務和業務發展方向去思考到底采取什麽樣的方法
就去思考、去想,找到你最合適的才是最好的。
成功的價值就是失敗失敗失敗,不停的去嘗試,但是每一次失敗都是提供一個機會去學習。
我們也應該是這樣的心態
- 敢於嘗試,但是要思考
思考哪裏做的好或不好,到一定階段以後每一個架構師或技術管理者都能夠形成自己有效的管理理論。
成功的價值是「失敗s」堆疊提出來。