準則: 檢視
「檢視」是將工作成果呈現給相關各方的正式程序,以便取得意見和尋求核准。這個準則說明如何準備和引導一項檢視。
關係
主要說明

一般

  • 用會議格式來引導檢視,不過,會議的工作者也可能會準備他們自己的檢視。
  • 在流程作業期間持續監視品質,以防止大量問題始終隱藏著,直到檢視之時才暴露出來。Rational Unified Process (RUP) 的每項作業都參照下列核對清單來強化這一點;請在非正式的檢視會議或每日的例行工作中使用它們。

檢視類型

在 1990 標準名詞解釋中,IEEE 定義了三種檢視:

檢視
這是一項正式會議,將某項或某一組工作成果呈現給使用者、客戶或其他相關各方,以取得意見和尋求核准。
檢驗
這是一項正式評估技術,由作者以外的人員或小組詳細檢查工作成果,以偵測出錯誤、違反開發標準和其他問題。
輕鬆演練
這是一個由開發人員引導的檢視流程,開發人員引導一或多個開發小組成員通過他所撰寫的工作成果區段,其他成員則提出各方面的問題和意見,其中包括技術、樣式、可能的錯誤、違反開發標準,以及其他問題。

當由多個小組來實作時,檢視也使人們有機會探索其他小組的設計和程式碼,且可以增加找到共用程式碼的機會、重複使用的機會以及一般化的機會。另外,檢視也提供了在各小組之間協調架構樣式的方式。

在 RUP 的品質保證中,檢視扮演重要的輔助角色。在 [ROY98]的「同層級檢驗」一節中,清楚說明了主要的 RUP 品質要素項。不過,本書仍指出檢視在專業開發中非常有價值的附加效果:資淺人員有機會看到專家的工作,並由資深的良師益友來檢視他們的工作成果。

規劃

我們規劃檢視來決定檢視的焦點和範圍,以及確定所有工作者都瞭解他們的角色及檢視的目標。

在檢視之前,請先決定要提出的問題來定義檢視範圍;請定義要評量的對象及評量它們的原因。請參閱要檢視之工作成果的「核對清單」,找出可提出的問題類型。確切的問題會隨著專案的階段而不同:初期的檢視與廣泛的架構問題相關,後期的檢視比較明確。

確定檢視範圍之後,請定義檢視的工作者、議程,以及執行檢視時所需要的資訊。在選取工作者時,請在軟體架構專業和領域專業之間取得平衡。請明確指派評量的領導者,由他來協調這項檢視。必要的話,請邀請其他小組或組織的其他部門提供領域或技術的專業知識。

檢視人數大約是 7 人,或少一些。如果選擇適當,他們不只能夠找出架構問題。審查人員太多,會拖長會議時間,使參與更困難,且會在檢視中加入額外的問題和討論,實際上,便降低了檢視的品質。審查人員低於 4 人,會有檢視目光短淺的風險,因為關懷重點的多樣性降低了。

審查人員應該是檢視區域的行家;對於使用案例,審查人員應該瞭解問題領域,對於軟體架構,也必須具備軟體設計技術的知識。經驗不足的審查人員會因為參與而有所得,但他們的檢視貢獻不大,他們的表現可能造成錯亂。請維持小的群組,不超出 7 人,不低於 3 人。審查人員太少會危及檢視品質,太多會造成無法互動討論來實現品質結果。

請選取適合資料的審查人員:

  • 背景足以瞭解所提供之資料的人
  • 在檢視的產品或工作成果的品質上現行相關的人

準備

在檢視之前,應該先收集好要檢視的工作成果和任何背景資料,將它們分送給檢視的工作者。在檢視會議之前,必須先辦妥這件事,審查人員才能檢視資料和收集問題。事先分送好檢視資料,讓審查人員有時間準備檢視,可以大幅改進檢視結果的品質。將檢視準備好,也可以大幅改進檢視的效率和有效性。

在檢視之前,審查人員應該先研究文件、形成問題,識別要討論的問題。審查人員有了正常的工作量之後,通常至少需要幾天來準備檢視。

引導檢視

引導成功的檢視有幾個關鍵:

以下會詳細討論其中的每一項。

瞭解檢視流程 到處理檢視

