Software Engineering practitioners work using highly diverse methods and practices, and general theories in software engineering are lacking. One attempt at creating a common ground in the area of software engineering methodologies has been the Essence Theory of Software Engineering, which can be considered a method-agnostic project management tool for software engineering. Essence supports the use of any development practices and provides a framework for building a suitable method for any software engineering context. However, Essence presently suffers from low practitioner adoption that is partially considered to be caused by a lack of proper tooling. In this paper, we present Essencery, a tool for essentializing software engineering methods and practices using the Essence graphical syntax. Essencery aims to facilitate adoption of Essence among potential future users. We present an empirical evaluation of the tool by means of a qualitative, quasi-formal experiment and, based on the experiment, confirm that the tool is easy to use and useful for its intended purpose.
A. Evensen, Kai-Kristian Kemell, Xiaofeng Wang et al.· arXiv.org· 5 citations
Software Engineering as an industry is highly diverse in terms of development methods and practices. Practitioners employ a myriad of methods and tend to further tailor them by e.g. omitting some practices or rules. This diversity in development methods poses a challenge for software engineering education, creating a gap between education and industry. General theories such as the Essence Theory of Software Engineering can help bridge this gap by presenting software engineering students with higher-level frameworks upon which to build an understanding of software engineering methods and practical project work. In this paper, we study Essence in an educational setting to evaluate its usefulness for software engineering students while also investigating barriers to its adoption in this context. To this end, we observe 102 student teams utilize Essence in practical software engineering projects during a semester long, project-based course.
Kai-Kristian Kemell, Anh Nguyen-Duc, Xiaofeng Wang et al.· International Conference on...· 5 citations
[Background] An increasing number of commercial firms are participating in Open Source Software (OSS) projects to reduce their development cost and increase technical innovativeness. When collaborating with other firms whose sought values are conflicts of interests, firms may behave uncooperatively leading to harmful impacts on the common goal. [Aim] This study explores how software firms both collaborate and compete in OSS projects. [Method] We adopted a mixed research method on three OSS projects. [Result] We found that commercial firms participating in community-initiated OSS projects collaborate in various ways across the organizational boundaries. While most of firms contribute little, a small number of firms that are very active and account for large proportions of contributions. We proposed a conceptual model to explain for coopetition among software firms in OSS projects. The model shows two aspects of coopetition can be managed at the same time based on firm gatekeepers. [Conclusion] Firms need to operationalize their coopetition strategies to maximize value gained from participating in OSS projects.
Anh Nguyen-Duc, D. Cruzes, Terje Snarby et al.· e-Informatica Software Engin...· 15 citations· ⚡2
Metrics can be used by businesses to make more objective decisions based on data. Software startups in particular are characterized by the uncertain or even chaotic nature of the contexts in which they operate. Using data in the form of metrics can help software startups to make the right decisions amidst uncertainty and limited resources. However, whereas conventional business metrics and software metrics have been studied in the past, metrics in the spe-cific context of software startup are not widely covered within academic literature. To promote research in this area and to create a starting point for it, we have conducted a multi-vocal literature review focusing on practitioner literature in order to compile a list of metrics used by software startups. Said list is intended to serve as a basis for further research in the area, as the metrics in it are based on suggestions made by practitioners and not empirically verified.
Kai-Kristian Kemell, Xiaofeng Wang, Anh Nguyen-Duc et al.· Workshop on Software-intensi...· 9 citations
Software Engineers work using highly diverse methods and practices, and general theories in software engineering are lacking. A recent attempt at creating a common ground in the area of software engineering methodologies has been the Essence Theory of Software Engineering. Essence is a method-agnostic progress management framework and a meta-method for Software Engineering (SE). However, tooling for Essence is still lacking. Without dedicated tools and other instruments, a meta-method such as Essence is cumbersome to utilize by practitioners and students. Indeed, Essence currently suffers from a lack of widespread practitioner adoption. In this paper, we thus present an Open Source tool for essentializing methods and practices: Essencery. We conduct a qualitative evaluation of the tool through a quasi-formal experiment and a set of semi-structured interviews. Based on this data, we improve Essencery iteratively before it is utilized in a large-scale project-based course as a proof of concept.
Kai-Kristian Kemell, A. Evensen, Xiaofeng Wang et al.· EUROMICRO Conference on Soft...· 2 citations
Solutions in artificial intelligence (AI) are becoming increasingly widespread in system development endeavors. As the AI systems affect various stakeholders due to their unique nature, the growing influence of these systems calls for eth-ical considerations. Academic discussion and practical examples of autonomous system failures have highlighted the need for implementing ethics in software development. However, research on methods and tools for implementing ethics into AI system design and development in practice is still lacking. This paper be-gins to address this focal problem by providing a baseline for ethics in AI based software development. This is achieved by reporting results from an industrial multiple case study on AI systems development in the health care sector. In the context of this study, ethics were perceived as interplay of transparency, re-sponsibility and accountability, upon which research model is outlined. Through these cases, we explore the current state of practice out on the field in the ab-sence of formal methods and tools for ethically aligned design. Based on our data, we discuss the current state of practice and outline existing good practic-es, as well as suggest future research directions in the area.
Ville Vakkuri, Kai-Kristian Kemell, P. Abrahamsson· arXiv.org· 2 citations
Moving from experiments to industrial level AI software development requires a shift from understanding AI/ ML model attributes as a standalone experiment to know-how integrating and operating AI models in a large-scale software system. It is a growing demand for adopting state-of-the-art software engineering paradigms into AI development, so that the development efforts can be aligned with business strategies in a lean and fast-paced manner. We describe AI development as an “unknown unknown” problem where both business needs and AI models evolve over time. We describe a holistic view of an iterative, continuous approach to develop industrial AI software basing on business goals, requirements and Minimum Viable Products. From this, five areas of challenges are presented with the focus on experimentation. In the end, we propose a research agenda with seven questions for future studies.
Anh Nguyen-Duc, P. Abrahamsson· ESEC/SIGSOFT FSE· 9 citations
There appears to be a common agreement that ethical concerns are of high importance when it comes to systems equipped with some sort of Artificial Intelligence (AI). Demands for ethical AI are declared from all directions. As a response, in recent years, public bodies, governments, and universities have rushed in to provide a set of principles to be considered when AI based systems are designed and used. We have learned, however, that high-level principles do not turn easily into actionable advice for practitioners. Hence, also companies are publishing their own ethical guidelines to guide their AI development. This paper argues that AI software is still software and needs to be approached from the software development perspective. The software engineering paradigm has introduced maturity model thinking, which provides a roadmap for companies to improve their performance from the selected viewpoints known as the key capabilities. We want to voice out a call for action for the development of a maturity model for AI software. We wish to discuss whether the focus should be on AI ethics or, more broadly, the quality of an AI system, called a maturity model for the development of AI systems.
Ville Vakkuri, Marianna Jantunen, Erika Halme et al.· SafeAI@AAAI· 17 citations· ⚡1
A USAF cadet and a Lincoln Laboratory researcher found AI chatbots can help nontechnical service members produce viable software applications for their unique problems.