專案的黑盒子對團隊帶來什麼傷害?

不確定這種情形在業界常不常見,老實說剛進來目前服務的團隊的時候還滿驚訝的, code base 當中有一部分是除了某一個人能看到、改到之外,其他人都完全看不到也改不到(而且有這個黑盒子存取權限的人還是和我們遠端工作),這對團隊帶來了什麼傷害,是這篇想回顧和討論的,以下為了方便,稱呼那個人叫 A

那個黑盒子和我們寫的 code 之間有相依性,所以當黑盒子有 code 改壞的時候,專案的幾個執行檔就無法編譯打包,反之亦然,如果我們這邊有 code 改壞了,同樣也無法正常編譯打包,差別在於,因為我們都在辦公室,能快速找出問題、一起討論、或是請導致問題的人負責修掉,但是如果是黑盒子那邊出問題,我們必須請 A 修,前面提到, A 和我們遠端工作,所以我們和 A 之間大多是透過通訊軟體溝通, A 有時不一定能馬上回應,導致測試、開發、署延宕

黑盒子帶來的不透明、權限限制,也使我們無法對一些流程做自動化,畢竟,編譯、打包 production 環境的執行檔需要黑盒子,我們都沒有權限存取的話怎麼做 CI 、 CD 之類的事情呢 :l ,後來是 A 做了一個簡易的網頁介面來讓我們可以透過它來取得編譯、打包的結果,才讓事情稍微簡單了一點

我自己猜測這個黑盒子的緣由是,裡頭牽涉到和金錢相關的商業邏輯,為了避免不小心被改壞掉,所以 A 判斷還是只有他有權限最保險,另外是,現在之所以在台灣會有這個開發團隊,是 A 一開始一個人在大陸接了開發案,花了幾個月時間做出網站的雛型,後來為了擴充開發人力,才來台灣找人,所以某種角度上也可以說如果沒有 A 就沒有現在的這個開發團隊,就我的感覺, A 偶而來辦公室的一小段時間,完全沒看過有人在大家都在的會議、討論場合上,直接提出這些流程或是協作上的問題做討論,大家可能已經處於接受現狀的心態,或是認為提出也無多大意義,甚至是覺得提出來對自己沒有好處只有壞處,所以選擇閉口不談,小組私下在聊的時候,就曾說到之前有一兩個 on board 的新同事,似乎就是因為黑盒子的存在和我們流程上的問題而不到幾天就離職

加上公司的獲利主要來自是為客戶創建同質的新網站(換皮不換骨,只是外觀不一樣但功能幾乎完全一樣的網站),讓客戶的行銷去推,上頭的人可能和他們談好價碼或是抽 % 之類,所以我們的完整部署牽涉到好幾個網站,手動打包、部署,幾乎同樣的事情做好幾遍,差別可能只在連的伺服器 IP 不一樣、連的資料庫不一樣,又,大部分的 RD 沒有 staging, production 的權限,似乎是上頭的策略認為要這麼做, staging, production 出問題,我們得到 IT 那裡借用他們電腦或是請他們幫忙查 log 、狀態, debug 假如耗費 30 分鐘,其實花的 man hour 可能 2 x 0.5 = 1 或 3 x 0.5 = 1.5

相對的,想起在前公司的時候,因為組織很小,只有幾個人,還有老闆本身也是技術、 IT 出身,對工具非常開放,常常對我們直說:「覺得有什麼好工具,可以提出來,大家覺得好用、可以用,我就出錢買。」而且不是說說而已,確認要採用一個新工具之後的一兩個小時內,我們就會開始實際使用它來合作、做事,可以明顯、明確的感受到大家有想要整個團隊更好的意識,並且實際行動

上頭的人對形塑團隊或公司的文化其實有很大的影響力,如果上面的人只是說說、說一套做一套,或是表面上鼓勵大家提出建議,實際上是在背後黑人或是根本完全沒效果,久而久之團隊就像一攤死水、聽命行事的 walking dead 了