Factors influencing software developers’ use of pair programming in an agile software development methodology environment.
MetadataShow full item record
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.