Agile Software Development
關於這個網站
2021/10/05 (調整進度)
2021/10/26 (微調內容)
2021/11/27 (微調內容)
2021/12/17 (微調內容 & 增加連結)
這個教學網站是為了110學年度輔仁大學資訊管理學系碩士在職專班的「敏捷式軟體開發」課程。
第一週 9/20 (不上課)
第二週 9/27
課程介紹
了解敏捷開發的精神與實務。
以實作的方式體驗敏捷開發
成績
小組專題實作 (50%)
User story
雛型
個人 (50%)
課前閱讀心得 (20%)
任選四次課前閱讀,並於上課前繳交心得
期末課程心得與建議 (10%)
課堂參與 (20%)
第三週 10/4
同學自我介紹、分組
課前閱讀
Sutherland (2014) SCRUM: The Art of Doing Twice the Work in Half the Time (SCRUM:用一半的時間做兩倍的事)
Jeff Sutherland是Scrum之父
第四週 10/11 (不上課)
第五週 10/18
課前閱讀
The 2020 Scrum Guide (2020) / 2020 Scrum 指南 **
第六週 10/25
課前閱讀
李智樺 (2015) 精實開發與看板方法 (已絕版,請到圖書館借閱)
Hammarberg & Sundén (2014) Kanban in Action (看板實戰:用一張便利貼訓練出100分高效率工作團隊)
第七週 11/01
構思問題 (Frame)
課前閱讀
第八週 11/08
描繪及對照整體圖像 (Map the Big Picture)
第九週 11/15
第十週 11/22
第十一週 11/29
作業
課前閱讀
第十二週 12/06 (不上課)
第十三週 12/13
課前閱讀
第十四週 12/20
課前閱讀
第十五週 12/27
第十六週 01/03
進度報告
第十七週 01/10
進度報告
課前閱讀
Eric Evans(2003) Domain-Driven Design: Tackling Complexity in the Heart of Software (領域驅動設計:軟體核心複雜度的解決方法)
第十八週 01/17
自主學習週
線上期末回饋與分享
延伸閱讀
敏捷
蔡慧蘭 (2014) 敏捷軟體開發方法於台灣資訊服務業之研究 輔仁大學資訊管理研究所碩士在職專班論文
林于桔(2019) 應用敏捷開發法進行軟體專案管理之行動研究:以某組織委外開發 A 專案為例 輔仁大學資訊管理研究所碩士在職專班論文
範疇、需求
Mike Cohn (2004), User Stories Applied: For Agile Software Development (Mike Cohn的使用者故事:敏捷軟體開發應用之道 使用者故事志工群 譯)
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.
測試
廖家盛 (2015) 軟體測試應用現況之探討 輔仁大學資訊管理研究所碩士論文
CI / CD / DevOps
Kim, Behr, Spafford (2017), The Phoenix Project (鳳凰專案:看IT部門如何讓公司從谷底翻身的傳奇故事)
陳易昇 (2017) 資訊系統持續整合之障礙:組織與技術觀點 輔仁大學資訊管理研究所碩士論文
陳胤宏 (2014) 資訊系統持續整合應用之個案研究 輔仁大學資訊管理研究所碩士論文
Humble & Farley (2010), Continuous Delivery: Reliable software releases through build, test, and deployment automation (Continuous Delivery中文版:利用自動化的建置、測試與部署完美創造出可信賴的軟體發佈)
重構
Martin Fowler (2019), Refactoring, 2nd ed. (重構(第二版):改善既有程式的設計 賴屹民 譯)
第一版以java為範例,第二版改以Javascript為範例
資訊安全
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