天天看點

曆經 64 次更新,開發者倡議“産品别在周五上線”!惹争議後,其 AI 工具意外爆火,結果崩了

作者:CSDN
曆經 64 次更新,開發者倡議“産品别在周五上線”!惹争議後,其 AI 工具意外爆火,結果崩了

整理 | 鄭麗媛

出品 | CSDN(ID:CSDNnews)

相信從事網際網路産品開發的程式員,對于項目上線這件事并不陌生,畢竟産品需要不斷疊代更新。是以,上線這件事就顯得較為隆重:研發人員務必在場,測試團隊也少不了,運維團隊更是重要,還有産品經理、設計人員等也需要對上線内容進行驗收……

考慮到整個操作過程及後續工作的複雜性,每家公司對産品上線必然有相應的制度規範,一般來說也有固定的上線日期,可能是每周三,也可能是每周五——那麼提問:身為一名産品開發的程式員,你參與的項目一般是周幾上線?

針對這個問題,近日 AI 測試工具 Octomind 的首席工程師發出倡議:“絕對不要在周五釋出更新!”而這個觀點,很快就引起了極大的關注和讨論。

曆經 64 次更新,開發者倡議“産品别在周五上線”!惹争議後,其 AI 工具意外爆火,結果崩了
曆經 64 次更新,開發者倡議“産品别在周五上線”!惹争議後,其 AI 工具意外爆火,結果崩了

頗受歡迎的 Octomind 已更新 64 次,其中 9 次在周五

在進入正題前,我們先大緻了解一下 Octomind。這是一款能自動維護和生成的基于浏覽器的端到端測試工具,可內建到 Github Actions,Azure DevOps 等。從 Octomind 官網可以看到,其主打的就是解放工程師的測試時間:“工程師們最希望少花時間做的第一件事是什麼?測試。不要把時間浪費在錯誤的測試上,請直接開發建構。”

根據官網介紹,使用者隻需給 Octomind 提供一個 URL,它就能利用 AI 發現、執行并維護其 E2E(end to end,端到端)測試。所謂 E2E 測試,就是模拟真實使用者的操作流程,從使用者界面開始,經過各個層級的系統元件直到最終輸出,以此驗證整個系統在各個環節的功能和性能是否合格,確定産品的品質和穩定性。

不過正如 Octomind 所說,E2E 測試存在一個重大的信任問題,即代碼 Bug 并不是導緻測試失敗的唯一原因:第三方依賴性、時間問題、随機性、競争條件等等,可能都會導緻測試結果不穩定、不可靠。

基于此,Octomind 誕生了,它旨在幫開發者節省“因調試完全正常的代碼而浪費的”寶貴時間;還即插即用,适用于 CI/CD 管道,可将測試結果及時回報給使用者,同時提供詳細資訊便于使用者檢查、複盤和調試。

憑借以上特性,Octomind 收獲了業界人士的不少好評:

  • Aimino 聯合創始人兼首席技術官 Duc Tam Nguyen 表示:“有了 Octomind 後,就像我的團隊中多了兩個人在提供高品質的測試用例,它比我們嘗試過的任何其他工具都要好用”;
  • Best Parents 聯合創始人兼首席技術官 Aditya Advani 也對 Octomind 稱贊道:“作為一個早期階段的消費市場,我們需要保持高品質和高速度。幸運的是,Octomind 出現了。此刻,一位快樂的工程上司豎起了大拇指。”
曆經 64 次更新,開發者倡議“産品别在周五上線”!惹争議後,其 AI 工具意外爆火,結果崩了

據統計,頗受歡迎的 Octomind 釋出至今年 11 月已經更新疊代了 64 次,其中有 9 次都在周五——然而,近來 Octomind 首席工程師 Daniel Draper 寫了一篇部落格,标題是“絕對不要在周五釋出更新”。

曆經 64 次更新,開發者倡議“産品别在周五上線”!惹争議後,其 AI 工具意外爆火,結果崩了

拒絕在周五上線,意味着代碼品質不夠好?

Daniel Draper 在部落格中提到,在軟體開發行業中,許多程式員都持有一種共同觀點,即周五不宜釋出軟體:周五的最後期限通常會促使他們急于完成任務,可能會在沒有充分檢查的情況下強行釋出,進而導緻一些問題。

  • 品質受損:傾向于省略一些看似不重要的測試或忽略測試失敗的結果,導緻釋出的版本不穩定。
  • 周末加班:如果出了問題,開發人員不得不放棄周末時間來修複問題,進而導緻倦怠和不滿。
  • 遺忘細節:開發人員的工作重心轉移後,可能無法回憶起上線時的所有細節,故障排除變得更加困難。

