MEng Software Engineering
Year of entry: 2020
Course unit details:
Agile Software Engineering
|Unit level||Level 3|
|Teaching period(s)||Semester 1|
|Offered by||Department of Computer Science|
|Available as a free choice unit?||No|
|Unit title||Unit code||Requirement type||Description|
|Software Engineering 1||COMP23311||Pre-Requisite||Compulsory|
|Software Engineering 2||COMP23412||Pre-Requisite||Compulsory|
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.
Compare and contrast the pros and cons of conventional Big Up-Front approaches to software development with those of the new iterative/agile approaches.
Explain the meaning of the 4 agile values and 12 agile principles, and use them to diagnose and correct problems in a variety of software engineering scenarios.
Write user stories to capture user requirements and associated business values, and refine stories to varying levels of granularity for use in project planning.
Create and implement release and iteration plans given a collection of user stories, by applying a range of agile project planning and tracking practices.
Explain the role and purpose of task boards in managing self-organising agile teams, and design task board structures suitable for use in particular contexts.
Use specification-by-example practices to create living documentation for a software system, and use it to guide the design and implementation of the system using Acceptance Test Driven Design (ATDD) and Unit Test Driven Design (TDD) practices.
Explain the role of feedback in the management of agile projects and apply feedback oriented practices, such as retrospectives, to identify and correct problems in team processes.
Explain how formal contracts and funding models for agile projects differ from contracts/funding models used on more traditional projects.
- 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.
Teaching and learning methods
One two-hour session per week
- Group/team working
- Project management
- Oral communication
- Problem solving
- Written communication
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.
COMP33711 reading list can be found on the School of Computer Science website for current students.
|Scheduled activity hours|
|Assessment written exam||2|
|Practical classes & workshops||22|
|Independent study hours|
|Suzanne Embury||Unit coordinator|
Course unit materials
Links to course unit teaching materials can be found on the School of Computer Science website for current students.