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

Scalable Software Engineering

Skalierbare Softwareentwicklung

  • Lecturers: Dr. Michael PerscheidChristoph Matthies, Dr. Ralf Teusner
  • Teaching Team: tbd
  • ECTS: 6
  • Specialization Areas: Softwareprojektätigkeit, Projektentwicklung und -management
  • Time Slots: Monday 09:15-10:45 & 11:00-12:30 (lecture), Wednesday 13:30-15:00 (exercise, when required)
  • Slot for team meetings: determined by you (in collaboration with tutors, Wednesday slot is the fallback)
  • First meeting/lecture:  tbd
  • Enrollment until: Einschreibefrist 01.10.2022 - 31.10.2022
  • Exam Method: Written exam
  • Exam Date: tbd
  • Lecture format: Lecture & practial project
  • Room: HS2
  • Prerequisites: The courses Software Architecture (SWA) and Software Engineering (Softwaretechnik I) are highly recommended
  • Contact: lists.myhpi.de tbd

The course Scalable Software Engineering is focused on the practical techniques, concepts and knowledge required to manage a software development project with a large number of developers. It includes aspects from the previous courses "SWT II—Agile Software Development in Large Teams" and "Projektentwicklung und -management".

We aim to prepare you for situations in which you are responsible for a complex software product. You will learn methods, concepts, and technologies which help to successfully deliver software products developed by multiple collaborating teams.

This course is the only lecture in the bachelor curriculum that allows you to gain experience in a software development setting larger than the bachelor's project.

COVID-related Course Adaptations


Due to the ongoing pandemic, the following course adaptations have been made. These are subject to change as the situation evolves.

  • While we are currently planning with in-person lectures, we will monitor the situation and will switch to remote instruction if required.
  • We will be using a central collaboration and communication platform (Slack/Discord), which can be used to host and organize team meetings.
  • We strongly encourage regular testing when working in groups and will facilitate notifications in cae of infections.
  • We provide large meeting spaces, which allow team meetings with adequate distances.

Teaching and Learning Process

The focus of this course is on the practical use of the lecture contents and application of Agile and project management best practices in a real-world software project.  Multiple teams work collaboratively on a single software product, handling all required tasks from requirements engineering, to design, implementation and project organization.

Participants work in teams of ideally 5-8 people. All Scrum and organizational roles, including the Product Owner (who interacts with the customer) and the Scrum Master (responsible for supporting the team) are performed by student team members. Teams are explictly expected to self-organize and to explore ways of collaboration and communication that work best for them. This course depends on the active participation, involvement and reflection of participants.

The contents of the lecture include how to apply modern Agile software development methods in multi-team settings and associated technologies and best practices. The theory and the ideas introduced in the lectures are applied directly in the accompanying project. Participants conduct multiple development iterations (Sprints) à 2-3 weeks each in their teams, guided by the teaching team and dedicated tutors. The software being developed will be hosted on GitHub and is available under an open-source license. The contributions participants make to the project will be publicly available.

Learning Goals

After this course, all students should have

  1.  Practical experience with the Agile methods Scrum & Kanban and their core concepts, artifacts, roles and meetings
  2.  A working knowledge of project management techniques and their practical application
  3.  Learned how to scale modern software development methods over multiple collaborating teams
  4.  The ability to use modern development practices, such as BDD, TDD, CI/CD & DevOps,  where appropriate
  5.  Confidence in using the full feature set of a source code management (SCM) and related systems
  6.  Experienced the value of rapid release cycles and continuous integration
  7.  Learned to critically self-assess their role in a team and work towards collaborative improvement

Guest Lectures

In the course, we feature guest lectures from industry practitioners on varied software engineering topics, mostly with a focus on development processes.

if you have proposals for guest speakers, please send us an email.