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

SWT II - Agile Software Development in Large Teams

Large-Scale Agile Software Development

In the course Software Engineering II, you will learn how to manage a long-term 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 which can help to successfully deliver 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 the bachelor's project.

Lecture Schedule

  • 18.10.2019: Course Introduction
  • 25.10.2019: Ruby on Rails & Testing Concepts
  • 01.11.2019: Advanced Testing Concepts & Introduction to Scrum
  • 08.11.2019: Practical LEGO-Scrum Exercise (Campus III)
  • 15.11.2019: Exercise Evaluation, Project Infrastructure, Git Basics
  • 22.11.2019:Time for project work (no lecture on this date)
  • 29.11.2019: Code Reviews & Scrum Tips
  • 06.12.2019: Deployment & Guest Lecture by Jessica Gottschalk (DB Station&Service AG)
  • 13.12.2019 & 20.12.2019: Time for project work (no lectures on these dates)
  • 27.12.2019 & 03.01.2020: Academic Christmas Break
  • 10.01.2020: Intermediate Presentation & Guest Lecture by Jasper Schulz (Amazon Web Services Inc.) & Kanban and Lean
  • 17.01.2020: Guest Lectures by Hubert Hesse, Svenja Uslu (ThoughtWorks Deutschland GmbH) & Johannes Schirrmeister (Dampsoft GmbH)
  • 24.01.2020: Guest Lecture by Johanna Appel (Push! Founders)
  • 31.01.2020: Time for project work (no lecture on this date)
  • 07.02.2020: Final Project Presentation! & Summary & Exam Preparation

Suggested Sprint Schedule

These are the dates and times we suggest for planning development iterations in your teams

  • 18.10.19–08.11.19:Ruby on Rails Introduction Exercise
  • 11.11.19–22.11.19: Sprint 1 (2 weeks)
  • 25.11.19–06.12.19: Sprint 2 (2 weeks)
  • 09.12.19–10.01.20: Sprint 3 (~2,5 weeks, depending on team availability)
  • 23.12.19–03.01.20: (in Sprint 3) Academic Christmas Break
  • 13.01.20–24.01.20: Sprint 4 (2 weeks)
  • 27.01.20–07.02.20: Kanban

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 feature the following speakers and topics:

Learning experience

Participants form teams of 5-8 people. All teams work collaboratively on the same software product, handling all tasks from requirements engineering, to design, implementation and organization of their teams. All Scrum roles, including Product Owner (who interacts to the customer) and Scrum Master (responsible for supporting the team) are performed by student team members. Teams are expected to self-organize and to explore ways of collaboration and communication that best work for them.

The contents of the lecture will include 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 in your development teams, guided by student tutors. The theory taught in the lecture can be applied directly in the accompanying project. This course focuses on modern Agile software development methods and concepts as well as their practical application.

The software developed in the winter semester 2019/20 installment of the course will deal with organizing and managing lecture participation in university settings. The software is hosted on GitHub and is available under an open-source license.

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 Objectives

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 Agile development practices, such as BDD and TDD,where appropriate
  4.  Confidence in using the full feature set of a source code management (SCM) system
  5.  Experienced the value of rapid release cycles and continuous integration (CI)
  6.  Learned to critically self-assess their role in a team

Course Evaluation

The course was evaluated by participants using HPI's EvaP system.

The overall course was rated a 1.5, i.e. "very good" in the German academic grading scheme from 1.0 (excellent) to 6.0 (insufficient).

Grading

The final grading is determined by

  • 30%: oral exam on the 17th/18th Feb. 2020
  • 45%: usage of methods and practices presented in the lecture: involvement in the development process, teamwork participation, Scrum meetings, BDD, TDD, SCM
  • 25%: software development results (team mark)

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

The exams are scheduled for 17th and 18th February 2020

Course Activities

Introductory Exercise

(Students in the Product Owner role are exempt from this exercise)

The deadline for the completion of the exercise is Nov 8, 2019 15:00 pm CET

LEGO Scrum Exercise

We practice employing the roles, artifacts and meetings of the Scrum method in a practical, hand-on exercise using LEGO. The course participants perform multiple short development iterations in their teams, developing an uninhabited island into a beach resort. The Product Owners and Scrum Masters of the teams will take their assigned roles.

The exercise takes place November 8, 2019 at 09:15 in room G-1.E.15/16 (Campus III).

Jeopardy!

In the last lecture we played a round of Jeopardy! based on SWTII topics. We split the course into two groups. Congratulations to Team 1, who pulled off a significant victory!

The categories were Ruby, Ruby, Ruby, Ruby (Ruby & Ruby on Rails knowledge), Mana, Mana; Management (project management knowledge), Immer im Kreis (Agile development knowledge), Weiche Ware (knowledge concerning software), and Gemischtwarenladen (miscellaneous).

If you'd like to play again: https://jeopardylabs.com/play/swtii-agile-software-development-in-large-teams