倔強的程式設計師

2021-09-03 08:27:20 字數 2701 閱讀 4848

對於程式設計師來說,大多數人公司都有技術和管理兩條發展路線,通常在同一家公司,管理路線的發展可能性,要相對廣闊一些;但是技術路線也有技術路線的好處,比如相對而言更依賴於硬實力,因而工作機會豐富。我相信有不少程式設計師都和我一樣,堅守著技術路線,無論是進還是退,都對管理者的崗位沒有什麼興趣。

興許大家都聽到軟實力和硬實力的概念。對於乙個技術人來說,硬實力大致上可以認為是計算機和軟體工程相關的技術能力,1 還是 0,是還是非,會不會演算法,懂不懂設計,清清楚楚,明明白白; 而軟實力則反過來,聽起來挺抽象,挺模糊,比如溝通能力,自我管理能力,但是卻扮演者重要的角色,甚至隨著職業生涯的發展,它的影響力越來越大。而性格,是軟實力中乙個很特別的影響因素。

下面我講的是在程式設計師技術發展路線中,「倔強」性格的影響這乙個窄窄的範圍,而且是就我的認知而言的。顯而易見它不可能是很客觀的。我相信會有很多人持有不同的看法。

我想大家都認可的是,基本上每個團隊裡面都有各種脾氣性格的人。記得我剛工作的時候,團隊裡面平和和好說話的人更多。多數人性格都比較平和,這可能和資歷、眼界等等因素也有關。以前讀過一篇文章,說乙個團隊裡面,有各種各樣的角色,有牛、有豬,有狗、有猴子等等等等,分別代表著不同的性格。隨著時間的試煉,大家發展的情況各不相同。在討論方案和問題的時候,肯定有人不同意,但是只要多數人決定了做法,或者是幾個強硬派決定了做法,大多數人也就不再計較,因此 commitment 比較容易做出,且朝著一致的方向。

但是隨著工作年頭的增加,我發現團隊裡面個人的性格,普遍是越來越倔了。無論什麼時候我們討論問題,觀點不同是司空見慣的。可現在不同的是,要達成一致,並不是那麼容易的事情。好吧,大多數人支援方案 a,少數人支援 b,興許幾年前這票支援 b 的就表示願意按照多數派的 a 來實施了;可是現在呢,少數派一定要爭論下去,技術方案的選擇不是少數服從多數的選舉,為什麼要 a,我們來給 a 和 b 做做分析,我們來激烈地爭論吧……

以前我認為,職業生涯的發展,到一定階段,高階別一些的工程師,想必也是性格各異的吧,應該有的人比較強硬,有的人比較容易 pushover 的吧,性格這東西嘛,分布都是有隨機性的。可是如今我接觸到的情況呢,卻恰恰相反。 這些發展比較好的程式設計師,相對於其年齡和資歷,級別比較高的程式設計師,居然性格幾乎無一例外的「倔強」。 而那些性格比較「好」的呢,相對來說發展普遍都沒有那麼好。看到的案例多了,似乎可以粗略地得到這樣的結論:走技術路線的程式設計師中,性格倔強的人不一定發展得快,但是性格平和的人肯定不行。

雖然我能看得到的案例數量並不大,但我依然覺得這個現象有一定代表性。我覺得這裡有這麼幾個因素:

但是,物極必反,倔強的程式設計師,也可能死得特別慘。我見過一些 被踢出團隊的程式設計師,大致分為兩類。一類是能力實在不足,績效特別差,比如**寫得又慢 bug 又多;還有一類就是這類硬骨頭,倔強到難以維持基本客觀的程度,到處樹敵,太過拖累整個團隊的工作。

再結合程式設計師工作中的許多具體事情,再進一步談一談這些倔強的程式設計師們。就說個有趣的事情吧。我們把他們中的其中乙個,叫做大 z(這個字母看著就很霸氣),而相對不那麼「難搞」的程式設計師,叫做小 s。

在一次的設計討論會議上大 z 說對小 s 說,我認為你的方案不如我的好,理由是 ***xx,於是大 z 和小 s 來來回回一番爭論,剛開始還算可控,但是大 z 說,「我覺得你缺少擴充套件性的常識」。有經驗的人可能馬上意識到,大 z 的這句話已經從「對事」變成了「對人」,這明顯是不對的。於是這句話一冒出來,小 s 馬上就不高興了,再不痛不癢辯論幾句以後,沒有繼續爭論下去,顯得很失落。

