一個團隊中經常會充滿了這樣的爭吵:
“你這個test寫得太複雜,我看不懂,建議重寫!”“我不覺得複雜啊,是你看得不仔細”
“你這個函數寫得太大,test肯定無法覆蓋所有分支!重寫!”“我已經用客戶端測試過了,沒有問題“
”客戶端測試通過,但是test沒有覆蓋所有分支,這是不行的,難道每次修改這里都用客戶端來測試這個函數有沒有問題嗎?這樣代價很大,最後會導致無法修改。“”我test寫那麽完整,程式都無法按時提交了,這個責任誰來負擔?“
”你test不寫完整,程式耦合性太高,下次這塊程式出了問題,責任你負擔的起嗎?“
兩人為此時吵了半天,最後吵到了專案經理那去了。專案經理一般有三種做法:
較不專業的專案經理:”我不懂技術,你們自己商量決定。不要耽誤進度啊“
普通專案經理:”test要寫完整,把test補齊吧。“。寫程式者不服,說出了種種理由。專案經理又和他辯論半天,實在無法說服,最後專案經理怒了:”我怎麽說你就怎麽做!“
優秀專案經理:”test要寫完整,一定要補全test“。說完之後就在專案規則上補充三條:
1. test必須cover所有分支
2. test寫得如果reviewer無法短時間看懂,需要重寫。如果他人程式導致自己寫的test失敗,需要寫test的人自己去修復,解除耦合性
3. 程式質量重於進度,質量不好在專案後期會導致致命後果,不得以進度為借口放棄質量。
並且加上為什麽這樣規定的原因,之後,專案經理在程式提交流程上添加了程式測試覆蓋率檢查工具,沒有達到覆蓋率無法提交到GIT。
第一種專案經理是無為而治。看上去是個好好先生,事實上是個吃閒飯的。看上去對每個人都好言好語,事實上對整個專案沒有一點作用。一天到晚就是催進度。最後很有可能就是因為之前test寫得不完整導致程式無法修改拖慢了進度,但是這種專案經理才不會管你呢,誰進度慢了,就是誰的責任。
第二種專案經理是人治。整體管理思路都對,個人權利無限大,但是無法讓手下信服。有可能導致整天處於這種問題的糾纏之中。手下的質疑聲不斷,最後感覺自己管不了了。
第三種專案經理是法治。逐步完善專案管理中的各種問題。法律不全則修補漏洞,大家都有法可依,最後整個專案組走的路越來越順暢,開發速度越來越快。
文章節錄:中國項目管理者聯盟
ProjectClub 專案俱樂部為一群專案經理人組成的平台,網站分享專案運作的各種專案管理手法與實用專案工具,並分享如何提昇職場人的軟技巧與硬實力。