Seminar Description
Release engineering is an important sub-discipline in software engineering, albeit not extensively researched. For small software projects and development teams, there exist plenty of tools and best practices, which enable automated builds, integration, testing, and deployment. However, getting software released to users is often a painful, risky, and time-consuming process. This holds true especially for large software product lines. Adding to the complexity are legacy systems, inhomogeneous environments, and big development team.
Yet, huge companies managed to establish a process to release their software. For example, Mozilla changed their release management in 2011 and now they are capable to deliver major releases every six weeks and fix security issues within eleven hours. In contrast, a great number of companies struggle to release their products within a year.
Maybe it is time to consider release engineering as a discipline of its own, rather than a task that is done “by the tester or developer in passing”.
Addressed Topics
- Release Automation: Tools and Infrastructure
- Revision Control Systems
- Continuous Delivery: Automated Builds, Integration, Testing, and Deployment
- Continuous Delivery for Various Platforms
- Implementing Deployment Pipelines
- Configuration Management
- Navigating Risk Management
- Release Engineering in Small vs. Release Engineering in Large
- Release Engineering Process or Identifying Best Practices
- Collaboration between Developers, Testers, and Release Engineers
- A behind-the-scenes look: How do the big companies do it, e.g., Google, Mozilla, Microsoft?
- How to deal with legacy systems?
- How Release Engineering influences the product reputation?
- Deployment of Web Software vs. Desktop Software
- Release Engineering w.r.t. Fixing Security Issues and Users Using Obsolete Versions
Seminar Concept
We will conduct the seminar (conference-like) as follows:
- Kick-off meeting: First meeting to discuss a research definition, direction, and strategy
- Discuss about topic, literature, etc. with supervisor
- Discuss outline and related work with supervisor
- Submit an abstract to a conference management system
- Submit a draft version of a paper to your supervisor
- Submit first version to the conference management system
- Review two other papers
- Polish your paper and submit final version to the conference management system
- Create, review with supervisor, and submit a presentation for the paper
- Present your paper at the end
Dates
Here are the preliminary dates and deadlines:
- 07.10.2013 10:00-11:30 Kick-off meeting in room -010 (E3, UG)
- 08.-11.10.2013 Appointment with supervisor: discuss about topic, literature, etc.
- 21.-25.10.2013 Appointment with supervisor: discuss outline and related work
- 01.11.2013 Deadline: submit abstract to Conference Mgmt.
- 15.11.2013 Deadline: submit a draft version of the paper to your supervisor
- 25.-29.11.2013 Appointment with supervisor: comments on draft version
06.12.201313.12.2013 Deadline: submit first version of the paper to Conference Mgmt.- 20.12.2013 Deadline: submit reviews to Conference Mgmt.
- 13.01.2014 Deadline: submit final version of the paper to Conference Mgmt.
- 24.01.2014 Deadline: submit presentation to Conference Mgmt.
- 27.-31.01.2014 Appointment with supervisor: comments on presentation
- 04.-05.02.2014 09:00-17:00 Presentations in room -010 (E3, -1.08 UG)
Note that the only “regular attendances” are required at the kick-off meeting (in the beginning), the presentation days (in the end), and your appointments with your supervisor.
Prerequisites
- Strong background in Software Engineering and interest in Release Engineering.
- Basic LaTeX knowledge
- Write and present in English