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 製作