但是,知名計算機作家 Allen Holub 對此持相反意見:“如果你每天釋出幾次,使延遲時間很小,釋出時不允許出現已知錯誤,有大量的測試(大部分是自動測試),在編寫代碼時由多人稽核,那麼在周五釋出的風險基本上為零。”

曆經 64 次更新,開發者倡議“産品别在周五上線”!惹争議後,其 AI 工具意外爆火,結果崩了

甚至,此前 Allen Holub 還曾直白表示:如果你拒絕在周五釋出代碼,那麼你的代碼品質肯定不夠好——對于這個說法,Daniel Draper 有不同看法:“我不同意 Allen 關于‘不在周五發行’就意味着品質不高的說法。”

事實上在部落格開頭,Daniel Draper 就解釋道,其實他們團隊本身并不拒絕周五釋出更新,隻是相較之下更為重視開發人員的休息時間。

如上文所說,他們團隊曾 9 次在周五釋出産品更新,但 Bug 總是不期然地出現,根本不管是否是工作日。而他所提議的“不要在周五上線”,隻是出于珍惜自己和其他工程師的周末:“從根本上說,哪天上線隻是對團隊設定期望值的問題。那麼如果有機會減少周末加班復原或修複 Bug 的可能性,無論機會有多小,我都會抓住。”

Daniel Draper 還補充道,在産品上線之前,當然應該發現并修複 Bug,但沒人能百分之百保證沒有 Bug,是以“如果沒有業務一定要周五釋出,我認為把更大的版本推到周一上線也沒什麼問題”。

曆經 64 次更新,開發者倡議“産品别在周五上線”!惹争議後,其 AI 工具意外爆火,結果崩了

引起火爆關注,Octomind 一度崩掉

Daniel Draper 的這篇部落格在 Reddit 上吸引了諸多開發者的關注,并激起了許多人的共鳴:

  • “說得沒錯,Bug 在任何時候都可能發生,但如果大機率發生在周五,對團隊來說無疑是雪上加霜。我就是這樣,我一般都會避免在下班前上線産品,因為萬一出了什麼問題,處理起來會很頭疼。”
  • “正因如此,我們團隊一般不在周五或工作日下午 3 點後釋出産品。因為我們的經驗是,釋出後通常隻會出現兩種問題:一是立即崩潰,然後復原;二是幾個小時甚至一天内都很正常,但之後會發現性能下降了或部分資料損壞了。是以,最好不要在下班前或周五上線。”
  • “是以說,整個遊戲行業在周二釋出/更新是有原因的。周一要確定上周制作的所有内容都井然有序,随時可以推送。然後周二釋出,之後到周五都可以進行 Bug 修複,幾乎無需在周末操心。”

不過也有部分人指出,某些産品在周五上線較為合适,例如 SaaS 和遊戲:

  • “很多專注于大型業務的 SaaS 供應商會在周五釋出軟體,因為要迎合朝九晚五的人群,而這些人通常不會在周末工作。我甯願在交易量少的時候處理影響交易的 Bug,也不想在交易量大的時候處理。”
  • “我是認真的,唯一應該考慮在周五釋出任何更新的軟體行業是遊戲行業,因為他們的客戶周末休息。一般來說,他們最開心的時候是整個周末都能玩到新遊戲。”

另外還有開發者建議,産品上線的最佳時間是周三:“一般來說,周一雖然大家都在辦公室,但往往心思還沒從周末回來,而這種狀态可能會延續要周二。是以在我看來,周三是推出産品的最佳日期,那時工程師們都已經進入了狀态,也還有周四周五可以去修複 Bug。”

最後,Daniel Draper 這篇部落格的意外火爆傳播,同時讓許多人對 AI 測試工具 Octomind 也産生了關注,并嘗試注冊使用——結果,由于注冊的人數過多,對其在雲中運作的後端伺服器造成的負載太大,Octomind 崩掉了。

當然,截至目前 Octomind 已經修複了這個問題,而他們對此也得出了一個教訓:“我們盡量不在周五釋出,也許我們也不應該釋出那篇部落格。”

那麼你所在的團隊一般是周幾進行産品上線,以及對于産品上線時間,你又有什麼看法呢?

參考連結:

https://www.octomind.dev/blog/we-went-viral-with-a-broken-app

https://www.reddit.com/r/programming/comments/18dprj9/never_ship_on_fridays/

曆經 64 次更新,開發者倡議“産品别在周五上線”!惹争議後,其 AI 工具意外爆火,結果崩了
曆經 64 次更新,開發者倡議“産品别在周五上線”!惹争議後,其 AI 工具意外爆火,結果崩了

繼續閱讀