現在hr和獵頭也懂得,挖程式設計師不能光講錢和專案了,多少號稱工程師文化的公司花開北京上海,可是到底什麼是「工程師文化」?誰能給乙個準確的定義?
有人說,什麼文化就是什麼說了算的意思,工程師文化就是工程師說了算。這未免也太膚淺了。也有人說,工程師文化就是自由上下班、鬆散管理,做喜歡的專案。我想這依然是不恰當的,這些人只說出了工程師文化給工程師帶來的權利,更何況這種對權利的認定還是片面的。
工程師文化的核心是什麼:價值觀。但是,它不止價值觀。我在這篇文章中提到過工程師文化:
下面我談一談我眼中的工程師文化應該是怎樣的,每個人的價值取向不同,當然並不是說它一定好,不過它真不容易玩得轉。之後你會明白,世界上能真正所謂「工程師文化」的企業寥寥無幾。
just do it
「身體力行」。我把它放在第一條的位置。什麼是身體力行?
但是現在多少管理課程都在這樣給學生**:「克服親力親為的毛病」,「走出親自去做的誤區」。工程師文化的企業中,管理者又該扮演乙個怎樣的角色?企業的核心人才不應是這些指點江山的指揮者,而是腳踏實地的實踐者,是那些動手去做的工程師,並且是那些習慣於馬上去做的人。「馬上去做」往往可以誕生許多創新的點子,因為這些點子轉瞬即逝。
在google流傳著這樣乙個小故事:每週三在二樓的鐵櫃上不定期地都會放置一些帶有google徽標的t恤,大家都可以拿取,很快就會拿完。後來有人注意到這個鐵櫃對面安裝了攝像頭,索性寫了乙個分析攝像頭監控影象的軟體,判斷這個鐵櫃的門是不是開著的,如果是,多半就是新t恤又到了,傳送郵件到「t恤警報器」的群組中,告訴大家快去搶吧。這是一種帶有黑客色彩的實踐文化,少囉嗦、先做事。
矽谷的許多偉大的公司都是從車庫裡的電腦前開始的,而不是拿出一筆錢,等來一票人然後坐等發財。很多人只看到了矽谷工程師光鮮的一面(比如薪水要高出美國其它地區20%左右),殊不知他們的平均工作時間遠遠超過其他地區的工程師。所以說,工程師文化,不是只有權力的一面,它對工程師的要求,是每個人都要足夠能幹,都要做許多的事。
足夠小的團隊
facebook自己總結的工程師文化包括這三點:
move fast and break things
huge impact with small teams
be bold and innovative
尤其我要說一下第二點,在facebook,多數功能系統都由1到3位工程師組成的小團隊完成。平均下來,facebook 每位工程師(注意我說的是「工程師」,不是任意員工)服務120 萬名使用者,google的這個數則是190萬,amazon是96萬,微軟是75萬。
團隊多小才算足夠小?有一種說法叫「pizza team」,換言之一兩張披薩餅就可以餵飽的團隊,你說能有多少人?但是團隊小並不意味著做的事情小,上面的例子已經說到了。
小團隊的好處,在於靈活、快速,極大減少溝通和交流的成本。不用投票,少發郵件多喊話,說做就做。
37signals是另一家把小團隊做到極致的公司,整個公司的工程師遍布全世界,但是也只有35人而已,讓全世界的人一起工作,做出偉大的產品,一定要興師動眾嗎?
工程師的決策權
首當其衝的是產品的決策權。產品的決策權反映了公司對於工程師對產品觀點的認可,這才是最重要的。
在華為,市場部門說了算。市場說什麼時候要,什麼時候就得給做出來,專案計畫全部都是倒排的,程式設計師基本沒有什麼可以商量的餘地。我經歷過這樣一則事情,有一位客戶發了一封郵件,大致是說要做某某功能該有多好啊,然後,然後市場部門一下需求,研發團隊就去做了,過了幾個月,該功能上線,客戶驚訝地說:「我怎麼不記得有這事啊?」。
要讓工程師去決策產品做成什麼樣子,工程師必須能夠直接和客戶接觸,否則主人翁意識無從談起。這也是為什麼大部分工程師文化的公司都是網際網路公司,因為網際網路產品對於工程師來說,就在身邊,感觸豐盈,理念和想法就很多。
另一方面,工程師文化的公司往往會做出簡潔的產品來,因為工程師是喜歡優雅和簡潔的群體。
在amazon,每年工程師們都會投票,投那些最爛的專案和工具,投出來位列top n的幾個,都要限期改掉或者廢掉(雖說amazon並不能完全算一家的工程師文化的公司,但是很接近了)。這件事情就是工程師定的,而不是市場營銷人員。
當然,決策權方面遠不止產品。還包括部分進度、產品特性的優先順序等等。不要覺得不可思議,工程師是去最終落實產品的那個人,如果他都沒有話語權,那才不可思議。
geek的工作環境
這部分的觀點連我自己都沒有百分百想清楚,但是這幾點是毋庸置疑的:
尋找最好的人才
文化不是領導說了算的,而是慢慢醞釀達成的。招聘不合適的人,就會對工程師文化造成汙染,如果不幸招入這樣的人,這些人必須清除出去,例如離職或者讓他們做非工程師的事情等等。這絕非危言聳聽,google就做過這樣的事情。
然而,認可和實踐工程師文化只是招聘的乙個先決條件。更重要的時候,必須招能幹和優秀的人。
來amazon通常要經過2輪的**面試和5輪的face-to-face面試,對於所有的面試官中,有一名經驗豐富的面試官擁有bar raiser的認證,目的是為了保證招聘的人才必須要保持在當前團隊的工程師中前50%而設定的,bar raiser擁有最終否決權,只要他否定的人,其他人全部同意也沒用。
在facebook,新入職的工程師大概會進行乙個4-6周的boot camp訓練來熟悉專案,修補bug,以及學習來自資深工程師的訓練課程,大概10%的新兵無法完成這個過程被勸退。
工程師是一名實踐者,這就意味著他要做各種各樣的事情,我知道有的公司分門別類了各種職位,sa、se、qa、sde、sqa……數不勝數,有的壓根兒都不知道是做什麼的,甚至有的公司把軟體工程師拆分成編碼崗位和設計崗位都分開,但是對於工程師文化的公司來說,工程師必須要多能。
多能的直接原因來自於小團隊,小團隊意味著你沒有辦法去分配太多的角色,你可以擅長做ui,你可以擅長dba,但是乙個寫c++**人照樣可以去畫介面……我想你懂我的意思。
另外乙個重要的條件是候選人的態度。對技術的態度、對工作的態度,以及對生活的態度。寬限的文化下可以誕生優秀的產品,也可以培養一票懶人,這就是為什麼任何制度都要和遵守制度的人相匹配。沒有這樣的人,你玩不轉工程師文化。
當然,工程師文化遠不止上面說的這些,但是在我看來這些是工程師文化裡核心價值觀的其中幾個體現。
我眼中的工程師文化
現在hr和獵頭也懂得,挖程式設計師不能光講錢和專案了,多少號稱工程師文化的公司花開北京上海,可是到底什麼是 工程師文化 誰能給乙個準確的定義?有人說,什麼文化就是什麼說了算的意思,工程師文化就是工程師說了算。這未免也太膚淺了。也有人說,工程師文化就是自由上下班 鬆散管理,做喜歡的專案。我想這依然是不...
我所理解的工程師文化
個人認為要回答這個問題,首先需要從了解工程師是一群什麼樣的人著手。工程師其實就是解決問題的人,他們發現問題,找出規律,使用適當的工具和手段來解決問題。乙個優秀的工程師,需要有敏銳的洞察力,深厚的知識以及豐富的想象力。缺乏洞察力,則無法找到根本的問題,只能頭疼醫頭,腳疼醫腳。缺乏知識,面對問題只能束手...
web工程師眼中的MVC模式
mvc 一種框架模式,呈現的是 表現 與互動的分離。組成部分分為三項 m v c c 就是乙個控制器,從使用者這個角度來講 擷取使用者的需求 m m 資料模型,會接受來自c的呼叫,實現與database之間的資料讀寫 資料再次呈現到v v 檢視,會把c送來的資料傳遞給view介面 v渲染結果後呈現給...