瞭解編程的心理

原著:Bryan Dollery
編譯:Jenny Chen

原文出處:Understanding the Psychology of Programming

  與衆所周知相反,程序員更多地象藝術家而不是科學家。 如果你想最大限度地調動團隊的創造潛力,你必須開始研究程序員的心理,而且願意用管理策略支持它。
  人們常說,程序員很內向,我發現這不是事實。通常情況下,程序員確實比多數人能保持較長的注意力和集中力。一個程序員能花長時間集中精力解決單項任務而不顧其他,這就讓一些人認爲其有自閉特徵,有人甚至認爲大多數程序員都有輕微孤獨症。我不認爲大多數程序員有自閉取向,果真要是這樣,我們的注意力就太容易破碎了。
  編寫程序是一個創作的行爲,儘管程序員樂意在儘可能的情況下把科學和工程應用到這過程中,但編程既不是科學,也不是工程,因此一名程序員必須具備很高的創造力。這就是爲什麼程序員喜歡新項目的開發,而不是對舊項目的維護。這並不表明他們不想捲入過去陳舊的東西(儘管是編程的一部分),而是項目維護並不爲程序員提供創造的機會。

"爲了原創點子能出現,你必須讓它們在內心世界裏滲透,讓它們在那裏不受我們自己的願望和自己的方針所約束。"

——Mihaly Csikszentmihalyi,Researcher

  當有創造力的人做事的時候,他們經常進入一種精神狀態,讓創作的思路源源不斷。這是很高的思想境界,非常有利於本人和他所在的研發機構。
  著名的心理學家,芝加哥大學心理系的前主任,Mihaly Csikszentmihalyi 教授就創造力的問題,已經對幾百個典型個人進行過研究,其中包括諾貝爾獎獲得者和 IT 企業家,就此他也寫了許多有關思路和創造力的書和論文。
  Csikszentmihalyi說:“爲了原創點子能出現,你必須讓它們在內心世界裏滲透,讓它們在那裏不受我們自己的願望和自己的方針所約束。然後通過一些未知的,隨機組合力量的推動,而讓它們出現。正是經過這種重新組合,而不是人爲的直接推動,新生事物纔會涌現。”
  思路是脆弱的,是需要時間來實現的。如果程序員的思路被幹擾,那是需要很多的時間去重新進入狀態。就是一個小時,也讓你的工作整體失去一個小時的生產率。如果一天中程序員的工作被幹擾多次,或許他就根本再也無法進入工作狀態,沒有工作的狀態,創造力會是殘缺的。
  思路是易脆的,但也並非如表現的那樣脆弱。只有那些讓程序員改變思維方式的干擾才能打斷思路。就是說你可以拍肩膀和程序員打招呼,詢問他們在忙什麼,甚至建議點什麼,都是沒有問題的。但是如果你問他們的進度,那麼你就干擾了他們的思路。我已經幾次從經驗豐富的協作程序員那裏聽說這樣的事例。他們應該知道:如果思路超過了它自身的脆弱性的話,那協作編程是不可能的。思路是某種依賴前後關係的狀態,只要他們都在這種狀態中,你便可以主觀操縱去完成不同的任務。如離開這樣的狀態,那會需要相當時間來重新建立它。

創造思路,…對,思路
  那麼你怎樣才能爲開發團隊最大限度的調動這神奇的力量? 方法再簡單不過了:從精神上和時間上給思路的醞釀提供適當的絕緣環境,同時靈活對待個體在工作中所選擇的奇異行爲。
提供適當的精神空間
  當程序員被安排去做任何具有創造性的工作時,應該容許他們不受非理性干擾地去完成任務。保證不讓他們參加不必要的會議,不安排輔助性的任務。盡力去安排好這一切,讓他身邊的其他程序員也儘量做同樣的工作。如果那樣不可能的話,就讓程序員擁有他自己的工作間。
提供足夠的時間恢復創造活力
  如果你希望你的程序員重複過去所犯的錯誤,那麼你就象訓狗一樣不給時間休息;如果你想讓他們有所創新,你應該讓他們休息好。
滿足合理的特殊要求
  在 Csikszentmihalyi 的研究中提到這樣一個案例,一個著名的計算機研究員,他說在計算機的很多領域,其所有好的發明創造思路都來自淋浴的時候。他說他相信,他的公司因爲沒有安裝僅1400美元的淋浴裝備,就讓公司損失了幾百萬。Csikszentmihalyi寫道:“當他換到新的有淋浴的公司,他的點子就層出不窮。”
  我並不是說你要爲程序員提供新的淋浴設施 (至少不是所有的),但是你應該停止象對待插頭那樣一視同仁地對待他們。他們是獨立的個體,很多方面都是不同的,每每都有自己的規律和表現形式。大多數人都知道怎樣找到自己的思路,這纔是你需要關注的。
  如果一個程序員告訴你,他每天在下午2點的時候需要15分鐘的休息,你就提供這個方便吧;這僅僅是放張沙發在咖啡間或者休息間。(你有休息間,不是嗎?)
  或者這樣:與其給整個團隊配備相同的椅子和桌子,爲什麼不將預算派發給每個程序員,讓他們自己去買他們自己的椅子和桌子? 辦公室雖然看上去不太整齊,但提供了讓每個程序員都感覺舒適的環境,那樣可以激發他們的工作熱情。
  我知道你會爭辯;要考慮費用問題!如果你要把這個問題放在首位,那麼你就根本沒有明白本文的整個主題。你要從頭開始閱讀本文,這次要集中注意力。
如果你不能調動人的積極性,那麼你怎麼能做好你的項目?
  如果你僱傭圖像設計師,幫你創造一個甜眼圖在你的網頁上,你或許爲他們提供合適的工具,工作地點和寬鬆的條件促進他創作。你寬容他們的個性,爲他們買透明的計算機。如果你不考慮程序員的需要,那麼你就很難發揮他們的長處而得到你應該得到的。
  我們的任務增強人的聰明才智,充分僱傭多樣化的人才,取長補短。你應該盡力促使你所管理或與其合作的所有人做到最好——如果你不能調動人的積極性,那 麼你怎麼能做好你的項目?
  這樣做是否需要你花費更多的錢,我沒有具體的數據,但潛在的好處是巨大的。如果你繼續太在意風險/效益的東西,那麼你將繼續生產平庸的產品。你的軟件是人來做的,瞭解人的心理是很有好處的。 

 
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章