Hasso-Plattner-Institut
Prof. Dr. h.c. 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. Furthermore, the role of a Project Manager will be introduced, mainly responsible for maintaining an overview of collaboration between teams and longer term planning. 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:

Lecture Schedule

  • 29.10.2021: Course Introduction & Introduction to Ruby on Rails & Agile and Scrum Recap
  • 05.11.2021: Introduction to Testing in Rails & Project Envisioning and PO Tools
  • 12.11.2021: Project Management I & PO Workshop
  • 19.11.2021:  Project kick-off! & SM/Dev Tools & Project Infrastructure & Git Basics
  • 26.11.2021: Exercise Debriefing & Behavior-Driven Software Development & Scrum Deep Dive
  • 03.12.2021: Project Management II & ScrumMaster Workshop Project Management Workshop
  • 10.12.2021: Project Management III
  • 17.12.2021: Code Reviews
  • 24.12.2021 & 31.12.2021: Academic Christmas Break
  • 07.01.2022: Remote Collaboration & Infrastructure as Code & preparing Intermediate presentation
  • 14.01.2022: Intermediate Presentation! & Kanban and Lean & Advanced Testing Concepts
  • 21.01.2022: Application Deployment and DevOps & tbd
  • 28.01.2022: Project Management IV 
  • 04.02.2022: tbd
  • 11.02.2022: Guest Lecture FR DigitalService4Germany & Crowd-sourced Exam Questions
  • 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)Project Management (PM) 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 Management Workshop (PM 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 tbd

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.