About
157
Publications
94,483
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
3,600
Citations
Introduction
Ana M. Moreno is full professsor at the School of Computer Science, Universidad Politécnica de Madrid. Ana does research in Software Engineering. She has published more than 30 papers in JCR journals, and a significant number of papers in Software Engineering conferences.
Check Ana's full cv at: https://sites.google.com/site/anammorenosanchez/home
Skills and Expertise
Additional affiliations
November 1997 - present
Publications
Publications (157)
Agile project management has become essential in modern enterprises, particularly in the software industry, due to its flexibility and adaptability. This paper presents an empirical evaluation of the Ball Point Game (BPG), a non-digital serious game designed to teach Agile Project Management principles. The evaluation is based on three case studies...
This article provides a rich discussion on how the sustainability of agile development processes can be enhanced. In particular, we focus on a recently developed framework, named GLUX, that integrates Lean UX into Scrum. GLUX’s main goal is to facilitate a seamless integration between agile and user experience (UX) by using gamification to motivate...
Organizational type mismatch occurs when organizations use traditional approaches to govern agile teams. It has harmful effects on organizational performance and team morale. This article explores this phenomenon at agile software development small- and medium-sized enterprises (SMEs). In particular, we aimed to evaluate the importance, frequency,...
This article provides a rich discussion on how the sustainability of agile development processes can be enhanced. In particular, we focus on a recently developed framework, named GLUX, that integrates Lean UX into Scrum. GLUX's main goal is to facilitate a seamless integration between agile and user experience (UX) by using gamification to motivate...
The software industry is a dynamic and ever‐changing environment where knowledge dissemination and ongoing learning is an open challenge, especially in agile organizations where continuous learning is essential. Organizational training covers the set of activities that drive this learning process and is one of the process areas of process improveme...
The integration of Agile development and user experience (UX) has received significant attention over the past decade. The literature contains several process models and wide-ranging discussion about the benefits and challenges of this integration. However, academia has given this integration short shrift. In fact, there are very few publications c...
We discuss the extent to which Capability Maturity Model Integration (CMMI) v2.0 addresses Agile alignment challenges. We identify the two most significant CMMI v2.0 artifacts for integration, and highlight important issues that organizations need to tackle.
CMMI and Agile can work together. Over 80% of CMMI appraisals in 2018 were conducted at agile organizations, even though pre-2018 CMMI versions do not provide guidelines for agile contexts. A number of experience reports and research studies address the alignment between the two approaches but also pinpoint open tactical and organizational challeng...
One of the central tasks of process improvement is to deal with changing environmental conditions, and organizational training is crucial for this purpose. The software industry is one such dynamic and ever-changing environment. However, knowledge dissemination and ongoing learning is an open challenge in this industry, especially in agile organiza...
The fields of Big Data, Data Analytics and Data Science, which are key areas of current and future industrial demand, are quickly growing and evolving. Within Europe, there is a significant skills gap which needs to be addressed. A key activity is to ensure we meet future needs for skills and align the supply of educational offerings with the deman...
This chapter includes a set of use cases and examples of practical use of EDSF for developing data science curricula, competences assessment, data science team building and addressing new skills demand for emerging data economy.
Agile methods have been recognized as providing tangible benefits, some of them directly related to software project management (SPM). In this paper we address in detail the relationship between Agile and SPM, discussing the extent to which the use of agile practices helps to reduce or avoid the occurrence of different SPM antipatterns. Our results...
Software process improvement (SPI) initiatives have contributed for a long time to the progress of software development. However, the outcome of such initiatives has not always been as effective as expected. The literature of SPI points out that motivation of practitioners involved in SPI initiatives is a critical factor for its success. On the oth...
The growing demand for data scientists and their importance in industrial trends has resulted in a number of recent initiatives to promote skills in data science. One of these initiatives is a badge based scheme for the recognition of skills in data science developed as part of the BDVe project with the collaboration of the BDVA. This initiative is...
The potential of gamification is based on the hypothesis that it improves user engagement, motivation, and performance. Gamification has already been used in software development with promising results. Our aim is to get a snapshot of the state of the practice of gamification and agile software development, and to discover what evidence there is ab...
The potential of gamification in education is based on the hypothesis that it supports and motivates students and can thus lead to enhanced learning processes and outcomes. Gamification in software engineering (SE) education is in its infancy. However, as SE educators we are particularly interested in understanding how gamification is pollinating o...
A qualified and motivated project manager is a key factor in a software project’s success. Thus, getting the most out of those managers is important. Feedback is a critical part of this process. With this in mind, this article recommends the best practices for evaluating software project managers.
The integration of usability practices in software development is not a straightforward process. In this context, the application of usability maturity models (UMM) in a software organization can provide insightful information to improve such integration. This paper discusses the design and application characteristics of the UMMs used over the last...
The lack of user engagement, the absence of user feedback, incomplete and continuously changing user requirements are among the critical concerns that cause projects to fail. User-centered design (UCD) and agile software development are two iterative approaches that have been proposed to overcome such concerns. UCD is a design process focusing on u...
Training existing and future software project managers presents a challenge to the academic community. Software project management is usually taught as part of software engineering bachelor or master programs which are generally based on SWEBOK. However, evidence shows that even when SWEBOK provides some software project management knowledge it is...
Software project management antipatterns can help practitioners identify and avoid practices that will hinder success. This article provides a consolidated list of such antipatterns and discusses their implications.
In 2003, the original paper with this title was published as part of CSEET 2003. It focused on resolving communication issues between software project managers and developers and introduced a corporate strategy based means of evaluating software engineers. Now, more than a decade later, we could benefit from what we have learned in other fields abo...
Software companies encourage and further the use of collaborative tools and skills at the work place in pursuit of the benefits of their use: they improve communication, productivity and efficiency, and competitiveness. Besides, undergraduate and graduate software engineering computing curricula recommend subjects related to effective cooperative w...
Human centricity refers to the active involvement in the overall product lifecycle of different human actors including end-users, stakeholders and providers. Persona is one of the different tools that exist for human centricity. While marketing is the original domain in which persona was introduced, this technique has also been widely used in user-...
Educating software engineers is a long-standing challenge. This article addresses the issue by examining the overlap between the software engineering educational standards (SE 2004 and GSwE 2009) and one of the most well-known software process improvement models (CMMI-DEV). The resulting data are useful to both industry and academia for improving t...
The history of software engineering has been marked by many famous project failures documented in papers, articles, and books. This pattern of lack of success has prompted the creation of dozens of software analysis, requirements definition, design methods, programming languages, software development environments, and software development processes...
Over the past two decades, the HCI community has proposed specific features that software applications should include to overcome some of the most common usability problems. However, incorporating such usability features into software applications may not be a straightforward process for software developers who have not been trained in usability (i...
Many large and distributed companies run agile projects in development environments that are inconsistent with the original agile ideas. Problems that result from these inconsistencies can affect the productivity of development projects and the timeliness of releases. To be effective in such contexts, the agile ideas need to be adapted. We take an...
The integration of usability engineering methods into software development life cycles is seldom realized in industrial settings.
Usability is a critical quality factor. Therefore, like traditional software teams, agile teams have to address usability to properly catch their users experience. There exists an interesting debate in the agile and usability communities about how to achieve this integration. Our aim is to contribute to this debate by discussing the incorporation o...
The Use Case Precedence Diagram (UCPD) is a technique that addresses the problem of determining the construction sequence or prioritization of a software product from the developer’s perspective. This paper presents a replicated controlled experiment with undergraduate students. The results obtained from this experiment confirm the results obtained...
In this paper, we present a linguistic approach in order to achieve the object oriented analysis (OOA) process in a systematic way. The approach is based on the definition of a formal correspondence between a subset of structures from linguistic world, called linguistic patterns, and a subset of structures from conceptual world, called conceptual p...
The Second Workshop “Dealing with Usability in an Agile Domain” is aimed to be a forum for discussing these approximations
for the intersection of agility and usability. More concretely, issues regarding the implications of usability in agile environments,
alternatives for integrating HCI techniques in an agile process, approaches for incorporating...
For years, the Human Computer Interaction (HCI) community has defined the expected characteristics of usable software systems. However, from a Software Engineering (SE) perspective, the process of incorporating usability into software is not always straightforward, as many usability features have strong implications in the underlying architecture....
Software development is influenced by the need to build reusable applications. Defining general-purpose mechanisms that are valid for implementing usability across all systems is a challenging undertaking because of system diversity. In this paper, we present an effort to develop general-purpose guidelines to help to build usability features into s...
Use Cases are the most utilized technique to specify software requirements. Currently, there are several proposals based on
this technique to address the problem of determining the scope and construction sequence of a software, but most of them lack
ease of use from the developer’s perspective. In this paper, we present an approach to determine sof...
Is 25 years enough time to build up a coherent body of knowledge that can help point to useful principles? As a testbed for helping us answer this question, software testing techniques are a good place to start. Few software practices are as important as testing, and testing techniques are amenable to measurement and reasoning about their effective...
The majority of software development projects utilize the use cases technique to define software requirements, which are necessary to determine not only the scope of the software itself, but also the sequence in which this software will be constructed. Currently, there are several proposals to define the construction sequence of software requiremen...
Like any other software system quality attribute, usability places requirements on software components. In particular, it has been demonstrated that certai n usability features have a direct impact throughout the software process. This paper details an approach th at looks at how to deal with certain usability feature s in the early software develo...
Nowadays, the concept of Model Transformation Technology (MTT) is widely accepted in the Software Engineering community. These
technologies have the capability of generating software code (solution space) from a conceptual model that specifies the system
abstractly (problem space). Most MTTs disregard interaction modelling (and specifically usabili...
This paper proposes new analysis method, called POAM (Problem-Oriented Analysis Method). POAM has been developed to solve several shortcomings of existing conceptual models (solution orientation and dependence of concrete development approaches). Those shortcomings have adverse effects on software development, since practitioners are encouraged to...
This paper presents some guidelines to help software designers to design architectures that support particular usability features.
We focus on features with high impact on software functionality and therefore on software design, like Feedback or Undo/Cancel.
We have adopted an empirical approach to propose some design recommendations to be used to...
Like any other quality attribute, usability imposes specific constraints on software components. Features that raise the software system's usability have to be considered from the earliest development stages. But, discovering and documenting usability features is likely to be beyond the usability knowledge of most requirements engineers, developers...
User-centered design is not just about building nice-looking and usable interfaces, and software development is not just about
implementing functionality that supports user tasks. This paper aims to build a tighter fit between human-computer interaction
and software engineering practices and research by addressing what software and usability engine...
This paper analyses what implications usability has for software development, paying special attention to the impact of this quality attribute on design. In this context, the aim is twofold. On the one hand, we intend to empirically corroborate that software design and usability are really related. This would mean that this, like other quality attr...
Requirements engineering research has been conducted for over 40 years. It is important to recognize the plethora of results accumulated to date to: (a) improve researchers' understanding of the historical roots of our field in the real-world and the problems that they are trying to solve, (b) expose researchers to the breadth and depth of solution...
RESUMEN RESUMEN
Software engineering is a relatively young field and experimental software engineering is even younger , so undisputed facts are few and far between . Nevertheless , experimental results can help practitioners make better decisions , and the authors have aggregated results derived from individual unit - testing experiments publish...
The replication of experiments is a key undertaking in SE. Successful replications enable a discipline's body of knowledge to grow, as the results are added to those of earlier replications. However, replication is extremely difficult in SE, primarily because it is difficult to get a setting that is exactly the same as in the original experiment. C...
This paper reports a systematic review of empirical studies concerning the effectiveness of elicitation techniques, and the subsequent aggregation of empirical evidence gathered from those studies. The most significant results of the aggregation process are as follows: (1) Interviews, preferentially structured, appear to be one of the most effectiv...
Four papers and a roundtable discussion shed light on the current state of software testing practices. Case studies from industry experience address topics including unit-testing practices, agile testing, and automating software testing. Although many of these approaches show promise, software testing is still one of the more neglected practices wi...
INTRODUCTION: The objective of this study is to analyze the Spanish scientific publications in requirements engineering, comparing them with those of the European Union countries. METHOD: Identification, using several procedures, of 2625 publications with which the analysis has been carried out. RESULTS: Quantitative data about the volume of scient...
RESUMEN RESUMEN
The human dimension is a critical factor in any organization, especially in software companies where the production process is essentially intellectual. One key aspect of the software engineering workforce is identifying the people best suited for development roles. Despite its importance , there is little support for this task ,...
Software development organizations wanting to introduce usability practices into their defined software process have to undertake laborious efforts for that purpose, since, for the time being, there exists a lack of reference model or framework which indicates where and how in the software process usability needs to be considered. They also have to...
Software development organizations are paying more and more attention to the usability of their software products, as increasing
importance is attached to usability as a critical software quality attribute. The HCI (Human-Computer Interaction) field offers
techniques aimed at producing a software product with a good usability level, but their use i...
A major goal of requirements engineering (RE) research is to improve society's knowledge and practice of the RE discipline so as to positively impact society's ability to build new, ever more effective software systems. Since software systems now permeate almost every aspect of society, success in constructing such systems should benefit the econom...
A Software Process Model Handbook for Incorporating People's Capabilities offers the most advanced approach to date, empirically validated at software development organizations. This handbook adds a valuable contribution to the much-needed literature on people-related aspects in software engineering. The primary focus is on the particular challenge...
Software development organizations wanting to introduce usability practices into their defined software process have to undertake laborious efforts for that purpose, since, for the time being, there exists a lack of reference model or framework which indicates where and how in the software process usability needs to be considered. They also have to...
Usability has become a critical quality factor in software systems, and it has been receiving increasing attention over the last few years in the SE (software engineering) field. HCI techniques aim to increase the usability level of the final software product, but they are applied sparingly in mainstream software development, because there is very...
Testing technique-related empirical studies have been performed for 25 years. We have managed to accumulate a fair number of experiments in this time, which might lead us to think that we now could have a sizeable empirically backed body of knowledge (BoK) on testing techniques. However, the experiments in this field have some flaws, and, consequen...
RESUMEN RESUMEN
Undergraduate programs that cover knowledge related to software engineering range from software engineering-specific programs to traditional computer science programs, which might teach some subjects related to software engineering. Software engineering-specific programs have proliferated in countries such as the US , Australia ,...
This paper examines the problems of applying traditional function points count rules to virtual reality systems (VRS). From the analysis of the differences between traditional and VRS systems, a set of deficiencies in the IFPUG 4.1 function points count method was detected. Due to the increasing importance of these kinds of applications, it is nece...