我們通常理解的客戶是指組織外部的客戶,我們要將我們的工作成果交給他/她,當然工作成果也稱爲交付成果,需要令客戶滿意,不然,客戶是不會買帳的。根據工作成果爲了令誰滿意,客戶還有其更廣闊的意義。
組織內的個體也都有自己的客戶,而且有的,客戶不只一個。對於組織內個體來說,可能心裏最大的客戶是他/她的上級領導,也許還有人的客戶是自己。
對於一個項目負責人來說,除了上級領導,心裏的客戶還有外部客戶,外部客戶的滿意度也會影響上級領導的滿意度,有時候心裏最大的客戶是誰,恐怕連自己也分不清。但是,你對客戶滿意的在意程度,絕對會影響到你工作成果的質量。
軟件開發項目是由一個個過程和流程組成的,需求分析-->設計-->編碼-->測試,最終提交給外部客戶的成果的質量,不是說哪個過程來決定的。如果每個過程的主體把下個過程看作自己的客戶,非常在意下個過程對自己成果的滿意度,那麼我們能夠在整體質量上得到提高。
不過,我看到的現象(雖然是少數,但足以造成大的影響)卻不是如此。寫出來的設計書,實施人員沒辦法實施;做完的代碼自己沒有調試,就交給測試人員,連基本功能的正常運行也不行。
我曾經在大家面前說過“SQA是爲項目服務的,SQA的目的就是要確保項目成功”。那時候我更看重的是項目組對SQA工作的理解。但是後來,漸漸地,發生了微小的變化,但是這個變化的後果卻是嚴重的(至少在我看來是這樣)。原來說的,SQA是爲項目服務,後來被理解成了“SQA爲項目組服務”,我請項目經理來對SQA工作提點意見,結果產生了“SQA是爲項目經理服務”。天啦,我竟然做出這樣的事情,SQA是爲項目經理服務!?很明顯,SQA(軟件質量保證)是爲了確保最終客戶對項目的信心,應該是站在外部客戶的角度來工作的。如果說是爲項目經理服務,那麼有點曲解了SQA,應該換個職務名稱,比如叫“項目經理助理”之類的,以免玷污了SQA的名號。
一直以來,項目經理面對的外部客戶是XX公司。對於提交成果物給XX公司測試時,總是小心謹慎,唯恐出錯。而開發提交成果物給北京內部測試組時,情況卻並不是這樣。提交前,開發動作是儘可能快,不管有沒有問題,先按時間做完了再說,有問題等到測試階段的時候再來解決。對測試組的看法就是:我給你的程序肯定有錯,你給我找出來,不找出來,提交到了XX公司出了問題就是你的錯。測試人員無話可說,找bug就是自己的職責,沒有給予權利來說程序的好壞,測得好,開發表揚你幾句,最後功勞都算開發的,要是漏調幾個bug,讓XX公司測到了,那就不得了,項目質量不好頭個就說測試人員水平不行,“爲什麼別人能測到,你們測不到”,有一點被忽視了,真正造成bug的不是測試,而是開發,當然這並不是說測試沒有責任。