This course introduces students to Agile Software Development principles and processes with an emphasis on Scrum.
This course is intended for students who are new to Agile methodology as well as those who wish to gain a more thorough understanding of the Agile Software Development principles and processes. After a brief overview of traditional approaches to managing software development projects, students explore Agile Software Development principles and processes. The main emphasis is on the Scrum framework: students gain understanding of the core concepts like Scrum roles, activities and artifacts, as well as planning and execution of sprints.
Through role playing and class discussions, students explore the characteristics and skills of an effective Scrum master, product owner and development team, learn to manage product backlog, and gain understanding of the concepts of technical debt, estimation and velocity.
The Instructor will assume you have at least an introductory level of experience with programming.
If you don't have this background, please see ICT 710 Computer Programming Level 1.
Course Level Learning Outcomes
By completion of this course, successful students will be able to:
- Understand the Agile Software Development principles and the Scrum framework, its applicability to software development projects, main roles, artifacts and concepts
- Participate in an Agile Software Development team’s planning and execution processes in a variety of roles
Topics of Instruction
- Review of traditional approaches to Software Development
- Elements of Project Management
- Agile principles
- Advantages and applicability of Agile methods
- Introduction to Scrum and Sprints
- Requirements and user stories
- Concepts of: Product Backlog, Velocity, Technical Debt
- Organization of a Scrum team
- Roles: Product Owner, Scrum Master, Developers
- Scrum planning
- Agile (emergent) design
- Sprinting: planning and execution, communication, review and retrospective
- Test-driven development
- Extreme Programming: pair programming
- Transitioning toward Agile; overcoming resistance
- Managing teams
- Performance improvement