Software Engineering for Internet of Things: The Practitioner's Perspective
This addresses a gap for software engineers and researchers in IoT development, providing practical guidance, though it is incremental as it synthesizes existing knowledge into a structured framework.
The study tackled the lack of a defined development process lifecycle for Internet of Things (IoT) systems by deriving a conceptual framework with 27 key tasks from literature and validating it through a survey of 127 practitioners across 35 countries and 15 industries.
Internet of Things based systems (IoT systems for short) are becoming increasingly popular across different industrial domains and their development is rapidly increasing to provide value-added services to end-users and citizens. Little research to date uncovers the core development process lifecycle needed for IoT systems, and thus software engineers find themselves unprepared and unfamiliar with this new genre of system development. To ameliorate this gap, we conducted a mixed quantitative and qualitative research study where we derived a conceptual process framework from the extant literature on IoT, that identifies 27 key tasks for incorporating into development processes for IoT systems. The framework was then validated by means of a survey of 127 IoT systems practitioners developers from 35 countries across 6 continents with 15 different industry backgrounds. Our research provides an understanding of the most important development process tasks and informs both software engineering practitioners and researchers of the challenges and recommendations related to the development of next generation of IoT systems.