3,705 research outputs found

    Better, Not More Expensive, Faster? The Perceived Effects of Pair Programming in Survey Data

    Get PDF
    There are many different techniques used with agile software development methods. Some of these, such as common coding guidelines and test driven development, are widely adopted and there appears to be a consensus that they can be beneficial. Others, however, are more controversial, none more so perhaps than pair programming. This technique meets resistance both from developers, who do not always wish to program with another person, and from managers, who see the sharing of a workstation as a potential barrier to programmer productivity. Its supporters, however, claim that it can have many benefits, in particular improving software quality. In this paper we look at the outcomes of previous research into the effects of pair programming and analyse some survey data to see how practitioners perceive its potential benefits for project outcomes in terms of quality, productivity, stakeholder satisfaction and cost. We conclude that the survey data appears to reinforce many of the previous claims made for the benefits of pair programming, but also raises questions that need further investigation

    Is AI the better programming partner? Human-Human Pair Programming vs. Human-AI pAIr Programming

    Full text link
    The emergence of large-language models (LLMs) that excel at code generation and commercial products such as GitHub's Copilot has sparked interest in human-AI pair programming (referred to as "pAIr programming") where an AI system collaborates with a human programmer. While traditional pair programming between humans has been extensively studied, it remains uncertain whether its findings can be applied to human-AI pair programming. We compare human-human and human-AI pair programming, exploring their similarities and differences in interaction, measures, benefits, and challenges. We find that the effectiveness of both approaches is mixed in the literature (though the measures used for pAIr programming are not as comprehensive). We summarize moderating factors on the success of human-human pair programming, which provides opportunities for pAIr programming research. For example, mismatched expertise makes pair programming less productive, therefore well-designed AI programming assistants may adapt to differences in expertise levels.Comment: 8 pages (without references), 2 table

    EMPIRICAL CHARACTERIZATION OF SOFTWARE QUALITY

    Get PDF
    The research topic focuses on the characterization of software quality considering the main software elements such as people, process and product. Many attributes (size, language, testing techniques etc.) probably could have an effect on the quality of software. In this thesis we aim to understand the impact of attributes of three P’s (people, product, process) on the quality of software by empirical means. Software quality can be interpreted in many ways, such as customer satisfaction, stability and defects etc. In this thesis we adopt ‘defect density’ as a quality measure. Therefore the research focus on the empirical evidences of the impact of attributes of the three P’s on the software defect density. For this reason empirical research methods (systematic literature reviews, case studies, and interviews) are utilized to collect empirical evidence. Each of this research method helps to extract the empirical evidences of the object under study and for data analysis statistical methods are used. Considering the product attributes, we have studied the size, language, development mode, age, complexity, module structure, module dependency, and module quality and their impact on project quality. Considering the process attributes, we have studied the process maturity and structure, and their impact on the project quality. Considering the people attributes, we have studied the experience and capability, and their impact on the project quality. Moreover, in the process category, we have studied the impact of one testing approach called ‘exploratory testing’ and its impact on the quality of software. Exploratory testing is a widely used software-testing practice and means simultaneous learning, test design, and test execution. We have analyzed the exploratory testing weaknesses, and proposed a hybrid testing approach in an attempt to improve the quality. Concerning the product attributes, we found that there exist a significant difference of quality between open and close source projects, java and C projects, and large and small projects. Very small and defect free modules have impact on the software quality. Different complexity metrics have different impact on the software quality considering the size. Product complexity as defined in Table 53 has partial impact on the software quality. However software age and module dependencies are not factor to characterize the software quality. Concerning the people attributes, we found that platform experience, application experience and language and tool experience have significant impact on the software quality. Regarding the capability we found that programmer capability has partial impact on the software quality where as analyst capability has no impact on the software quality. Concerning process attributes we found that there is no difference of quality between the project developed under CMMI and those that are not developed under CMMI. Regarding the CMMI levels there is difference of software quality particularly between CMMI level 1 and CMMI level 3. Comparing different process types we found that hybrid projects are of better quality than waterfall projects. Process maturity defined by (SEI-CMM) has partial impact on the software quality. Concerning exploratory testing, we found that exploratory testing weaknesses induce the testing technical debt therefore a process is defined in conjunction with the scripted testing in an attempt to reduce the associated technical debt of exploratory testing. The findings are useful for both researchers and practitioners to evaluate their project

    All Together Now: A Framework for Research on Mob Programming

    Get PDF
    Mob programming (MP) is a relatively new phenomenon in software development. So far, the academic literature has not published in this domain. The goal of this paper is to develop a framework for researching the MP phenomenon. We first outline current practitioner descriptions of and justifications for MP. We then examine concepts from team theory and practices from agile development to identify the team processes and taskwork involved in MP. Based on these, we present a research framework for the academic study of MP. We conclude by considering how the framework can be used by IS researchers

    Towards a Theory of Software Development Expertise

    Full text link
    Software development includes diverse tasks such as implementing new features, analyzing requirements, and fixing bugs. Being an expert in those tasks requires a certain set of skills, knowledge, and experience. Several studies investigated individual aspects of software development expertise, but what is missing is a comprehensive theory. We present a first conceptual theory of software development expertise that is grounded in data from a mixed-methods survey with 335 software developers and in literature on expertise and expert performance. Our theory currently focuses on programming, but already provides valuable insights for researchers, developers, and employers. The theory describes important properties of software development expertise and which factors foster or hinder its formation, including how developers' performance may decline over time. Moreover, our quantitative results show that developers' expertise self-assessments are context-dependent and that experience is not necessarily related to expertise.Comment: 14 pages, 5 figures, 26th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2018), ACM, 201

    The Effect of Pair Programming Learning Model on Learning Outcomes of Basic Programming of Vocational School Students

    Get PDF
    The main problem in formal learning today is the low absorption of students in understanding the material. This can be seen from the average student learning outcomes which are always still low. Low learning outcomes are indicated because the learning conditions are still conventional (lectures, practicums, and discussions). This study aims to determine the effect of pair programming learning models on learning outcomes of vocational high school students. This research was conducted through a literature review and relevant research results and was continued through a Focus Group Discussion (FGD). From the research it was found that there was a significant positive influence between the variable pair programming learning model and student learning outcomes, which means that student learning outcomes can be improved through the application of the pair programming learning model
    • …
    corecore