Agile Software Development
關於這個網站
2022/08/25 (重整內容)
2022/09/28 (更新內容)
2022/11/01 (更新內容)
這個教學網站是為了111學年度輔仁大學資訊管理學系碩士在職專班的「敏捷式軟體開發」課程。
第一週 09/06
課程介紹
了解敏捷開發的精神與實務。
以實作的方式體驗敏捷開發
Scrum
成績
小組專題實作 (50%)
個人 (50%)
閱讀心得 (30%)
任選期刊論文一篇、學位論文一篇、書籍一本
期末課程心得與建議 (10%)
課堂參與 (10%)
第二週 09/13
同學自我介紹、分組
構思問題 (Frame)
描繪及對照整體圖像 (Map the Big Picture)
Homework
了解使用者
第三週 09/20
第四週 09/27
第五週 10/04
切割功能
Clickup (專案管理工具)
第六週 10/11
第七週 10/18
第八週 10/25
Sprint Planning 1
第九週 11/01
第十週 11/08
第十一週 11/15
Sprint Review 1
Sprint Retrospective 1
Sprint Planning 2
第十二週 11/22
自動化測試
自動化測試 (deeplink分享)
第十三週 11/29
Software Quality 1
第十四週 12/06
Sprint Review 2
Sprint Retrospective 2
Sprint Planning 3
第十五週 12/13
Software Quality 2
第十六週 12/20
第十七週 12/27
Sprint Review 3
Sprint Retrospective 3
第十八週 01/03
自主學習週
線上期末回饋與分享
延伸閱讀
期刊/研討會論文 (大部分文章可以透過scholar.google.com找到,IEEE software比較新的論文可透過圖書館下載)
敏捷
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) 資訊系統持續整合之障礙:組織與技術觀點 輔仁大學資訊管理研究所碩士論文
書籍
Scrum
Kanban
範疇、需求
Mike Cohn (2004), User Stories Applied: For Agile Software Development (Mike Cohn的使用者故事:敏捷軟體開發應用之道 使用者故事志工群 譯)
測試
CI / CD / DevOps
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