17 research outputs found

    Assessing Right Amount of Quality Assurance (QA) for Software Products. "A Quality Assurances for Developing Software Projects"

    Get PDF
    Quality Assurance (QA) is an important aspect of product development in any industry, not least software development. To secure an end-product that is as high a quality as possible, thus satisfying the customers, Quality Assurance is essential. A software application released with several so-called "bugs" and other flaws is obviously a product which has passed through a poor Quality Assurance process. Thus, it is important to have a proper, systematic program to follow during the developments, which ascertain the final quality of the product. Too much QA however, can lead to developers focusing too much on analyzing and documenting every part of the development, ending up with an overload of documentation. This would slow down the development progress, and in the worst case, kill of the project. There are two main aspects of this paper; first problems of “inappropriate amount of Software Quality Assurance” and second is "how we can balance between creativity and quality"? However, we will briefly visit other industries to shed light on the importance of QA as a whole

    Towards Using Data to Inform Decisions in Agile Software Development: Views of Available Data

    Full text link
    Software development comprises complex tasks which are performed by humans. It involves problem solving, domain understanding and communication skills as well as knowledge of a broad variety of technologies, architectures, and solution approaches. As such, software development projects include many situations where crucial decisions must be made. Making the appropriate organizational or technical choices for a given software team building a product can make the difference between project success or failure. Software development methods have introduced frameworks and sets of best practices for certain contexts, providing practitioners with established guidelines for these important choices. Current Agile methods employed in modern software development have highlighted the importance of the human factors in software development. These methods rely on short feedback loops and the self-organization of teams to enable collaborative decision making. While Agile methods stress the importance of empirical process control, i.e. relying on data to make decisions, they do not prescribe in detail how this goal should be achieved. In this paper, we describe the types and abstraction levels of data and decisions within modern software development teams and identify the benefits that usage of this data enables. We argue that the principles of data-driven decision making are highly applicable, yet underused, in modern Agile software development

    Initial mental representations of design problems: Differences between experts and novices

    Get PDF
    Defining and structuring wicked design problems has a major influence on subsequent problem solving, and demands a considerable level of skill. Previous research on mental representations in design is scarce, and has been largely based on students or individual experts. This study explored the differences in the initial mental representations of real-life product development problems between advanced product development engineering students and recommended, professional experts. Expert mental representations were found to demonstrate superior extent, depth and level of detail, accommodating more interconnections and being more geared toward action. The results indicate that targeting relevancy perceptions to locate interconnections and promote proactivity can be a key factor in developing product development education to better match the requirements faced by professionals.Peer reviewe

    Grouping Environmental Factors Influencing Individual Decision-Making Behavior in Software Projects: A Cluster Analysis

    Get PDF
    An individual’s decision-making behavior is heavily influenced by and adapted to external environmental factors. Given that software development is a human-centered activity, individual decision-making behavior may affect the software project quality. Although environmental factors affecting decision-making behavior in software projects have been identified in prior literature, there is not yet an objective and a full taxonomy of these factors. Thus, it is not trivial to manage these complex and diverse factors. To address this deficiency, we first design a semantic similarity algorithm between words by utilizing the synonymy and hypernymy relationships in WordNet. Further, we propose a method to measure semantic similarity between phrases and apply it into k-means clustering algorithm to group these factors. Subsequently, we obtain a taxonomy of the environmental factors affecting individual decision-making behavior in software projects, which includes eleven broad categories, each containing two to five sub-categories. The taxonomy presented herein is obtained by an objective method, and quite comprehensive, with appropriate references provided. The taxonomy holds significant value for researchers and practitioners; it can help them to better understand the major aspects of environmental factors, also to predict and guide the behavior of individuals during decision making towards a successful completion of software projects

    What’s my Role? Role Perception Issues within a Business Process Outsourcing Software Company.

    No full text
    Business process outsourcing of IT solutions is a common and well embedded practice in many businesses. There has been much research into the aspects of the relationships between businesses and their BPO IT partners that make these relationships successful. Very little research has, however, been undertaken at the lower level of relationships between the specialist professional groups within the BPO IT firms, and how these relationships are affected by the roles each group plays. This paper explores these ideas using qualitative research methods within a current BPO IT firm to expose the key issues. Analysis of these themes is provided, and a model of roles and relationships for the professional groups that operate within such firms is proposed that combines the key attributes of the roles, the key relationships involved and the role each group plays within those relationships. Finally, recommendations are made as to the improvement of current practices to align behaviours with the proposed model

    Human Factors in Agile Software Development

    Full text link
    Through our four years experiments on students' Scrum based agile software development (ASD) process, we have gained deep understanding into the human factors of agile methodology. We designed an agile project management tool - the HASE collaboration development platform to support more than 400 students self-organized into 80 teams to practice ASD. In this thesis, Based on our experiments, simulations and analysis, we contributed a series of solutions and insights in this researches, including 1) a Goal Net based method to enhance goal and requirement management for ASD process, 2) a novel Simple Multi-Agent Real-Time (SMART) approach to enhance intelligent task allocation for ASD process, 3) a Fuzzy Cognitive Maps (FCMs) based method to enhance emotion and morale management for ASD process, 4) the first large scale in-depth empirical insights on human factors in ASD process which have not yet been well studied by existing research, and 5) the first to identify ASD process as a human-computation system that exploit human efforts to perform tasks that computers are not good at solving. On the other hand, computers can assist human decision making in the ASD process.Comment: Book Draf

    Program Comprehension Through Sonification

    Get PDF
    Background: Comprehension of computer programs is daunting, thanks in part to clutter in the software developer's visual environment and the need for frequent visual context changes. Non-speech sound has been shown to be useful in understanding the behavior of a program as it is running. Aims: This thesis explores whether using sound to help understand the static structure of programs is viable and advantageous. Method: A novel concept for program sonification is introduced. Non-speech sounds indicate characteristics of and relationships among a Java program's classes, interfaces, and methods. A sound mapping is incorporated into a prototype tool consisting of an extension to the Eclipse integrated development environment communicating with the sound engine Csound. Developers examining source code can aurally explore entities outside of the visual context. A rich body of sound techniques provides expanded representational possibilities. Two studies were conducted. In the first, software professionals participated in exploratory sessions to informally validate the sound mapping concept. The second study was a human-subjects experiment to discover whether using the tool and sound mapping improve performance of software comprehension tasks. Twenty-four software professionals and students performed maintenance-oriented tasks on two Java programs with and without sound. Results: Viability is strong for differentiation and characterization of software entities, less so for identification. The results show no overall advantage of using sound in terms of task duration at a 5% level of significance. The results do, however, suggest that sonification can be advantageous under certain conditions. Conclusions: The use of sound in program comprehension shows sufficient promise for continued research. Limitations of the present research include restriction to particular types of comprehension tasks, a single sound mapping, a single programming language, and limited training time. Future work includes experiments and case studies employing a wider set of comprehension tasks, sound mappings in domains other than software, and adding navigational capability for use by the visually impaired
    corecore