用「管閒事」文化,解決端對端的使用者體驗問題:軟體開發見聞錄#5/葉光釗
在工作內容彼此高度相依的環境中,培養「管別人閒事」的文化是重要的解決方法之一;然而這在文化層面會成為一種挑戰:幫人與被幫的兩方,如果沒有一致的願景、以及正面善意看待,就很容易發生衝突。
接續前一篇的觀念,本文繼續討論如何完成「端對端的使用者體驗」(end-to-end experience)。
這件事情最難的地方,在於「功能小組的責任區分」與「體驗的完成」並不在同一軸線上,也沒有一個特定單位能對整體的體驗負責;然而如果缺了一個單位,總體驗又連不起來。
「相依度」問題
就M社的工程管理而言,這就是最棘手的 「相依度」(dependency)管理問題。
老實說,在M社的二十年中,我是沒有看到完美的解決方法;每一個版本都有不同的相依度問題,也都是在黑暗中摸索,跌跌撞撞中完成。
我跟我們之前的團隊,就有過慘痛的教訓:有一次,我們的團隊負責某款手機的功能,而這個功能是架構在一個以PC為主的服務之上;雖然不是很核心的功能,但台灣團隊還是兢兢業業,將所有該有的研發過程都做好,
規格寫得很清楚、寫程式碼與測試的時程控管也很到位,甚至還進度超前;每個成員該盡的本分都盡了,就希望安安穩穩把做好的功能提交出去。
沒想到,到接近程式碼完成的時候,PC版本的功能反而傳出來要被砍掉。這一砍可不得了,表示手機團隊整整一個里程碑階段的心血會全部泡湯。
要知道,M社看的就是戰功,你的功能沒辦法交出去,即使做得再辛苦,績效還是零。這時候才瞭解,光埋頭苦幹是不行的,要隨時抬起頭來,看看世界上發生了什麼事。
仔細探究原因,原來是PC版的程式臭蟲太多,開發的功能小組擔心會拖累整個產品進度,所以打算「揮淚斬馬謖」。
不得已,我們團隊所有軟體開發工程師(SDE)都一起下海、捲起袖子接手別人的臭蟲。雖然整個體驗簡化了很多,後來總算穩住陣腳,還是把PC和手機的功能交了出去。
超量溝通
後來我們的團隊學到了:要跟我們的功能相依度高的團隊合作,必須要「超量溝通」(over communication);簡單的說,就是「要管別人的閒事」。
在後來的版本開發中,我們甚至會去監看別人的臭蟲狀況、先一步去看可能對我們產生影響的問題,甚至主動幫忙。
我的經驗是,像這種情況不可預測的變因太多,很難用既定的方法論或程序來解決;最終還是要靠人與人之間的溝通、以及紮紮實實的解題能力。
「管別人閒事」的文化,在文化層面中的確是個挑戰。幫人與被幫的兩方,如果沒有一致的願景、以及正面善意看待,就很容易發生衝突。
這也是為什麼M社中的組織老是給人「互相拔槍相向」的印象。但無論如何,既然這是工程上不可避免的作法,我們也只能盡量跟它和平共存。