2025/01/25 (更新)
2025/02/29 (更新)
2025/03/03 (更新)
2025/0419 (更新)
2025/05/14 (新增連結)
這個教學網站是為了113學年度輔仁大學資訊管理學系碩士在職專班的「敏捷式軟體開發」課程。
課程介紹
了解敏捷開發的精神與實務
以實作的方式體驗敏捷開發,將利用生成式人工智慧開發系統
學期專題
利用tronclass許願
利用React開發,資料庫利用firestore,部署到vercel
身為資管系的學生,我們需要什麼?
如果每年都留下一點成果,各位會想留下甚麼?
近幾年大學部專題成果
成績
小組專題實作 (70%)
老師給全組分數,個人分數根據組內互評計算
個人 (30%)
期末課程回饋與建議 (5%)
印象最深刻的課程內容或活動 (2%)
課程建議 (3%)
課堂參與 (10%)
期末全班互評
閱讀心得 (自主學習週作業) (15%)
期刊或學位論文一篇 (6%)
本論文的重點摘要 (1%)
本論文最有趣的發現 (2%)
本論文與本課程的關聯 (1%)
本論文與職場(或系統開發)的關聯 (2%)
書籍一本 (9%)
書籍的重點摘要 (2%)
本論文最有趣的發現 (3%)
本論文與本課程的關聯 (1%)
本論文與職場(或系統開發)的關聯 (3%)
Scrum簡介
組內角色分配 (PO、SM)
同學自我介紹
學期專題
我們看看許願池裡的願望,利用按讚,先選一些重要需求
Story name
As a (角色, who)
I want (需求, what)
so that (價值, why)
學期專案
我們來練習寫User Story吧~
確定開發工具 & 開github帳號
學期專案
我們來練習寫驗收條件吧~
開發準備工作
Git (持續性整合)
進階Web程式設計 / Next.js 14
Next開發筆記 (Next.js是基於React的框架) / 內容目前停留在Next.js 12 / 正在更新中
GitHub Copilot (吳濟聰老師寫的小筆記)
利用雲端工具(如:Clickup、Github) 進行專案管理
確定Product Goal
Sprint Planning 1
WHY:根據Product Goal,討論並確認Sprint Goal (PO)
WHAT:根據Sprint Goal產生Sprint backlog (PO)
HOW:討論這些工作項目如何完成 (SM)
利用雲端工具(如:Clickup、Github) 進行專案管理
組內評估
請大家討論期末分數的評估方式,並形成共識
下週先進行一次初步評估
每週持續依這個共識進行組內評估
學期專題
利用雲端工具(如:Clickup、Github project) 進行專案管理
Daily Scrum
利用15分鐘進行Daily Scrum
重點不在於進度報告,而是解決進度上的問題
需求上的疑惑
討論如何解決,而不是指責
請記錄遇到甚麼問題以及解決方案
是否需要進行優先順序、工作分配等調整?
請持續整理所有的會議紀錄 (Sprint Planning、Daily Scrum)
Scrum (自主學習)
從Scrum看時間管理與團隊整合 (deeplink分享)
The Scrum Guide
Git (自主學習)
git新手入門教學 (deeplink分享)
開發工具簡介 (自主學習)
學期專題
Daily Scrum
Definition of Done
產出物的完成標準 (不是需求)
例如,須通過哪些測試,何時需要程式審查 (code review)?
測試計畫
如何進行不同的測試? 甚麼樣的情況需要什麼樣的測試?
Sprint Review 1
Sprint Retrospective 1
Sprint 2工作分配、交接
Sprint Planning 2
利用Github project進行專案管理
為何敏捷強調Code refactoring?
CI: git+github
CD: 部署到github pages
學期專題
Daily Scrum
利用github project看一下進度
學期專題
Daily Scrum
Sprint Review 2
Sprint Retrospective 2
Sprint Planning 3
CI: git+github
branch
學期專題
Daily Scrum
為何敏捷強調Code refactoring?
學期專題
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