End-User Development in the IoT

In the contemporary Internet of Things (IoT) era, people can interact with a multitude of smart devices, always connected to the Internet, in the majority of today’s environments. With lamps, thermostats, and many other appliances that can be remotely controlled, homes and workplaces are becoming "smart." Furthermore, by using PCs and smartphones, users can access a variety of online services, ranging from social networks to news and messaging apps. The result is a complex network of connected entities, be they physical devices or virtual services, that can communicate with each other, with humans, and with the environment. This complex scenario opens up, at the same time, possibilities and issues. By taking advantage of End-User Development (EUD) solutions, users can actively participate in the IoT by personalizing the functionality of their connected entities.

Nowadays, in particular, many different visual programming platforms such as IFTTT and Zapier allow the personalization of the joint behaviors of connected entities through IFTHEN rules, i.e., in the form of “if something happens on a device or a service, then execute an action on another device or service.” The growing spread of new smart devices and online services, however, makes this personaliziation a complex task, especially for users without programming experience. The trigger-action programming paradigm, indeed, is typically implemented at a low-level of abstraction, with representation models that strongly depend on the exploited technologies. This negatively influences the rule definition process: end users experience difficulties in finding and managing the functionality they are interested in, and they are likely to introduce dangerous run-time errors in the defined IF-THEN rules.

Stemming from these issues, my research in the EUD context aims at assisting end users in easily and efficiently personalizing the functionality of their connected entities. Together with my research group, I explored different approaches and practical solutions to simplify the definition of IF-THEN rules, promote the discovery of new rules and related functionality, and enable the debugging of run-time problems in IF-THEN rules.

All these research works have been included in my PhD thesis. Click here to watch the full video of my PhD defense!