採用何種培訓方式才能夠最大化的發揮培訓的效益,達到培訓的目的?類似這樣的效率問題在評鑑的過程中被LA反覆質疑。又到了規劃年度新人培訓的時候,經過反覆的思考和規劃,設計了今年新人的第一門培訓課程。先記錄在這裏,三個月後,我們再來Reveiw實際的執行結果,是否與預期相符,是否達成了目的,是否有效……
1. 新人練習的目的
希望新人能達成的技術目的:
A). 鞏固所掌握的計算機語言技能 (C/C++)
B). 掌握並運用常見的編程技能,如文件存取,字符串處理等
C). 學習,理解面向對象的分析及設計方法
D). 掌握常用的開發環境及構建工具
E). 瞭解軟件測試
F). 熟悉公司的代碼規範
G). 瞭解開發 / 測試流程並幫助其進入開發 / 測試的角色中
H). 掌握基本的 RD 工具的使用 (SVN/Testlink/Bugzilla)
其他衍生目的:
A). 透過練習過程,觀察新人的特質
B). 促進新人和組織間的快速融合
2. 練習方式
佈置一個實戰練習,由新人完成開發到測試的整個過程。不區分崗位(開發 / 測試),不區分部門,統一執行。
3. 工作流程
Task1: 規劃
(1) 練習的流程,包括
A). 輸入:參考書目、練習規格、代碼規範
B). 每一個階段的任務和工作產品
C). 輸出:代碼、單元測試報告、軟件測試報告、練習總結報告
(2) 人力資源
A). 開發階段的引導人
開發引導人一定要是公司的資深開發人員,他們是新人接觸公司的第一印象,代表着公司的能力。除了開發引導人小組組長外,其他引導人都沒有選擇由 Team Leader 擔任,主要是考慮 Team Leader 工作負載太重,另一方面也覺得不太有親和力,擔心新人不太敢問問題,害怕影響主管對自己的印象。
每個引導人帶 2 位新人。
B). 測試階段的引導人
測試引導人也選擇由公司的資深測試人員擔任。
C). 培訓講師
培訓講師選擇對開發、測試、配置管理流程熟悉的員工來擔任。
(3) 培訓課程
在整個練習過程中,我們設計了以下幾門培訓課程
A). 配置管理流程和配置管理工具 (SVN)
B). 軟件測試流程和測試工具 (Testlink)
C). Bug Report 規範 /Bug Life Cycle/Bug Tracking System(Bugzilla)
(4) Schedule
安排各 Task 的時程。
Task2: 設計練習題目
由開發引導人小組組長組織開發引導人小組針對練習的目的制定練習規格。
Task3: 講解練習計劃和規格
通知新人來公司集中講解練習計劃和規格,發參考書。新人和引導人互相認識,互留聯繫方式。
Task4: Coding+UT
新人根據練習規格和代碼規範進行開發。這部分工作由新人根據自己的時間安排,不需要來公司做。給每個新人都指定了開發引導人,新人遇到問題,可以請教引導人。另外,我們給引導人明確說明他們需負責新人練習的成敗,不能僅僅被動的等待答疑,要主動詢問新人練習進度、是否遇到問題。
除了要求完成代碼編寫外,還要求新人提交單元測試報告。沒有將公司的單元測試報告範本給新人蔘考,希望新人先自己去學習單元測試的相關知識,根據自己的理解和掌握程度去執行單元測試。通過單元測試報告,也可以觀察到新人的工作態度和學習能力。
Task5: 準備新人培訓
由各培訓講師準備幾門培訓課程的計劃,包括
l 課程大綱
l 培訓方式
l 簡報
l 課時
Task6: 準備測試用例
因爲培訓的目的不在於對測試方法和策略的學習,沒有讓新人自己設計測試用例的環節,測試用例和軟件規格一樣,由我們設計,新人只需依據用例執行。
我特意安排了部門中最資淺的測試人員進行測試用例的設計,要求她完成用例設計後,由幾位測試階段引導人進行同仁審查。一方面是爲了保證用例的質量,最重要的也是希望透過這個過程,讓她能夠向其他資深的測試人員進行學習。
Task7: CM Training/ 提交代碼
進行配置管理課程的培訓,在公司的 SVN 試驗區給新人建立配置管理環境,讓他們進行練習,提交練習代碼。
Task8: Coding Review
將每兩個引導人帶的新人合併成一組,由兩位引導人一起進行代碼審查,小組內其他新人旁聽。
透過這個過程,可以達到以下目的
A). 讓新人們瞭解代碼審查這個環節
B). 透過新人講解代碼檢查新人真實的掌握情況
C). 透過新人講解代碼觀察新人的邏輯思維和表達能力
Task9: 修改代碼至通過
新人根據 Coding Review 結果,修改代碼,每個 Cycle 都需要在 SVN 上提交後,由開發引導人審查矯正結果,直至通過。
Task10: Test Training
進行軟件測試流程和測試工具 (Testlink) 、 Bug Report 規範 /Bug Life Cycle/Bug Tracking System(Bugzilla) 課程的培訓。在公司 Teslink 和 Bugzilla 的試驗區爲新人建立好練習環境。
Task11: 交叉測試
在測試引導人的輔導下,新人執行交叉測試,使用 Testlink 執行測試,使用 Bugzilla 報告 / 追蹤 Bug 。
Task12: 撰寫測試報告 / 練習總結報告
測試執行結束後,新人撰寫測試報告。
自己的練習測試通過後,新人撰寫練習總結報告。