一般而言,檢視流程是一個重複的循環:

  • 審查人員提出問題
  • 討論這個問題,可能加以確認
  • 識別問題(將某事項確定為需要處理)
  • 繼續進行,直到不再有問題為止

為了有效運作,每個人都必須瞭解檢視的目標是改進所檢視之工作成果的品質。 這時應該以嚴苛的眼光來檢視工作成果,找出問題。這可能很困難,因為所有審查人員都必須不斷提醒自己,將焦點集中在識別問題(我們自然都是解決問題的人,但作為審查人員,我們必須將它放下)。

對於我們的工作成果,我們都有很強的擁有權;我們往往很難接受批評,即便是建設性的批評,也是如此。因此,我們必須更用心聚焦於檢視的目標:使工作更好。

瞭解審查人員的角色 到處理檢視

為了引導有效的檢視,每個人都要扮演一個角色。更明確地說,特定角色需要有人扮演,任何審查人員都不能隨便更換角色。以下是檢視的基本角色:

  • 主持人
  • 記錄人員
  • 主講人
  • 審查人員

主持人要確定檢視遵循議程,且焦點集中於手邊的主題。主持人要確保附屬討論不會使檢視出軌,且所有審查人員都公平參與。

記錄人員是檢視小組中很重要卻經常被忽略的一部分。追蹤討論內容和記錄將採取的行為,是一項全程專任的作業。將這項作業指派給某個審查人員,會使他脫離討論。但更糟的是,如果沒有記錄決策內容,將來問題可能會重複出現。請務必指定記錄人員,確定他只扮演這個角色。

所檢視之工作成果的作者就是主講人。主講人負責說明工作成果和用來瞭解工作成果的任何背景資訊(不過,如果工作成果不容易瞭解,可能需要花一些工夫)。檢視不能變成「審判」,這點很重要 - 焦點應該是 工作成果,而不是主講人。主持人必須使工作者(包括主講人)記住這一點。主講人的作用是起始討論、回答問題及提出澄清。

審查人員要提出問題。焦點務必放在這裡,不要陷入如何處理問題的額外討論。請注重結果,而不是手段。

有主持人到處理檢視

如先前所討論,在避免檢視失焦上,主持人扮演非常重要的角色。主持人務必使檢視不出軌;主持人不應有審查人員的責任。主持人的角色是誘發討論,確保平等參與,以及避免爭論。這是一項全程專任的作業。如果無法溫和有節,檢視會拖延到預期的結尾之後,且無法達成目標。

檢視會議保持簡短到處理檢視

簡短且聚焦於識別好的目標的檢視會議最有效。由於焦點不容易長時間維持,審查人員也會有其他事情,因此,請將檢視限制成不超出 2 小時。如果預期檢視會比較長,請將它分成幾次較小,焦點更集中的檢視。如果審查人員能夠不失焦,結果會比較好。

關鍵在於議程明確、目標清晰。在分送檢視資料時,應該先將這些溝通好,檢視會議開始時,主持人應該再強調一次。之後,在會議期間,主持人必須貫徹這些目標(有時近於無情)。

識別問題,不修正問題到處理檢視

檢視會議無法達到預期結果的主要原因之一,是它們往往會演變成應該如何修正問題的討論。修正問題通常需要探索和反省;檢視格式並不是這類討論的有效手段。識別問題之後,請判斷它是不是必須解決的問題,再將它指派給某人來探索和解決。檢視會議只應將焦點集中在識別。

如果問題需要一群人進一步討論,請另組一場會議來處理這個主題。這個會議通常會需要一些探索和準備,且必須有具備正確技巧的人員參加。檢視的焦點應該保持在識別其他問題。主持人通常必須貫徹意志,檢視會議才不會失去焦點。

引導檢視結果

如果檢視沒有得出結果,它便沒什麼用。請針對檢視結論採取下列動作:

  • 設定問題清單的優先順序。
  • 建立用來追蹤問題及其解決方案的問題。
  • 如果需要其他探索,請指派一個小組來研究問題(但不是解決問題)。
  • 如果是現行反覆所能解決的問題,請指派一個人或小組來修正問題。
  • 將未解決的問題清單納入未來的反覆規劃工作中。

詳細資訊

另請參閱 [MCO97]。