Abstract-According to the textbook [23], Scrum exists only in its entirety, where every component is essential to Scrum's success. However, in many organizational environments some of the components are omitted or modified in a way that is not aligned with the Scrum guidelines. Usually, such deviations result in missing the full benefits of Scrum [24]. Thereby, a Scrum process should be frequently inspected and any deviations should be corrected [23]. In this paper, we report on an Action Research project conducted in Intel Technology Poland to revise the work practices related to the Retrospective. During the focus group discussion in the company, retrospectives were generally judged ineffective because "the same things are discussed over and over". To cope with this challenge, we revitalized retrospectives by adopting collaborative games. The feedback received from three Scrum teams indicates that our approach improved participants' creativity, involvement, and communication, and produced better results than the standard retrospective.
In agile software development, where great emphasis is put on effective informal communication involving diverse stakeholders, success depends on human and social factors. Not surprisingly, the Agile Manifesto advocates principles and values such as "individuals and interactions over processes and tools", "focus on the customer", "collaborate regularly", "communicate face-to-face within the team" and "have regular team introspection". However, agile methodologies have hardly provided any tools or techniques that aid the human side of software development. Additionally, more and more research suggests that customers no longer should be viewed as a passive source of information but need to be engaged in envisioning future business practice, discovering opportunities, and shaping solutions. To deal with these challenges, we propose a framework for extending Scrum with 9 collaborative games. Collaborative games refer to several structured techniques inspired by game play and designed to facilitate collaboration, foster customer involvement, and stimulate creative thinking. The feedback received from a Scrum team that leveraged our framework in two commercial projects, indicates that the adopted collaborative games: (1) make customers more willing to attend the meeting; (2) foster stakeholders' commitment; and (3) produce better results than the standard approach.
Motivation. Despite the widespread use of video lectures in online and blended learning environments, there is still debate whether the presence of an instructor in the video helps or hinders learning. According to social agency theory, seeing the instructor makes learners believe that s/he is personally teaching them, which leads to deeper cognitive processing and, in turn, better learning outcomes. Conversely, according to cognitive load theory, adding an image of the instructor may hinder attentional engagement with lecture content due to split-attention effect. Not only are theoretical propositions conflicting, but so is the empirical evidence as well. Objective. This study investigates the effects of the presence of the instructor's face in the corner of an educational video on learning outcomes, perceived cognitive load, and perceived social presence in the context of foreign language vocabulary learning. Method. In an online quasi-controlled experiment with between-subject design, 112 participants were randomly assigned to view a 10-min-long educational video in one of two conditions: instructor-present or instructor-absent. As for the latter condition, the face was shown only at the introduction of the presentation. Afterwards, participants completed a retention test as well as a cognitive load and social presence questionnaire. Results. No significant differences were found for any dependent variable. Conclusion. Individuals differ so much in their language aptitude as well as motivation to perform well that random assignment is probably not enough to ensure balanced groups in this particular study context. Besides, the approach that we used to measure cognitive load as well as social presence is not suited for between-subject design, even though it was previously used in such settings.
Context. Since its proclamation in 2012, microservices-based architecture has gained widespread popularity due to its advantages, such as improved availability, fault tolerance, and horizontal scalability, as well as greater software development agility. Motivation. Yet, refactoring a monolith to microservices by smaller businesses and expecting that the migration will bring benefits similar to those reported by top global companies, such as Netflix, Amazon, eBay, and Uber, might be an illusion. Indeed, for systems that do not have thousands of concurrent users and can be scaled vertically, the benefits of such migration have not been sufficiently investigated, while the existing evidence is inconsistent. Objective. The purpose of this paper is to compare the performance and scalability of monolithic and microservice architectures on a reference web application. Method. The application was implemented in four different versions, covering not only two different architectural styles (monolith vs. microservices) but also two different implementation technologies (Java vs. C# .NET). Next, we conducted a series of controlled experiments in three different deployment environments (local, Azure Spring Cloud, and Azure App Service). Findings. The key lessons learned are as follows: (1) on a single machine, a monolith performs better than its microservice-based counterpart; (2) The Java platform makes better use of powerful machines in case of computation-intensive services when compared to .NET; the technology platform effect is reversed when non-computationally intensive services are run on machines with low computational capacity; (3) vertical scaling is more cost-effective than horizontal scaling in the Azure cloud; (4) scaling out beyond a certain number of instances degrades the application performance; (5) implementation technology (either Java or C# .NET) does not have a noticeable impact on the scalability performance.
Abstract. Modularity is the single attribute of software that allows a program to be intellectually manageable [29]. The recipe for modularizing is to define a narrow interface, hide an implementation detail, keep low coupling and high cohesion. Over a decade ago, aspect-oriented programming (AOP) was proposed in the literature to "modularize the un-modularizable" [24]. Since then, aspect-oriented languages have been providing new abstraction and composition mechanisms to deal with concerns that could not be modularized because of the limited abstractions of the underlying programming language. This paper is a continuation of our earlier work [32] and further investigates AO software with regard to coupling and cohesion. We compare two versions (Java and AspectJ) of ten applications to review AOP within the context of software modularity. It turns out that the claim that "the software built in AOP is more modular than the software built in OOP" is a myth.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.