Continuous Software Engineering
Continuous Delivery is based on configuration management and continuous integration and allows developers to release the current development state of their software to users at any time in the development process. After successfully building a deployment pipeline, a developer can create a release with only a few interactions and has the possibility to obtain feedback from users easily and early in the development process.
Since 2012, our students apply the following Continuous Delivery workflow in the iOS Praktikum. We measured its benefits qualitatively and quantitatively in different case studies. Our findings show that the release management workflow leads to more releases, more feedback and better feedback. This feedback increases the quality of the developed applications and allows the teams to deliver the most important features faster.
The workflow works as follows: A developer commits and pushes source code to the Version Control Server (1). This leads to a new build on the Continuous Integration Server (2) where all test cases are executed. The Developer is then notified about the build status, e.g. via email or chat (3). If the build was successful and after it passed all test stages, the Release Manager can release the build with only a few interactions on the Continuous Integration Server (4). This uploads the build to the Continuous Delivery Server (5) which then notifies the User about the availability of the new release (6). The User can easily download the release (7) onto his/her Device and give feedback directly in the application (8). This user feedback is uploaded in a structured way to the Continuous Delivery Server (9) and then forwarded to the Issue Tracker (10) which notifies the Developer about the feedback (11).
The Continuous Delivery process for mobile applications developed at our chair was successfully implemented in an industrial context at Capgemini. As part of his master’s thesis, Sebastian Klepper adapted the process to the conditions in the company in order to deal with heterogeneous project environments, globally distributed resources and systems, high security requirements, constraints for the use of cloud-based services, multi-platform support and maintenance. The process is now successfully used in (international) projects and is a valuable contribution for the knowledge transfer from university to industry.
We regularly conduct a workshop on continuous software engineering together with RWTH Aachen, co-located at the German Software Engineering conference:
Projects Partners and Co-operations
|iOS Praktikum 2012 - Application of Continuous Software Engineering in Student Projects with Real Customers||Actiworks, Audi, B! Food, Bokowski+Laymann, B/S/H, Equinux, Graupner, MaibornWolff et. al., Siemens, Simon Pierro|
|iOS Praktikum 2013 - Application of Continuous Software Engineering in Student Projects with Real Customers||Siemens, B/S/H/, NTT Data, Maiborn Wolff et. al. & FTI, Adesso, Bokowski+Laymann, Audi, Linova, Jaimie Jacobs, Kisi|
|iOS Praktikum 2014 - Application of Continuous Software Engineering in Student Projects with Real Customers||BMW, T-Systems, Siemens IT, Siemens SPE, B/S/H/, NTT Data, equinux, Boinx Software, Adesso, Carnegie Mellon University, Praxis für Sporttraumatologie|
|Introducing Continuous Delivery of Mobile Apps in a Corporate Environment: A Case Study||Capgemini|
|iOS Praktikum WS14/15 - Application of Continuous Software Engineering in Student Projects with Real Customers||Siemens, B/S/H/, BMW, T-Systems, Allianz, Praxis für Sporttraumatologie, Hochschule Weihenstephan-Triesdorf, Incapptic, Innoactive|
|iOS Praktikum 2015 - Application of Continuous Software Engineering in Student Projects with Real Customers||T-Systems, Lufthansa, Wirecard, Allianz, Bokowsky + Laymann, BMW, Siemens, NTT Data, Audi, Bayerischer Rundfunk|
|CURES - Continuous Usage- and Rationale-based Evolution Decision Support (Contact: Jan Ole Johanßen)||Universität Heidelberg|
Theses In Progress