Coronavirus information for applicants and offer-holders

We understand that prospective students and offer-holders may have concerns about the ongoing coronavirus outbreak. The University is following the advice from Universities UK, Public Health England and the Foreign and Commonwealth Office.

Read our latest coronavirus information

BSc Computer Science (Human Computer Interaction) / Course details

Year of entry: 2021

Course unit details:
Agile Software Engineering

Unit code COMP33712
Credit rating 10
Unit level Level 3
Teaching period(s) Semester 2
Offered by Department of Computer Science
Available as a free choice unit? No

Overview

 
Traditional 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.

Pre/co-requisites

Unit title Unit code Requirement type Description
Software Engineering 1 COMP23311 Pre-Requisite Compulsory
Software Engineering 2 COMP23412 Pre-Requisite Compulsory
COMP33712 pre-requisites

Aims

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.

Learning outcomes

  • 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.

Syllabus

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 COMP33712's weekly lesson plan.

Teaching and learning methods

Lectures
 
One two-hour session per week

Employability skills

Group/team working
Project management
Oral communication
Problem solving
Written communication

Assessment methods

Method Weight
Written exam 100%

Feedback methods

During 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.
 
 

Recommended reading

COMP33712 reading list can be found on the Department of Computer Science website for current students.

Study hours

Scheduled activity hours
Assessment written exam 2
Lectures 22
Practical classes & workshops 22
Independent study hours
Independent study 54

Teaching staff

Staff member Role
Suzanne Embury Unit coordinator

Additional notes

Links to course unit teaching materials can be found on the School of Computer Science website for current students.

Return to course details