《程式開發心理學》讀書筆記(三)
第三章
如何研究程式設計
在 前兩章裡,我們已經將程式開發看成一項以人為主體的行為來加以研究,但由於程式開發是一項異常複雜的行為,現有的有關人類行為的科學結論並無法完全適用, 因此我們必須創造一些新的方法來研究程式開發行為。本章介紹了幾種研究人類行為通常使用的方法,並一一指出這些方法不完全適合程式開發行為研究的原因。
1
.自省
例如,在使用
pl/i
語言的時候,有些程式設計師無法處理五層以上括號的巢狀。通過對這種現象的自省,我們還不足以得到下面更具一般性的規律:人腦無法處理五層以上的括號。
就程式開發心理學而言,每個命題都有可能成為一條「定律」。僅僅憑藉乙個關於自省的例子,還遠不足以作為支援其成為定律的證據。為了獲得一條「定律」,我們必須對其原理進行研究,以便對其應用範圍做一界定
----
因為,每條定律都會受到這種限制。確實,通常對這種限定的了解,較之對定律本身的了解更重要;而只有對大量的案例進行調查分析之後,才有可能明確這些限定。
2
.觀察
我們要觀察人們到底在做什麼,而不是他們自認為在做什麼。
需要注意的問題一:觀察只能告訴我們人們確實在做或做過的事,而不一定就是他們能做的全部。因此,即使在對幾百名程式設計師進行觀察後,沒有發現任何人使用超過五層的括號,我們也不能據此得到「結論」:沒有人能使用六層括號。
需要注意的問題二:要搞清楚我們究竟要觀察什麼。一旦我們觀察到一例六層括號,我們還需要對促成或者妨礙這一案例發生的環境條件進行界定。
需要注意的問題三:觀察者與被觀察者之間的干涉現象
—「霍桑效應」。此效應得名於西部電氣公司所屬的霍桑工廠。
1924~1927
在此進行的一項有關工業心理學的實驗以失敗告終。在實驗過程中,無論工作條件如何變化,生產效率始終一路攀公升。實驗者最後意識到,這是因為工人們受到關注內心油然而生的自豪感產生的效應。解決的辦法:「參與式觀察」,觀察者融入到被觀察者的文化氛圍中而不會被察覺。
在有關計算機的研究中,我們可以使用計算機對程式開發進行不為人察覺的觀察。但是計算機產生的資料量巨大,給研究人員分析提取有效資料帶來障礙。而且計算機用於記錄日誌的計時解析度通常為一秒,但在許多心理學研究中,我們需要精細到毫秒的級別。
3 .實驗
為了降低資料量太大帶來的處理的代價,同時增加與我們感興趣的行為有關的資訊卻增加了,我們可以設計一些實驗。
實驗帶來的限制:
i. 由於實驗經過了高度的精煉,以至於可能遺漏了我們最感興趣的資料。
ii. 實驗的特殊條件會限制被試的行為,以至於我們在也無法觀察到在自然條件下所觀察到的結果。
a) 選擇實驗物件時,過分依賴於實習生
b) 強調程式開發是個體行為,忽略群體效應的研究
個體式的研究方式,必然會強行將單個個體從其正常的工作環境中剝離出來。如果在研究青蛙游泳的行為時,有人將他們的腿割下來放到水中,然後試圖觀察到腿會游泳,那麼一定會讓人貽笑大方。然而那種強迫程式設計師在工作時與外界隔絕的做法,與割青蛙腿有什麼區別呢?事實上,很多人都習慣於這樣一種推理的邏輯:既然青蛙是憑藉腿來游泳的,為什麼還要去研究其它部分,把一件原本「顯而易見的」事情搞得如此「複雜」呢?
---- 很精彩的一段比喻,不過我認為對程式個體行為的研究不僅非常重要,也是研究群體效應的基礎。
4 .心理學測量
我們可能用「從事程式開發時間的年頭」來衡量「程式開發經驗」的問題。但在有關人類行為的觀察和實驗中,可以測量的指標很多,我們不得不在林林總總的指標中搜尋,期望者通過某乙個或少數幾個,就能獲得一些領悟。在這個過程中,任何蛛絲馬跡都不能放過,也不能將任何看起來荒謬的觀點排除在外。
就目前而言,在程式開發心理學方面將要進行的大多數工作,不得不先去「尋找問題本身」,我們需要首先弄清楚哪些是可以測量的以及那些是值得測量的。與其說我們在研究被觀測物件,不如說我們在研究測量的方法本身。
5 .利用行為科學中的資料
在行為科學中以前所積累的經驗有能夠為我所用之處,但這些理論所依據的前提條件,與程式開發過程的實際情況相去甚遠。
我們可以從眾多領域中獲得有益的啟發,通過結構中存在的缺陷,將有助於我們確定可以向哪些領域尋求幫助。但是,我們千萬不要把這種結果太當回事,這只不過是乙個提供方便的工具而已。
第五章 程式開發團隊
團隊的組建
一支程式開發團隊之所以成立,是為了承擔並完成某項由任何個人都無法獨自完成的任務。這種要求,不僅僅與待完成工作的技術要求相關,同時也與可以找到來參加該項工作的人員的能力以及允許完成任務的時間長短有關。
個 人能力與日程進度二者之間存在著互補的對應關係。在開發日程與工作結構之間同樣存在著一種重要的關係,許多程式開發任務之所以沒有在計畫的日程內按時完 成,其原因都可以追溯到最初的日程規劃以及開發路線上,最初的這些計畫總是一廂情願地把開發過程中的所有條件都設想為最好。但是如果企圖對各種可能出現的 問題都在事先面面俱到地做好準備,我們就不得不需要在團隊中設定很多附屬人員。另外,如果整個任務必須通過劃分再分配給一批人,那麼需要進行的協調工作量 也會增加。
程式開發團隊的規模和組成似乎都符合這樣一條基本規律---如果希望通過最小的代價獲得最佳的開發效果,你必須找到盡可能出色的程式設計師,並且給他們以盡可能長的時間。
在 程式開發的過程中,開發團隊中各成員的地位,通常在很大程度上取決於其他人對其個人能力的了解程度。在被分配各某項特定工作之後,某個成員也可能相應地獲 得或者喪失一些地位,負責何種開發工作,將決定不同成員的身份地位。為了組織好乙個團隊,我們必須在推行過程中,在各成員的敏感性格之間如履薄冰般周旋。
目標的設定和認同
社會心理學家們已經證實:只要有一名成員與集體的目標不一致,那麼該集體的整體水平就將受到影響。這種影響不僅來自於這個成員本身,而且也來自於集體內部其他成員的績效下降。
為 了實現在集體目標上真正的意見一致,最好的辦法莫過於讓開發組自己來確定其目標。如果開發團隊的任務不是開發乙個特定的系統,而是為其他程式開發組提供服 務和支援,那麼這種目標不明確的問題就會更加突出,必須經常提醒他們注意自己的貢獻,否則,他們的工作就會越來越具體,而且沒有什麼產出。
當 然,最好的情況時,一支開發團隊只有一項明確定義的任務。然而這個世界上的事情很少會這樣簡單。即使其任務只是完成乙個程式,也有可能在諸如速度、空間或 者時間進度等方面存在衝突 ,人們對這些方面的重視程度可能不同。如果沒有明確地告訴每個成員應該對各個方面強調到何種地步,那麼他們各自的工作目標就很有 可能相互矛盾,其效果將互相抵消。
如果不同成員對團隊的目標理解不一致,而且這些不同觀點之間的差異幾乎無法察覺時,這些分歧的消除就顯 得極為迫切。如果在團隊中持續出現這種爭論,那麼這就是乙個確定的訊號,它顯示出團隊內部存在著更深層次的衝突--比如可能是為了爭奪團隊的領導權--所 以絕對不能因為其貌似瑣碎就掉以輕心。
團隊的領導者及其領導方法
程式設計師們一般會更加注重創造性的工作以及專業能力 ,在他們所從事的工作範圍內,他們會對那些被自己認定為很出色的人更加器重。與那些世界級的口若懸河的推銷商們相比,作為一名語調溫和的程式開發奇才,將可以更加輕鬆地對程式設計師們進行領導 。
民 主化集體得以運轉的乙個重要前提,並不在於所有成員掌握同等的領導權力,而是在團隊內部真實的集體生活之上(而不是來自外界的強加),確定領導權力的分 配 。一支真正的民主化團隊,總是特別能適應環境的改變,所以面對難以預料的困難,這種團隊很容易成為乙個值得信賴的開發團隊。
目光短淺、 難以依靠的團隊領導者可能會認為,博得管理層歡心的最好方法,就是無論他們要求什麼都滿口答應。但,管理層需要的不只是諾言,更重要的是恪守諾言。作為一 名被指派的團隊領導者,如果他的手下無法完成某項任務,但他的上級卻強迫他接受這項任務,那麼他所能採取的最好方法,就是堅決予以抵制。如果他本身是位優 秀的程式設計師,那麼他在這場鬥爭中就擁有雙重的砝碼--因為他對自己的判斷更加充滿自信,同時他也很清楚,即使他丟失了這份領導者的職位,也不至於淪落到討 飯的地步。只有隨時準備**的領導者,才有可能獲得成功。
團隊中可能出現的危機
把團隊的工作劃分為兩種型別分別對待:以完成團隊任務為直接目標的工作,以及在面臨危機時以維護團隊的有效執行為直接目標的工作。
在開發團隊中,成員們會傾向於推選兩名互補的領導者:一位是任務權威,另一位是協調工作的權威 。
民主式團隊更有能力經受住成員離開的影響,但這樣的團隊通常很難接受新成員。從外界看,乙個民主式的團隊的外表顯得更加冷漠和不友好,而乙個集權式的團隊則會對外來的加入者表現出異乎尋常的熱情和友好--這似乎是乙個悖論。(hennry:?)
團隊中如果出現某個成員沒有能力勝任其承擔的那部分工作,民主式團隊最可能的辦法就是逐漸的該成員不能勝任的工作轉移給其他成員。如果某個成員能力很強,但是卻與周圍的人合不來,那麼這個問題就會比某個成員能力極差的情況更為嚴重。(hennry:?)
《程式開發心理學》讀書筆記(二)
第二章 優秀程式的要素 同第一章類似,這一章仍然沒有涉及到心理學的內容。主要介紹了優秀程式的幾個要素,按溫伯格認為的重要次序如下 是否符合技術規範 是否按日程計畫完成 適應性以及效率。重要的觀點是,世界上並不存在乙個絕對的評判程式的標準,但可以從上述幾個方面來對程式進行一定程度的好壞評定。如果準備把...
《怪誕心理學》讀書筆記
align center img 既然是怪誕,那麼整本書涉及的內容並不是我們平常司空見怪的一些心理學現象.類似搞笑版的諾貝爾獎,但是裡面又不乏嚴謹的科學研究,以及大量的問卷調查和資料統計分析過程.有時候感覺老外真的是吃飯沒事兒幹的,研究那些玩意兒幹嘛,也許他們真的是吃飽撐的,不用像我們的教授一樣整天...
《設計心理學》讀書筆記
設計心理學 英文原名為 the design of everyday things 雖然書中確實提到了一些認知心理學和行為心理學中的概念。而且其作者 諾曼博士 也從事過心理學研究。可是對於書名是否應該被翻譯為設計心理學,卻依舊是乙個備受爭議的話題。回歸書的內容本身。作者強調的是,日常物品的設計,應以...