文件驅動開發 ▪️小海報 51
最近開始嘗試文件驅動開發這件事,因為這陣子在透過 AI 在開發產品的過程中,發現 AI 很適合幫忙寫文件,我後來甚至開始在文件裡面用 Markdown 寫待辦事項,請 AI 開始依照文件裡面的待辦事項進行開發,開發完自己打勾
嗨!大家新年快樂,上週因爲過年所以暫停了一期小海報,不過過年我也是幾乎沒有休息,幾乎所有的時間都用在產品開發,但過程中為了讓服務上線其實碰到許多部署的問題,覺得痛苦 …
因為想要好好利用 AWS 提供的 5,000 USD 的點數,我試過了 Dokploy, Dokku 來進行部署,都沒有像 Heroku 那樣方便好用的,都差了一點,最後自己寫 fabric,比起透過 Docker 部署,整體速度大概快上 50 倍。
今年有一個計劃是,打算接下來要一個月發布一個產品,雖然一月已經過了,但其實我有偷偷的發布了 CreatorSpark 了。
CreatorSpark 上線
其實在 1/31 我已經有先發送了有填寫 email 要收取 CreatorSpark 上線通知的網友,我就先當作 1 月已經上線了 CreatorSpark 了,但其實我過年前後都還是因為 閃亮事物症候群 發作,都在開發新計劃 (笑)
如果對 CreatorSpark 有興趣的朋友請往這邊走,目前都還不需要付費就可以直接玩喔!
新計劃 Transivox
過年前一個禮拜就很認真的在開發這個新東西,但其實也不是新的,其實我早在去年 9 月就開啟了這個原本叫做 cast2txt 的專案,顧名思義就是把 podcast 變成文字的意思,因為現在都在家,沒有所謂的通勤時間,沒有時段適合聽 Podcast 了。
當時市面上還沒有可以幫我聽 podcast 做總結給我的服務,就打算開發來自己用,不過後來因為專心開發 CreatorSpark 而暫時停擺。
不過因為前陣子
發布新產品 WisePurr ,WisePurr 是一個強大的 Prompt,給他逐字稿就能夠提供精準的摘要重點,就讓我想起了我的 cast2txt 這個專案,所以在過年前一週我就突然就開始做了起來,還特地的開發了 youtube 轉譯的功能。但最近在弄上線的時候才發現,上正式機就 youtube 擋掉了,我只好暫時閹割 youtube 轉譯的功能 (哭欸
不過我已經上線測試啦,預計 2 個禮拜內丟出來!
Launch Tomorrow v2.0
這本是
上週推薦的一本書,我已經買來開始看了,覺得很棒,是我現在很需要的一本書。而且光是看 Preface 跟 Reviews 就已經足夠有料了。我 3 月要開始的產品計劃,就要透過這樣子的方式來進行!
DeekSeek FAQ
這陣子 DeepSeek 的討論度非常高,推薦看看這篇翻譯。
接下來是今天的主題了
文件驅動開發
最近開始嘗試文件驅動開發這件事,因為這陣子在透過 AI 在開發產品的過程中,發現 AI 很適合幫忙寫文件,所以我就開始請他把目前的專案讀過一遍之後,然後幫我寫一份產品說明文件、技術說明文件,透過這樣的方式可以很快的了解目前的專案狀態。
後續的開發也能因為這些文件讓 AI 的開發方向更加的明確。
我後來甚至開始在文件裡面用 Markdown 寫待辦事項,請 AI 開始依照待辦事項進行開發,開發完自己打勾。
可能也因為這樣,AI 能夠確認規格,所以自己刪除程式碼的機率開始減少。透過文件來輔助進行開發,甚至能夠讓 AI agent 目標更明確的自行運作,這個就是我今天要講的文件驅動開發。
文件的重要性越來越高
過去有碰過接手別人既有的專案的時候,其實最擔心的就是對於這個專案的不了解。
但現在這個問題整個變小了,因為請 AI 直接產出文件就能夠快速的了解這個專案的整個組成,而且單純只輸出文字不夠,直接請 AI 畫流程圖給你。
例如透過 rst / sphinx 產文件來透過 mermaid 畫流程圖,你就可以很快的能夠對新的專案快速的建立概觀。(如果公司允許用 AI 的話)
專案認知的模糊程度
不過現在有一個很奇妙的狀態就是,我們通常開發自己的專案的時候都會很清楚有什麼東西在哪裡,直到團隊變大了之後,大家對於專案的清晰程度才會開始慢慢模糊。
但現在透過 AI 開發,可能一開始就是模糊的,因為自己基本上沒有寫程式。
而且現在透過 AI 開發的速度可能有 10 倍那麼快,可能經過一個禮拜的開發迭代,你可能就對專案開始模糊了。
所以文件的存在越來越重要。
確認複雜的流程跟邏輯
在跟 AI 對談的時候,有時候碰到複雜的流程或是邏輯時,記得請 AI 輸出流程圖,特別是你自己不想要思考的時候 (喂)
用下圖來舉例,這個是我想要開發一個能夠根據轉檔任務來自動開啟 EC2 的 GPU spot instance 進行 whisper 轉檔的機制,因為在跟 AI 對談的過程中我覺得沒辦法清楚理解他的想法時,我就會請 AI 寫文件、畫流程圖給我,讓我能夠快速理解。
後續我也能夠直接調整文件,輸出我的想法後,再請 AI 讀取。
為什麼文件重要
跨 Session 的 Context
我們在跟 AI 對談的時候,會希望每次的對談的 Session 能夠聚焦單一目標,只補充當下目標相關的 Context,來拿到想要的產出。
也因為想要確保 AI 不會搞混目的,有新的任務就會開啟新的 Session 來討論新的東西。
但每次在開新的 Session,開啟新的開發任務的時候就有可能得再次完整補充其他 Session 說過的事情,久了其實有點累,所以我開始請 AI 寫文件,讓跨 Session 之間可以有一個統一標準或是根據,能夠把 Context 留下來。
像是下面這樣:
我們跟 AI 之間的認知是否有對準?
在跟 AI 進行開發的時候,除了 AI 有時會無預警刪除程式碼之外,還有一個很明顯的問題就是 UI 設計一致性的問題。
AI 可能每次的設計風格可能都不太一樣,即便是修改同一個介面,我後來想到,當 AI 生出一個不錯的設計的時候,我就會請他把這個設計風格寫到 style_guides.md 裡面,接著在 .cursorrules 裡面請 AI 在處理網頁的時候都參考這份文件,我發現後續的設計風格就會開始比較一致。
透過 AI 寫下來的文件,也才有比較可能對準我們跟 AI 之間的認知。
結語
這個時候我覺上一期小海報提到的 未來產品經理的超能力 就更加重要了。
寫下初步的文件,接著透過跟 AI 對談來把文件完善,制訂開發計畫,從要用什麼東西開發? 用什麼設計? 透過跟 AI 對談把規格文件都生出來,然後開始生 mockup,然後執行設計規格,剩下的就都交給 AI 實作了。
我覺得應該已經有好一些人開始這樣做了,我搞不好已經是落伍的人了,有什麼更好的方法想要推薦給我的嗎? 麻煩回信跟我說,謝謝!
記得幫我按讚加分享,也記得請我喝杯咖啡,謝謝大家,我們下週見!