University of Oxford Logo University of OxfordSoftware Engineering - Home

Agile Methods

Agile methods are challenging conventional wisdom regarding systems development processes and practices; effectively putting process on a diet and investing in people and teams. This course will enable today's software development professional to understand the heart of agility and will cover both the theory and practice of agile methods.

Course dates

9th June 2014Oxford University Department of Computer Science 0 places remaining.
2nd March 2015Oxford University Department of Computer Science11 places remaining.

Objectives

At the end of the course you will be able to:

  • Compare and contrast the different agile methods
  • Determine the suitability of agile methods for a particular project
  • Evaluate how well a project is following agile principles, and assist the project to become more agile (where appropriate)
  • Understand the relationship between the customer and the development team in agile projects and the responsibilities of both communities.

Contents

Agile Manifesto.
The foundation of the agile methods. We will cover both the well-known values of the manifesto as well as its less well-known principles.
Agile Methods.
An overview of the agile methods: XP, Scrum, Crystal, FDD, Lean and DSDM. During this section of the course we will cover:
  • The background and motivations of the method originator.
  • The specific principals and practices of the method.
  • The similarities and differences of the methods, and how practitioners are using them and blending them together.
  • We will cover all of the methods, but we will delve into more detail of the two most popular methods XP and Scrum.
Agile Practices.
At the heart of agility is the recognition that we need to find ways to help individuals and teams navigate the chaotic and fast-paced world of modern software development. In this section we will cover:
  • The practices that enhance group communication and effectiveness, including: onsite-customer, planning iterations and releases, prioritisation and decision making techniques, retrospectives and daily stand-ups.
  • The practices that enhance the effectiveness of a particular role within the team, including pair programming, refactoring, test-first development, coding standards, simplicity and user stories.
We will explore both the theory behind the practices and the development of practical skills to use these techniques in our "day jobs".
Persistent Questions.
Agility is not a "silver bullet". In this section of the course, we will explore the sweet spot for agile methods — that is the sorts of problems agile methods solve best, as well as how practitioners are extending agile methods to work at the boundaries.