這個場景看起來是不是很熟悉?哪怕小 s 是更在理的一方,也放棄了繼續爭論下去的慾望,反而落得自己不爽好幾天,每次和大 z 溝通都會想著當時的場景,甚至覺得大 z 還會有意無意針對他。有人可能會覺得,那大 z 會不會事後覺得自己過分呢?我想說,大多數情形下,不會的, 以大 z 的性格來說,他冒犯了小 s,他也許意識到了,也許沒意識到,可是這樣的事情他根本就不會放在心上 。回到事情本身,誰的方案更合理很難講,但這件事情本身傷害到了團隊中的成員,影響了團隊的氛圍。我們可能見到類似的事情到處都是,甚至在某些溝通強烈的地方尤為嚴重,比如 code review。

多數情況下,我們撇開技術本身的因素,誰的發展更好呢?卻是大 z。雖然有少數情況並非如此,但是多數情況下,大 z 卻有著更更為廣泛的影響力,而 某些情況下爭論所顯露出來的 backbone 會蓋過他在爭論和為人上面的「惡霸」屬性 。這也從某種角度說明,為什麼到了一定級別的程式設計師,且不論技術如何,心理承受能力和溝通的技巧,都是有一定造詣的,那些敏感而脆弱的呢,已經掛在晉公升的半路上了。

交流和溝通本身就是乙個說不清道不明的複雜體,很多人可能會想要安安心心做技術,我相信也有很多公司希望提供這樣環境。可事實是,絕大多數情況下,越是這樣想的人,就越會發現,這只是一種美好的願望,不可避免地,有很多為人處世上的「屁事」,未必要上公升到「職場政治」那麼高的程度,卻依然會考驗你的心理,磨鍊你的性格。

最後,從團隊管理的角度來說,哪一種人更合適呢?

其實,「合適」這個詞的定位很難講,但是倔強的程式設計師通常更難管理,這倒是真的。可是,換乙個角度想這個問題,為什麼要「管」,管理又要做到怎樣的侵入性?理想的狀況是,雖然有一些性格似乎比較「強硬」的程式設計師,但是他們是講原則,講道理的,如果團隊的成員在總的目標上大致是一致的,團隊就能夠具備一定的相容性。可理想畢竟是理想,團隊中的磕磕碰碰遇到誰都能喝一壺的。特別是,如果管理者想成為那個決策絕大多數事情的人,碰到這些倔強的「大爺」們,很可能就會碰一鼻子灰。

在我的職業生涯中,待過好些團隊,我見過這種管理者和倔強的程式設計師們之間的碰撞,有在掙扎和妥協中尋求平衡的,有程式設計師滾蛋的,也有管理者掃地出門的,甚至有兩敗俱傷,魚死網破的。

乙個32歲程式設計師的倔強

如果不是早上母親和妹妹發來的生日祝福,今天是自己的生日這件事可能又被遺忘了。一轉眼已經32歲了,作為程式設計師對這個數字還是有些特殊的感覺,畢竟它是2的次方之一,又是程式設計師最後一次能夠拿3年整offer的機會。一直認為自己是後知後覺者,或許在新的乙個2的次方裡能夠獲得新的突破吧。不管怎樣,在看問...

乙個32歲程式設計師的倔強

如果不是早上母親和妹妹發來的生日祝福,今天是自己的生日這件事可能又被遺忘了。一轉眼已經32歲了,作為程式設計師對這個數字還是有些特殊的感覺,畢竟它是2的次方之一,又是程式設計師最後一次能夠拿3年整offer的機會。一直認為自己是後知後覺者,或許在新的乙個2的次方裡能夠獲得新的突破吧。不管怎樣,在看問...

程式設計師何苦為難程式設計師

職場上有很多辛酸事,很多合夥人出局的故事,很多技術骨幹被裁員的故事。說來模板都類似,曾經是名校畢業,曾經是優秀員工,曾經被領導表揚,曾經業績突出,然而突然有一天,因為種種原因,被裁員了,想申訴,想求解釋,結論是,能力不匹配,未能與企業一起成長云云。這有兩說,一說是企業冷血,卸磨殺驢,嫌棄老人成本太高...