目的
|
定義專案需要的人員人數、類型(技術、領域)、經驗以及才幹。
|
「專案管理人員」需要依據對專案的努力預估、屬意的排程、選擇的組織結構以及角色對映等,決定專案需要的人員配置概況(整個期間內的人員數目以及技術層次)。對專案的努力預估當然不能和團隊規模、經驗、技術以及才幹等分開,在所有可能性中,「專案管理人員」在編定人力預估時,需要假設人員的能力所在。在COCOMO 預估模型(請參閱作業:規劃階段與反覆作業)中,人員的能力和經驗是主要努力的驅使者。因此,選擇可接受的整體努力(調整各個 COCOMO 努力驅使者)
以及可行的排程,將會決定人員概況。
有時,「專案管理人員」需要預先知道可以採用的人員數目和技巧。在這種情況下,若人員數目和技術都已經底定,並且如果專案範圍維持不變時,就只剩排程是未定的。
「專案管理人員」必須清楚知道因為人員需求快速升高時,所可能會造成的中斷情況,以及若試圖急遽壓縮排程,而大量增加人員數目時,將可能對生產力造成的嚴重後果。
在初始階段期間,焦點是集中在定義及界定範圍,以及開發適用於專案的商業案例。因此這時的團隊規模相當小:頂多只是一名「專案管理人員」、一名軟體架構師,以及可能一或兩個開發人員,尤其是在需要建立證明概念架構原型,來釐清產品的需求或建置支援時。
在詳述期間,焦點主要集中在架構及架構原型。因此,在早期的詳述階段時,設計作業會集中在架構層面;這時不會太在意類別及類別屬性的明細,因為這時雖會指出這些項目,但其對架構沒有重要性。在這些反覆作業期間,大部分的努力都是來自架構小組以及指定的原型建立小組。原型建立小組通常是由較資深的程式設計師組成。這時,設計小組的規模還相當小,並且會專注於通用的機制和技術。測試小組則會集中於建立測試環境以及測試早期的使用案例。
架構小組的成員選擇要極端謹慎:其成員不只要包含優秀的分析和設計技術,也要具有領導特質。在建構階段為了向較大型的團隊溝通架構時,最好能將架構小組的成員分散在各個「建構」小組中。架構小組的成員需要涵蓋極廣泛的軟體工程經驗:軟體設計與實作、效能調整、資料庫管理、網路管理以及配置管理,這必須包括架構小組必須擁有的主要技術層次。
「建構階段」專注於維護系統的架構完整性,同時不斷在系統中建立新的功能。這時需要修正架構(因此在「詳述階段」之後的架構是「基線」,而不是「凍結」),並且架構小組必須注意設計師和他們的設計構件。
架構小組通常會分散在開發小組中作為技術負責人,並和其他技術負責人協調小組內的問題。「建構」小組本身必須是跨功能的小組,其中具有設計和開發專長,因為他們要負責設計和實作獲指派的功能。通常,「建構」小組要負責一或多個具有妥善定義介面的子系統;若變更這些介面,或是加入新的子系統,會導致要進行架構變更,因此需要審慎思考。在子系統中,小組可以視自己的裁定來進行設計和實作,不過也要進行跨小組的溝通,以確保沒有和其他小組同時在建立相同的實作機制。
通常「建構」小組的組織會延著階層線,呈水平分布。某一小組可能會負責資料庫介面或通訊架構,另一小組則可能專注於應用程式功能本身。因此,在上層的小組,就需要具有問題領域,以及使用者介面設計或和外部系統之間的介面之專長。下層小組則較需要實作技術。這些小組的組合必須反映出上面這些各不相同的技術要求。
測試作業的第一個問題是需要進行多少正式測試?然後,您可以進行多少這種測試,以便既能達到品質目標,同時仍維持在合理的成本和排程限制範圍內。很少專案能有足夠的預算可以進行所有測試類型。通常,專案必須選擇它們可以負擔得起的測試層次。請記得,每項測試規格都必須做檢驗和維護。如果計劃要建立大量的測試規格,但因為時間來不及,而無法施行那些計劃,將會嚴重影響專案小組的士氣。
建立特定的測試小組。測試小組中,至少要有一個人是來自需求擷取小組。測試小組要負責
-
黑箱測試。依據事件的使用案例流程,從系統外部測試使用案例 (請參閱工作成果:使用案例)。
-
白箱測試。依據情境的順序圖,測試實際在使用案例中傳送訊息。
-
系統測試。伸張系統,以彰顯其真正的本質。
請記得,測試不只是進行測試而已,測試也要準備測試環境,並且也要撰寫及檢驗測試規格。
要有一個獨立的小組來測試使用案例及整個系統。他們應該執行測試,並寫下測試報告。測試使用案例的工作應該要組織為每一個使用案例要由一個個體負責測試。
如果無法由獨立的小組測試使用案例,如在小型專案中,則至少要確定負責設計使用案例的人員,不可以自己測試該使用案例。
在中型及大型專案中,應該採用自動化迴歸測試。測試小組會需要程式設計師來支援這項功能。在反覆式開發中,如果您不希望花費太多人力來不斷重新執行相同的測試套組時,這一點更加重要。
在「轉換階段」中,開發工作都已經完成了。並且已做過外部測試,開始在準備最後的版本。如果「建構」時工作做得很好,專案小組就可以開始調整規模,縮減開發人員和測試人員數目。整個團隊的組合會轉移為訓練人員以及基礎架構底層機制專家,負責將產品部署在使用者社群中。
軟體架構師或架構小組會依「延續模式」運作:他們要協助解決問題報告、設定變更提案的優先順序,以及變更次序,以確保為了權宜措施而修正問題時,不會損壞架構。設計作業會在轉換階段期間退縮,並且只限定為更正問題,或是引進最後一刻的加強功能。
|