天天看點

寫給同僚的一封信

親愛的同僚,

轉眼我在這個團隊工作已有一年的時光,這一年也完成了我從通訊行業轉入網際網路圈的過渡。過去的一年給了我很多觀察(團隊)的機會,也帶給了我不少思考,從我過去一年的寥寥幾篇博文你應當能看到部分。

今天,我想借這篇文章與大家聊一些内容,以便你更加明白:為什麼我在工作中對自己和大家的要求都那麼高?為什麼我強調責任與重視培養工作好習慣?為什麼我會直接批評和積極表揚人與事?希望你的其它“為什麼”也能在這裡找到答案的線索!

現實與虛拟

現實社會中有很多讓人惱火的事:想排隊按序辦事,卻總有些人插隊;想維護家裡樓梯走道的衛生,卻發現總有人亂扔垃圾和随地吐痰;車禍明明緣于對方過失,但他卻百般否認與狡辯;想喝上幹淨的自來水,不求助于淨水器似乎沒有可能;等等。林林總總!

對于一名建構虛拟世界的軟體工程師,我們不得不變得“性格分裂”,因為我們不能将現實中的髒、亂、差帶到我們所建構的虛拟世界裡。這種“不能”并非我們一廂情願,而是現實所迫,因為“髒亂差”的虛拟軟體世界一定會給使用者帶來糟糕的産品使用體驗,也會為我們的工作生活增加額外的成本(加班等)。一旦明白這一點,你就會了解我為什麼在工作中的要求會那麼高,而且是多方位的!

面對現實與虛拟,我們不得不适時進行模式切換。在社會生活中,不要過于較真而影響自己的健康;在工作生活中,我們應力求建構完美的虛拟軟體世界。

剛加入團隊之時,發現大家所寫代碼多了些随意,團隊知識管理也沒有“官方”途徑而是各自寫在自己的文檔或記在頭腦中(那時作為新人的我還是為此經曆了不必的痛苦)。為了改變編碼随意這種現狀,幾個月前我決定着手實施編碼規範。坦白說,這是我的職業生涯中首次大張旗鼓地推行編碼規範,以前我一直認為寫出有品質的代碼(和文檔)是軟體工程師所應做的本份之事,無需過于強調。當時決定推廣的另一大主因是,我們産品所基于的開源項目的根基非常好,除了自身代碼就是一個優秀的參照外,更有着完備的編碼規範和規範檢查工具。然而,編碼規範的最高境界并非“格式”,而是我們的“态度”,因為規範解決的隻能是形式問題,而無法規避不恰當命名等非形式問題。也正因如此,你們所寫的大部分代碼我都會走查,通過不斷指出問題并幫助改善的方式培養大家的認真态度。最近,每當我看到代碼中存在你們改善品質的痕迹時,都會會心一笑;面對大家指出我所寫代碼中所存在的改善點時,我更加高興并給予肯定和感謝,因為我堅信這是我們團隊所應倡導的文化。大家回頭看一看,過去的幾個月我們團隊在這方面取得了質的進步。

談及團隊知識管理,不得不說到我所帶頭編寫的《軟體開發指南》和《技術白皮書》。《軟體開發指南》中的内容一方面很好地指導了我們的工程實踐(涵蓋軟體設計、流程等大大小小的各方面),另一方面為新人上手起到了積極作用。前者從目前我們的項目中基本杜絕了子產品混亂、加速了新版本合并速度和使得軟體開發活動更規範化可以看出,後者則從最近WL在晨會上說“《指南》寫得很好”得以佐證。

值得強調的是,所有這些進步都是我們共同創造的,沒有你們的積極參與和快速跟進根本不能取得現有成績,也很難輕松走得更遠。還記得我在項目總結會上所說的“我為人人,人人為我”嗎?

現實如此不完美,我們能否從建構的虛拟軟體世界多找到些完美呢?!

面子與責任

面子的重要性無需多言,“捍衛面子”的意識也深入了我們的骨髓。然而,正如我曾在郵件中所提到的,以我在外企工作時的觀察發現,美國的工程師之是以更富質效在于他們不是将面子放在首位,取而代之的卻是責任。也正因如此,美國的工程師很喜歡發問且有時的問題讓人覺得 “尖銳”,這一特質無論他們是面對同行、還是“上司”都一緻。

我堅信,一個講面子與一個講責任的團隊将形成截然不同的兩極。講面子的團隊大多低效并很有可能集體無能,而講責任的團隊将運作得務實、高效;重視面子的團隊看到問題采用的是回避态度,講責任的團隊看到問題會指出并較真甚至承擔。責任之是以重要,是因為它會促使我們在工作中有所作為——用心按時、按質完成工作。一個講責任的團隊也不容易出現“技術軍閥”和“管理官僚”,這兩者對于團隊的殺傷力都可稱為是“核武級”。

