Factors influencing software developers’ use of pair programming in an agile software development methodology environment.
Date
2018
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
IT has been growing rapidly through the years and the IT solutions which are required are no simpler.
Industries want IT solutions to be flexible enough to accommodate spikes in demand and to produce
outcomes as soon as possible. Therefore, the adoption of agile methodologies has been increasing.
Extreme programming (XP) has been the most common agile methodology adopted since 2004.
Industries have struggled to make the transition from a traditional approach to agile; as there are many
opposing principles: traditional methodologies drive individual programming, whereas agile drives
team collaboration when developing software. However, the benefits realised from XP grew as
companies noticed that teams built strong relationships, software was delivered faster and errors in
code were minimal. Pair programming (an XP practice) is the least used XP programming practice.
This is in spite of studies conducted in North California in the years 2010 - 2017, which noted that
pair programming, when used, provides numerous benefits to both staff and company. Some of the
benefits included improving productivity, reducing time spent on delivery; increasing the sharing of
knowledge and strengthening teams’ morale. This challenges the gap between the adoption of pair
programming (which is low) and agile (which is popular). Therefore this study was undertaken to
understand the phenomena that influence the adoption of pair programming in agile software
development companies.
The results of this case study show that software developers have a positive attitude towards using
pair programming. Their senior staff and peers encourage the use of pair programming as the
company provides enough hardware and tools to accommodate the needs of pair programming.
However, it was indicated by both senior and junior staff that there is reluctance by juniors to voice
their opinions. The personality mix sometimes impacts the use of pair programming; for instance,
introverts may not want to communicate and an extrovert may be too overpowering in a pair
programming environment. However, pair programming is confirmed as a mentoring tool; to help
skills development and the sharing of knowledge. In addition, pair programming is noted as more
beneficial for complex tasks. Due to the constant engagement required during pair programming, the
developers noted it is sometimes draining and therefore suggest regular breaks and switching of roles
to maintain the synergy. Overall, pair programming is recommended for future and current use as it
produces higher quality code, improves productivity, assists in sharing of knowledge and boosts the
confidence and skills of those less experienced.
Description
Masters Degree, University of KwaZulu-Natal, Durban.