Software managers’ perceptions of

Parshotam, Kalpana
Journal Title
Journal ISSN
Volume Title
Agile methods for software development, typified by their iterative, incremental approach and flexibility to change, became known as such with the founding of the Manifesto for Agile Development in 2001. Agile methods are intended to address the challenges of business requirements and technology changes that continually arise during software development. This study investigates software managers’ perceptions of agile methods for software development in the South African context. The research considered the meaning of agile methods including characteristics, similarities and differences between agile and other software development methods. Software managers’ attitudes towards agile methods were examined, covering their views on benefits, shortcomings and challenges of implementing agile methods. Data was collected through in-depth face to face interviews with fourteen project managers and development team leaders, representing various sizes and types of organisations. Respondents were knowledgeable on the subject of agile methods and had current and/or previous exposure to agile projects. Important characteristics of agile methods noted were: iterative cycles; using agile methods where appropriate; active business involvement; short planning and delivery cycles and using an appropriate level of documentation. Comparing agile and other software development methods key differences included: documentation; solution delivery; dealing with changes; planning/delivery cycle and quality assurance/testing. There were considerably fewer references to similarities than differences. Similarities that emerged were: similar concepts but different approach; delivering the end product; team roles/members; project tracking/reporting and producing documentation. Some of the characteristics of agile methods were also related to the benefits, shortcomings and challenges. Highly rated benefits were: good/better quality; better team spirit/dynamics; meeting client needs/delivering value; improved team performance and early detection of issues/failure. ii Shortcomings of agile methods included: limited applicability; cost not necessarily lower and possibly higher; lack of common definition and understanding of agile methods; lower suitability for large projects/teams and lower suitability for distributed/outsourced/off-shore development teams. Implementation challenges included: selective, customised or combined use of agile methods; resistance to change; the need for education of customers and teams; insufficient business involvement and the need for the right kind of people. The study revealed that software managers see the meaning of agile software development being strongly grounded in the values and principles of the Agile Manifesto. Agile software development is an iterative approach that breaks work into small packages and delivers a solution incrementally over multiple short cycles, accommodating changes throughout the process. It is appropriate for certain types of situations and environments and should be used accordingly. The characteristics of agile methods are inextricably linked to their distinguishing features. Whilst similarities can be identified at a very high level, agile methods tend to work differently to other methods. Software managers’ attitude towards agile software development is largely positive, improved quality being viewed as the most significant benefit. These benefits arise from the way agile projects work and specific agile practices such as pair programming, continuous integration and test-driven development. While the general sentiment is positive, agile methods have inherent limitations which mainly centre on their limited applicability with regard to certain types of situations or projects. Agile methods are not seen to reduce project costs although quality and time are generally positively impacted. Agile methods being new and different face resistance to change during implementation. Education is needed to overcome resistance and lack of understanding of agile methods. Software managers should appreciate that agile methods should be implemented with situation-dependent adaptation as appropriate.
Agile software development, Information technology