技術團隊:當指責抱怨滿天飛時,你該怎麼辦?
點選藍色“常柱”關注,一起成長
這是公眾號2020年的第 039 篇原創內容
在技術團隊工作過程中,經常會反覆出現一些的經典的問題,這些問題會嚴重影響團隊的工作效率,同時也會給團隊的士氣帶來重大的影響。
接下來,我們來討論一下這些問題發生的具體場景,造成的問題原因,以及如何預防和解決這些問題方法技巧。
今天來討論第 3 個常見問題:持續高壓的工作讓整個團隊都進入一個亂遭的狀態,某個突發事件讓團隊內開始互相指責和抱怨,這個時候你該怎麼辦呢?
指責滿天飛
想象一下這樣的場景:當一個專案進入關鍵階段,或者一個團隊持續在高壓力狀態下工作時,突然出現的一個問題造成一些列的問題,每個人的工作進度都受到影響了,讓整個團隊都進入一個混亂的狀態,大家開始互相指責和抱怨,團隊的情況進一步惡化。
我曾經多次經歷和目睹過類似的情況。當時團隊已經連續高強度工作了多周,每天工作時間從 9 到 14 個小時不等,一個突發問題(測試環境資料庫被某個工程師誤刪除了),擾亂了所有人的工作,團隊的反應大概率是歸咎於個人。
很明顯,在這些持續高壓工作條件一定會導致錯誤,只是碰巧是那個工程師手誤刪掉了資料庫的事情發生了。
除了像上面描述的那樣是一個緊急嚴重的問題外,把任何錯誤歸咎於個人並不是一種有益於團的整體的行為。
很容易指責對模組進行最後更改或處理問題的人,只是有人被挑了出來。然而,這真的是問題所在嗎?通常還有更深層次的問題存在。
背後的原因
為什麼這個指責和抱怨問題會是影響團隊效能和士氣的一個重要問題呢,主要原因有以下幾點:第一,第一個原因是因為它是低效的。指責和懲罰一個團隊成員並不能解決當前的問題。處理問題的兩個點是:第一個重點應該是解決這個問題;第二個重點應該是解決導致問題發生的根本原因。
第二,責備一個人會阻止你找出問題的根源。根本原因可能是過度工作、不適當的系統許可權、不規範的釋出過程、缺乏自動化、糟糕的測試策略,或者是這些問題的組合。如果不解決根本原因,你將再次遭受同樣的問題。
第三,指責遊戲只會進一步增加團隊的壓力和緊張。當錯誤被歸咎於個人,或者更糟的是被公開指責時,這對開發者的參與和心理健康都是不利的。
最後,它忽略了軟體開發的兩個基本事實:
- 軟體開發是一項團隊工作
- bug 和問題的發生不可完全的避免
這就是為什麼我們擁有QA團隊、檢查問題的工具、單元測試、釋出過程等等。開發和測試,部署過程中的bug並不是一個人的失敗的原因。
解決之法
找出問題發生的根本原因是防止將來出現更多問題的關鍵。一旦確定了根本原因,就可以開始進行最有效的改進,以減少問題再次出現的可能性。
問題頻發,導致團隊互相指責抱怨的深層次的原因有以下幾種:
高壓&持續加班
第一,持續的高壓工作會造成問題的頻繁。如果是加班或是持續壓力造成的,就需要看看你工作安排是否合理。眾所周知,加班和壓力會導致錯誤和效率降低。一旦這些錯誤出現,就會越來越頻繁地發生。錯誤和決策失誤的增加,實際上是在短時間內產出增加的情況下,加班會減緩發展的速度。
雖然許多研究都表明加班的最大有效時間可能是 3 周或 4 周。但我們必須記住,即使這是一個準確的時間範圍,這些都是整個團隊的平均值,並且會根據加班的程度而有所不同。有些團隊成員不能堅持那麼久,有些人會堅持更長時間。這完全取決於個人和他們的環境。安排日程時請記住這一點。
工作流程缺失
第二,導致問題頻發的根本原因是流程問題,需要進一步優化流程。流程問題可以是不完整的流程、尚未發現的邊緣案例、繞過流程的關鍵節點,或其他更多的原因等等。
技術團隊構建或釋出流程的目的是明確工作的步奏和規範。如果這個流程繁瑣或耗時太長,就可能會被繞過。如果一個團隊成員不熟悉這個過程,他們就不會很好地遵守流程。只是流程本身可能缺少一些關鍵步驟。
任何釋出或構建過程的目標應包括:
- 為目標提供清晰的路徑,並消除歧義
- 確定所有步驟,包括技術和管理(如審批)
- 提供正確的安全檢查,有 checklist
- 減少管理審批的節點
- 減少體力勞動,加強自動化
自動化不足
第三,自動化不足,導致手工操作增加出錯概率,在可能的情況下,流程中的所有步驟都應該自動化。如果沒有人蔘與,就不會犯人類的錯誤。自動化所有可能的事情。從長遠來看,自動化成本更低、更方便、更有效。
個人許可權太多
第三個原因可能是開發人員對系統的訪問許可權太多,而這是他們不應該擁有的。也許他們配置了太多的伺服器,或者刪除了錯誤伺服器上的檔案系統。不管是什麼,都應該有適當的許可權和配額來防止這類事故的發生。
許多開發人員可能會立即對這一對話視而不見。在太多的公司裡,這場鬥爭花費了太多的時間來為開發者獲得額外的許可權,以使他們達到最大的生產力和使用他們所有的工具。作為一個開發人員,我知道受人喜愛的“管理許可權”對開發人員有多大的好處。但適度的許可權分離,可以避免掉很多嚴重的生產事故的發生。
最後
首先,軟體開發是一個複雜的系統工程,是一個需要團隊協作才能更好完成的工作,在工作過程中出問題是不可能完全避免掉的。
對於頻繁發生的問題,指責和抱怨某個人是不利於解決問題的。
解決問題更需要我們從根本上去分析和思考,找到問題發生的真實原因,從最本質層面去解決問題,例如,控制節奏和壓力,建立優化流程,增加環境許可權的區分,加強自動化等等。
指責和抱怨是一劑毒藥,會嚴重影響團隊的士氣。 面對問題,團隊整體要保持開放坦誠,管理者更要有效的引導團隊積極解決問