My research in the past years addresses fundamental engineering challenges in the domain of socio-technical systems. Socio-technical systems are characterized by significant user collaboration; people are no longer just the “users” of a system but an integral part. Traditional self-adaptation mechanisms, however, consider only the software system and remain unaware of the ramifications arising from collaboration interdependencies. By neglecting collective user behavior, an adaptation mechanism is unfit to appropriately adapt to evolution of user activities, consider side-effects on collaborations during the adaptation process, or anticipate negative consequence upon reconfiguration completion.
The importance of research into how to include and become aware of human aspects during system design and adaptation has been repeated several times in the past years. In 2006, Linda Northrop et al. identified Ultra-Large-Scale (ULS) systems as the major future software engineering challenge. Among the defining characteristics of ULS systems are decentralized control, conflicting and changing requirements, continuous evolution, heterogeneous and dynamic system elements, ubiquitous failures, and erosion of the people/system boundary. People are no longer just the “users” of a system but an integral part. Consequently human interactions are highly relevant to the design and adaptation of ULS systems. Linda Northrop repeated those aspects as still highly vital and relevant in her recent ICSE 2013 keynote. We believe that these aspects are true not only for ULS systems but also for traditional medium and large-scale systems. Mostly focused on engineering adaptive systems, David Garlan pointed out the importance of including humans in the adaptation loop in his keynote at the International Symposium on Software Engineering Adaptive and Self-Managing Systems (SEAMS) 2013.
My PhD thesis focused primarily on service-oriented systems, mechanisms, and models for supporting adaptation in collaborative working environments.
First, my dissertation research designed a context model—describing the properties and interactions between ensemble entities—and context distance metrics for establishing the most relevant context for (human and software) collaborators to use in a given situation.
Next, we assessed the impact of service properties on service interactions. We subsequently introduced a service ranking algorithm that exploits these modeled interaction trends. The final component of my thesis mended and extended these models, algorithms, and frameworks for tracking socio-technical-centric requirements and propose suitable services reconfigurations. A capability model described service features and reconfiguration options. Socio-technical-centric metrics indicated changes in the collaboration configuration and trigged reevaluation of requirements. We ultimately matched service capabilities against requirements to identify the most fitting service composition.
Building of the concepts and algorithms for service clustering and aggregation developed during my thesis, I continued to apply them to the formation of near-optimal teams requiring a trade-off between skills and connectivity.
Recent and Present Research
During my early post-doc research I tried a new approach to the question on how to adapt socio-technical systems. Switching from the collaboration-aware service adaptation perspective, I now investigated techniques to directly recommend suitable actions to collaborators. Specifically, I observed people-driven workflows and devised self-learning techniques that were capable of learning changes to underlying business processes from deviation in how people executed their tasks with respect to temporal order and involved artifacts. My coauthors and I designed a recommendation algorithm that would distinguish between expert users and general users, hence being able to decide between giving user-centric or group-centric advice. We further refined this approach for providing useful advice even when processes were subject to sever control flow changes. Here our algorithm would dynamically decide whether to rely on the activity history or the artifact history for correctly predicting upcoming tasks.
In 2011, I joined the Institute for Software Research at UC Irvine as a visiting researcher on an Erwin Schroedinger mobility fellowship.
The main research question addressed during my fellowship can be summarized as follows: what abstractions, mechanisms, and techniques are required to adapt socio-technical systems?
Based upon Malone and Crowston’s observation that human collaboration and software systems share similar coordination requirements, and building on previous work by Richard Taylor (and former colleagues), I made the case for treating collaborations as human architectures, thereby achieving a similar distinction among humans according to work-focused and coordination-focused roles. Making this analogy allowed us to reuse principles and mechanisms from the software architecture domain.
Specifically, we analyzed the flexibility of various collaboration structures (and example real world socio-technical systems) based on behavior, asynchrony, state, and execution context and adapted a set of best practices on how to design collaborations that are subsequently amenable to adaptation. Along these lines we highlighted the existence of structural patterns such as Publish/Subscribe, Master/Worker, Peer-to-Peer, Pipes/Filters, or Shared Artifact in both software architecture and human collaboration. The resulting human Architecture Description Language (hADL) constitutes a core outcome of my research at UCI.
Having devised a mechanism and tools for modeling human collaboration structures, the next research phase consisted of investigating how to establish a connection between human collaboration and software system in order to reason upon adaptation limitations and opportunities. To this end, we apply our human Architecture Description Language (hADL) for specifying a system’s underlying collaboration topology, and the eXtensible Architecture Description Language (xADL) for specifying the software architecture. Explicit non-trivial design-time mappings between hADL and xADL elements allow, during runtime, the matching of software component (and connector) instances to users and their interactions. Adaptation rules can subsequently utilize the hADL model, for example, for prioritizing the replication of components associated with key collaborators.
Attacking a research problem from many angles is a promising strategy, not only in terms of publications (as my publication track demonstrates) but also for bridging various research communities. I strongly believe in this strategy and my future research plan reflects this approach.
Research activities during my dissertation focused on service adaptation, my post-doctoral activities included human-targeted recommendations in the business process domain, while my fellowship allowed me to investigate engineering techniques for system adaptation at the software architectural level. Continuing this line of research, the next logic step is devising more generally applicable mechanism that describe the adaptation capabilities, constraints, and coordination topologies of humans in socio-technical systems.
A sub challenge here is devising mechanisms that control, respectively influence, humans (involved or affected by adaptation) to behave cooperatively. Together with my fellow researchers Ognjen Scekic and Schahram Dustdar at the DSG, we started exploring the concept of simulating the interplay of human behavior and incentive schemes to aid the designers of socio-technical systems in their decision what incentive schemes to implement. Simulation allows gaining insights into the effectiveness of composed schemes, stability, response time to changes, and expected costs. Simulation in general are one mechanism for gaining insights into the dynamics of socio-technical systems and how adaptation mechanism might affect these. Further research is required to better understand how this can be achieved.
At the same time, I plan to apply human architecture principles and techniques in other domains. Preliminary investigations have highlighted the potential of my human Architecture Description Language for modeling, composing, and dynamically reconfiguration various collaboration styles in support of a collective intelligence platform. The evolution of human collaboration structures is often surprising as new requirements emerge from situations that the original system designer never foreseen. Describing the constraints and composability of different collaboration topologies with hADL allows offering collaboration mechanism where users see fit (and not where designers or system providers deem suitable).
Observing high-level collaboration structures has also the potential in the Software Engineering domain to support recommendations tailored to distinct software developer team topologies. Software engineering activities tend to be loosely coupled to allow for flexibly reacting to unforeseen development complexity, requirements changes, and progress delays. This flexibility comes at the price of hidden dependencies among design and code artifacts that make it difficult or even impossible to assess change impact. Incorrect change propagation subsequently results in costly errors. To goal of this research line is devising a novel approach based on monitoring engineering activities for subsequent high-level pattern detection. Patterns of (i) collaboration structures, (ii) temporal action sequences, and (iii) artifact consistency constraints serve as input to recommendation and automatic reconfiguration algorithms for ultimately avoiding and correcting artifact inconsistencies.
In a nutshell, the challenge of engineering adaptive socio-technical systems remains a largely unexplored area, not least because several IT domains overlap and maintain different views. I strongly believe that applying diverse research abilities, skills, and experience will have a profound impact in pushing the boundaries in this relatively new field.