AI 世代,有了 Harness,還需要軟體工程嗎?
這是一份依投影片文字與頁序整理的逐字稿式版本;原始來源是 Marp 投影片,並非錄音逐字轉寫。 來源:https://denny.one/Harness-Engineering/ 作者:Denny Huang 活動:SITCON 夏令營 2026
00:00|封面
AI 世代,有了 Harness,還需要軟體工程嗎? Denny Huang 2026/06/18
00:30|連結
https://denny.one/Harness-Engineering/
01:00|講者背景
Denny Huang SITCON 學生計算機年會 共同發起人 COSCUP 開源人年會 長期志工 HITCON 台灣駭客年會 長期志工 GDG Cloud Taipei Organizer 曾任雷亞遊戲(Rayark Inc.) 資料分析團隊主管 About me
01:30|教學生軟體開發生命週期?
教學生軟體開發生命週期? SITCON 夏令營 2026
02:00|過去的軟體工程課程
過去的軟體工程課程 學習者技術能力有限,無法參與真實專案 照本宣科 UML 畫到飽 專注於文件產出,難以理解文件的使用者和目的 難以重現真實專案的規模、演化與人際協作
02:30|AI 時代怎麼教?
AI 時代怎麼教? 只給痛點,用 Coding Agent 直接開工,體驗沒有軟體工程方法的混沌 引導學生反思過程,從而認識軟體工程方法的價值 AI 如何在各軟體開發生命週期中發揮作用 完成開發,繼續添加需求,體驗軟體的演化 組別交換專案,繼續添加功能;體驗軟體專案的人際協作
03:00|實際 Agentic Coding
實際 Agentic Coding,體驗到軟體工程方法的價值
03:30|真實的痛點
真實的痛點 身為活動主辦者,尋找合適照片非常費時費心 使用情境:志工招募貼文
04:00|使用情境:展示會議廳空間
使用情境:展示會議廳空間
04:30|使用情境:可分享連結
使用情境: 可分享連結 利於挑選照片討論
05:00|SITCON Flickr Photo Finder
SITCON Flickr Photo Finder
05:30|由 AI 標記照片
由 AI 標記照片
06:00|軟體開發生命週期(SDLC)
軟體開發生命週期(SDLC) Request and Analysis Phase(需求與分析階段) Design Phase(設計階段) Coding Phase (撰寫階段) Testing Phase(測試階段) Maintenance Phase (維護階段)
06:30|DevOps Infinity Loop
DevOps Infinity Loop 改作自 Devops-toolchain.svg ,原作者 Kharnagy,來源 Wikimedia Commons,採 CC BY-SA 4.0 授權;由 Denny Huang 修改並翻譯,本改作同樣採 CC BY-SA 4.0。
07:00|專案開發狀況
專案開發狀況
07:30|Continuous Integration
Continuous Integration 持續整合 把軟體生命週期中的「應該要做」變成可重複的回饋機制
08:00|CI 不只是 Testing
CI 不只是 Testing CI 常被理解成: push code run tests deploy 但在 AI Native 開發中,CI 更像是跨階段的 Harness: 把人的判斷、AI 的產出、系統的邊界,轉成可檢查的工程契約。
08:30|從五階段看 CI Harness
從五階段看 CI Harness SDLC 階段 Harness 問題 Request and Analysis 我們還在解同一個問題嗎? Design 邊界與契約還成立嗎? Coding 新變更能被穩定接住嗎? Testing 產出能被使用與採用嗎? Maintenance 未來的人能安全延續嗎? 延伸閱讀: project-check.mjs
09:00|Request and Analysis Phase
Request and Analysis Phase 需求與分析階段 需求階段的 Harness,不是幫你寫需求。 它是在保護「問題定義」: 文件入口沒有漂移,文件是給對的閱讀者 AGENTS.md README.md docs/ 用語沒有模糊化 重要決策有位置可追蹤 後來的人知道當初為什麼這樣做 ADR 架構決策記錄(Architectural Decision Records)
09:30|Tips:找 sub-agents 做使用者訪談
Tips:找 sub-agents 做使用者訪談
10:00|Design Phase
Design Phase 設計階段 設計階段的 Harness,是把架構判斷變成可檢查邊界。 設計問題 Harness 形式 誰是資料權威? schema / validation 哪些值跨模組共用? shared value governance 哪些東西可以部署? artifact boundary 哪些行為不能放到公開端? permission / runtime boundary
10:30|Tips:善用 Mermaid
Tips:善用 Mermaid 建立流程圖,幫助人類與 AI 共同理解 flowchart LR Flickr[Flickr
照片與相簿來源] Sheets[Google Sheets
正式照片索引] AppsScript[Apps Script
Sheets 內維護輔助] Pages[公開搜尋前端
唯讀找圖介面] AI[AI 助手與 agent
找圖與標記候選] Users[籌備團隊與公開使用者] subgraph Project[這個專案提供的能力] Rules[資料規則
schema / taxonomy / 欄位文件] Intake[匯入與同步工具
相簿盤點 / intake / validation] Interfaces[使用介面原始碼
GitHub Pages / Apps Script] AIGuide[AI 輔助流程
prompt / run artifact / report] end Flickr —>|相簿與照片 metadata| Intake Rules —> Intake Intake —>|候選列與同步計畫| Sheets Interfaces —>|clasp deploy| AppsScript Interfaces —>|GitHub Actions artifact| Pages Rules —> AppsScript AppsScript —>|提示與校對| Sheets Sheets —>|build-time 公開 CSV / static artifact| Pages Sheets —>|公開 photos CSV / Sheet| AI AIGuide —>|輸入規則與報表| AI AI —>|找圖建議或候選標註| Users Pages —>|搜尋與篩選| Users Users —>|確認後編輯| Sheets
11:00|Tips:善用 Mermaid(續)
Tips:善用 Mermaid 建立流程圖,幫助人類與 AI 共同理解
11:30|Coding Phase
Coding Phase 撰寫階段 讓變更進入系統時不靠個人環境運氣。 固定執行環境 固定套件管理工具 固定依賴版本解析 先抓語法錯誤與載入階段錯誤 CLI 至少要能說明自己怎麼使用
12:00|Testing Phase
Testing Phase 測試階段 有了 AI 後,測試更像是在替產出建立「採用邊界」: Harness 問題 這個專案中的意義 這份資料能不能被系統理解? 有資料格式規則與受控字彙 AI 產出的候選能不能進入人工審查? 有品質關卡與審查警訊 哪些檢查不該自動跑? 需要權限、會寫入遠端、成本高的流程要停下來 好的測試 Harness 會同時定義:什麼可以自動通過,什麼必須停下來讓人判斷。
12:30|案例:統計方法抓出不合理的照片中人數
案例:統計方法抓出不合理的照片中人數
13:00|從統計訊號到審查行動
從統計訊號到審查行動 統計訊號 Harness 反應 整批中段值異常集中 懷疑偷懶或模板化判斷 某相簿特別集中 優先抽查該使用情境 某批標記特別集中 檢查標記方式是否偏掉 異常群已定位 產生優先審查清單給人工確認
13:30|Maintenance Phase
Maintenance Phase 維護階段 維護階段的 Harness,是把未來會反覆發生的維護行為流程化。 維護行為 Harness 化之後 依賴更新 有固定節奏,而不是想起來才做 變更合併 先驗證,再進主線 正式寫入 試跑、審查、寫入分離 權限交接 有清單、驗證順序與疑難排解入口
14:00|所以 AI 時代還要教 SDLC 嗎?
所以 AI 時代還要教 SDLC 嗎? 要,而且更需要。 因為 AI 讓產出變快,也讓判斷、邊界、交接、驗證變得更重要。
14:30|Q & A
Q & A
15:00|Thanks for listening
Thanks for listening 本投影片採用 創用 CC「姓名標示-相同方式分享 4.0 國際」授權條款 釋出 Marp 製作