然后產品出來了,需要進行測試,有測試流程、測試規范來幫助保證質量,這是最直接的。然后還有很多的環節還會發生錯誤,比如配置管理、版本的管理,也需要相關的支持來保證軟件的質量。所以說軟件質量保證不應該只是在一個環節上,比如測試環節來保證,而應該是整個的流程,我們應該全面地去改進流程來保證質量。
問: 做 SQA 這方面的人員,在溝通方面需要的什么樣技巧和能力?
答: 首先從大的方面說,整個團隊的溝通,首先是大家要講同樣的語言。 UML 只是這種語言的一部分,我們不要狹義地理解這種溝通語言就是 UML 。它還包括采用一個什么樣的流程方法,整個團隊都要理解。譬如你說項目正處于 " 精化 (Elaboration)" 階段,這個團隊都要能理解這個術語。
還有就是整個組織機構內部大家采用的流程都是要一樣的。舉個例子來說, Rational 有很多產品,其中很多都是收購來的。不同的產品團隊采用的開發方法、開發工具都是不一樣的,他們到了 Rational 之后做的第一件事就是整合。這個整合一方面是說產品要整合起來(我們有 Suite 產品);同時也是針對開發團隊開發方法的整合,例如 Rational 花了一兩年的時間把所有產品團隊統一到 RUP 和 ClearCase/ClearQuest 平臺之上,這是我們的首選。實際上到了 IBM 之后也是一樣, IBM 現在正在做的計劃就是讓所有的實驗室、研發團隊都要使用 IBM Rational 自己的開發工具,他們都在使用 IBM 自己的開發方法、開發平臺。這就是讓大家的溝通基于一個統一的基礎架構 ―― 統一的軟件開發平臺,這也是增強溝通的一種方式。另外,講到 SQA 的人員,在 RUP 里對應的就應該是 Process Engineer 。他的主要的職能就是定義流程,保證流程的執行,并且不斷地改進流程。對他的要求就是要對流程要比較了解,有實際項目的開發經驗,不然沒有辦法理解流程,這是技能方面;另外就是與人的溝通能力要強,跟一般的開發人員和項目經理是有區別的,溝通的能力一定要強,他要負責說服項目團隊來遵循標準。