我希望大家是什么樣子的
之前在樂視的時候我問過我們飛哥:你希望大家是什么樣子的。飛哥人特別好,因為在飯桌上,他把所有的人都說了一遍,說需要你,也需要他。需要各種各樣的人。我在樂視過得蠻滋潤,我可以按照自己希望的樣子進行發展。這是建立在我這么多年磕磕碰碰,有了很多思考和自己想做的事情的基礎上。但是我也很想知道,我怎樣能領導讓更滿意。很多剛畢業的同學,更想得到很多的引導。所以我現在就在思考這個問題。
我希望大家有很多想法,大家一起拿出來探討。我希望大家可以遇到事情或者有什么思路可以自己主動找我商量,我覺得這是對我的尊重和認可。我希望我有什么問題或者團隊有什么問題,大家看到了或者想到了能告訴我,大家一起想辦法。樂於分享,有團隊精神。我希望這些是團隊的共性。這和每個人的性格沒有關系,更多的是一種團隊合作溝通的技巧。
性格方面,我覺得遵從天性就好。如果非說要有點共性,那么我希望是感恩之心。可能其他人有自己的生活方式,但就我自己的經驗而言,這在整個人生中,工作上、生活上都是成功的關鍵。為什么我家娃都馬上要上小學了,我家男神來我們公司附近,我可以團隊聚餐不去,一定要和男神一起吃飯。關系好是因為兩個都是知道感恩的人,感恩上蒼,感恩彼此,願意為對方多付出一點讓對方更幸福。結果,自己收獲了更多的幸福。我有很多的朋友,干什么事情都不愁沒人幫忙,那是因為自己這樣的氣質,周圍聚集的也都是一些仗義的人。仗義的基礎就是感恩之心。世界上最遙遠的距離是每次我需要你,都不知道你在哪里。愛情不一定會敗給物質,卻一定會敗給我需要你的時候你都不在。工作也是一樣的,背道而馳路會越走越窄。
之前在樂視有次開會,我家微微一笑很傾城的男神老大說剛剛面試了一個女孩子特別滿意。滿意到什么程度呢,跟曉靜似的。但是老大看了我一眼,看我聽了不是特別高興,就繼續說這個女孩子什么學校的,有多么優秀。我也就是聽聽,不太高興因為我覺得我家男神老大跟王子一樣,特別完美的一個人。完美的人其實有很多,但是我從來沒有覺得他們是一類人。在我心里,獨一無二,不會覺得跟誰很像。我對自己也是一樣,我覺得自己是獨一無二的,聽自己崇拜的人說自己只是一類人,多少有些失落。所以現在我自己帶團隊了,我有時間會去發掘每個人的個性,相信每個人都是優秀的、獨一無二的。
溝通
溝通分為團隊內的溝通和團隊間溝通。
團隊內溝通對於重要的事情,如果不是一句話兩句話能說清楚的,就算文字、消息溝通過,最好也要口頭溝通一下。因為信息接受者有可能因為事情多忘了或者理解的不對。口頭溝通為主,消息主要記錄和留證。為什么這么做呢?程序員大多數是聽覺敏感型的。心理學按照感官敏感度將一般人分為視覺敏感型和聽覺敏感型。視覺敏感型的人對視覺的東西更敏感,精力更集中,記憶也更深刻。更擅長處理圖像。聽覺敏感型對聲音更敏感,更擅長語言文字。而我們從小到大學校學的東西基本是語言文字。能來咱們公司的,都是被讀書坑掉的一代,聽覺敏感的居多。
團隊外,我們是一個team。團隊外的人不管找誰詢問任何事情,都絕對不能因為不是自己負責的模塊而怠慢。自己處理不了,可以帶人家去找可以處理的人。我們需要給團隊外的人的感覺是:找誰都是一樣的,不用有所顧忌。
技術、溝通、態度哪個更重要。這實際上是一個很沒有價值的問題,因為這三者其實是一個東西,叫能力。任何一個不好,都是能力問題。我在東軟的時候,是很受歡迎的小翻譯。真的因為我是一年就過日語一級的天才,所以日語好的不得了嗎?怎么可能,人家都是專業學了很多年,日本留學回來的。但是其他的翻譯是字面翻譯者。我是技術出身的,我理解他們實際上是在說什么,所以更好溝通。其實不懂日語都可以溝通。我在日本出差的時候,我一個同事不會說日語,有個日本的“矢野”不會說中文。他兩天天都不用翻譯,就用手比划,紙上畫,無障礙。技術是什么,比如對咱們來說JAVA是技術,好吧,但是別忘了JAVA最根本是一種語言,是用來表達實現東西的。技術很牛逼,寫了一堆漂亮代碼,但是做了系統邊界外的事情,后患無窮,還不如不寫。所以溝通要更關鍵一些。而有效溝通的最好方式就是態度。
我自身要做的事情
我應該是規划者和決策者,不是執行者。我更不需要是最好的執行者。比較喜歡的美劇是《神盾局特工》和《罪惡黑名單》。不管什么劇,指揮官絕對不是電影里最身手不凡,耍槍耍的最帥的。也不是任何一方面的專家。他是將整個團隊凝結到一起,讓大家可以成為最酷最帥的執行者的那個人。他的職責是制定靠譜的任務。
從戰略和架構上,我需要定義好系統的邊界、定義好系統的核心思想。這樣,系統就有了方向感,隨着時間推移,系統就能形成自己的靈魂。咱們郵件的簽名:我們的職責是:打造可靠、高效的交易系統。這就是系統最抽象的核心思想。
我要幫助大家提出問題。比如每個需求的時候,大家都應該問自己5個Why:這件事情有沒有超越這個系統的邊界?這是根據當前模型和代碼中的一組特定關系作出的權宜之計呢,還是反映了底層領域的某種輪廓?我們做這件事情的收益是什么?如果需求比較大,那么每個階段的里程碑是什么?有沒有更好的解決方法?
重構
相信團隊里現在很多人有這種疑問。我們現在做重構,做好了,又有變化,怎么辦?我的回答是:重構就是需要是一個持續改變的過程,要保持鮮活,要擁抱變化。《極限編程》的核心思想就是要擁抱變化,要迭代。持續變化不可怕,風險是可控的。可怕的是長期不維護,大家對實現細節都淡忘的代碼突然要有一個改變。《領域驅動設計》里有一段話:
通過重構得到更深層理解是一個持續不斷的過程。人們可能會發現一些隱含的概念,並把它們明確地表示出來。有些設計部分變得更有柔性,或許還采用了聲明式的開發風格。開發工作一下子到了突破的邊緣,然后開發人員跨越這條界限,得到了一個更深層的模型,接下來又重新開始了穩步的精化過程。
重構設計的原則說:至少要有兩個步驟的前瞻性。所以,兩個步驟之后還是要變。從模型到代碼,都是一個精化過程,不要怕變。
重構模塊的划分。這一塊確實是經過大家很多的思考得到的,一段時間內是穩定的。比如核心現在划分為正向、逆向、查詢、命令。這是怎么划分的呢?正向和逆向是我們的業務。我們的業務再怎么變,抽象出來也逃離不出這個范圍。業務執行操作。所有的操作都可以抽象為查詢和命令。查詢和命令為什么要分開呢?水平切分,避免副作用。這也是分布式服務和微服務的本質。
今天太晚了,未完待續……
跑題時間
女孩子心里想的就是:願得一心人,白首不相離。男孩子:……
略心塞