2007年2月19日 星期一

工程師的性格與溝通

作為測試工程師,在日常工作中接觸最多的當然是團隊中的開發工程師,如何和開發工程師進行有效的交流是測試工程師面對的 重要問題。

一般來說,在一個團隊中,總是有開發人員喜歡和不喜歡的測試工程師,這兩者之間的工作效率和效果都有很大的差異。


當然 ,不能武斷地說測試人員不 喜歡的測試工程師就一定是效率低下的測試工程師,或者說是不合格的測試工程師,但一般來說,那些容易得到開發人員認可的工程師在 測試時總能夠更好地發現缺陷和敦促開發人員解決缺陷。

測試工程師和開發工程師承擔的是開發工作的兩個不同方面,說得極端一點,一個是創建,一個是破壞,雖然兩者的 最終目的都是一樣的,但在達成目標的方式上卻有很大的差異。

因此,在為同一個目標奮鬥的過程中,發生衝突也是難免的,但通過下面 的一些建議,換個視角看看開發人員的生活和工作,可能很多的衝突就能化解於無形了。

Cem Kaner在《Testing Computer Software》書中有一段話: The best tester is not the one who finds the most bugs or who embarrasses the most developers. The best tester is the one who gets the most bugs fixed.

(最好的測試人員不是發現最多BUG或是使得最多開發人員不自在的人,而是能夠[說服開發人員]修正最多BUG的人),建議大家好好理解這句話。

至於我個人,是從開發工程師轉為測試工程師的,對於開發工程師的處境和想法也曾有過切身的體會,或許是這個原因,讓我在和開發工 程師交流的過程中還算是比較 順利,和他們相處得也還不錯。

在我的測試經歷中,也接觸過相當多的開發工程師,這裏我把和開發人員交流的經驗歸結為“五要四不要”:


[]要耐心和細心
細心是測試工程師的一個基本素質,測試工程師是對品質負責的人,涉及到品質問題,就不能含糊,因此一定要細心,細心對待每一個可能的BUG、細心對待每一段被你檢查的代碼,細心對待每一個你撰寫的BUG報告,細心對待你發出的每一封郵件。

細心是一種態度,你的態度遲早會感染和你合作的開發人員,而這往往是合作愉快的基礎。

至於說到耐心,在我的工作經歷中,不厭其煩地向開發人員解釋一個BUG,讓他認識到BUG的重要性是經常的事情,其實想想也很正常,對任何人來說,被人指出自己的缺點和不足都不是讓人舒服的事情,因此,一點不耐煩的情 緒就可能引起對方很大的反感,給自己的工作帶來不必要的麻煩。

[]要懂得尊重對方
開發是一件需要全面和綜合考慮的工作,開發工作中,由於各種原因導致程式中出現問題是很正常的現象,作為測試工程師,發現了這些問題並不值得你誇耀,也不能說明你比開發工程師聰明。

一個好的測試工程師一定是懂得尊重開發工程師的人,尊重對方的技術水準,尊重對方的代碼。

我接觸過的開發人員都是挺和善的,一般來說,對他們最大的尊重就是承認他的專業水準,承認他的代碼。

對他們來說,代碼就像是自己的孩子一樣: )因此,記得在合適的時候表達你對他的尊重,讚揚一下他代碼的精妙之處。

[]要能設身處地為對方著想
開發工程師一般都處在較大的工作壓力下,他的上司直接考核他們的指標很大程度上是已完成的代碼,所以在工作任務緊張的時候,對於測試工程師報上來的BUG會拖延解決甚至是推脫,給測試工程師的感覺就是很不合作。

那麼在這個時候,就需要設身處地的為對方著想了,每個人都會為自己的工作 在內心排定優先順序,如果他認為解決你發現的BUG不是重要的事情,那麼最大的可能就是你並沒有向他解釋清楚這個BUG的嚴重程度。

發現BUG是我們的責任,敦促BUG得到解決是我們更重要的責任,因此,我們可以心平氣和地和開發人員坐下來討論一下BUG的嚴重程度,和他一起排定BUG的優先順序別並確定解決的時間。

