Agile Software Development
關於這個網站
2020/03/07 (內容更新)
2020/06/04 (內容調整)
這個教學網站是為了108學年度輔仁大學資訊管理學系碩士在職專班的「敏捷式軟體開發」課程。
「敏捷式軟體開發」課程主要會涵蓋:
第一週
課程介紹
了解敏捷開發的精神與實務。
以實作的方式體驗敏捷開發。
成績
小組報告與作業 (80%)
個人課堂參與 (20%)
第二週
同學自我介紹 & 課程內容討論 (CI? CD? DevOps?)
第三週
Kanban vs. Scrum
第四週
eXtreme Programming vs. Scrum
第六週
User Story Mapping 1
概念介紹
工具評估 (各組報告)
Trello / Featuremap / CardBoard / Jira / Airtable (template: user story mapping)
第七週
User Story Mapping 2
第八週
User Story Mapping 3
第九週
User Story Mapping 4
第十週
作業
請大家安裝Katalon,練習寫BDD測試
第十一週
BDD測試結果報告
Behavior Driven Development & Test Driven Development
API Test
第十二週
Behavior Driven Development & Test Driven Development
Web UI Test
為了讓大家可以一起共同寫測試 (供大家參考)
大家先在gitlab上開一個帳號,組長在gitlab上開一個新專案
組長利用Share Project上傳專案到gitlab
大家在Katalon裡面Clone組長開好的專案
Katalon Studio integration with Git overview / Git Integration
Enable Git integration in Katalon Studio
In the Katalon Studio, open Window -> Katalon Studio Preferences -> Katalon -> Git. Once this option is enabled, you can use Git from the Katalon Studio main toolbar.
Choose Git Remote Repository (e.g. https://gitlab.com/benwu/katalon.git)
Clone Project
Commit
Create branch
Push to Git
Branch merge
Pull from Git
作業: 每個人都負責一個BDD feature及相對的Test (Web UI Test或API Test)
第十三週
第十四週
第十五週
Scrum review
BDD報告
每個人都負責一個BDD feature及相對的Test (Web UI Test或API Test)
第十六週
Scrum review
學期報告
請各組整理這學期的報告內容,從需求(user story、user story map、驗收條件)一直到測試,希望大家回頭去檢視整個流程,作為整個學期的結束,希望大家能從這些實作中了解敏捷。
第十七週
期末回饋與分享
第十八週
自主學習週
延伸閱讀
敏捷
Hammarberg & Sundén (2014) Kanban in Action (看板實戰:用一張便利貼訓練出100分高效率工作團隊)
Sutherland (2014) SCRUM: The Art of Doing Twice the Work in Half the Time (SCRUM:用一半的時間做兩倍的事)
Jeff Sutherland是Scrum之父
蔡慧蘭 (2014) 敏捷軟體開發方法於台灣資訊服務業之研究 輔仁大學資訊管理研究所碩士論文
範疇、需求
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中文版:利用自動化的建置、測試與部署完美創造出可信賴的軟體發佈)
資訊安全
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