Hasso-Plattner-Institut
Prof. Dr. h.c. Hasso Plattner
  
 

SWT II - Agile Software Development in Large Teams

Scaling Agile Development

In the course Software Engineering II, you will learn how to manage a long-running software project with a large number of developers. We want to prepare you for a situation where you are in a leading position and responsible for a large piece of software. You will learn methods, concepts, and technologies that help successfully delivering large software products developed by multiple teams.

While still not on par with large enterprise projects, SWT2 is the only lecture in the curriculum that allows you to gain experience in a software development setting larger than in the bachelor's project.

Learning experience

Participants form teams of 5-8 people. All teams will work collaboratively on the same software, handling all tasks from requirements engineering to design and implementation. Development of a software system is the main focus of the course.

This year, we are happy to again have a HPI student club as a customer for the project. Participants will develop a system to organize sport events and sports leagues for the HPI sports club.

We will teach you how to apply the Scrum methodology in a multi-team setting. Over the course of the semester, you will conduct 4 sprints à 2-3 weeks each. The theory taught in the lecture can be applied directly in the accompanying exercise. This course focuses more on the methods and concepts and their application and less on the actual result. The project is hosted on Github and will be available as an open-source project after the course closes.

If the number of participants is too low (i.e., < 10 people), only a single development team will be formed and focus will shift towards scalability of the developed application.

Learning Targets

After this course, all students should have

  1.  experience with Scrum and all of its artefacts and meetings
  2.  learned how to scale Scrum over multiple collaborating teams
  3.  the ability to use BDD and TDD where appropriate
  4.  confidence with branching and merging in a source code management (SCM) system
  5.  experienced the value of continuous integration (CI)
  6.  learned to critically self-assess their role in a team

Grading

The final grading is determined by

  • 30%: oral exam
  • 45%: usage of presented methods and concepts such as Scrum, BDD, TDD, SCM, and CI
  • 25%: software development results (team mark)

Completion of the introductory exercise is mandatory for passing the course.

Oral exam

The oral exam is scheduled for tba.

Getting Started

  • Bookmark the public calendar
  • Sign-up on Slack and the mailing lists (see the "Useful Links" section in the top right)
  • Enroll!

Introductory Exercise

(Product Owners are exempt from this exercise)

  • Visit the Github project page tba
  • Fork the repository
  • Follow the instructions in the README

Deadline for the exercise is tba.

Course Materials

The slides in pdf format are linked to in the sidebar under "Course Material"