Javier Gonzalez-HuertaBlekinge Institute of Technology | BTH · Laboratory of Software Engineering (SERL)
Javier Gonzalez-Huerta
PhD in Computer Science
About
80
Publications
26,758
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
796
Citations
Introduction
I am an associate professor (Biträdande Professor) and Docentin Software Engineering at the Department of Software Engineering at BTH in the Software Engineering Department.
I received my PhD in Computer Science from the Universitat Politècnica de Valencia (UPV) in 2014.
My current research focuses on Asset Management, Technical Debt, and Software Process Improvement, with emphasis on empirical research in collaboration with industrial partners (e.g., Spotify, Ericsson or FortNox.se)
Additional affiliations
February 2015 - March 2016
March 2014 - March 2015
March 2011 - February 2014
Publications
Publications (80)
Software development organisations aim to stay effective and efficient amid growing system complexity. To address this, they often form small teams focused on separate components that can be independently developed, tested, and deployed. Aligning architecture with organisational structures is crucial for effective communication and collaboration, r...
Background: Software companies must balance fast value delivery with quality, a trade-off that can introduce technical debt and potentially waste developers' time. As software systems evolve, technical debt tends to increase. However, estimating its impact on lead time still requires more empirical and experimental evidence. Objective: We conduct a...
Context: In software development organizations employing weak or collective ownership, different teams are allowed and expected to autonomously perform changes in various components. This creates diversity both in the knowledge of, and in the responsibility for, individual components. Objective: Our objective is to understand how and why different...
Requirements are key artefacts to describe the intended purpose of a software system. The quality of requirements is crucial for deciding what to do next, impacting the development process’ effectiveness and efficiency. However, we know very little about the connection between practitioners’ perceptions regarding requirements quality and its impact...
While modern software companies strive to increase team autonomy to enable them to successfullyoperate the piece of software they develop and deploy, efficient ways to orchestrate the work ofmultiple autonomous teams working in parallel are still poorly understood. In this paper, we reporthow team autonomy is maintained at Spotify at scale, based o...
Context: Writing code that is understandable by other collaborators has become crucial to enhancing collaboration and productivity. Clean Code has become one of the most relevant software craftsmanship practices and has been widely embraced as a synonym for code quality by software developers and software development organizations all over the worl...
Requirements are key artefacts to describe the intended purpose of a software system. The quality of requirements is crucial for deciding what to do next, impacting the development process's effectiveness and efficiency. However, we know very little about the connection between practitioners' perceptions regarding requirements quality and its impac...
Context: Advances in technical debt research demonstrate the benefits of applying the financial debt metaphor to support decision-making in software development activities. Although decision-making during requirements engineering has significant consequences, the debt metaphor in requirements engineering is inadequately explored. Objective: We aim...
In early 2020, the Covid-19 pandemic forced employees in tech companies worldwide to abruptly transition from working in offices to working from their homes. During two years of predominantly working from home, employees and managers alike formed expectations about what post-pandemic working life should look like. Many companies are experimenting w...
The COVID-19 outbreak has admittedly caused interruptions to production, transportation, and mobility, therefore, having a significant impact on the global supply and demand chain’s well-functioning. But what happened to companies developing digital services, such as software? How has the enforced Working-From-Home (WFH) mode impacted their ability...
Context: Writing Clean Code understandable by other collaborators has become crucial to enhancing collaboration and productivity. However, very little is known regarding whether developers agree with Clean Code Principles and how they apply them in practice.\\ Objectives: In this work, we investigated how developers perceive Clean Code principles,...
During the development and maintenance of software-intensive products or services, we depend on various artefacts. Some of those artefacts, we deem central to the feasibility of a project and the product’s final quality. Typically, these central artefacts are referred to as assets. However, despite their central role in the software development pro...
Internet of Things (IoT) is a growing technology that relies on connected 'things' that gather data from peer devices and send data to servers via APIs (Application Programming Interfaces). The design quality of those APIs has a direct impact on their understandability and reusability. This study focuses on the linguistic design quality of REST API...
Internet of Things (IoT) is a growing technology that relies on connected ‘things’ that gather data from peer devices and send data to servers via APIs (Application Programming Interfaces). The design quality of those APIs has a direct impact on their understandability and reusability. This study focuses on the linguistic design quality of REST API...
In early 2020, the Covid-19 pandemic forced employees in tech companies worldwide to abruptly transition from working in offices to working from their homes. During two years of predominantly working from home, employees and managers alike formed expectations about what post-pandemic working life should look like. Many companies are currently exper...
Context: The concept of software craftsmanship has early roots in computing, and in 2009, the Manifesto for Software Craftsmanship was formulated as a reaction to how the Agile methods were practiced and taught. But software craftsmanship has seldom been studied from a software engineering perspective.
Objective: The objective of this article is to...
Context: Technical debt (TD) discusses the negative impact of sub-optimal decisions to cope with the need-for-speed in software development. Code technical debt items (TDI) are atomic elements of TD that can be observed in code artifacts. Empirical results on open-source systems demonstrated how code-smells, which are just one type of TDIs, are int...
Context: Advances in technical debt research demonstrate the benefits of applying the financial debt metaphor to support decision-making in software development activities. Although decision-making during requirements engineering has significant consequences, the debt metaphor in requirements engineering is inadequately explored. Objective: We aim...
During the development and maintenance of software-intensive products or services, we depend on various assets. These assets are important to the feasibility of the project and influence product's final quality. However, despite their central role in the software development process, little thought is yet invested into what assets eventually are, o...
Context: Agile methods in offshored projects have become increasingly popular. Yet, many companies have found that the use of agile methods in coordination with companies located outside the regions of early agile adopters remains challenging. India has received particular attention as the leading destination of offshoring contracts due to signific...
Context: Developing software-intensive products or services involves utilising many artefacts that are either part of the offering or part of enabling their development. These artefacts, if valuable and used more than once by the development organisation, can be seen as assets such as test cases, code, requirements, and documentation. As such, asse...
The COVID-19 outbreak has admittedly caused a major disruption worldwide. The interruptions to production, transportation and mobility have clearly had a significant impact on the well-functioning of the global supply and demand chain. But what happened to the companies developing digital services, such as software? Were they interrupted as much or...
Background: Software project management courses are becoming popular for teaching software engineering process models and methods. In order to be effective, this approach should be properly aligned with the learning outcomes. Common misalignments are caused by using an incorrect degree of realism or inappropriate support. Objective: Design, impleme...
Context: Technical Debt (TD) discusses the negative impact of sub-optimal decisions to cope with the need-for-speed in software development. Code Technical Debt Items (TDI) are atomic elements of TD that can be observed in code artefacts. Empirical results on open-source systems demonstrated how code-smells, which are just one type of TDIs, are int...
Code evolution, whether related to the development of new features, bug fixing, or refactoring, inevitably changes the quality of the code. One particular type of such change is the accumulation of Technical Debt (TD) resulting from sub-optimal design decisions. Traditionally, refactoring is one of the means that has been acknowledged to help to ke...
Context The micro-services architectural pattern advocates for the partitioning of functionality into loosely coupled services, which should be backward compatible, to enable independent upgrades. Deprecation is commonly used as a tool to manage multiple versions of methods or services. However, deprecation carries a cost in that tests might be dup...
With the growing interest of adopting agile methods in offshored process, many companies realized that the use of agile methods and practices in companies located outside the location of early adopters of agile methods may be challenging. India, the main destination of offshoring contracts, have received particular attention, due to the big cultura...
Global software engineering has changed the way software is developed today. To address the new challenges, many universities have launched specially tailored courses to train young professionals to work in globally distributed projects. However, a mere acknowledgment of the geographic, temporal, and cultural differences does not necessarily lead t...
Today’s business processes become increasingly complex and often cross the boundaries of the organizations. On the one hand, to support their business processes, modern organizations use enterprise information systems that need to be aware of the organizations’ processes and contexts. Such systems are called Process-Aware Information System (PAIS)....
This book constitutes the proceedings of the 6th Conference on Information Technologies and Communication of Ecuador “TIC-EC”, held in Riobamba City from November 21 to 23, 2018, and organized by Universidad Nacional del Chimborazo (UNACH) and its Engineering School, and the Ecuadorian Corporation for the Development of Research and Academia (CEDIA...
In this paper, we present experiences from eight years of developing a financial transaction engine, using what can be described as an integration-test-centric software development process. We discuss the product and the relation between three different categories of its software and how the relative weight of these artifacts has varied over the ye...
can help students experience a reality context and understand
complex concepts required to accomplish practitioners’ tasks. The
present study aims to investigate the software engineering students’
perception about the usefulness of the Planning Poker technique in
relation to their understanding of the relative estimation concept.
We conducted a sim...
In this paper, we present experiences from eight years of developing a financial transaction engine, using what can be described as an integration-test-centric software development process. We discuss the product and the relation between three different categories of its software and how the relative weight of these artifacts has varied over the ye...
Background: Software project management courses are becoming popular for teaching software engineering process models and methods. However, in order to be effective, this approach should be properly aligned to the learning outcomes. Common misalignments are caused by using a correct degree of realism or an appropriate instruction level.
Objective:...
Practitioners on the area of mobile application development usually rely on set of app-related success factors, the majority of which are directly related to their economical/business profit (e.g., number of downloads, or the in-app purchases revenue). However, gathering also the user-related success factors, that explain the reasons why users choo...
Identifier lexicon may have a direct impact on software understandability and reusability and, thus, on the quality of the final software product. Understandability and reusability are two important characteristics of software quality. REpresentational State Transfer (REST) style is becoming a de facto standard adopted by software organizations to...
Business Process Model and Notation (BPMN) is becoming a de-facto standard for the specification of organizational business processes. In most cases, business processes are modeled in order to build software that may support or automate specific parts of those processes. In this work, we aim at refining BPMN models in order to automatically derive...
Organizations build information systems to support their business processes. Precise modeling of an organization’s processes is a prerequisite for building information systems that support those processes. Our goal is to help business analysts produce detailed models of the business processes that best reflect the needs of their organizations. To t...
Service-based cloud applications are software systems that continuously evolve to satisfy new user requirements and technological changes. This kind of applications also require elasticity, scalability, and high availability, which means that deployment of new functionalities or architectural adaptations to fulfill service level agreements (SLAs) s...
Service Level Agreements (SLAs) specify the strict terms under which cloud services must be provided. The assessment of the quality of services being provided is critical for both clients and service providers. In this context, stakeholders must be capable of monitoring services delivered as Software as a Service (SaaS) at runtime and of reporting...
Customer experience management (CEM) denotes a set of practices, processes, and tools, that aim at personalizing customer’s interactions with a company according to customer’s needs and desires (Weijters et al., J Serv Res 10(1):3–21, 2007 [29]). E-business specialists have long realized the potential of ubiquitous computing to develop context-awar...
Flexible processes emerged to provide flexibility to business process execution. A flexible process is not static and can have several different executions, that is influenced by the current situation. In this context, the decision-making is placed in the hands of any knowledge worker during the execution, who decides which tasks and in which order...
Identifier lexicon has a direct impact on software understand- ability and reusability and, thus, on the quality of the final software product. Understandability and reusability are two important character- istics of software quality. REST (REpresentational State Transfer) style is becoming a de facto standard adopted by many software organisa- tio...
Cloud computing represents a new trend to provide software services. In order to deliver these services there are certain quality levels that should be considered. The provided services need to comply with a set of con-tract terms and non-functional requirements specified by a service level agreement (SLA). In addition, to support the fulfillment o...
Software Product Line development involves the explicit management of variability that has to be encompassed by the software artifacts, in particular by the software architecture. Architectural variability has to be not only sup-ported by the architecture but also explicitly represented. The Common Variabil-ity Language (CVL) allows to represent su...
Cloud computing is a paradigm that is transforming the computing in-dustry and is receiving more attention from the research community. The incre-mental deployment of cloud services is particularly important in agile develop-ment of cloud services, where successive cloud service increments must be inte-grated into existing cloud service architectur...
Requirements engineering is a key activity on any software development project. In Software Product Line development, this activity is even more important since requirements may encompass commonality and variability. Furthermore, a requirement specification usually is composed by more than one model. In this context it is necessary to specify the r...
Software architectures should be evaluated during the early stages of software development in order to verify whether the non-functional requirements (NFRs) of the product can be fulfilled. This activity is even more crucial in software product line (SPL) development, since it is also necessary to identify whether the NFRs of a particular product c...
The specification of requirements is a key activity for achieving the goals of any software project and it has long been established and recognized by researchers and practitioners. Within Software Product Lines (SPL), this activity is even more critical owing to the need to deal with common, variable, and product-specific requirements, not only fo...
In recent years, cloud computing has emerged as an option to use computing resources as a solution for the global economic crisis, namely, a cheaper way to have IT resources. Thus, many companies have started to migrate their systems to cloud infrastructures, without the required support to carry out this process. In this position paper, we provide...
Software architecture derivation and evaluation are complex and error prone activities that still represent an open problem with many challenges and opportunities where model-driven software development can play a leading role. In software product line development, the use of model-driven principles could help by providing a richer semantic represe...
Cloud computing represents a new trend to provide software services. In order to deliver these services there are certain quality levels that should be considered. The provided services need to comply with a set of contract terms and non-functional requirements specified by a service level agreement (SLA). In addition, to support the fulfillment of...
Cloud computing is a paradigm that is transforming the way in which organization acquire computational resources and is receiving more attention from the research community. The incremental deployment of cloud services is particularly important in agile development of cloud services, where successive cloud service increments must be integrated into...
Due to the dynamic nature of cloud computing environments, continuous monitoring of the quality of cloud
services is needed in order to satisfy business goals and enforce service-level agreements (SLAs). Current
approaches for SLA specifications in IT services are not sufficient since SLAs are usually based on
templates that are expressed in a natu...
Product architecture derivation is a crucial activity in software product line (SPL) development since an inadequate decision during the architecture design directly impacts the quality of the product under development. Although some methods for architecture derivation have been proposed in the last few years, there is still a need for approaches t...
Software architectures are the key to achieving the non-functional requirements (NFRs) in any software project. In software product line (SPL) development, it is crucial to identify whether the NFRs for a specific product can be attained with the built-in architectural variation mechanisms of the product line architecture, or whether additional arc...
The importance of Requirements Engineering within software development has long been established and recognized by researchers and practitioners. Within Software Product Lines (SPL), this activity is even more critical because it needs to cope with common, variable, and product-specific requirements not only for a single product but for the whole s...
Product architecture derivation is a crucial activity in Software Product Line (SPL) development since any inadequate decisions made during the architecture design directly impact on the non-functional properties of the product under development. Although some methods for architecture derivation have been proposed in the last few years, there is st...
Developing variant-rich software systems through the application of the software product line approach requires the management of a wide set of requirements. However, in most cases, the focus of those requirements is limited to the functional requirements. The non-functional requirements are often informally defined and their management does not pr...
The development of complex software systems following the Model-Driven Engineering (MDE) approach relies on the use of different models for describing the system (e.g., structure, behavior). These models should be specified first separately but then their inter-relationship must be established since they represent complementary aspects of the syste...
Product architecture derivation is a crucial activity in software product line (SPL) development since an inadequate decision during the architecture design directly impacts the quality of the product under development. Although some methods for architecture derivation have been proposed in the last few years, there is still a need for approaches t...