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

Scalable Software Engineering

Skalierbare Softwareentwicklung

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 for the winter term 21/22. These are subject to change as the situation evolves.

  • Lectures will happen in person in the largest lecture hall HS1, which enables keeping adequate distance between participants. We look forward to seeing you in the lecture hall and are looking forward to discussions and interactive sessions.
  • Lecture participation will also be possible via a live stream of the regular lecture slots, enabling direct interaction with the lecturer and course participants. 
  • We will be using a central collaboration and communication platform (Slack/Discord), which can be used to host and organize team meetings.
  • Ideally, project teams are formed from bachelor's project teams that already have regular contact.
  • We provide large meeting spaces, which allow team meetings with adequate distances. Attendance sheets will be used. It will be possible to attend team meetings virtually.

Learning Experience

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 Objectives

After this course, all students should have

  1.  Practical experience with the Agile methods Scrum & Kanban and their core ideas, 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.
This year, we are happy to welcome the following speakers and topics:

  • Gregor Berg, SAP SE, Head of Engineering, Business Process Insights: A Story on Scaling—From two to 100+ employees within two years
  • Stefan Krumnow, SAP SE, SVP Engineering: Software Development for 10,000 customers 
  • Johannes Nicolai, Solutions Engineer at PlanetScaleStateless storage in the cloud with Vitess and PlanetScale
  • Frederike Ramin, Software Engineer at DigitalService4Germany, How We Work at DS4G
  • Paul Möller, Software Engineering Manager at mobile.de GmbHAgile Zielsetzung und Softwareentwicklung @ mobile.de

Lecture Schedule

  • 29.10.2021: Course Introduction & Project Topic & Agile/Scrum Recap
  • 05.11.2021: Intro to Ruby on Rails Development & Introduction to Testing in Rails & Project Envisioning and PO Tools
  • 12.11.2021: Value-based Software Engineering & Vision Hierarchy & PO Workshop
  • 19.11.2021: Git Background & SM/Dev Tools & Project kick-off! 
  • 26.11.2021: Code Reviews & Scrum Details
  • 03.12.2021: Scrum Details (Scaled Scrum) & Exercise Debriefing & Advanced Testing Concepts & ScrumMaster Workshop
  • 10.12.2021: Advanced Testing Concepts (Testing Tests) & Remote Collaboration & Self-Organized Team Discussion
  • 17.12.2021: Deployment and DevOps & Time for team work in second slot
  • 24.12.2021 & 31.12.2021: Academic Christmas Break
  • 07.01.2022: preparing Intermediate presentation
  • 14.01.2022: Intermediate Presentation & Guest Lectures Gregor Berg, Stefan Krumnow (SAP)
  • 21.01.2022: Kanban and Lean & Time for team work in second slot
  • 28.01.2022: Guest Lecture Johannes Nicolai (PlanetScale) & Project Management Intro
  • 04.02.2022: Project Management I & Infos on Exam, Coll. Exam Prep and Final Presentation​
  • 11.02.2022: Guest Lectures Frederike Ramin (DigitalService4Germany), Paul Möller (mobile.de) & Project Management II
  • 18.02.2022: Final Project Presentation! & Summary & Exam Preparation

Vorlesungszeitraum WiSe 21/22: 25.10.2021 – 18.02.2022
Akademische Weihnachtsferien: 20.12.2021 – 31.12.2021

Project Schedule

These are the dates we suggest for important milestones and for planning development iterations in teams:

Preparation

  • until 05.11.21 (first week):  Form teams and select Product Owner (PO)Scrum Master (SM),  and Development roles
  • 05.11.—11.11.21: Initial Customer & PO Meeting (as soon as possible)
  • 12.11.21:PO Workshop (POs) & Work on Ruby on Rails Introduction Exercise (everyone but POs)
  • until 19.11.21: Finish User Stories for Sprint 1 (POs) & Finish Ruby on Rails Introduction Exercise (everyone but POs)
  • 19.11.21: Project Kick-Off
  • 19.11.03.12.21 (in Sprint 1):  ScrumMaster Workshop (SM roles and coach)

Project Phase

  • 19.11.03.12.21: Sprint 1 (2 weeks)
  • 03.12.—17.12.21: Sprint 2 (2 weeks)
  • 20.12.31.12.21: Academic Christmas Break
  • 03.01.21.01.22:  Sprint 3 (3 weeks)
  • 21.01.—11.02.22: Kanban period (3 weeks)
  • 11.02.—18.02.22: Final Presentation Preparation
  • 18.02.22: Final Project Presentations

Grading & Exams

The final grading is determined by

  • 60%: written exam
  • 40%: project grade (finishing intro exercise, application of learned concepts in teams, self-reflection and improvement, project outcomes)

The exams are scheduled for March 9th 2022

New in the winter term 21/22:

Course participants are registered for the exam automatically with course enrollment. You may choose to opt out of taking the exam up to 8 days before the exam date. In this case, please inform both the teaching team and the study department.