Agile Software Engineering
|Unit level:||Level 3|
|Teaching period(s):||Semester 1|
|Offered by||School of Computer Science|
|Available as a free choice unit?:||Y
- COMP23420 - Software Engineering (Compulsory)
Additional RequirementsStudents who are not from the School of Computer Science must have permission from both Computer Science and their home School to enrol.
The aim of this course unit is to introduce you to the basic values and principles behind agile software engineering, and to give you an understanding of how the key agile practices work together to deliver real value to customers in a predictable and controllable way. We'll look at some of the problems with the conventional "plan-based" approach to software development, and examine how agile methods attempt to do better.
Rather than being lectured at, you'll take part in industry-standard coaching games, plus team-based exercises, group discussions and hands-on demonstrations that let you experience the agile approach at work and make up your own mind about the strengths and limitations of the ideas being presented.
OverviewTraditional approaches to the engineering of software systems have too often turned out to be costly ways of building software that no one wants. In this course unit, we look at an alternative "agile" approach that aims to ensure that the project team focusses on building software that provides genuine value for the customer, even when the customer's needs change radically in the middle of the project. We look at how to plan and manage such projects, as well as techniques for keeping code quality high enough to support rapid change of direction in the middle of development.
Teaching and learning methods
One two-hour session per week
Learning outcomes are detailed on the COMP33711 course unit syllabus page on the School of Computer Science's website for current students.
- Group/team working
- Project management
- Oral communication
- Problem solving
- Written communication
- Written exam - 100%
- Week 1: The Agile Lego Game - an Introduction to Agile Software Engineering
- Week 2: The Trouble with Big Up-Front Requirements Gathering
- Week 3: How Do We Know What to Build?
- Week 4: What Can We Promise to Deliver (and When)?
- Week 5: How Do We Know What to Build Next?
- Week 7: How Do We Know When We're Done?
- Week 8: How Do We Build the Right Product?
- Week 9: How Do We Know When We're (Done) Done? (sic)
- Week 10: How Do We Build The Product Right?
- Week 11: Software Design Without A Crystal Ball?
- Week 12: Agile in a Nutshell
For a detailed description of each weeks' activities please see COMP33711's weekly lesson plan.
COMP33711 reading list can be found on the School of Computer Science website for current students.
Feedback methodsDuring lectures, many team and whole group activities are undertaken, with feedback being given face-to-face during the activities and in the whole-group debrief sessions afterwards.
A series of self-tests are available for students to try after lectures, with detailed feedback being provided by the automatic marking system.
Feedback can be obtained on interim versions of coursework at any of the (optional) clinic sessions. Written comments will be provided on returned marked coursework, with pointers towards aspects of the work that the student did well and suggestions for areas where further study might be required.
- Assessment written exam - 2 hours
- Lectures - 22 hours
- Practical classes & workshops - 22 hours
- Independent study hours - 54 hours