This course emphasizes the rapid realization of system value through disciplined, iterative and incremental software development techniques, and elimination of wasteful practices. Students will study the full spectrum of Agile Methods, including Scrum, Extreme Programming, Lean, Crystal Methods, Dynamic Systems Development Method, and Feature-driven Development. These methods promote teamwork, rich and concise communication, and the frequent delivery of running tested systems containing the highest priority customer features. Agile methods are contrasted with common workplace practices and traditional methods such as CMMI, PMI/PMBOK and RUP. Examples of agile adoption in industry are discussed. Additional topics in the course include team dynamics, collaboration, software quality and metrics for reporting progress.
- To learn the fundamental principles and practices associated with each of the agile development methods: Lean, Scrum, eXtreme Programming (XP), Crystal, Feature-driven Development (FDD), Kanban, and Dynamic Systems Development Method (DSDM)
- To apply the principles and practices of agile software development on a project of interest and relevance to the student
- To perform in-depth explorations into aspects of agile development that are particularly relevant to each student through independent research and discussion
- Introduction to Programming & OOP
- Introduction to Software Engineering
- Agile Development Methods Overview.
- eXtreme Programming (XP).
- Crystal Methodologies.
- Feature-Driven Development (FDD).
- Test-Driven Development (TDD).
- Teamwork and Collaboration.
- Dynamic Systems Development Method.
- Agile Infrastructure and Tools.
- Lectures:12 Hours
- Lab:12 Hours
- Self-Study:6 Hours
- Credits:2 Hours