謙遜編程

謙遜編程(翻譯整理)

作者:手氣不錯 發佈時間:July 27, 2009 分類:觀點

譯註:開發人員如何從無休止的需求、項目進度中擺脫煩躁的心態,這是每個人都值得思考的話題。無意間看見了這篇文章,恐於太長遂將其精簡翻譯,錯誤之處難免歡迎指正。

同時如果你有有關程序員修身養性的觀點和心得,歡迎說說你的看法。

-- Split --

其實每個程序員或多或少都會有個毛病,就是具有某種有強烈的“優越感”。而這種“優越感” 有可能成爲激勵自身不斷髮展的動力,同時也有可能成爲其職場中的絆腳石。

程序員的這種心態,源自自身掌握的技術、以及多年積累的經驗。正如上面所言,這種心態 能使其一切都力求完美、同時準確按照自己的思路行事,能使其技術不斷的提升。而另一方 面,如果將這種態度套用給身邊其他的人(包括陌生人、同事、朋友甚至家庭),則會發現 他的生活將會如履薄冰 -- 他們只會看見完美的一面而忽略了更多更需要關注的事物。

總而言之,越早發現並解決這一問題,越對自身有利。套用 GeraldWeinberg 在《計算機編程心理學》中的一段話

這種想法是程序員必須解決的,他們對待自己的代碼猶如對待自己身體的
一部分,因此他們拒絕所有的負面評價。相反,它們(指代這種心態)應
該及時的引導到正途,使其發揮真正的效用。人非聖賢,這不僅僅是心態
更是精神上的境界,並非所有人都能達到,但仍舊值得去嘗試。

症狀

那麼,你如何得知這種“優越感”正在傷害到自己?除了應付那些沒完沒了的催促項目進度的 電話,以及給同事擦屁股的優化工程,其它的現象並非顯而易見。

其實就我個人而言,時常也會自我責備,這就能窺出事態的嚴重。例如一方面你對項目疲於 奔命,而同時卻忽略身邊的人對你表達的看法(該死,這個時候我應該放下手頭的工作聽他 們說完的)。或者你“假裝”靜下心來聽取他們的意見,但不就繁雜的工作卻讓你左耳進右耳 出。

其他的些症狀

  • 如上面所說的,不會妥善處理批評
  • 不放心同伴的代碼,經常性地對他們進行代碼審查(Review)
  • 報復性的編寫大量充斥着錯誤的代碼
  • 個人的消極心態,對自身和團隊造成不利的影響
  • 必須要求進行測試,但出發點卻是炫耀
  • 對事物的看法僅僅侷限於個人或者本職位的角度

這不僅僅是你個人的事情,編程以及項目開發實際上是團隊活動。瞭解到這些,你將會意識到 你的心態將會直接影響到你的同事。

事實就是這樣,當我對您的代碼提出寫意見甚至批評時,你應該聽、並且認
真的聽,這樣你才能理解我的看法。

有可能最糟糕的情況就是,即便早已經收到其他同事的提醒,當事人已經陷入此泥潭無法自拔。

準則

讓我們回到文章的題目本身,正如上面的例子中看到,“謙遜編程”不是編程技術本身,而是 種態度,但它的確會比你掌握的某種技術要有用的得多。

行爲準則的確能改變人的心態,下面是些不成文的建議,或許你可以嘗試下

  • 不要草率的宣佈你的決定,在大多數情況下,你應該和你們的同事們討論
  • 不要使用這些論調,這非常讓人感到不適:“這是見過的最糟糕的代碼了”,換之你可以這樣說,“我有個更好的解決方案,要不看看?”
  • 不要輕易認爲他們沒有考慮到你想的方式,即便很不幸是這樣,應該善意的提醒。例如“你覺得我這個看法怎麼樣...”
  • 不要無理由的批評你認爲很弱智的現象,例如“我覺得 DBA 腦門子被夾了,這個字段竟然使用 INT 型”

更多的,可以參考 Tech Republic 中的“謙遜編程”十條誡律

  • 理解和接受你將犯下的“錯誤”。
    重點是及早的發現你已經犯下的錯誤,當代碼投入使用以後,改動起來就會非常的困難。
  • 你的代碼不能代表你的人。
    記住始終要 Review 你的代碼,即便你已經認爲無懈可擊,經驗證明總能發現些錯誤。
  • 不管怎麼樣,有些“奇技淫巧”總能派上用場,而可能這些技巧別人知道的比你更多。
    如果你堅持不恥下問,你的同伴總能分享你更多。
  • 不要在完全沒有溝通的情況下,自作多情的進行代碼重構。
    當你確定要更改別人的代碼時,必須加上良好的修改記錄,這也是出於對他人的種尊重。
  • 對待那些新手要保持充分的尊重、細心以及耐心。
    記住當他們成長起來後,能幫你解決的問題會比你想象中的還要多。
  • 唯一不變的是變化。
    懷着開放的心態對待變化,對於各種需求、平臺甚至開發工具的變更,應該是迅速適應而不是牢騷滿腹 -- 這樣解決不了問題。
  • 真正的權威來自學識,而不是立場。
    權威源自學識、尊重源自權威。
  • 優雅的接受失敗。
    最終你的一些觀點將會被推翻,即便你有能力證明你的觀點是正確的,請不要重複的爭辯。幫助其他人意識到這點的最好工具,就是你的理解以及時間。
  • 不要成爲“辦公室男”。
    不要在昏暗的辦公室裏獨自喝着可樂敲着代碼。當與外界隔絕,離開同伴的視線,也就說明你離開了一個開放、合作的環境。
  • 批判代碼而不是編寫它的人。
    要知道你的意見可以影響到代碼也可以影響到其人,如果你想嘗試下如何打擊別人的自信並造成衝突,那麼嘗試下吧。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章