Habilitation Overview – Supporting Implicit and Explicit Coordination in Software-Intensive Systems Engineering

Finally, I put aside some time to write the introduction to my cumulative habilitation thesis entitled “Supporting Implicit and Explicit Coordination in Software-Intensive Systems Engineering“.

Abstract

One of the central challenges in engineering projects, whether in industrial safety-critical domains, less regulated software systems, or open-source development environments, is effective work coordination. Engineers must navigate complex processes, identify relevant tasks, and understand deviations, all while coordinating with team members. In regulated domains, adherence to rigorous processes is mandated by regulations, but identifying relevant processes and ensuring adherence remains challenging due to complexity and lack of automation support. In less regulated environments, determining deviations from intended processes is cumbersome. In open-source settings, developers struggle with identifying dependent tasks and coordinating with team members, relying on potentially inaccurate links provided by task management tools.

The primary research gap identified in this thesis pertains to the absence of approaches that allow engineering processes to run in the background without mandating engineers to strictly adhere to predefined procedures, while still offering guidance on process status and progress. Engineers require guidance on task readiness, adherence to quality assurance criteria, and deviations from the process, alongside the flexibility to deviate as necessary. Existing methods either require explicit modeling for deviations or are overly flexible, lacking sufficient guidance. Moreover, most approaches necessitate engineer interaction for process tracking, rather than passive observation and inference of process progress from their activities.
Additional research gaps include limitations in software process mining due to high entry barriers and insufficient support for the combination of process metrics and timeline visualization. Task-aware artifact dependency analysis also poses a challenge, with existing tools focusing on individual tasks rather than broader process contexts, highlighting the need for investigating change propagation across tasks.

The overarching theme of the thesis is, hence, to develop mechanisms supporting stakeholders in managing implicit and explicit coordination dependencies, providing timely information, and reducing the effort required to obtain critical information about task readiness, quality assurance compliance, process adherence, and artifact dependencies. The thesis considers engineering artifacts, such as requirements and source code, as well as tasks that encompass various engineering activities and aims to explore support mechanisms tailored to different process rigor levels.
To this end, the seven publications that make up this cumulative habilitation thesis make three major contributions: (1) supporting engineers in following explicit engineering processes, (2) raising awareness of implicitly followed processes, and (3) understanding implicit coordination dependencies.

Here you also find a current CV including a full list of publications.

The full thesis including the seven publications above as well as my CV etc. is also available on figshare.

PROGUIDE: FWF Project P 34805-N

I’m very happy to announce that I’m looking for a PhD student to work with me on this recently funded FWF project (see below for a summary). If you are interested, drop me an email at christoph.mayr-dorn@jku.at

Software processes together with software Quality Assurance (QA) focus on ensuring and attesting that the engineering processes result in the appropriate software quality. Yet, there exists a tension between the need to follow regulations and the process on the one hand, and the need to be able to deviate on the other hand.
The problem is then how to provide automated process guidance to engineers in the presence of violated process and quality constraints.

This is non-trivial as a process deviation typically affects not only a single engineer but has an impact on other engineers as well. Without awareness of process deviation and its impact on others, a deviation (such as an unfulfilled QA constraint) may go unnoticed or not be completely corrected. The constraint violation then may propagate to subsequent process steps and their engineering artifacts, ultimately leading to costly rework at a later time or lower software quality.

We argue that guidance needs to come in two forms. First, supporting engineers in determining which activities are needed to return to a consistent process state, and second, identifying what are the affected process steps and their responsible engineers.

In this project, we will manage software engineering processes and their QA constraints passively in the background so that engineers may flexibly deviate from the process. We then identify root causes to reason about who needs to coordinate in repairing a deviation. We also determine the deviation impact scope to identify the subsequent effect on others. Matching deviations with repair templates supports the engineers in returning to a consistent process state.
The key innovation is providing guidance even for those engineers implicated in a deviation.

The research agenda envisions the integration of the newly established models, techniques, and algorithms in a proof-of-concept prototype for evaluation with our industry evaluation collaborator under realistic conditions.
Ultimately we expect such guidance to reduce the time in a deviating state, and thus the potential for unintended constraint violation propagation, which in turn reduces the amount of errors and subsequent rework that cascades beyond an initial deviation.

CROSS-CHANGE : Research Project

I’m exited to be leading the LIT SEED project CROSS-CHANGE (with Co-PIs Alexander Egyed and Alois Zoitl). The project aims to bring more insights into the question: How do Engineers Coordinate and Execute Cross-Disciplinary Changes in Software-Intensive Mechatronical Systems?

Abstract:

Designing a software-intensive mechatronic system brings together design knowledge from different engineering disciplines – with each discipline contributing its own modeling languages and mechatronic design artifacts (source code, 3D hardware models, electrical layout, etc.). A key challenge is to keep all these artifacts consistent to obtain a correct system.

While existing research started to address the issue of consistency among engineering artifacts, studying how engineers interact with mechatronic design artifacts has received little attention. Investigations into how engineers create and refine an artifact, coordinate those changes with other engineers, in what order, to achieve what task would provide novel, fundamental insights for improving design tools, especially for supporting change management. Ultimately this will lead to a reduction in friction losses among disciplines, shorter development cycles, fewer inconsistencies across artifacts, and more adaptable system designs.

The proposal’s primary aim, therefore, is to obtain a better understanding how engineers coordinate and execute cross-disciplinary changes in software-intensive mechatronical systems.

We hypothesize that such an understanding is best obtained through a two-sided approach: we propose investigations on 1) how engineers create and change mechatronical artifacts and their dependencies; and 2) how engineers coordinate their work around these artifacts: two sides of the same coin. To this end, we attempt to apply methods, techniques, and theory from software engineering in the mechatronics field and observe—as a side outcome—to what extent such a transfer is possible and useful.

Does the Propagation of Artifact Changes across Tasks reflect Work Dependencies?

Mayr-Dorn, C. and Egyed, A. (2018) Does the Propagation of Artifact Changes across Tasks reflect Work Dependencies? (preprint) In Proceedings of
the 40th International Conference on Software Engineering (ICSE ’18), May 27-June 3, 2018, Gothenburg, ACM, forthcoming

Abstract:

Developers commonly define tasks to help coordinate software development efforts-whether they be feature implementation, refactoring, or bug fixes. Developers establish links between tasks to express implicit dependencies that needs explicit handling-dependencies that often require the developers responsible for a given task to assess how changes in a linked task affect their own work and vice versa (i.e., change propagation). While seemingly useful, it is unknown if change propagation indeed coincides with task links.

No study has investigated to what extent change propagation actually occurs between task pairs and whether it is able to serve as a metric for characterizing the underlying task dependency. In this paper, we study the temporal relationship between developer reading and changing of source code in relationship to task links. We identify seven situations that explain the varying correlation of change propagation with linked task pairs and find six motifs describing when change propagation occurs between non-linked task pairs. Our paper demonstrates that task links are indeed useful for recommending which artifacts to monitor for changes, which developers to involve in a task, or which tasks to inspect.

Supporting Online Material: https://doi.org/10.6084/m9.fgshare.5346253.v1

This work was supported by the Austrian Science Fund (FWF): P29415-NBL funded by the Government of Upper Austria.