26,970 research outputs found

    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

    How software engineering research aligns with design science: A review

    Full text link
    Background: Assessing and communicating software engineering research can be challenging. Design science is recognized as an appropriate research paradigm for applied research but is seldom referred to in software engineering. Applying the design science lens to software engineering research may improve the assessment and communication of research contributions. Aim: The aim of this study is 1) to understand whether the design science lens helps summarize and assess software engineering research contributions, and 2) to characterize different types of design science contributions in the software engineering literature. Method: In previous research, we developed a visual abstract template, summarizing the core constructs of the design science paradigm. In this study, we use this template in a review of a set of 38 top software engineering publications to extract and analyze their design science contributions. Results: We identified five clusters of papers, classifying them according to their alignment with the design science paradigm. Conclusions: The design science lens helps emphasize the theoretical contribution of research output---in terms of technological rules---and reflect on the practical relevance, novelty, and rigor of the rules proposed by the research.Comment: 32 pages, 10 figure

    On the Role of Agile Software Development Practices in Software Process Improvement

    Get PDF
    Tarkvaraarendus on endiselt võrdlemisi uus ja arenev valdkond. Tarkvaraettevõtted on otsinud tarkvara arendusprotsessi parendamist (ingl SPI) aastaid, kuid tegu on mitmekülgse valdkonnaga. Antud magistritöö eesmärk on pakkuda suurt pilti väleda tarkvaraarenduse meetoditest ja tavadest tarkvara arendusprotsessi parendamise kontekstis. Lisaks eelmainitule on antud töö eesmärgiks minna rohkem süvitsi väledate tarkvaraarenduse meetodite alamhulgaga laiahaardelisema kaardistamistöö raames, mis uurib SPI hetkeseisu kirjanduses. Leidmaks vastuseid töös püstitatud uuritavatele küsimustele, viidi antud töö raames läbi süstemaatiline kirjanduse ülevaade. Kirjanduse ülevaate tulemused valideeriti erinevates Eesti tarkvaraettevõtetes viies läbi küsitlusi. Avaldatud teoste, mis hõlmavad tarkvaraarenduse meetodite kasutamist SPI kontekstis aastane avaldamishulk on vaikselt kasvanud aastate jooksul. Kirjandusülevaate tulemused viitavad, et väledate meetodite kasutamine SPI jaoks pole ainult idee. Avaldatud teoste hulgas on võrdlemisi võrdselt teoseid, mis analüüsivad antud teemat idee tasandil ning neid, mis kirjeldavad väledate tarkvaraarenduse meetodite kasutamist ka professionaalses töös. Lisaks sellele viitavad tulemused, et professionaalide jaoks potentsiaalselt kasulikke teoseid on kirjanduses suur kogus. Enimuuritud väleda tarkvaraarenduse meetodid SPI kontekstis on Scrum ning Extreme Programming. Kõige enam mainitakse kirjanduses tavasid nagu pidev integratsioon, kõigepealt testi ning igapäevaste koosolekute pidamine. Kogu uuritud kirjanduses on piisvalt tõendeid tööstusest väledate meetodite kasutamisest SPI tarbeks, mida kinnistavad ka Eestis opereerivates tarkvaraettevõtetes läbiviidud küsitluse tulemused.Software development in general is still a fairly new and evolving field. Software development companies have been looking for software process improvement (SPI) for years, but the field of SPI is a diverse one. The goal of the Master’s thesis at hand is to provide the big picture of the use of agile methodologies along with its practices in the context of SPI within the current literature. Furthermore, the paper at hand aims to provide more insight into the subset of agile practices of a bigger, more general systematic mapping study on the current state of the art of software process improvement. To find answers to the research questions stated in the thesis, systematic literature review was conducted. The results of the literature review were validated by conducting surveys amongst professionals in several Estonian software development companies with varying sizes. The publication rate of papers concerning agile practices in the context of SPI shows a steady rise over the years. Results of the literature review show that the field of agile practices in SPI is fairly evenly balanced regarding being a concept or being adapted and evaluated in the industry. Furthermore, the results indicate that the there are many papers published that are of high relevance to industry professionals. By far the most discussed agile methods in the literature regarding SPI are Scrum and Extreme Programming while the most addressed practices include integrating often, testing first and conducting daily meetings. Within the analysed papers there are plenty of evidence from the industry of using agile methods in SPI. The survey conducted amongst several Estonian companies confirms that the use of agile practices in SPI is a relevant topic and that Scrum being the most popular topic in the literature is not a coincidence

    Links between the personalities, styles and performance in computer programming

    Get PDF
    There are repetitive patterns in strategies of manipulating source code. For example, modifying source code before acquiring knowledge of how a code works is a depth-first style and reading and understanding before modifying source code is a breadth-first style. To the extent we know there is no study on the influence of personality on them. The objective of this study is to understand the influence of personality on programming styles. We did a correlational study with 65 programmers at the University of Stuttgart. Academic achievement, programming experience, attitude towards programming and five personality factors were measured via self-assessed survey. The programming styles were asked in the survey or mined from the software repositories. Performance in programming was composed of bug-proneness of programmers which was mined from software repositories, the grades they got in a software project course and their estimate of their own programming ability. We did statistical analysis and found that Openness to Experience has a positive association with breadth-first style and Conscientiousness has a positive association with depth-first style. We also found that in addition to having more programming experience and better academic achievement, the styles of working depth-first and saving coarse-grained revisions improve performance in programming.Comment: 27 pages, 6 figure

    Safety-Critical Systems and Agile Development: A Mapping Study

    Full text link
    In the last decades, agile methods had a huge impact on how software is developed. In many cases, this has led to significant benefits, such as quality and speed of software deliveries to customers. However, safety-critical systems have widely been dismissed from benefiting from agile methods. Products that include safety critical aspects are therefore faced with a situation in which the development of safety-critical parts can significantly limit the potential speed-up through agile methods, for the full product, but also in the non-safety critical parts. For such products, the ability to develop safety-critical software in an agile way will generate a competitive advantage. In order to enable future research in this important area, we present in this paper a mapping of the current state of practice based on {a mixed method approach}. Starting from a workshop with experts from six large Swedish product development companies we develop a lens for our analysis. We then present a systematic mapping study on safety-critical systems and agile development through this lens in order to map potential benefits, challenges, and solution candidates for guiding future research.Comment: Accepted at Euromicro Conf. on Software Engineering and Advanced Applications 2018, Prague, Czech Republi
    corecore