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

Software Engineering 2, WS 2013 / 2014

General Information

Next dates

 

Date Lecture 1 Lecture 2
Oct 18, 2013 Introduction to the course, Presentation of Project assignment Introduction to Web Development with Ruby on Rails
Oct 25, 2013 Project Setup, Collaboration Infrastructure, GIT introduction Lego Scrum Exercise
Nov 01, 2013 - -
Nov 08, 2013

Student Presentation: POs project vision

Testing in Rails I

Testing in Rails
Nov 15, 2013 tfp tfp
Nov 22, 2013 Retrospective for Sprint #1, Code Review Techniques, Scrum Tips & Tricks tfp
Nov 29, 2013 tfp tfp
Dec 06, 2013 tfp tfp
Dec 13, 2013 Student presentation: Intermediate results, Deployment Options for Web Applications tfp
Dec 20, 2013 tfp tfp
Jan 03, 2014 tfp tfp
Jan 10, 2014 tfp tfp
Jan 17, 2014 tfp tfp
Jan 24, 2014 Guest lecture by Avaneesh Dubey (SAP), First Q&A session for exams  
Jan 31, 2014 tfp tfp
Feb 07, 2014 Final presentation of project results, Global retrospective, Exam Q&A tfp

*tfp : time for project

Team Setup

  • Write an email with the members of your 5-8 person team to swt2_2013_orga(at)hpi.uni-potsdam.de
  • Designate one of the team members as your product owner! This should be included in the mail, as well.
  • Deadline: Oct 25, 11:59 AM CET

Vision

The software industry is more and more pressed towards fast time-to-market and short development cycles. Putting it in other words, 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 can thus 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 multi-team 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 deliver successfully 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.

Learning experience

The participants will be forming teams of 5-8 people. All teams will work collaboratively on the same tasks, which is the requirements engineering, design, and implementation of an Online Platform for Student Assistant Jobs. 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. We will teach you how to apply the Scrum methodology in a multi-team setting. If possible, the teams will be formed according to the bachelor project assignments in order to leverage the existing infrastructure. In the course of the semester, you will conduct 4 sprints à 3 weeks. The project infrastructure relies almost entirely on freely available, open source solutions. The project is hosted on Github (https://github.com/tkowark/hpi-hiwi-portal) and will be available as an open-source project after the course closes. The theory taught in the lecture can directly be applied in the accompanying exercise. This course focuses more on the methods and concepts and less on the actual result.

Acceptance criteria

After this course, the following learning targets (LT) should be achieved.

LT 1: Scrum

As a student, I know the elements of Scrum and I am familiar with planning meetings, daily Scrums, sprint reviews, sprint retrospectives, and estimation meetings.

LT 2: Scrum in a multiple team setting

As a student, I know how I can scale Scrum with the help of Scrum-of-Scrums and planning-of-plannings.

LT 3: Behaviour-driven and test-driven development (BDD and TDD)

As a student, I know the advantages of BDD and TDD and I use both methods appropriately.

LT 4: Source code management (SCM) using Git

As a student, I know the different SCM concepts. In particular, I am familiar with Git while branching as well as merging became natural activities in my personal software development process.

LT 5: Ruby on Rails

As a student, I know the architecture and concepts of Ruby on Rails and can apply them to fulfill the requirements stated to me and my team.

LT 6: Continuous integration (CI)

As a student, I never want to develop software without CI again because, together with BDD and TDD, this gives me the assurance that my software is validated and that all tested functionality is correct.

LT 7: Self-assessment with regards to your role in a team

As a student, I know how I can contribute to help my team performing as good as possible.

Grading

The final grading is determined by

  • introductory Ruby on Rails exercise (no grade, completion mandatory),
  • oral exam (30%, individual mark), if the number of participants exceeds 30 students, a written exam will replace the oral one.
  • usage of presented methods and concepts such as Scrum, BDD, TDD, SCM, and CI (45%, team mark)
  • software development results (25%, team mark)
  • if work is not distributed equally amongst team members, individual adjustments of the marks are possible