9 research outputs found

    A framework for understanding the factors influencing pair programming success

    Get PDF
    Pair programming is one of the more controversial aspects of several Agile system development methods, in particular eXtreme Programming (XP). Various studies have assessed factors that either drive the success or suggest advantages (and disadvantages) of pair programming. In this exploratory study the literature on pair programming is examined and factors distilled. These factors are then compared and contrasted with those discovered in our recent Delphi study of pair programming. Gallis et al. (2003) have proposed an initial framework aimed at providing a comprehensive identification of the major factors impacting team programming situations including pair programming. However, this study demonstrates that the framework should be extended to include an additional category of factors that relate to organizational matters. These factors will be further refined, and used to develop and empirically evaluate a conceptual model of pair programming (success)

    Implicit thinking knowledge injection framework for Agile requirements engineering

    Get PDF
    Agile has become commonly used as a software development methodology and its success depends on face-to-face communication of software developers and the faster software product delivery. Implicit thinking knowledge has considered as a very significant for organization self-learning. The main goal of paying attention to managing the implicit thinking knowledge is to retrieve valuable information of how the software is developed. However, requirements documentation is a challenging task for Agile software engineers. The current Agile requirements documentation does not incorporate the implicit thinking knowledge with the values it intends to achieve in the software project. This research addresses this issue and introduce a framework assists to inject the implicit thinking knowledge in Agile requirements engineering. An experiment used a survey questionnaire and case study of real project implemented for the framework evaluation. The results show that the framework enables software engineers to share and document their implicit thinking knowledge during Agile requirements documentation

    Pair programming teams and high-quality knowledge sharing: A comparative study of coopetitive reward structures

    Full text link
    © 2015, Springer Science+Business Media New York. There has been a growing research interest in understanding knowledge sharing in agile development. Yet, empirical research that sheds light on its underlying practices, such as pair programming, is evolving. This study uses insights from coopetition and software literature to focus inquiry on the relation between coopetitive rewards and high-quality knowledge sharing in pair programming teams. Theoretical hypotheses are developed and validated, suggesting that: ‘coopetitive rewards influence high-quality knowledge sharing both directly and over time through their impact on the level of knowledge sharing satisfaction’, and, ‘the impact of coopetitive rewards on high-quality knowledge sharing is dependent upon task complexity and the history of working under similar reward structure’. This study generates new understanding related to the use of rewards in pair programming teams, and offers a rigorous and replicable seven-step experimental process for simulating coopetitive structures and investigating their role in pair programming and in similar collaborative contexts

    Empirical assessment of the adoption, use, and effects of pair programming

    Get PDF
    Developing large software systems requires team work, which in turn calls for lots of communication within the team. However, programming is typically conducted alone by individual software developers. Pair programming, where two persons actively collaborate in the implementation of a single task, is an alternative way of developing software. It has been proposed as a means to increasing software quality, knowledge transfer and learning, among other things. This research studied the adoption, use, and effects of pair programming through a literature study and three empirical studies. The literature study was a systematic mapping study of the previous pair programming research in the industry. The empirical studies consisted of two long industry case studies and an experiment where project teams consisting of experienced students conducted a moderately large software development project. The systematic mapping study analyzed the content of 154 papers. It identified industrially relevant aspects of pair programming and organized them as a pair programming framework containing additional and more detailed aspects of pair programming over the previously published frameworks. The framework grouped all the identified aspects under eighteen factors of pair programming, for which their state of research was analyzed. The analysis showed that of many factors, only a few or no studies had been conducted using rigorous research approaches and data collection methods. The adoption and use of pair programming were analyzed in the two case studies. In the larger, more established organization, there were issues with adoption, related to both infrastructure and organizing of pair programming. A separate pair programming room was a successful solution to the infrastructural issues. However, lack of time for pair programming due to insufficient organizing of its use, remained an issue at the end of the study. The effects of pair programming on software quality and developers' knowledge were positive in all three empirical studies, but the development effort for individual tasks increased. The increase in effort occurred mainly when using pair programming for simple tasks or during the beginning of a project, when the developers were learning pair programming and getting to know one another

    THE TRUE COST OF PAIR PROGRAMMING: DEVELOPMENT OF A COMPREHENSIVE MODEL AND TEST

    Get PDF
    To advance the nomological net and theory, this dissertation proposed a comprehensive pair programming research model where the relationships among system complexity, programming methods, pair composition, effort, duration, defect rate, knowledge transfer, and various cost constructs were investigated. A multi-method, multi-study empirical approach was adopted. The survey method was employed for Study 1, and the bootstrap simulation method for Study 2. The reponses from 191 industry software developers and the simulation results suggest the previous conclusions regarding pair programming are limited in nature and the pair programming approach may not be as desirable in all situations as was previously assumed. The pair programming approach clearly adds value in situations where it is appropriate but certain conditions must be met for this goal to be achieved. Pair composition must be taken into account, and it is important to examine the interactions of multiple cost factors such as defect, effort, duration, and knowledge transfer and consider their combined effect on the ultimate goal of the project

    Software Engineering Taxonomy of Team Processes: A Completeness and Usefulness Validation

    Get PDF
    RÉSUMÉ Objectif: Délibérer les études sur le travail d'équipe en génie logiciel (GL) et trouver un moyen de mieux comprendre la dynamique des équipes dans le domaine. Contexte: Plusieurs cadres et modèles théoriques ont été présentés dans la littérature sur le travail en équipe: des cadres généraux, des cadres spécifiques de travail et des modèles pour des fonctions spécifiques. Stratégie: Étude sur les équipes et l'équipe de travail dans la littérature du génie logiciel. Étude sur la programmation en paire (PP) comme un échantillon du travail en équipe en GL. Développement d'un processus itératif revu systématique de la littérature (iSR), utilisé comme un outil de recherche pour la collecte et la synthèse des données de la littérature. Méthodologie: Une revue systématique de la littérature sur le travail en équipe en GL et sur la programmation en paires est effectuée. Les résultats de l'examen de la littérature sont utilisés pour une validation d'une taxonomie de GL des processus d'équipe. Résultats: La taxonomie de GL des processus d'équipe est un outil approprié pour la présentation des observations des pratiques d'équipe dans le domaine du GL. Conclusion: Selon la méthodologie et les articles soumis, la taxonomie de GL des processus d'équipe a été validée. Les variables contextuelles des pratiques de PP ont également été identifiées et Le processus ISR a été jugée utile pour les novices. Application: La taxonomie de GL est un outil qui peut être utilisé par les chercheurs ainsi que les gestionnaires de projets logiciels pour identifier et signaler tout type d'interactions observées dans les équipes et pour améliorer les performances de la gestion des équipes.----------ABSTRACT Objective: To deliberate the studies on teamwork in Software Engineering (SE) and to find a way to better understand team dynamics in the SE domain. Background: Several theoretical frameworks and models have been presented in the teamwork literature: general frameworks, task specific frameworks and function-specific models. Strategy: Study on teams and team working in the software engineering literature. Study on pair programming as a sample practice of teamwork. Development of an iterative systematic literature review (iSR) process used as a research tool for gathering and synthesizing data from the literature. Methodology: A systematic literature review on team working in SE and on pair programming is performed. The literature review results are used for an evaluation of current team working practices (namely PP practices) and for the validation of the SE taxonomy of team processes. Results: The SE taxonomy of team processes is an appropriate tool for the report of observations in teamwork practices in the SE domain. Conclusion: According to the employed methodology and submitted articles, the software engineering taxonomy of team processes was validated. The contextual variables of PP practice were also identified. The iSR process was found to be useful for novices. Application: The SE taxonomy is a tool which can be used by researchers as well as software project managers for identifying and reporting any kind of observed teamwork interactions. Report and analysis of team activities could improve team management performance

    Towards the elicitation of hidden domain factors from clients and users during the design of software systems

    Get PDF
    This dissertation focuses on how requirements for a new software development system are elicited and what pitfalls could cause a software development project to fail if the said requirements are not captured correctly. A number of existing requirements elicitation methods, namely: JAD (Joint Application Design), RAD (Rapid Application Development), a Formal Specifications Language (Z), Natural Language, UML (Unified Modelling Language) and Prototyping are covered. The aforementioned techniques are then integrated into existing software development life cycle models, such as the Waterfall model, Rapid Prototyping model, Build and Fix model, Spiral model, Incremental model and the V-Process model. Differences in the domains (knowledge and experience of an environment) of a client and that of the software development team are highlighted and this is done diagrammatically using the language of Venn diagrams. The dissertation also refers to a case study highlighting a number of problems during the requirements elicitation process, amongst other the problem of tacit knowledge not surfacing during elicitation. Two new requirements elicitation methodologies are proposed namely: the SRE (Solitary Requirements Elicitation) and the DDI (Developer Domain Interaction) methodology. These two methods could potentially be more time consuming than other existing requirements elicitation methods, but the benefits could outweigh the cost of their implementation, since the new proposed methods have the potential to further facilitate the successful completion of a software development project. Following the introduction of the new requirements elicitation methods, they are then applied to the aforementioned case study and highlight just how the hidden domain of the client may become more visible, because the software development team has gained a deeper understanding of the client’s working environment. They have therefore increased their understanding of how the final product needs to function in order to fulfil the set out requirements correctly. Towards the end of the dissertation a summary and a conclusion as well as future work that could be undertaken in this area are provided.Computer ScienceM. Sc. (Computer Science

    Improving Hybrid Brainstorming Outcomes with Scripting and Group Awareness Support

    Get PDF
    Previous research has shown that hybrid brainstorming, which combines individual and group methods, generates more ideas than either approach alone. However, the quality of these ideas remains similar across different methods. This study, guided by the dual-pathway to creativity model, tested two computer-supported scaffolds – scripting and group awareness support – for enhancing idea quality in hybrid brainstorming. 94 higher education students,grouped into triads, were tasked with generating ideas in three conditions. The Control condition used standard hybrid brainstorming without extra support. In the Experimental 1 condition, students received scripting support during individual brainstorming, and students in the Experimental 2 condition were provided with group awareness support during the group phase in addition. While the quantity of ideas was similar across all conditions, the Experimental 2 condition produced ideas of higher quality, and the Experimental 1 condition also showed improved idea quality in the individual phase compared to the Control condition
    corecore