ACADEMIC OFFERINGS AND OPERATIONAL NEEDS OF THE AGILE SOFTWARE DEVELOPMENT INDUSTRY IN SOUTH AFRICA
, A. Koka2
1University of Zululand (SOUTH AFRICA)
2Cape Peninsula University of Technology (SOUTH AFRICA)
This paper sought to explore the potency of a software development course at the Cape Peninsula University of Technology, on whether the quality assurance aspect of its content translates to the operational frameworks and needs on the software development industry in South Africa. The relevance of the course content was gauged against the operational needs of the agile software development industry in three major economic regions of South Africa: Cape Town (Western Cape), Port Elizabeth (Eastern Cape), and Johannesburg (Gauteng). Following a detailed description of a final year graduate software development programme, the purposive sampling technique, five Scrum teams operating in different environments and two academics from one academic institution were interviewed. Structuration Theory (ST) was then used as an analytical framework to analyze data and to improve the understanding of Scrum practices and related quality assurance (QA) processes.
The findings show a discrepancy between the academic curriculum and the industry practices. For example, the curriculum emerged to be a prescriptive guide, with rules such as standards, guidelines and practices embedded in the curricula. In practice however, rules are not as strictly applied in scrum as in the traditional methodologies. Instead, the developer skill, project type and size have a direct influence on the practice/s. In Scrum, rules are flexible in that they can be modified to meet the environment and conditions of the team. Equally significant are resources, most particularly, time and the human resources in the form of developers and Scrum leaders. It is clear in the findings that Scrum has its unique form of quality assurance in software development practice. Unit testing, user acceptance testing, close collaboration and code reviews were perceived as the most important practices in Scrum projects.
In view of the findings, recommendations can be summed up into 4 main points;
(1) that to ensure quality assurance in Scrum, Scrum teams, especially team leaders, should enforce compliance to standards, regardless of time pressures and tight deadlines;
(2) It seems that the practice of working with the client to test final products as a quality assurance mechanism is working for all parties. This practice is encouraged and must be maintained;
(3) Code reviews must be enforced, and that organizations invest in resources including the constant training of developers;
(4) Project product owners, project managers, team leaders and business analysts should regularly meet with the user to verify requirements prior to the implementation phase.
Active stakeholder involvement can minimize development costs and time. As much as a discrepancy between academic focus of quality assurance procedures is evident, emphasis on quality assurance remain significant as they sensitize learners of quality approach to software development.