1.
Matthies, C., Huegle, J., Dürschmid, T., Teusner, R.: Attitudes, Beliefs, and Development Data Concerning Agile Software Development Practices. 2019 IEEE/ACM 41st International Conference on Software Engineering: Software Engineering Education and Training (ICSE-SEET). pp. 158–169. IEEE (2019).
The perceptions and attitudes of developers impact how software projects are run and which development practices are employed in development teams. Recent agile methodologies have taken this into account, focusing on collaboration and shared team culture. In this research, we investigate the perceptions of agile development practices and their usage in Scrum software development teams. Although perceptions collected through surveys of 42 participating students did not evolve significantly over time, our analyses show that the Scrum role significantly impacted participants' views of employed development practices. We find that using the version control system according to agile ideas was consistently rated most related to the values of the Agile Manifesto. Furthermore, we investigate how common software development artifacts can be used to gain insights into team behavior and present the development data measurements we employed. We show that we can reliably detect well-defined agile practices, such Test-Driven Development, in this data and that usage of these practices coincided with participants' self-assessments.
2.
Matthies, C., Dobrigkeit, F., Hesse, G.: An Additional Set of (Automated) Eyes: Chatbots for Agile Retrospectives. IEEE/ACM International Workshop on Bots in Software Engineering (BotSE). pp. 34–37. IEEE (2019).
With the recent advances in natural-language processing, combined with the ability to analyze large amounts of data across various domains, software bots can become virtual team members, providing an additional set of automated eyes and additional perspectives for informing and supporting teamwork. In this paper, we propose employing chatbots in the domain of software development with a focus on supporting analyses and measurements of teams' project data. The software project artifacts produced by agile teams during regular development activities, e.g. commits in a version control system, represent detailed information on how a team works and collaborates. Analyses of this data are especially relevant for agile retrospective meetings, where adaptations and improvements to the executed development process are discussed. Development teams can use these measurements to track the progress of identified improvement actions over development iterations. Chatbots provide a convenient user interface for interacting with the outcomes of retrospectives and the associated measurements in a chat-based channel that is already being employed by team members.
3.
Hesse, G., Matthies, C., Sinzig, W., Uflacker, M.: Adding Value by Combining Business and Sensor Data: An Industry 4.0 Use Case. In: Li, G., Yang, J., Gama, J., Natwichai, J., and Tong, Y. (eds.) International Conference on Database Systems for Advanced Applications (DASFAA). pp. 528–532. Springer International Publishing (2019).
Industry 4.0 and the Internet of Things are recent developments that have lead to the creation of new kinds of manufacturing data. Linking this new kind of sensor data to traditional business information is crucial for enterprises to take advantage of the data's full potential. In this paper, we present a demo which allows experiencing this data integration, both vertically between technical and business contexts and horizontally along the value chain. The tool simulates a manufacturing company, continuously producing both business and sensor data, and supports issuing ad-hoc queries that answer specific questions related to the business. In order to adapt to different environments, users can configure sensor characteristics to their needs.
4.
Hesse, G., Matthies, C., Glass, K., Huegle, J., Uflacker, M.: Quantitative Impact Evaluation of an Abstraction Layer for Data Stream Processing Systems. IEEE International Conference on Distributed Computing Systems (ICDCS). pp. 1381–1392 (2019).
With the demand to process ever-growing data volumes, a variety of new data stream processing frameworks have been developed. Moving an implementation from one such system to another, e.g., for performance reasons, requires adapting existing applications to new interfaces. Apache Beam addresses these high substitution costs by providing an abstraction layer that enables executing programs on any of the supported streaming frameworks. In this paper, we present a novel benchmark architecture for comparing the performance impact of using Apache Beam on three streaming frameworks: Apache Spark Streaming, Apache Flink, and Apache Apex. We find significant performance penalties when using Apache Beam for application development in the surveyed systems. Overall, usage of Apache Beam for the examined streaming applications caused a high variance of query execution times with a slowdown of up to a factor of 58 compared to queries developed without the abstraction layer. All developed benchmark artifacts are publicly available to ensure reproducible results.
5.
Hesse, G., Sinzig, W., Matthies, C., Uflacker, M.: Application of Data Stream Processing Technologies in Industry 4.0: What is Missing?. International Conference on Data Science, Technology and Applications (DATA). pp. 304–310. SciTePress (2019).
Industry 4.0 is becoming more and more important for manufacturers as the developments in the area of Internet of Things advance. Another technology gaining more attention is data stream processing systems. Although such streaming frameworks seem to be a natural fit for Industry 4.0 scenarios, their application in this context is still low. The contributions in this paper are threefold. Firstly, we present industry findings that we derived from site inspections with a focus on Industry 4.0. Moreover, our view on Industry 4.0 and important related aspects is elaborated. As a third contribution, we illustrate our opinion on why data stream processing technologies could act as an enabler for Industry 4.0 and point out possible obstacles on this way.
6.
Matthies, C., Hesse, G.: Towards Using Data to Inform Decisions in Agile Software Development: Views of Available Data. International Conference on Software Technologies (ICSOFT). pp. 552–559. SciTePress (2019).
Software development comprises complex tasks which are performed by humans. It involves problem solving, domain understanding and communication skills as well as knowledge of a broad variety of technologies, architectures, and solution approaches. As such, software development projects include many situations where crucial decisions must be made. Making the appropriate organizational or technical choices for a given software team building a product can make the difference between project success or failure. Software development methods have introduced frameworks and sets of best practices for certain contexts, providing practitioners with established guidelines for these important choices. Current Agile methods employed in modern software development have highlighted the importance of the human factors in software development. These methods rely on short feedback loops and the self-organization of teams to enable collaborative decision making. While Agile methods stress the importance of empirical process control, i.e. relying on data to make decisions, they do not prescribe in detail how this goal should be achieved. In this paper, we describe the types and abstraction levels of data and decisions within modern software development teams and identify the benefits that usage of this data enables. We argue that the principles of data-driven decision making are highly applicable, yet underused, in modern Agile software development.
7.
Matthies, C.: Feedback in Scrum: Data-Informed Retrospectives. 2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion). pp. 198–201. IEEE (2019).
Improving the way that teams work together by reflecting and improving the executed process is at the heart of agile processes. The idea of iterative process improvement takes various forms in different agile development methodologies, e.g. Scrum Retrospectives. However, these methods do not prescribe how improvement steps should be conducted in detail. In this research we investigate how agile software teams can use their development data, such as commits or tickets, created during regular development activities, to drive and track process improvement steps. Our previous research focused on data-informed process improvement in the context of student teams, where controlled circumstances and deep domain knowledge allowed creation and usage of specific process measures. Encouraged by positive results in this area, we investigate the process improvement approaches employed in industry teams. Researching how the vital mechanism of process improvement is implemented and how development data is already being used in practice in modern software development leads to a more complete picture of agile process improvement. It is the first step in enabling a data-informed feedback and improvement process, tailored to a team's context and based on the development data of individual teams.
8.
Matthies, C.: Agile Process Improvement in Retrospectives. 2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion). pp. 150–152. IEEE (2019).
Working in iterations and repeatedly improving team workflows based on collected feedback is fundamental to agile software development processes. Scrum, the most popular agile method, provides dedicated retrospective meetings to reflect on the last development iteration and to decide on process improvement actions. However, agile methods do not prescribe how these improvement actions should be identified, managed or tracked in detail. The approaches to detect and remove problems in software development processes are therefore often based on intuition and prior experiences and perceptions of team members. Previous research in this area has focused on approaches to elicit a team's improvement opportunities as well as measurements regarding the work performed in an iteration, e.g. Scrum burn-down charts. Little research deals with the quality and nature of identified problems or how progress towards removing issues is measured. In this research, we investigate how agile development teams in the professional software industry organize their feedback and process improvement approaches. In particular, we focus on the structure and content of improvement and reflection meetings, i.e. retrospectives, and their outcomes. Researching how the vital mechanism of process improvement is implemented in practice in modern software development leads to a more complete picture of agile process improvement.
9.
Matthies, C., Dobrigkeit, F., Ernst, A.: Counteracting Agile Retrospective Problems with Retrospective Activities. In: Walker, A., O’Connor, R.V., and Messnarz, R. (eds.) Systems, Software and Services Process Improvement. EuroSPI 2019. Communications in Computer and Information Science. pp. 532–545. Springer International Publishing (2019).
Retrospective meetings are a fundamental part of Agile software development methods. Effective retrospectives can positively impact teamwork, productivity, and work satisfaction. In this paper, we focus on problems that commonly occur during these meetings. To address them, we suggest retrospective activities that are already used in practice. These activities provide structure and guide the team through the meeting. We created a mapping between a selection of these activities and the problems they attempt to solve. We evaluated the created mapping through multiple case studies with software development teams in educational and professional contexts. Our results verify the existence of a relationship between specific retrospective activities and connected retrospective problems. Furthermore, using observational studies we could verify parts of the created problem-activity mapping.