Scaling Agile Development
The software industry is more and more pressed towards fast time-to-time market and short development cycles. If a piece of software is not finished at a certain point in time, it can have negative effects on the companies' performance.
Given the fact that a team is limited to a certain number of people and thus can only build a product of a (relatively) fixed size, multiple teams have to collaborate and work on large software projects together. This, of course, leads to a certain overhead.
In Software Engineering 2, you shall learn how to conduct software development in a team of teams setting. We want to prepare you for a situation where you are in a leading position and responsible for a large piece of software. Thus, you shall learn methods, concepts, and technologies that help you to successfully deliver large software in a multiple team setting.
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 setting even larger than in the bachelor's project.
Participants will be forming teams of 5-8 people. All teams will work collaboratively on the same tasks, which are the requirements engineering, design, and implementation of an online system that supports HPI research personnel in their daily work.
We will teach you 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. The theory taught in the lecture can be applied directly in the accompanying exercise. This course focuses more on the methods and concepts and less on the actual result. The project is hosted on Github and will be available as an open-source project after the course closes.
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.
After this course, all students should have
- experience with Scrum and all of its artefacts and meetings
- learned how to scale Scrum over multiple collaborating teams
- the ability to use BDD and TDD where appropriate
- confidence with branching and merging in a source code management (SCM) system
- experienced the value of continuous integration (CI)
- learned to critically self-assess their role in a team
The final grading is determined by
- 30%: oral exam (written exam if the number of participants is unexpectedly high)
- 45%: usage of presented methods and concepts such as Scrum, BDD, TDD, SCM, and CI (team mark)
- 25%: software development results (team mark)
Completion of the introductory exercise is mandatory for passing the course.
If work is not distributed equally amongst team members, individual adjustments of the marks are possible.