124 research outputs found
Using the ISO/IEC 9126 product quality model to classify defects : a Controlled Experiment
Background: Existing software defect classification schemes support multiple tasks, such as root cause analysis and process improvement guidance. However, existing schemes do not assist in assigning defects to a broad range of high level software goals, such as software quality characteristics like functionality, maintainability, and usability. Aim: We investigate whether a classification based on the ISO/IEC 9126 software product quality model is reliable and useful to link defects to quality aspects impacted. Method: Six different subjects, divided in two groups with respect to their expertise, classified 78 defects from an industrial web application using the ISO/IEC 9126 quality main characteristics and sub-characteristics, and a set of proposed extended guidelines. Results: The ISO/IEC 9126 model is reasonably reliable when used to classify defects, even using incomplete defect reports. Reliability and variability is better for the six high level main characteristics of the model than for the 22 sub- characteristics. Conclusions: The ISO/IEC 9126 software quality model provides a solid foundation for defect classification. We also recommend, based on the follow up qualitative analysis performed, to use more complete defect reports and tailor the quality model to the context of us
Organizing the Technical Debt Landscape
To date, several methods and tools for detecting source code and design anomalies have been developed. While each method focuses on identifying certain classes of source code anomalies that potentially relate to technical debt (TD), the overlaps and gaps among these classes and TD have not been rigorously demonstrated. We propose to construct a seminal technical debt landscape as a way to visualize and organize research on the subjec
Defect Categorization: Making Use of a Decade of Widely Varying Historical Data
This paper describes our experience in aggregating a number of historical datasets containing inspection defect data using different categorizing schemes. Our goal was to make use of the historical data by creating models to guide future development projects. We describe our approach to reconciling the different choices used in the historical datasets to categorize defects, and the challenges we faced. We also present a set of recommendations for others involved in classifying defects
Understanding automated and human-based technical debt identification approaches-a two-phase study
Context: The technical debt (TD) concept inspires the development of useful methods and tools that support TD identification and management. However, there is a lack of evidence on how different TD identification tools could be complementary and, also, how human-based identification compares with them.
Objective: To understand how to effectively elicit TD from humans, to investigate several types of tools for TD identification, and to understand the developers’ point of view about TD indicators and items reported by tools.
Method: We asked developers to identify TD items from a real software project. We also collected the output of three tools to automatically identify TD and compared the results in terms of their locations in the source code. Then, we collected developers’ opinions on the identification process through a focus group.
Results: Aggregation seems to be an appropriate way to combine TD reported by developers. The tools used cannot help in identifying many important TD types, so involving humans is necessary. Developers reported that the tools would help them to identify TD faster or more accurately and that project priorities and current development activities are important to be considered together, along with the values of principal and interest, when deciding to pay off a debt.
Conclusion: This work contributes to the TD landscape, which depicts an understanding between different TD types and how they are best discovered
Perceptions of Task Interdependence in Software Development: An Industrial Case Study
Context: Task interdependence is a work design factor that expresses the
mutual dependency between tasks that compose a whole work. In software
development, task interdependencies are created by the technical dependencies
between the components of the software system and by how the development tasks
are allocated to individuals in a teamwork context. Despite its importance for
individual and team effectiveness, we still do not have studies about how
software engineers perceive task interdependence in practice. Goal: To
understand the perceptions of software engineers about the interdependence in
their work and how these perceptions interact with other human and technical
factors in the development process. Method: We performed an exploratory
qualitative case study of a single software development team in a Brazilian
software company that developed solutions for the financial market. We
interviewed all 10 team members and used standard coding techniques from
qualitative research to code, categorize, and synthesize data. Results:
Individuals are consistent in their understanding of task interdependence and
how it happens in practice. However, there are asymmetries between the
individual perceptions in an interdependence relationship, which seem to
exacerbate expressed feelings of anxiety and dissatisfaction. Conclusion: Our
results suggest that the perception of task interdependence in software
development is often not symmetrical with potential negative effects on
emotional states that are related to motivation and satisfaction in the
workplace.Comment: 11 page
Risks and Assets: A Qualitative Study of a Software Ecosystem in the Mining Industry
Digitalization and servitization are impacting many domains, including the
mining industry. As the equipment becomes connected and technical
infrastructure evolves, business models and risk management need to adapt. In
this paper, we present a study on how changes in asset and risk distribution
are evolving for the actors in a software ecosystem (SECO) and
system-of-systems (SoS) around a mining operation. We have performed a survey
to understand how Service Level Agreements (SLAs) -- a common mechanism for
managing risk -- are used in other domains. Furthermore, we have performed a
focus group study with companies. There is an overall trend in the mining
industry to move the investment cost (CAPEX) from the mining operator to the
vendors. Hence, the mining operator instead leases the equipment (as
operational expense, OPEX) or even acquires a service. This change in business
model impacts operation, as knowledge is moved from the mining operator to the
suppliers. Furthermore, as the infrastructure becomes more complex, this
implies that the mining operator is more and more reliant on the suppliers for
the operation and maintenance. As this change is still in an early stage, there
is no formalized risk management, e.g. through SLAs, in place. Rather, at
present, the companies in the ecosystem rely more on trust and the incentives
created by the promise of mutual future benefits of innovation activities. We
believe there is a need to better understand how to manage risk in SECO as it
is established and evolves. At the same time, in a SECO, the focus is on
cooperation and innovation, the companies do not have incentives to address
this unless there is an incident. Therefore, industry need, we believe, help in
systematically understanding risk and defining quality aspects such as
reliability and performance in the new business environment
Full Lifecycle Defect Management
This viewgraph presentation describes a defect management scheme for projects at various NASA centers
Fully Employing Software Inspections Data
Software inspections provide a proven approach to quality assurance for software products of all kinds, including requirements, design, code, test plans, among others. Common to all inspections is the aim of finding and fixing defects as early as possible, and thereby providing cost savings by minimizing the amount of rework necessary later in the lifecycle. Measurement data, such as the number and type of found defects and the effort spent by the inspection team, provide not only direct feedback about the software product to the project team but are also valuable for process improvement activities. In this paper, we discuss NASA's use of software inspections and the rich set of data that has resulted. In particular, we present results from analysis of inspection data that illustrate the benefits of fully utilizing that data for process improvement at several levels. Examining such data across multiple inspections or projects allows team members to monitor and trigger cross project improvements. Such improvements may focus on the software development processes of the whole organization as well as improvements to the applied inspection process itself
DETERMINING THE IMPACT OF BUSINESS STRATEGIES USING PRINCIPLES FROM GOAL-ORIENTED MEASUREMENT
In practice, the success or failure of business strategies is often determined by management as a gut feeling without taking into account quantitative information. If data is collected, it is often unclear how the data contributes to higher-level goals of the organization. GQM+Strategies® provides mechanisms for explicitly linking measurement goals to higher-level goals, and also to goals and strategies at the level of the entire business. It is based on experiences with software-related organizations, but is intended to be applicable in all kinds of businesses. This article gives an overview of the basic concepts and presents a practical case
- …