2026/01/24 (更新)
這個教學網站是為了114學年度輔仁大學資訊管理學系碩士在職專班的「敏捷式軟體開發」課程。113學年度開始鼓勵同學利用Gen AI開發系統,114學年度正式介紹Spec Driven Development,並透過相關方法論開發系統。
Ep.1|還在手寫需求文件?ChatGPT 不夠精準?試試 #Cursor 跟 #AI 對談需求更精準 (17:47)
Spec-Driven Coding
傳統工具的限制:為什麼改用 Markdown
Cursor簡介
如何在一個既有的系統中寫需求文件
列出痛點
利用Ask模式跟Cursor對談需求,根據目前的PRD及痛點修改PRD,請cursor提問並回答問題
Ep.2|用 Spec Template 寫出結構化 PRD!用 Cursor 寫出需求、用戶故事與驗收條件 (18:19)
Spec-Driven Coding
利用Agent模式,並根據spec template寫需求文件 (一次一個user story)
spec template的介紹
Ep.3|Cursor 進階應用:幫你畫 Prototype、建立 Jira 卡片! (14:24)
Spec-Driven Coding
產生雛型
利用Jira MCP產生issue
Claude Cowork 太神了!不只會說還會做:高鐵報帳 PDF 小工具被取代+搭配自寫 System Prompt 更精準 (16:25)
課程介紹
成績
小組專題實作 (80%)
老師給全組分數,個人分數根據組內互評計算
個人 (20%)
期末課程回饋與建議 (5%)
印象最深刻的課程內容或活動 (2%)
課程建議 (3%)
課堂參與 (10%)
期末全班互評
閱讀心得 (自主學習週作業) (5%)
選擇本課程相關之特定領域相關論文一篇,並且生成式AI幫忙摘要 (1%)
論文的發現與實務(或課程中的)經驗的異同 (3%)
對未來相關研究的啟發 (1%)
如果要進行相關研究,我打算...
Scrum簡介
The Scrum Guide
從Scrum看時間管理與團隊整合 (deeplink分享)
同學自我介紹
學期專題
我們看看許願池裡的願望,利用按讚,先選一些重要需求
組內評估
請大家討論期末分數的評估方式,並形成共識
Story name
As a (角色, who)
I want (需求, what)
so that (價值, why)
學期專案
我們來練習寫User Story吧~
學期專案
我們來練習寫驗收條件吧~
準備工作
確定開發工具 & 開github帳號
Git (持續性整合)
GitHub Copilot (吳濟聰老師寫的小筆記)
利用Github進行專案管理
git新手入門教學 (deeplink分享)
利用Github project進行專案管理
確定Product Goal
Sprint Planning 1
WHY:根據Product Goal,討論並確認Sprint Goal (PO)
WHAT:根據Sprint Goal產生Sprint backlog (PO)
HOW:討論這些工作項目如何完成 (SM)
利用Github Project進行專案管理
CI: git+github
CD: 部署到github pages
學期專題
Daily Scrum
利用15分鐘進行Daily Scrum
重點不在於進度報告,而是解決進度上的問題
需求上的疑惑
討論如何解決,而不是指責
請記錄遇到甚麼問題以及解決方案
是否需要進行優先順序、工作分配等調整?
請持續整理所有的會議紀錄 (Sprint Planning、Daily Scrum)
CI: git+github
branch
學期專題
Daily Scrum
利用github project看一下進度
為何敏捷強調Code refactoring?
為何用Gen AI還需要Code refactoring?
Sprint Review 1
Sprint Retrospective 1
Sprint 2工作分配、交接
Sprint Planning 2
利用Github project進行專案管理
學期專題
Daily Scrum
Definition of Done
產出物的完成標準 (不是需求)
例如,須通過哪些測試,何時需要程式審查 (code review)?
測試計畫
如何進行不同的測試? 甚麼樣的情況需要什麼樣的測試?
學期專題
Daily Scrum
執行手動、自動測試
檢視測試結果
Sprint Review 2
Sprint Retrospective 2
Sprint Planning 3
學期專題
Daily Scrum
學期專題
Daily Scrum
Sprint Review 3
Sprint Retrospective 3
彈性多元學習週
自主閱讀心得 (自主學習週作業) (15%)
期刊或學位論文一篇 (6%)
書籍一本 (9%)
彈性多元學習週
自主閱讀心得 (自主學習週作業) (15%)
期刊或學位論文一篇 (6%)
書籍一本 (9%)
敏捷
Sutherland, J. (2001). Agile Can Scale: Inventing and Reinventing SCRUM in Five Companies, IT Journal, 14(12), 5-11
Scrum of scrums (IDX Systems)
Fairbanks, G. (2022). Two Kinds of Iteration, IEEE Software, 39(1), 114 - 117
design-focused iteration, code-focused iteration
需求
Gregory, S. (2022). What Does the Future Hold for Requirements Engineers?, IEEE Software, 39(4), 18-21
Kassab, M., Laplante, P. (2022). The Current and Evolving Landscape of Requirements Engineering in Practice, IEEE Software, 39(5), 76-83
測試
Ebert, C., Bajaj, D., Weyrich, M. (2022). Testing Software Systems, IEEE Software, 39(4), 8-17
CI / CD / DevOps
Roche, J. (2013). Adopting DevOps practices in quality assurance. Communications of the ACM, 56(11), 38-43.
Wahaballa, A., Wahballa, O., Abdellatief, M., Xiong, H., & Qin, Z. (2015, September). Toward unified DevOps model. 2015 6th IEEE international conference on software engineering and service science (ICSESS) (pp.211-214).
Jabbari, R., bin Ali, N., Petersen, K., & Tanveer, B. (2016, May). What is DevOps? A systematic mapping study on definitions and practices. Proceedings of the Scientific Workshop Proceedings of XP2016 (pp. 1-11).
Callanan, M., & Spillane, A. (2016). DevOps: making it easy to do the right thing. IEEE Software, 33(3), 53-59.
Ebert, C., Gallardo, G., Hernantes, J., & Serrano, N. (2016). DevOps. IEEE Software, 33(3), 94-100.
Dörnenburg, E. (2018). The path to devops. IEEE Software, 35(5), 71-75.
Gokarna, M., & Singh, R. (2021, February). DevOps: a historical review and future works. 2021 International Conference on Computing, Communication, and Intelligent Systems (ICCCIS) (pp. 366-371)
Beetz, F. Harrer, S. (2022). GitOps: The Evolution of DevOps?, IEEE Software, 39(4), 70-75
Khan, M. S., Khan, A. W., Khan, F., Khan, M. A., & Whangbo, T. K. (2022). Critical Challenges to Adopt DevOps Culture in Software Organizations: A Systematic Review. IEEE Access, 10, 14339-14349.
軟體開發
Ebert, C., Montenbruck, J. M. (2022). Industry Survey: The Magic Triangle of the New Normal, IEEE Software, 39(3), 12-20
quality, cost, time -> need for innovation, lack of competences, cost complexity trap
工具
Ebert, C., Avasthi, P. (2022). Technologies for Agile Teams, IEEE Software, 39(5), 21-27
敏捷
蔡慧蘭 (2014) 敏捷軟體開發方法於台灣資訊服務業之研究 輔仁大學資訊管理研究所碩士在職專班論文 **推薦**
林于桔(2019) 應用敏捷開發法進行軟體專案管理之行動研究:以某組織委外開發 A 專案為例 輔仁大學資訊管理研究所碩士在職專班論文 **推薦**
測試
廖家盛 (2015) 軟體測試應用現況之探討 輔仁大學資訊管理研究所碩士論文
CI / CD / DevOps
陳胤宏 (2014) 資訊系統持續整合應用之個案研究 輔仁大學資訊管理研究所碩士論文
陳易昇 (2017) 資訊系統持續整合之障礙:組織與技術觀點 輔仁大學資訊管理研究所碩士論文
可透過輔仁大學博碩士論文檢索系統取得電子檔
齊唯哲 (2023) DevOps運作現況之個案研究 輔仁大學資訊管理研究所碩士論文
敏捷
Martin, Robert C. (2020) Clean Agile : Back to Basics (Paperback) (無瑕的程式碼 敏捷篇:還原敏捷真實的面貌 盧國鳳、陳錦輝譯 博碩文化)
【還少一本書】Clean Agile (搞笑談軟工/Teddy Chen)
Scrum
Sutherland (2014) SCRUM: The Art of Doing Twice the Work in Half the Time (SCRUM:用一半的時間做兩倍的事) **推薦**
Jeff Sutherland是Scrum之父
Kanban
範疇、需求
Mike Cohn (2004), User Stories Applied: For Agile Software Development (Mike Cohn的使用者故事:敏捷軟體開發應用之道 使用者故事志工群 譯)
Smart, John Ferguson,Molak, Jan (2023) BDD in Action, Second Edition
測試
CI / CD / DevOps
Humble & Farley (2010), Continuous Delivery: Reliable software releases through build, test, and deployment automation (Continuous Delivery中文版:利用自動化的建置、測試與部署完美創造出可信賴的軟體發佈)
Kim, Behr, Spafford (2017), The Phoenix Project (鳳凰專案:看IT部門如何讓公司從谷底翻身的傳奇故事) **推薦**
Kim (2019). The Unicorn Project (獨角獸專案:看IT部門如何引領百年企業振衰起敝,重返榮耀) **推薦**
DDD
Eric Evans(2003) Domain-Driven Design: Tackling Complexity in the Heart of Software (領域驅動設計:軟體核心複雜度的解決方法)
重構
Martin Fowler (2019), Refactoring, 2nd ed. (重構(第二版):改善既有程式的設計 賴屹民 譯)
第一版以java為範例,第二版改以Javascript為範例
敏捷
Scrum
The 2020 Scrum Guide (2020) / 2020 Scrum 指南 **
Domain Driven Design
專案管理
Poorly defined (or, god willing, undefined!) outcome
Solving the wrong problem.
Not enough communication.
No plan or timeline.
Lack of accountability.
Moving the goalposts too often.
Inadequate documentation and tracking.
Badly defined system requirements.
Poor preparation.
Unrealistic expectations.
資訊安全
5 most important vulnerabilities every developer should be aware of
SQL Injection
Broken Authentication
XSS (Cross-Side-Scripting)
Using Web components with known vulnerabilities
Sensitive Data Exposue