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

Scalable Software Engineering

Skalierbare Softwareentwicklung

  • Lecturers: Dr. Michael PerscheidChristoph Matthies, Dr. Ralf TeusnerLukas Böhme
  • 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 in collaboration with tutors (Wed 13:30 is the fallback)
  • First meeting/lecture:  17.10. 11:00
  • Enrollment until: 31.10.2022
  • Exam Method: Written exam
  • Exam Date: 3.3.2023, 10:00, lecture halls 1,2,3
  • Lecture format: Lecture & hands-on development project in teams
  • Room: HS2
  • Prerequisites: The courses Software Architecture (SWA) and Software Engineering (Softwaretechnik I) are highly recommended
  • Contact: sse_22_orga(at)lists.myhpi.de

About this Course

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 (virtual) team meetings.
  • We strongly encourage regular testing when working in groups and will facilitate notifications in case 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), a Project Manager (who interacts with management is responsible for longer-term planning) and the Scrum Master (responsible for supporting the team in the development process) 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 is 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.

Lecture Schedule

This is a preliminary schedule that is subject to change.

  • 17.10.2022: Course Introduction & Project Topic & Agile/Scrum Recap
  • 24.10.2022: Intro to Ruby on Rails Development & Introduction to Testing in Rails & Project Envisioning and PO Tools
  • 31.10.2022: Public holiday (Reformationstag)
  • 07.11.2022: Project Management Intro & PO Workshop & PM Workshop
  • 14.11.2022: Git Background & SM/Dev Tools & Project kick-off!
  • 21.11.2022: Code Reviews & Scrum Details
  • 28.11.2022: Scrum Details (Scaled Scrum) & Exercise Debriefing & Advanced Testing Concepts & SM Workshop
  • 05.12.2022: Advanced Testing Concepts (Testing Tests) & Remote Collaboration
  • 12.12.2022: Deployment and DevOps & Project Management I
  • 19.12.2022 & 26.12.2021: Academic Christmas Break
  • 02.01.2023: Ethics in SE & Preparation for Intermediate Presentation
  • 09.01.2023: Intermediate Presentation & Guest Lectures
  • 16.01.2023: Kanban and Lean & Time for team work in second slot
  • 23.01.2023: Guest Lecture & Infos on Exam, Exam and Presentation Prep​
  • 30.01.2023: Project Management II & Guest Lecture
  • 06.02.2023: Final Project Presentation! & Summary & Exam Preparation

Vorlesungszeitraum WiSe 22/23: 17.10.2022 – 10.02.2023
Akademische Weihnachtsferien: 19.12.2022 – 30.12.2022

Project Schedule

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

Preparation

  • until 24.10.22 (first week):  Form teams, select Product Owner (PO), Scrum Master (SM), Project Management (PM) and Development roles
  • 24.10.—31.10.22: Initial meeting of Product Owners with the Customer (as soon as possible)
  • 07.11.22:  Product Owner Workshop (all POs) & Project Management Workshop (all PMs) & Work on Ruby on Rails Intro Exercise (Dev Teams, SMs, PMs)
  • until 14.11.22: Prepare User Stories for Sprint 1 (POs) & Prepare Project  Charter (PMs) & Finish Ruby on Rails Introduction Exercise (Dev Teams, SMs)
  • 14.11.22: Project Kick-Off
  • 28.11.22:  ScrumMaster Workshop (SMs and coach)

Project Phase

  • 14.11.28.11.22: Sprint 1 (2 weeks)
  • 28.11.—12.12.22: Sprint 2 (2 weeks)
  • 12.12.09.01.23: Sprint 3 (~2 weeks), includes Academic Christmas Break (19.12.2022 – 30.12.2023)
  • 09.01.—30.01.23: Kanban period (3 weeks)
  • 30.01.—06.02.23: Final Presentation Preparation
  • 06.02.23: Final Project Presentations

Grading & Exams

The final grading is determined by

  • Two thirds (⅔): written exam
  • One third (⅓): project work (project results, project presentations, contributions of teams, application of development process)

The exams are scheduled for March 3rd, 10:00AM in lecture halls 1,2 & 3

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 ("Studienreferat").