本文嘗試敘述一個在開發(fā)中真實遇到的問題,希望讀者能參與討論并最終得出一個解決之道猪瞬。
一個電商網站的兩個子站站叼,分別由不同團隊負責司志,它們是 ECommerce Portal 電商網站,以及 Management Portal 運營管理網站忘苛。針對一組相關功能鸠踪,出于商務上的需要,Management 的開發(fā)進度與 ECommerce 通常并不一致花墩。
對于 ECommerce 不直接負責開發(fā)的服務悬秉、或者網站,他們通常會在本地機器中使用其他團隊提供的腳本部署一套“編譯”版本 M 供使用冰蘑,而針對自己直接負責開發(fā)的服務和泌,由于需要時常更新、預覽效果祠肥,則使用源碼版本 e 直接運行武氓、調試。相反地,Management 團隊在本地需要 Ecommerce 時也使用編譯好县恕、用于發(fā)布的 E东羹,而一般不需要使用源碼版本 e。
現在弱睦,ECommerce 需要增加一項功能百姓,即展示一件商品最近購買的人的名單。團隊需要確保在功能開發(fā)完成時况木,其結果要與 Management 已經實現的功能一致垒拢。在 Management 里,展示這個名單的功能在一周之前已經完成火惊。
此時求类,ECommerce 團隊在開發(fā)之前,需要更新本地用于日常預覽用的編譯版本 Management 網站 M屹耐。然后尸疆,接著 ECommerce 團隊發(fā)現自己已經超過兩周沒有更新本地的 M 了。
噩夢開始惶岭!
ECommerce 團隊嘗試打開 M 的 URL寿弱,頁面報錯:
? 問題:在類 xyz 里沒有 doSomething 方法
* 原因:Management 現在需要依賴新版本的運行時
> 解決:ECommerce 團隊升級了本地的運行時版本
: 時間:30 分鐘
x 風險:大
ECommerce 團隊嘗試打開 M 的 URL,頁面報錯:
? 問題:在 xx 表里缺少 abcd 列
* 原因:Management 更改了他們的數據庫結構(Schema)
> 解決:ECommerce 團隊使用 WiKi 里介紹的方法做了數據庫遷移
: 時間:5 分鐘
x 風險:小
ECommerce 團隊嘗試打開 M 的 URL按灶,頁面報錯:
? 問題:缺少配置項 abc
* 原因:Management 增加了一個必要的配置項症革,需要手動配置,但相關文檔還沒有來得及更新
> 解決:ECommerce 團隊嘗試查找 WiKi鸯旁,但沒有找到噪矛,只好去到另一個樓層找到 Management 團隊最終解決
: 時間:1 小時
x 風險:無
在 2 小時之后,E 團隊終于成功地再次打開了 M 系統(tǒng)铺罢,然后準備繼續(xù)工作艇挨。這還不是個案。有時候不太幸運的話韭赘,還可能遇到更多問題缩滨。比如 M 的部署腳本在本機無法正常工作,頁面報錯信息不夠明確無法及時發(fā)現或知曉發(fā)生了什么錯誤等泉瞻。
在實際開發(fā)實踐中楷怒,尤其當系統(tǒng)間的依賴關系變得更復雜,業(yè)務形態(tài)更多樣瓦灶,上述 E 團隊面臨的系列問題的復雜度,以及相應的成本抱完,將會隨著多個因素的變化而正相關地增長:
* M 的開發(fā)越活躍
* M 依賴的其他服務或網站越多
* M 業(yè)務與 E 業(yè)務越不相關
* M 團隊與 E 團隊的溝通越不及時流暢
此類問題隔一段時間就會發(fā)生一次贼陶,尤其對那些剛加入 E 團隊的對各方面不夠熟悉的成員來說,更是一個巨大的打擊。
不知各位有否在實踐中遇到此類問題碉怔,有何解決方法烘贴,歡迎探討。