[]要有原則
不要忘記,測試工程師需要對產品的品質負責,在這一點上一定要有原則。

測試工程師可以和開發工程師建立良好的個人關係,但在具體的事情上,一定要按照公司的相關流程來處理。

當然,在堅持原則的同時,可以採用一些委婉的表達方式,可以在允許的情況下儘量體諒開發工程師,但請記住,一個有原則的測試工程師才能真正幫助開發工程師,才能贏得開發工程師的尊重。

[]要主動承擔
如果開發工程師要求你承擔部分不屬於你的責任,比如,定位你發現的BUG到代碼一級,或者是幫助他編寫部分文檔和代碼(不要不相信,真的有這樣的事情),那 麼你會怎麼做呢?在我的測試經歷中,這些事情都遇到過,我的原則是在可能的情況下儘量多承擔。其實都是工作上的事情,有能力的話 ,多做一點也無妨。當然, 肯定有人不同意我的意見,在這裏我也不想爭辯,個人意見而已,僅供參考:)

在我的測試經歷中,我會根據自己的進度和時間安排盡可能地提供更多的關於BUG 的參考意見,甚至是定位到代碼一級,這種方式不是正規的方式,但對於提高自己被信任的程度是非常有益的。

但在主動承擔時,一定要明確是在自己確有餘力的情況下才能去承擔,否則,婉拒是最好的對策。

[X]不要嘲笑
不要嘲笑你所發現的BUG,即使是非常愚蠢的錯誤也絕對不要嘲笑,說不定那個錯誤是因為開發工程師聯繫加班24小時犯下的,對別人的工作始終應該尊重。

如果 你覺得有必要提醒他不再犯一些經常犯的錯誤,可以採用這樣的方式:編寫一份測試過程中發現的開發人員常犯錯誤的文檔(記住,千萬 不要寫上誰犯了這些錯 誤),用輕鬆的口氣調侃一下,發送給開發人員。這種方法我採用過,開發人員都能很快接受。

[X]不要在背後評論開發工程師
永遠不要在背後評論開發工程師的技術能力,這個絕對是非常忌諱的事情,一時的口舌之快或許會使你永遠不再能同他良好地合作,要知道,開發工程師最在意地就是別人對他的技術能力的評價。

其實這個不僅僅是作為測試工程師的準則,也應該是做人的準則。

[X]不要動輒用上層來壓制對方
在出現和對方的意見分歧的時候,應該採用什麼方式說服對方呢?

直接向上層求助當然是一個辦法,但這種辦法帶來的負面左右也是很明顯的,首先是作為上層的處理 結果可能不一定符合你的願望(在很多公司,開發工程師的地位高於測試工程師的地位,這種地位的不平等導致上層在處理分歧時會有一 定的偏向性)

其次是動輒 拿出上層來壓制對方只能給他人留下無用的印象。

所以在出現分歧時,儘量嘗試通過溝通解決吧,實在不行,再動用最後的手段。

[X]和開發人員的溝通不要只有BUG
除了在BUG 記錄單上,在其他的地方也讓和你合作的開發工程師接觸到你吧:),午餐或是集體活動的時候多和對方聊聊天,一方面可以增進彼此的 感情,混個臉熟,打交道的時候也方便;另一方面,從他那裏瞭解業務的知識和他負責模組的方方面面,對自己也是提升。

我個人就很喜歡和開發工程師溝通,開發工程師其實一般都是比較健談的,尤其是對自己程式的精妙之處,多瞭解一些,多接觸一些,對自己總是有益的。

寫了這麼多,其實關鍵的就是兩點:

多從別人的角度去想想,所謂“換位思考”,多尊重對方就一定能得到對方的尊重與配合.

其次是加強和開發工程師的溝通,讓他清楚地認識到你的工作對他的價值,你發現的每一個BUG的重要性。

我一直認為,一個好的測試工程師一定是在公司裏被所有人尊重的快樂分子,而不應該是一個“鐵面判官”:)

當然,作為我個人來說,絕對不敢說自己做的已經很好了.


不過,我經常都記得提醒自己:尊重對方。

沒有留言:

張貼留言