從一個小問題開始:我與 ChatGPT 的實作紀錄
(本文內容為與 ChatGPT(GPT-4o 模型)協作完成。透過反覆對話、修訂與實作紀錄共同整理)
在我剛開始使用 ChatGPT 的時候,其實只是把它當成一個輔助發想的工具。像是設定研習主題、構思活動架構、整理文字內容等,這些是我本來就熟悉的工作,而 ChatGPT 能幫我快速補齊空白、提供不同角度的建議。那時的互動,偏向單向地請它協助,而我則是做判斷與挑選。
轉變的起點,發生在某次我想重新規劃我們團隊的任務管理方式。我當時並沒有特別對 ChatGPT 說明過去使用過什麼工具,也沒有描述團隊的背景脈絡,只是單純地問了一句:「如果我要用 Google Sheet 來管理專案任務,我可以整合google 哪些工具使用?」
ChatGPT 列出洋洋灑灑的一長串,有些一如預期的例如 Google Drive、calendar、mail。但在這些當中它提到,可以透過 Google Apps Script 來進行同步事項,例如寄發任務提醒信件。Apps Script?這個工具我之前沒接觸過,但聽起來正好能解決我實際工作中提醒同仁任務時程的痛點。
先回頭說:為什麼是 Google Sheet?
會選擇回到 Google Sheet,是因為我們團隊過去已經試過幾種專案管理工具。Trello 雖然操作直覺,但它的卡片式介面不容易看到專案整體排程,也難以視覺化呈現時間軸進度。後來我們轉向 Notion,它的功能非常強大、彈性高,但實際推行後發現:對團隊成員來說,操作門檻偏高,主動查看或更新資訊的意願也有限。
「與其導入一個大家不熟悉的工具,不如回到我們日常已經在使用的 Google 生態系中。」當時同仁對於Google 各項工具操作已經習以為常,這個思考讓我決定以 Google Sheet 作為任務管理的起點,再嘗試用各種方法去補齊它的限制。
故事繼續,我部署 App Script 的第一次
在 ChatGPT 提出可以透過 Google Apps Script 實現信件寄發提醒功能之後,我們就動手實作。我照著它一步步的指引操作:先打開 Google Sheet,點選「擴充功能」進入 Apps Script 編輯器,把它給我的程式碼貼上去,再按照它的說明進行授權設定與部署。
當時我還對這些詞彙有點陌生,像是「觸發器」、「執行函式」、「部署為 Web 應用程式」這些流程,我都是邊學邊問它。它沒有一下子丟一整頁說明給我,而是根據我每一步的進度給予下一步指令。這種「一問一答式的技術協作」讓我覺得不是在看文件,而是在跟一個知道我在做什麼的夥伴互動。
我還記得,我們最後設定了一個小小的測試流程,讓系統根據 sheet 上面設定的專案起迄日期寄出一封提醒信給我自己。當我看到桌面右下角彈出的信件提醒訊息,而後打開信箱,看到那封真的從 Google Sheet 觸發寄出的郵件時,我心裡冒出一種:「原來我也能做出這種東西」的驚喜。那不只是功能被實現了,更是一種「自己能用 AI 完成自動化」的初次體驗。
(接著我馬上訂閱付費版本了!)
開始拋出想像:讓資訊不只停留在表格裡
完成提醒功能後,我開始思考:「我們是不是還可以再往前走一步?」團隊在執行任務時,常常需要補充背景討論、過程紀錄與中期調整等的文字細節,但 Google Sheet 的表格結構無法有效承載這些內容。我構想:希望每個任務連結一份 Google 文件,能分階段記錄相關說明。
我把這個想法交給 ChatGPT,我們很快做出能自動產生、命名並連結多份 Google 文件的程式碼。這讓我們得以結合結構化管理與自由書寫空間,工作流程變得更完整。
也回應日常需求:同步日曆
除了表格與文件的整合,我也同時思考一件事:我們團隊中有不少同事習慣使用 Google Calendar 查閱自己的工作排程,而不是回頭打開 Google Sheet 看任務表。如果能將任務的起始與截止時間直接同步到 Google 日曆上,就能更主動地把專案資訊推送到大家日常的工作視角中吧。
我把這個想法丟給 ChatGPT,它回應說這個一樣可以透過 Apps Script 來實作。於是我們便開始嘗試進行 Google Sheet 與 Google Calendar 的整合。
挫折來了,從錯誤中看見「知識邊界」
共創的過程不總是順利。當我開始部署並執行同步任務到日曆時,發現原本的事件會被不斷重複新增,導致 Google Calendar 上出現大量重複事件。
直覺反射,我知道這是需求敘述不夠完整造成的問題。拿出 PM 的訓練,我對 ChatGPT 描述需求流程與例外情形,但即使後來越寫越清楚,錯誤仍會以不同形式出現。每解決一個癥結點,另一個又會冒出。
我開始思考:是我需求的定義還不夠精確?還是對這個語言或工具的理解深度仍有限?或是,可能因為我不了解 Apps Script 的特性與限制,錯把一些其實不支援的功能,當作可以輕易實現的項目?因此即使我提供條件明確的需求,它生成的程式碼仍可能出現邏輯錯誤,或無法完整處理例外情況?
這一刻,我知道操作 ChatGPT 的極限,也看見我自己的知識邊界。雖然我在日常工作中習慣進行功能測試,也懂得用驗證邏輯排除 bug,但當錯誤來自程式碼底層時,我無法像專業工程師那樣快速定位問題,只能仰賴反覆測試與語言上的推理,去「猜出」可能的癥結。
最後,我使用了笨拙但能解決問題的邏輯來編寫:刪除原有日曆項目並新增同一條。既確保資料不重複,也確保能更新任務在 sheet 中所編輯的細節。而這就是那種工程師會皺著眉頭說:「拜託,這也太耗系統資源了吧」的笨方法。
是啊,很笨,但不出錯。這是我在這個級別能想到的問題解決方式了。
舊問題、新工具,還有⋯重新認識自己!
我提出的是舊問題,但 ChatGPT 給我的,卻是我原本不知道的新工具,並且提供我一個可以獨自實現的機會。
我是個熱衷 Google 搜尋的人,但有些工具我真的沒聽過,也不可能用關鍵字去搜尋它。ChatGPT 協助我的地方,不只是提供答案,而是在理解我語境的基礎上,主動補出我腦中沒想過的解法,這是最吸引我的部分。
這讓我不只是「查詢」或「請教」,而是能與它進行實質的對話、調整、測試,直到功能完成。我也因此更快地試出原型,更直接地接近「有機會實現」的版本。
只是,當我一頭栽進解決日曆 bug 的那段時間,也曾一度誤以為,只要我再努力一點,就能靠自己把問題處理完。後來我才意識到,那其實已經是這個工具的極限,也可能是我這個角色的極限。
更糟糕的體驗是,我為了解 bug 而花掉太多時間,那段期間甚至進入一種耽溺的心流狀態。直到某個瞬間,我才猛然意識到:「這不是我現在該花力氣的事。」才把我從錯誤的投入中拉出來。這也是我後來決定放棄繼續找「正確的解法」,改採一種笨但能跑得動的原因。
畢竟,一個能解的 bug,不一定值得去解。尤其當我還有其他工作正在等著我完成的時候。
也是在這樣的反覆之中,我再次看見自己身為 PM 的角色價值,並不是來自於技術能力,而是來自於觀察問題、願意釐清、並試著解決它的意圖。這些能力或許不特別,但往往是讓事情真正開始發生的起點。
喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!