Ahmed Seffah, P.Eng., Ph.D, HDR
Professor of HCI/Human-Centric Software Design and Engineering
Lappeenranta University of Technology, Finland
Other Leading Positions
- HCI-CPS – HCI/Human Side of Cyber Physical Systems
CODER Living Lab – CO-Design, Innovation and Experimentation with User Experiences for Software Systems)
Digi-Users – LUT Research Platform Smart Services for Digitalization
- Scientific Collaborator, Louvain Research Institute in Management and Organization, University Catholic Louvain La Neuve Belgium
Editorial Board Member, HCI Series, Springer
Design of software systems have been investigated from different points of views and by mainly three different communities:
- HCI (Human Computer Interaction) design including user interfaces, interaction, interactive systems and user experience design,
- Software engineering including both a low-level component and algorithm design and a high-level, architecture design
- Design science research in information systems (MIS)
There are some overlaps between the understandings of the design practices and theory between these three communities. For the last forty years, the software engineering and MIS communities have largely taken an artifact-driven approach that shows its limits in, among others, providing sufficient provision to the human perspectives and the interplay between qualities attributes such as usability and security.
Only a small fraction of the current research about software design has considered how humans interact with the entire software eco-system. A similarly small amount of research has considered how humans interact with humans when not only using but also co-designing innovative software products, services and systems. A human-centric software engineering approach involves performing empirical studies to understand how human use, develop, use, manage and maintain the software eco-systems. Questions such as – how software engineers work with software and with each other, how they are developing new methods for both decomposing and composing models of software to facilitate their usage, ease the cognitive load placed on end-users as well as engineers, are the core of our daily investigations.
My overall research goal is to balance the artifact-driven and human-centric design approaches, in which the focus is on understanding the human experiences and factors required to building human-centric usable yet secure and sustainable software products, service and systems. In 2001, I coined the term human-centric software engineering as a domain at the intersection of HCI, SE and MIS to studying the engineering and the design practices related to the human experiences and factors. This research lies in the long tradition and rich history of how humans interact with software systems in HCI. The following are the questions that I’m addressing while building a common, intra-disciplinary notion of design, its constituent parts and practices:
- How software design is or can be defined, and how is it is perceived by software engineers, end-users, stakeholders as well as by other related design communities?
- What are the major drawbacks of the design methods in the software engineering community, and how can design and design methods developed by other communities supplement and be integrated into the software engineering design toolbox?
- What kind of cross-pollination bridges can be developed over the current gaps between different software design approaches and communities?
- Is there a common ground and a body of knowledge beyond the diversity of design methods and practices that exist today in the different communities
The long term never achieved research objective is to develop and validate a theory, I called “Design is Right and the Right Design: how to Measure Right”. Daily activities and investigations with students, partners and colleagues from SE, MIS and HCI include:
- User experience design and the design of the user interface artifact, especially multi-platforms, multi-devices and context-aware user interfaces.
- Measures and measurement of the constructs that quantify the quality of a design from a human perspectives including usability, learnability, usefulness, accessibility
- Design patterns of the trade-off between quality attributes that measures the different aspects of design from the human perspectives and their possible conflicts with their attributes (e.g. usability versus security)
- Design of the big picture of the entire software-intensive eco-system or system of software systems in order to better understand and promulgate well-known principles, practices, and the use of design methods
- Design for societal challenges, mainly defining methods and tools for solving problems. Design methods, especially design thinking and user experience design)
- Integration of the design methods into the overall engineering and innovation life-cycle
A fundamental long-life research question governing all my research investigations is the construction of a design theory of software systems “The Design is Right and the Right Design”. My source of inspiration is Herbert A. Simon seminal work, The Sciences of the Artificial (Cambridge, MA: MIT Press, 1996; See also Nigel Cross, “Editorial: Forty Years of Design Research,” Design Studies 28, no. 1 (January 2007): 1–4; and Nigan Bayazit, “Investigating Design: A Review of Forty Years of Design Research,” Design Issues 20, no. 1 (Winter 2004): 16–29.
Software design science is the philosophical, theoretical and empirical study of software creation and modification including its phenomenology, methodology and causality. It is distinct from the “design-science research paradigm”, where design is a research method. A key element of design science involves theories of the shape and organization of the design process. Yet, the shape and organization of the design process of software, in particular, is not well understood, as most academic work on software design is prescriptive rather than explanatory or descriptive – hence, my primary research question (as follows). What is the process by which development teams create software in practice?
Software design measures and measurement of the human factors – also called quality in use or human perspective of software systems quality. Usability, usefulness, human safety, accessibility are the factors that have received a huge amount of research work. Accountability, privacy, trustfulness and even usefulness and sustainability are human factors too that are awaiting for methods and tools for their measurement. A quality in use model which is composed of these factors, their inter-dependencies and possible conflicts (some of which are further subdivided into sub-characteristics) should relate to the outcome of interactions when a product is used in a particular context of use. This quality in use model should be applicable to the complete Human-Computer system, including both software products, services and systems in use as well as the entire software eco-system.