[譯]如何激勵程式設計師?

What motivates programmers?
[譯]如何激勵程式設計師?
by Nick Halstead(2007/7/11)

http://blog.assembleron.com/2007/07/11/what-motivates-programmers/

  在我上一篇文章"管理數學"(註)之後,我開始談另一個問題,假如你有400英鎊在部門預算中,你會A)全額獎勵你的高手程式設計師,還是B)買一個24吋解析度1920*1200的LCD電腦螢幕給他?
(註)
http://blog.assembleron.com/2007/07/16/manager-mathematics/

  假如答案是A)你最好往下讀,假如答案是B)我認為你已經懂得如何激勵你的程式設計師,但我建議你把這篇文章讀完後跟我討論你有什麼想法或建議。

  其中一件不會教給非程式設計出身管理階層的事就是如何去激勵程式設計師。你可能會認為程式設計人員會被那些激勵其他員工相同的東西所鼓舞,但是完全不是這回事了。程式設計人員比較傾向被視為是一個高IQ的等級,因此不喜歡被質疑。

  Tim Bryce(註)寫到:
  不管他們希望扮演什麼角色,一般的程式設計人員並沒有比其他人更高的IQ,事實上有時候反而更低。

(註)
http://blogs.ittoolbox.com/pm/irm/archives/theory-p-the-philosophy-of-managing-programmers-4993

  這篇文章是給那些一點也不懂程式設計人員的人看的。尤其是想要知道如何管理程式設計人員,卻有著上面那個想法的人。

  一般的程式設計人員可能投射一種比其他人優越的形象,但是非程式設計人員卻誤解了以為是在針對他們。事實上並非如此。你必須了解程式設計人員給自己打分數是拿其他程式設計人員作為基準,而非其他的同僚。

  對於如何激勵程式設計人員這很重要。假如你買了一些新工具設備給你的業務員,你可能得不到任何回應。假如你買了新設備給你的程式設計人員他們可能會馬上開始觀察誰拿到那些新玩意兒,藉著獎勵的價值來衡量誰被看重的程度高多少。假如你認為這不重要,請三思。

  工作環境的設備通常對一個程式設計人員比其他經濟上的獎勵(當然是一般額度內的)更重要。但是分配這些獎勵並非一件易事。

  你可以單純地給每個人一樣好的工作環境與設備(假如你有足夠的預算的話)意思是每個人被標準化。事實上在一個部門環境中這從未發生,因為每個程式設計人員可能有不同需求的設備,但是如果沒有標準化的話。你就必須回到這個問題"誰拿到了什麼?"

 

  硬體串

 

  程式設計人員外在上試著給予一種印象,他們是一個[a loose nit bunch]完全不在意標準的商業流程,而且對常見的辦公室政治(那些誰是誰的小弟)絲毫沒有興趣。但是當新設備要發給員工的時候這些印象馬上拋於腦後。因為硬體設備是一個指標-"(抽象的)程式設計人員的長幼繼承"。

  因此當更新員工新機器的時候,了解這個看不見的長幼繼承是非常重要的事情。我通常更新最優秀的員工的設備,然後將舊的設備依照順序往下遞移。雖然這可能導致很多軟體要重新安裝,但是每個人都換了(相對的)新機器。

 

  問題的解決

 

  程式設計人員的天職就是去解決問題:
  假如你給一個程式設計人員一個工作是沒有問題要解決的,牠們會變的不高興。

  解決問題的意思可能有很多,比較輕鬆的方式是去了解什麼是"沒有問題需要解決"的工作。譬如說叫一個程式設計人員去修理某項東西而其實修理方法已經知道了,意思是叫他們藉由重新看那些已經正常工作的程式碼來解決問題。

  重點是把"沒有問題需要解決"的工作變成"有問題需要解決"的工作。一個很典型的例子就是"用手整理統計報告"變成"把報告依據日期透過某種自動化的系統整理好"

其他典型的"沒有問題需要解決"的工作:

  .寫文件
  .排行程
  .寫報告
  .客戶端的支援

  沒有解決問題就沒有工作回饋是每個程式設計人員的天性,但有些人對於"沒有問題需要解決"的工作有較高的抗壓性。了解你的程式設計人員之中誰能應付那些"沒有問題需要解決"的工作對保持一個全面順暢的工作進度是重要的。

 

  微控細節

 

  假如你正在這樣做的話,希望你正走好運。前項提到的"解決問題"是一個最重要的核心,為什麼你不能嘗試對你的程式設計團隊事事插手。任何一個親手解決的問題意思就是那個問題沒有被程式設計人員解決。更糟糕的是你正在質疑你員工解決問題的能力。那是對程式設計人員最差的評價。

  在任何有危機的情況下你的程式設計人員會變成一種比你更瘋狂的狀態,而且通常你第一個想要對事情有幫助的反應都是錯的。困難的部分是你需要給下屬一個你完全信任他能力的印象(不要試著直接去告訴他們他們的方法是錯的)然後放他們自己去解決問題。同時持續了解他們採取的方向直到危機被解決了。

 

  開會

 

  程式設計人員認為開會是浪費時間。大部分程式設計人員之間的溝通是透過e-mail或是直接跑到其他人的位子旁邊問清楚某件e-mail上的事。因此開會就與無聊劃上等號。這種不開心的情緒會隨著開會的時間變多。假如你真的需要把你的工作團隊拉進會議室開會的話,不是趕快開完就是給他們一些玩具(譬如說樂高)玩。

 

 

  也許還有很多議題我可以在其他文章中討論,但是永遠記住:一個開心的程式設計人員才是一個有產出的程式設計人員。

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s