)一文中著重論述過了。
譯者注:哈特曼(
hartman
)是電影《全金屬外殼》(《
full metal jacket
》)中的乙個角色。這是一部描述美國海軍陸戰隊與越南戰爭的影片,被認為是電影史上最出色的戰爭電影之一。在影片中,哈特曼粗魯的語言、刻薄的訓練方式,誇張但也真實地刻畫了海軍陸戰隊新兵教官的形象。
你這個臭小子!我知道你的名字了!看我怎麼收拾你!我看你還笑得出來嗎?你會想哭都哭不出來的。你必須一條一條學下去。我會教你的。
對於軟體開發者來說,以哄騙或痛斥的方式讓他們服從不是乙個有效的激勵方法。至少在我的經驗裡,那行不通。如果你想提高團隊的工程水平,你需要乙個領導,而不是靠乙個訓導員去強制執行。其目標並不是給所有的同事**,而是要和他們一起協商出大家都能接受的標準。
dennis forbes曾經發表過一篇文章,題目為「effectively integrating into software development teams」(有效地融入軟體開發團隊)。我覺得他很出色地概括了關於有效領導方面的策略。他用一封假想的電子郵件開頭(根據我對dennis的了解,這也可能是他的親身經歷),描述了被人當作強制執行者的弊端:
我最近被拉去幫助乙個軟體開發團隊完成乙個產品的開發,具體的要求是協助一些web應用程式的編碼。我盡了自己最大的努力去融入這個團隊,熱心地幫助他們,以贏得一些信譽和尊敬。
我時常**「joel on software」上的各種小文章給大家,還建議在公司裡擺上一堆像《**大全》、《人件》以及《人月神話》之類的書籍。不管任何事情,只要我覺得可以做得更好,我都會盡力給大家指出來。我經常瀏覽源**庫,以找出可以讓其他成員工作得更好的方法。
譯者注:
joel
on software
(joel
談軟體)是
joel spolsky
的個人部落格,主要介紹他在軟體開發與管理方面的經驗。這個部落格在全世界程式設計師中非常流行
,他也因此被稱為「程式設計師部落的酋長」。
部落格上的一些精華文章現已彙編成書,中文版為《軟體隨想錄》,於
2023年12
月由人民郵電出版社出版。
joel
還是stack overflow
**的聯合創始人。
當其他開發者來向我尋求幫助的時候,我不僅幫他們解決實際的問題,我還舉一反三——指出他們在開發方式上的問題,教他們怎樣改進打字形式,告訴他們該使用哪種命名規範,提倡一種更好的**編輯工具,並且對究竟應該使用儲存過程(stored procedure)還是動態sql的爭論給出我訓練有素的最終結論。
然而,所有這些努力似乎都不起作用,我還是會常常受到他們的抵制,而且我覺得整個團隊不是很喜歡我。我的很多建議都沒有被採納,而且我覺得有些人給我的回應是毫不掩飾的諷刺。
我到底**做錯了?
我相信我們都曾和這樣的人一起工作過。也許我們自己就是這樣的人。即使你有最好的意圖,並且已經熟讀我給大家推薦的優秀書籍,你最終還是會落得跟槍炮士官哈特曼一樣的下場:被你自己的團隊「槍殺」了。
保持謙虛。總是先假定你是錯的。雖然開發者的確是會犯錯誤的,並且作為乙個新人你理所當然應該幫助其他人發現和修正錯誤,但是在你驕傲地宣布你的發現之前,你應該努力確保你的觀察結果是正確的。如果你老是喊著「狼來了」(慌報險情),你的信譽將遭受巨大的損失。
提出建設性的批評時要小心。開發者更容易接受非正式的建議和具有巧妙引導性的問題,而不是把同樣的內容以電子郵件的方式傳送給整個開發組。擴大受眾面很可能會引起開發者的防禦和逆反。團隊總是會去猜測你的動機。如果你貶低他們的工作是為了提公升你自己,你會因此被投訴而流放的。
百說不如一幹。建立乙個團隊部落格(blog),或者乙個維基(wiki),或者實施一種新的**控制機制,或者實現一種新技術——這些事情說起來都很容易。所有人都知道,你只是在宣告這些主意是你想出來的,而實現它們所需付出的艱苦努力卻最終會落在別人的頭上——他們會因此而討厭你。如果你想建議些什麼,你應該為此付出實際的行動、做好充分的準備。例如,展示團隊部落格的基本要素,包括初級的使用指南,以及所有的支撐技術。這並不能保證團隊對你的倡議會一呼百應,而且你還可能徒勞無功,但團隊會意識到:你是付出努力的,你在積極地推動它,而不是在試圖撿便宜。
沒有乙個通用的建議可以適用於所有的情況。不是所有的應用都是大型的電子商務**。僅僅因為那是最普遍認同的最佳實踐,並不意味著它對你所加入的團隊來說也是最好的設計原則。也許差得很遠!
我喜歡dennis的建議,因為他均衡地關注了行動與結果。他的結論和我個人觀察的結果高度一致:最有效的一種技術領導就是以身作則。經常發生的是,開發主管沒有時間和權力去強制執行(即便他們想那樣做),於是他們都身先士卒、用行動來說話。
譯者注:《
》的中文譯本是《成為技術領導者
——解決問題的有機方法》,由
清華大學
出版社於
2003
年出版。
在最初的幾章裡,weinberg就已經點到了發生在槍炮士官哈特曼以及dennis forbes身上的問題的根源:
我們希望怎樣被幫助?我不想別人因為憐憫而幫助我。我不想別人因為自私而幫助我。這些情況下,幫助我的人完全不把我作為乙個「人」來認真對待。我想要別人對我做的是,真正地愛我——當然,不是那種浪漫的愛,而是真正的對人性的關懷。
因此,如果你想要激勵一些人,不管是以直接的方式還是通過營造乙個協助的環境,你必須首先使他們相信你是真的關心他們,而惟一能確保他們相信你的方法就是你去真正地關心他們。人們可能會受到虛情假意的關心,但它不會長久。這就是為什麼「**準則」的第二版說:「愛你的鄰居」,而不是說:「假裝愛你的鄰居」。不要自欺欺人。如果你不是真的關心那些你所領導的人,你作為他們的領導是永遠不會成功的。
譯者注:**準則(
golden rule
)指的是一條公正的準則,可以在世界範圍內的文化和宗教裡找到,它引導人們要「像你希望別人如何對待你那樣去對待別人」。換句話說,你希望別人怎樣對待你,你就怎樣去對待別人。作者這裡引用的是《聖經》中的**準則。
weinberg的《成為技術領導者》是一部真正的經典之作。它跟另一位思想極客的《贏在影響力:人際交往的學問》如出一轍。領導力的很大一部分就是要學著在乎別人,而這恰恰是我們程式設計師所不擅長的(我們在這方面已經聲名狼藉)。我們熱愛的是機器和**,而我們的隊友毫無疑問要複雜得多的多。
譯者注:《贏在影響力:人際交往的學問》一書的作者是戴爾
·卡耐基,英文原版的名字為《
how to win friends & influence people
》。這本書創造了全球出版史上空前的發行記錄。它深深地觸動著讀者的神經,滿足了人們在人性方面的需要。其作者是美國著名心理學家,人際關係學家,
20世紀最偉大的人生導師。他以超人的智慧型和嚴謹的思維,在道德、精神和行為準則上指導了千千萬萬的讀者。他還著有《人性的弱點》、《人性的光
輝》、《語言的突破》、《美好的人生》、《人性的優點》、《林肯傳》、《快樂的人生》等書。其中《人性的弱點》是繼《聖經》之後世界出版史上的第二暢銷書,被譯成28種文字,全球銷量突破1500萬冊。
作者在twitter上發的一條短訊:
「雅虎的教訓是,乙個領導力差勁的公司注定會失敗。『一堆程式設計師呆在乙個房間裡』不是領導力。」
12:17 pm – 2012-5-23
1 2 作為一種技術的演算法
要研究演算法,哪些指標可以用來衡量演算法的好壞呢?1.這個演算法要能正確解決問題。這個是前提,研究演算法的最終目的也是為了解決問題。如果乙個演算法,不能解決問題,那要它何用。2.這個演算法占用的資源應該盡可能小。計算機可以做得很快,但不能無限快。儲存器很便宜,但不會免費。計算時間是一種有限的資源,儲...
一種蜜網技術的介紹
一種蜜網技術的介紹 蜜罐是一種安全資源,其價值在於被掃瞄 和攻陷,它以犧牲真實的沒有打補丁的作業系統 一般以 linux 為平台 為代價欺騙 者以達到採集 方法和保護真實主機目標。傳統蜜罐有著不少的優點,比如收集資料的保真度,蜜罐不依賴於任何複雜的檢測技術等,因此減少了漏報率和誤報率。使用蜜罐技術能...
一種蜜網技術的介紹
一種蜜網技術的介紹 蜜罐是一種安全資源,其價值在於被掃瞄 攻擊和攻陷,它以犧牲真實的沒有打補丁的作業系統 一般以 linux 為平台 為代價欺騙入侵者以達到採集黑客攻擊方法和保護真實主機目標。傳統蜜罐有著不少的優點,比如收集資料的保真度,蜜罐不依賴於任何複雜的檢測技術等,因此減少了漏報率和誤報率。使...