26,970 research outputs found
Empirical assessment of the adoption, use, and effects of pair programming
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
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
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
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
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
- …