<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>Development｜林鼎淵 Dean Lin</title>
    <link>https://deanlin.net/tags/development/</link>
    <image><url>https://deanlin.net/images/author_hu_aa256fc934e9a932.jpg</url><title>Development｜林鼎淵 Dean Lin</title><link>https://deanlin.net/tags/development/</link><width>144</width><height>144</height></image>
    <description>林鼎淵（Dean Lin）的部落格：生成式 AI 企業內訓講師、外商資安公司軟體專家、7 本書作者。400 多篇文章用白話分享生成式 AI 實戰、Claude Code 與 Vibe Coding 教學、團隊合作與職場成長。</description>
    <generator>Hugo</generator>
    <language>zh-tw</language>
    <copyright>© 2020–2026 林鼎淵 Dean Lin</copyright>
    <lastBuildDate>Thu, 22 Feb 2024 13:57:29 +0800</lastBuildDate>
    <atom:link href="https://deanlin.net/tags/development/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>為什麼有些小變更需要等一段時間才能更新？ ── 工程師血淚史</title>
      <link>https://deanlin.net/blog/202402/why-small-changes-take-time/</link>
      <pubDate>Thu, 22 Feb 2024 13:57:29 +0800</pubDate>
      <guid>https://deanlin.net/blog/202402/why-small-changes-take-time/</guid>
      <dc:creator>林鼎淵</dc:creator>
      <category>團隊合作</category>
      <description>在工程師的職涯中，「修改文字」應該是我遇過最多次的需求變更。</description>
      <media:content url="https://deanlin.net/blog/202402/why-small-changes-take-time/images/why-small-changes-take-time-og_hu_401252e20ce381df.jpg" medium="image" type="image/jpeg" width="1200" height="675" />
      <content:encoded><![CDATA[<p>在工程師的職涯中，「修改文字」應該是我遇過最多次的需求變更。</p>
<p>對不了解系統上線流程的人來說，他們會覺得這不過就是個小調整，為什麼每次都要我三催四請的？</p>
<p>對開發的工程師來說，他們會覺得這些人有完沒完啊？這些文字不是都已經討論過了，為什麼每隔幾天，甚至幾小時就要改一次？</p>
<p>實際上，改動文字對工程師來說可能花不到 1 分鐘的時間。</p>
<p>但對有上版流程的公司來說，每次更新可能都要花 1 小時以上（就算只有改一個字）。</p>
<p>今天這篇文章不是要談誰對誰錯，或是如何用技巧來迴避問題；而是要分享面對問題時，可以如何一步步「解決」他。</p>
<p>文章寫完後，感覺自己在寫技術發展史；另外，這是朋友向我分享的經驗，絕對不是我自己的。</p>
<p><img src="https://deanlin.net/blog/202402/why-small-changes-take-time/images/why-small-changes-take-time-01.webp" width="982" height="550" alt="為什麼有些小變更需要等一段時間才能更新？ ── 工程師血淚史（圖 1）" fetchpriority="high" decoding="async"></p>
<h2 id="石器時代寫死在程式碼">石器時代：寫死在程式碼<a class="h-anchor" href="#%e7%9f%b3%e5%99%a8%e6%99%82%e4%bb%a3%e5%af%ab%e6%ad%bb%e5%9c%a8%e7%a8%8b%e5%bc%8f%e7%a2%bc" aria-label="這個段落的連結"></a></h2>
<p>在最遠古的時期，網頁上的文字是寫死在程式碼的。</p>
<p>雖然直觀，但維護性極低。</p>
<p>因為面對「修改文字」的需求變更，開發人員可能改了 A 頁面，卻忘了還有 B、C、D 等頁面也用到一樣的詞彙。</p>
<hr>
<h2 id="大航海時代建立語言包維護">大航海時代：建立語言包維護<a class="h-anchor" href="#%e5%a4%a7%e8%88%aa%e6%b5%b7%e6%99%82%e4%bb%a3%e5%bb%ba%e7%ab%8b%e8%aa%9e%e8%a8%80%e5%8c%85%e7%b6%ad%e8%ad%b7" aria-label="這個段落的連結"></a></h2>
<p>如果系統只用同一種語言，那寫死在程式還勉強能維護。</p>
<p>但如果接下來要進軍國際市場，有中、日、英、法等多國語系的需求時，我想工程師就會崩潰了。</p>
<p>因為寫死在程式碼是完全行不通的，雖然很痛苦，但開發人員會需要把系統中所有的文字抽出來，建立「語言包」來維護才能解決這個需求。</p>
<p>這樣未來在面對「修改文字」的需求變更時，開發人員只要在單一檔案處理，透過模組化的管理，可以大幅降低遺漏的可能性。</p>
<hr>
<h2 id="工業時代提供-google-sheet-讓產品方填寫">工業時代：提供 Google Sheet 讓產品方填寫<a class="h-anchor" href="#%e5%b7%a5%e6%a5%ad%e6%99%82%e4%bb%a3%e6%8f%90%e4%be%9b-google-sheet-%e8%ae%93%e7%94%a2%e5%93%81%e6%96%b9%e5%a1%ab%e5%af%ab" aria-label="這個段落的連結"></a></h2>
<p>把文字集中到語言包維護後，其實面對修改文字的需求就很容易處理了。</p>
<p>但…接下來要討論的是「人」的問題。</p>
<p>因為產品方會一直看系統的文字，看著看著可能就覺得哪裡不順眼，不順眼就要改！</p>
<p>所以在新版本上線後，可能一週內會收到多次文字變更的需求。</p>
<p>在這樣的狀況下，現實生活中最容易遇到的就是「漏訊息」；當訊息有前後因果關係、重複資訊的時候，失誤在所難免。</p>
<p>為了減少產品方打擾 PM 與工程師的頻率，以及減少訊息遺漏的問題。</p>
<p>提供一份格式律定好的 Google Sheet，讓產品方在線上「修改文字」是一個不錯的方案。</p>
<p>這樣雙方約定一個時間一次性更新即可（會跑一個將 Google Sheet 轉成語言包的腳本）。</p>
<hr>
<h2 id="科技時代直接透過管理介面修改文字">科技時代：直接透過管理介面修改文字<a class="h-anchor" href="#%e7%a7%91%e6%8a%80%e6%99%82%e4%bb%a3%e7%9b%b4%e6%8e%a5%e9%80%8f%e9%81%8e%e7%ae%a1%e7%90%86%e4%bb%8b%e9%9d%a2%e4%bf%ae%e6%94%b9%e6%96%87%e5%ad%97" aria-label="這個段落的連結"></a></h2>
<p>改成 Google Sheet 後，雙方和平了好一段時間。</p>
<p>但還有一個問題，那就是這種修改沒有「即時性」。</p>
<p>因為程式每次上版都需要 Build Docker Image、跑回歸測試、上多個環境確認…</p>
<p>你可以理解為這些步驟至少要花費一小時以上的時間，而且會涉及到不同團隊的人（開發、QA、PM…）。</p>
<p>如果今天只是要修改文字，這樣的操作完全不符合成本效益。</p>
<p>所以目前的最新方案，就是在後台管理介面中，新增修改文字的功能，讓產品方可以依照自己的需求即時進行調整（搭配預覽頁）。</p>
<hr>
<h2 id="總結">總結<a class="h-anchor" href="#%e7%b8%bd%e7%b5%90" aria-label="這個段落的連結"></a></h2>
<p>修改文字是一個常見的需求變更，而且很多時候是在系統上線後才發生。</p>
<p>對工程師來說，修改文字這件事的確很簡單，但背後所需花費的時間與人力成本其實很高。</p>
<p>相信看完這篇文章後，大家可以理解為什麼有些小變更需要等一段時間才能更新。</p>
<p>儘管這篇不是純粹的技術文，但還是提醒一下讀者，每個時代的演進都需要不少時間成本。</p>
<p>這些改進所用到的技術並不困難，但問題在於：</p>
<ul>
<li>有足夠多的時間來做優化嗎？</li>
<li>這個問題真的有優化的必要性嗎？</li>
<li>優化帶來的效益符合成本嗎？</li>
</ul>
<p>因此千萬不要看完這篇文章後，就拿他去跟工程師吵架，我可不背這個黑鍋。</p>
<p>也許最後的方案在不久後會遇到其他挑戰，但這不就是「有問題我才有工作嗎？」</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
