Teaching Agile Methods to Software Engineering Professionals: 10 Years, 1000 Release Plans – Craig Anslow

Skills going beyond programming and technical excellence are essential in software engineering. But how do we teach these? In particular, how do we teach something as fuzzy as agile methods to software engineering professionals in a university context? Craig Anslow is sharing his and his colleagues’ experiences with us at XPConf 2017. He reports from an intensive agile methods course which forms part of a professional Masters of Software Engineering degree programme at the University of Oxford.

The contribution is different in a way that they teach industry professionals in a university environment. One of the various problems in teaching agile principles in such environment is, if not limited to, how to effectively teach the social aspects involved. Objectives included that students should learn to compare and contrast different agile methods, and to determine the suitability of those methods for different environments.

What they did is to set up a one-week intensive course, looking like this (taken from their paper):

Course format (Lectures – yellow, Group Exercises – blue, Case Study – green)

 

 

 

 

 

 

 

 

 

So, one central pillar to achieve their goal was to employ a realistic case study throughout their week. The beginning of the course was of rather theoretical nature and towards the end of the week, the practical units were intensified. Prior to the course, students were assigned a case study for which they gave a short presentation at the beginning. Interactive talking was another element dominating in the lecture (rather than classic slide-intensive presentations). Lectures covered were, inter alia, XP, Scrum, Personas, Estimation, or Empirical Agile (cool! 🙂 ), all in a hands-on manner. Guest lectures were provided for those topics where you need experts applying the methods under consideration, e.g. empirical agile or TDD. Group exercises were used for communication-intensive topics, such as prototyping or the Kanban Game. In fact, they played quite a lot of games to trigger active learning in a refreshing way.

Lessons Learnt included:

  • Reinforced learning by practical units
  • Students also loved the practical approach (including sprints, time-boxing, etc.)
  • The interactive environment encouraged exchange between students and accessing the content

Clearly, the participants faced also some challenges:

  • Some students struggled with adopting learning
  • For some participants, the content was not enough to stretch 5 days
  • Lage amount of material made timing difficult

But what were the challenges the organisers of the course faced? As Craig did not talk much about them, I asked:

  • Technical diversity: A key challenge is that the level of expertise and professional background of the participants was not known in advance.
  • Catching up with the content: The lectures are all university lecturers teaching practical methods which constituted the challenge that for some questions and issues they needed to catch up on the fly.
  • Accessibility: Many, if not most, of the participants were senior IT professionals who, sometimes, tend to (believe they) know everything better. Another related challenge is that the university environment had a strict policy hampering a direct and flexible communication. That is, once the students left the lecture hall on a Friday afternoon, the lecturers had difficulties reaching out to their students for up to 6 weeks.

By the way, they are looking for further experience reports to update their course, so please approach them!

Interested in learning more about their lecture? Check out the open access version of their paper here!