重面子的團隊還有另一個突出表現:團隊成員很“聽話”,上級說什麼就做什麼,不想不問,但承擔不良後果。這種團隊往往會凸顯出“上司”的“重要性”,因為沒有“上司”團隊就不知要幹什麼、要向哪走。與之相反的是,重責任的團隊即便短時沒有上司者也能有序運作,甚至倒逼管理者有所作為。

另外,責任不應隻是對于自己和團隊,還有對于家庭的部分。比如,通過盡可能少加班多與家人在一起、陪伴孩子成長。意識到這種責任,你往往會花更多的時間去提高自己的能力和效率,而不會一味地想着加班是解決工作問題的萬能藥。我一直不能了解那些沒事卻在加班的人,他們對于家人如此,在工作中真的可靠嗎?在業務發展不需要的情形下,頻繁的加班不是個人能力有問題,就是管理出現了問題。

再者,講責任會促使團隊的成熟,使得成員重視承諾,這對項目的有序運作至關重要。重視承諾的含義是:我們對于無法按期完成的工作不承諾,而一旦承諾就要努力達成。

了解了我對面子與責任的看法後,相信你能明白為什麼我會在晨會上不時提問,也能了解為什麼我敢說且主動承擔非職務之内的(管理)工作、會私下找你聊工作上的事和很少加班。這一切都是責任使然,是我應該去做的!

批評與表揚

人追求完美是無極限的,無論我們多麼有經驗、專業和職位多高,始終能做一個更好的自己而獲得成長。顯然,成長的過程中不可避免地會犯錯。沖突地,在糾錯的過程中我們又有惰性而阻礙前行。面對自身錯誤惰于糾正的情況下,我們如何向前?需要來自他人的批評!

說到批評很容易讓人想到《人性的弱點》中所倡導的“不要批評他人”觀點,也很容易讓人浮想“說話的藝術”。我對于批評有着不一樣的看法和使用方法!

首先,我們得對批評的反應調低一點敏感度,不要一聽到批評就什麼都聽不進,甚至出現邏輯混亂地狡辯的狀況(比如,人家批評你的是事,但你說人家批評你時的态度不對。其實,隻要人家事批評得對,即使态度有點不妥也得包容,可以将之了解為“我做錯了而導緻别人的情緒”)。其次,碰到批評先深呼吸,之後想一想所批評的問題确實存在嗎?在一個講責任的團隊中,批評不光很少出現,一旦出現大家也能平常心面對(注:批評出現多了很可能表明團隊管理出現了問題,不作為的事多了。從團隊對于批評的态度可以看出這個團隊是重面子的還是講責任的)。在使用批評的方法上,我主張批評的目的不是讓人難堪,而是幫助他人改進,在實施批評之前先友好地提醒對方錯在什麼地方和如何改進。如果友好提醒還解決不了問題,那隻能實施批評了。被批評雖讓人難過,但也會讓人記憶深刻而避免下次再犯同樣的錯。對于批評的藝術問題我并不想多談,因為工程師大多很單純、是非少,隻要各自心态擺好真的無需複雜到将批評“藝術化”。

談及批評不得不說說表揚。表揚是一種對他人付出的肯定與欣賞,但中國的工程師好象不大擅長使用這種方法去表達自己的情感。我發現表揚很容易出現“禮尚往來”的現象,你今天表揚了别人,過幾天可能也會收到對方的表揚回報。這種事情如果在團隊出現得多了就很容易帶來輕松的氛圍,也容易讓人體會到自己對于團隊的重要性,這樣不好嗎?

與表揚相似的是,我們在工作中還可以:當因自己的工作失誤而給人帶來麻煩時說聲“對不起”;獲得别人的幫助後道聲“謝謝”;向他人咨詢問題時用“請教個問題”開頭。這些小細節做起來很容易,但對團隊建設的貢獻卻很大!

出色的團隊離不開批評,且是通過表揚而培養的!

質效與習慣

我在美國工作的(累計)半年時間裡,所涉項目周末從未見人加班,即使項目非常緊張依然如此。周末行駛在高速公路上,時不時能看到房車或被拉着的遊艇從車旁駛過,很是感歎。人家不加班又何以如此高質效且過着豐富的周末生活呢?

在軟體行業,品質與效率是一個永恒的話題,但卻鮮有人真正了解它們從何而來。也往往迷失于SCRUM、CI、ET等諸多方法論中。

要做到有質效地工作,首先離不開各位承擔應有的責任,其次是良好的工作習慣。前者會促使我們持續變得更專業、善于思考和較真,後者則使我們高效,兩者一結合品質也随之有了。以我的觀點,中國的工程師隻要沒有将責任和工作好習慣落實好,談其他的方法論都沒用,談了也白談。

說到工作好習慣很容易讓人覺得發虛,有點看不見摸不着的感覺。我也一時很難在這說清楚,需要大家在工作中多觀察,了解我是如何做和思考的。培養工作好習慣的另一個值得一提的好處是,它有助于杜絕技術問題演變成管理問題,進而使得團隊更加輕量和高效。

精品産品是有氣質的,是團隊責任與工作好習慣的折射!