COMP33711: Agile Software Engineering
Current students can find lecture notes, self-tests, revision resources, coursework details and sample exam materials on the Blackboard site for this course unit.
For details of the topics covered, plus the assessment of the course unit, see the syllabus.
"We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
That is, while there is value in the items on the right, we value the items on the left more."
This is the text of the Agile Manifesto, published in 2001 to describe the core values behind what was then a radically new approach to software development. Its authors were a group of experienced software developers who were becoming increasingly disillusioned with traditional methods of software engineering.
Many of the ideas they proposed were initially dismissed as bizarre and undisciplined, a return to the "hacking" style of development. But agile approaches to software development are increasingly being accepted as mainstream, with leading development organisations rushing to establish their agile credentials. And agile software engineering actually requires a great deal of discipline on behalf of team members. It aims to put control back into the hands of clients and coders, while insisting on the highest standards of code quality and a continual focus on delivering real business value for the client.
In this course unit, we introduce you to some of the basic concepts behind agile software engineering, plus the agile technologies that can provide their foundation.
Or, see the IT Jobs Watch trends showing how demand for agile skills are changing in the UK IT jobs market.
Many of the concepts in agile software engineering can seem counter-intuitive when first encountered - especially if that first encounter takes place in the dry setting of a lecture. The values and practices espoused by agile software engineers need to be experienced to be appreciated. The agile community has squared up to this challenge, and has developed a number of games and hands-on activities to help to convey the key concepts more successfully than by passive listening or reading.
We make use of a range of these games within this course unit, as fits the topic under discussion. You can see pictures of students from previous years playing some of these in the pictures on the left hand side of this web page. Lectures are grouped into a single 2 hour session per week, and typically involve a mixture of lecturing, discussions, group activities and game playing. We also involve agile practitioners from industry in the course unit, to give guest lectures and to demonstrate some agile practices for us. We also encourage students with agile experience of their own (perhaps from an industrial placement year) to contribute to sessions, giving evidence for an against the agile practices we discuss.
Because of the teaching approach we take, the course unit may suit you if:
On the other hand, this course unit may not be for you if:
We are grateful to staff at ThoughtWorks and the BBC for their assistance in the development and delivery of this course unit. We also benefitted from the ideas and hard work of Iliada Eleftheriou, Nic Garner, Abeer Shahid, Martin Borizanov, Caroline Jay and Raluca Puichilita in developing some of the course materials used throughout the course.