資工系學生是不是好的開發人力

Library Views 周一(2008/6/10)談到利用學校裡資工或資管系的資源來開發業務所需系統的議題,並且詢問大家的意見。

原本以為是討論資工或資管系「學生」是不是好的開發人力這個議題,但台大圖書館項館長在討論區做了兩次說明,澄清他的主張:項館長的訴求是圖書館應該利用資工或資管系的整體資源(faculty+student+research...)來提升圖館的技術部門,他是從館長層級來思考這項建議的必要性與可行性。如果從這個角度來看事情,我基本上是贊成的。

如果純粹只討論學生是不是好的開發人力這個議題,我的答案是 No。雖然從理論上來說,只要「管理」與「溝通」得當,每種資源都能發揮最大功效;如果溝通不良、管理不當,再好的人力資源也不能保證專案的成功。

但是受限於學生的身份與成熟度,以學生為主體的開發專案,有些先天的限制是幾乎無法改變(改善)的;這些管理上的先天劣勢,是很不容易彌補(不容易不代表做不到,但我認為能處理好這些問題的組織很少)的。如果要用學生開發系統,我們必須了解這些限制,才不會有不切實際的期望,並且能做出最合適的規劃。 

簡單地說,交付學生開發的系統, 系統的性質要單純,最好是屬於工具(utilities/widgets/gadgets)類的模組,最好不要是單位執掌的核心業務。其次,系系統的規模不要太大,每個模組的參與人數不易過多。 最重要的是,不管是什麽性質的專案,業務主管單位一定要有足夠的主導溝通過程、設定目標的能力。

大部分學生的成熟度不足以掌握業務需求的內涵與目的,所以業務單位要有足夠能力說清楚講明白系統需求及目標,而且要能強勢主導溝通過程,以保證溝通的品質。學生中的確不乏程式高手,但是會寫程式,不見得明白系統需求的理由,而這正是業務主管單位的責任與強項。千萬不要只給寥寥數十字的簡要說明,就放任開發者看著辦,這是很可怕的錯誤。

我沒有誇大,也不是危言聳聽,我看過太多例子,用「我不懂電腦,你們是專家,你們要幫我們把東西做出來」當藉口,迴避需求單位該擔當的那部分責任。尤其是在工作規模不是很大的時候,糊涂賬的機率是十之八九。

如果我們要「正經」一點做事,也有其他的問題。

多數學生沒有「真正」專案的經驗,缺乏團隊合作所需的正確態度與素養,也沒有使用專案工具的經驗。當他們被要求定期報告、追蹤問題、主動說明各種狀況時,多半是不明所以,甚至抗拒這類管理上的要求。就算勉力去做,多半是應卯了事,完全無法達到管理與控制的目的。所以,需要大量橫向溝通、協調的模組,不適合學生團隊。

學生的來來去去,也是讓許多人詬病的致命要害之一。解決人員流動的唯一方法,只有靠文件來分享知識與經驗(這是比較學院派的說法),大部分學生的撰寫文件能力不足,也缺乏足夠的「動機」把文件寫好,讓這個問題雪上加霜,系統每一、兩年(恰好是念個碩士學位所需在校的時間,這不是巧合)就要重新開發一次,已經是許多單位的「常態」了。

學生與「專業」系統開發者最大的區別,不在於專業知識,而在於紀律責任動機的認知。考試、社團、感情,都可能影響進度與品質,有時進度的失控,根本不需要理由,只是單純的不爽而已。知識和技能可以填鴨,缺乏紀律與動機,是幾乎無藥可醫的致命傷,是最大的災難。

不幸的是,我們缺乏足夠的管理工具來避免或者控制失控的時程。專案的成敗與他們在組織(事實上,他們不是組織的一份子)中的地位無關,對於脫序的專案,我們甚至沒有懲罰或者管理的工具權力

當然,這些問題不是無解,但是有多少單位有足夠的管理能力,處理上面所提到的困擾呢?

誠然,學生未必就一定不成熟,業界的爛公司、爛團隊也不少,但是學生的年齡、歷練、責任心的不足,讓學生團隊的管理難度提高。所以,如果真的想充分利用學生資源,請先評估貴單位的管理能力。

 

Share this post :

Comments