1 Introduction

Software development has a key significance for developing countries to harness IT opportunities for their socio-economic growth [36]. In particular, the development of local software industry can provide a number of opportunities for developing countries of Africa [23]. By utilizing the relatively low cost base in Africa, it can create economic growth through export earnings and it can provide employment opportunities for the increasing number of skilled graduates. Moreover, locally developed software is a lot cheaper and can better address the unique contextual requirements of developing countries than software from external sources.

In recent years, agile methods have emerged as an alternative potential solution to problems of information system development [37]. The overall principles underpinning the agile approaches emphasizes individuals and interactions over processes and tools; working software over comprehensive documentation; customer collaboration over contract negotiation; and responding to change over following a plan. Agile methods belong to the latest class of iterative and evolutionary software processes [10]. Agile methods employ ‘short iterative cycles, actively involve users to establish, prioritize, and verify requirements, and rely on a team’s tacit knowledge as opposed to documentation’ [11]. The significance human and social factors for the success of information system development are at the centre of agile methodologies. As a consequence, agile methods increase flexibility in the face of evolving requirements, improve productivity, and enhance product quality [20].

There is a paucity of research literature on agile information system development in the global south and previous studies have been dominated by researchers from the global north. There is lack of empirical data on information system development practices by African software companies. Comparatively little is known about how African companies develop information systems and what challenges they face during software development. This paper contributes to filling this gap.

The structure of this paper has four sections. Section 1 presents the introduction. In Sect. 2, previous studies have been discussed. Sections 3 and 4 present the research method and research finding respectively. Sections 5 and 6 provide discussion and conclusion of the paper respectively.

2 Related Work

Agile methods have been proposed as a project management technique for minimising risk of project failure and enhancing flexibility prior to deployment [19]. There is evidence that agile methods can improve both product quality and development productivity [20].

Iterative and incremental development approaches emerged in the 1980s and in the 1990s evolved into agile methods [28], such as Extreme Programming [8] and Scrum [32]. There is a trend away from wholesale adoption of XP practices [18], towards adoption of scrum [4]. Scrum comprises a product owner [6], scrum master [5] and self-organising development team [25].

In general, software development project success can be defined in terms of Quality, Scope, Time, and Cost. Project success can be influences by organisational, people, process and technical factors. The three main critical success factors of agile software development projects are: delivery strategy, agile software engineering techniques, and team capability [16].

Agile methods are adopted by software development organisations in a series of assimilation stages [37]. Agile method tailoring, which involves selecting methods or practices depending on local context [13], has become well documented [21]. Smaller companies tend to ‘cherry-pick’ selected Scrum and XP practices from the full constellation of practices available [17].

Agile requirement engineering practices can be used to address challenges with customer involvement and cross-functional teams introducing new approaches to requirements management and requirements review sessions [26]. Scrum practices are used in conjunction with more conventional software development practices in large-scale business information system development [7].

For developing countries the importance of local context and involvement of local stakeholders during the implementation of systems has been stressed [29] and should consider the social, cultural and technical context [9]. Participatory involvement of end-users is a challenge in both global south [12] and for SMEs using agile methods in the north [24]. As introduction of technology to a new local context can involve cultural transfer and mutual learning, local practices need to be understood and valued [3].

Nigerian software companies, for example, typically have 11–50 staff with an average average work experience of one to five years [33]. Most customers are from domestic private service sector and companies had an average of 12 projects with a duration of six months. Companies commonly use in-house tailored software development methods. System developers need to employ development approaches that consider the resource constrained environment and matches local culture [27]. Further, there is a lack of awareness of agile methods [1].

In Sri Lanka, while there is growing interest in agile, team members find it difficult to take responsibility for their work [31]. Hierarchical management approaches are deeply entrenched, posing challenges for self-organising team creation.

3 Methods

The objective of this research was to explore the practice of information systems development by software firms in Ethiopia. To achieve this, the Grounded Theory methodology has been employed. The GT method is a qualitative research method that seeks to develop theory that is grounded in data systematically gathered and analyzed [22]. The use of the method was considered relevant for this research as it enables deep understanding of a phenomenon or process in a unique context [22]. There is lack of literature on information system development by software companies in Ethiopia. This makes the local context unique to information system research and the use of the GT method relevant.

3.1 Research Sites

This study investigated seven software companies from a population of IT service providers operating in Ethiopia’s capital city Addis Ababa. Ethiopia was the world’s fastest growing economy in 2014 (10.3%) [35]. The participating companies are small having less than 20 employees to work on development activities except one with around 30 development professionals. The companies’ years of experience ranges from 5 to 20 years. Companies A and B have been in the industry for around 14 to 20 years.

The younger companies such as Company D, Company E and F were founded by former employees of the older ones like Companies A, B and C. There are also people who have worked in two or more of the companies in this study. The majority of the companies work on automation of external services and internal business process of different public sector organizations. They mainly involve development of payroll, accounting, finance and human resource information systems. Information systems developed for public services involve systems for tax payment, billing, court management and business licensing. Companies develop systems from scratch and/or customize previously developed systems to the requirements of a new client. Some of the companies are market driven; they develop, market and sell systems to selected private businesses.

Table 1. Software company and participant details

3.2 Data Collection

The research used audio-recorded, open-ended semi structured interviews with 17 software practitioners, as shown in Table 1. The interviews were conducted in a combination of Amharic and English. The interviews were then translated, where necessary and transcribed in English. An interview guide was developed based on the software development lifecycle. The interview questions asked focused on the development process used and challenges faced, as shown in Appendix 1. The average length of interviews was one hour. During the interviews, probing questions were used to explore relevant topics raised by participants. The snowball sampling technique was used to recruit participants for interviews.

3.3 Data Analysis

To analyse the interview data, the grounded theory method has been employed [22]. The GT method enables the emergence of theory from data that can explain the study phenomenon in a particular situation. Data analysis in Straussian GT has three coding steps namely open, axial, and selective coding [34]. Open coding was performed to identify key points and concepts in the data. Axial coding was performed to identify the relationships among concepts. Finally, selective coding was conducted to discover the major categories of concepts. Memoing was used to collate information about each major category, bringing together quotations and concepts to form each element of the grounded theory.

4 Findings

The grounded theory analysis has resulted in the identification of conceptual categories that emerged from the data which describe the agile practices used, the context in which they are used, their use benefits and challenges of using them by small companies in this research.

4.1 Using Agile Methods

Most participants from different companies in this study claimed to use agile methods on projects. This has been described by using terms such as “we internally develop the software agile way” (Chief Technology Officer, Company A); “we do the work agile way” (Chief Technical Manager, Company B); “we use an agile process internally” (Developer and manager, Company D), “our process is the agile-Scrum method” (Manager and Programmer, Company C). In Company F we observed a full implementation of the Scrum method. Agile methods are used because of the perception that they provide solutions to challenges commonly experienced by the software development companies in the study. By using agile practices, the companies are able to improve requirements elicitation by involving users and quickly constructing product features. It is also perceived that following the waterfall approach cannot work in the existing development context where requirements are vague and user participation is limited. Documentation has little or no importance for the actual development of software due to frequent requirements changes resulting from lack of users knowledge and their limited participation during development.

Iterative and Incremental Processes. The majority of organizations in this study use iterative and incremental development practices as part of their agile processes. Multiple iterations are conducted during requirement elicitation for each module of the system and the modules are developed incrementally. Chief Technical Officer from Company B, for example, stated that “Each of our teams iteratively collect requirements for the assigned software modules and develop them incrementally”. Chief Technology officer from Company A has pointed out, “Iteration is important as we can repeatedly develop prototypes and we use them to clarify requirements by involving users during our frequent visit.” In Company D, the iterative and incremental approach has been used after software design has been completed:

“after completing the design phase, we try as much as possible to make the development iterative and incremental which is release or build based. We conduct iteration release demonstration every month” (Manager and Programmer, Company D).

Release/Prototype Demonstration. During the iterative and incremental process, release demonstrations are provided to validate and enrich user requirements. The release demonstrations are performed weekly, monthly as in Company C and D respectively or as required by the development team, which is the case in company B. Release demonstrations are used to enrich and complete requirements based on user feedbacks. They are used for internal purpose; otherwise, product delivery is done on the final release. A participant has pointed out

“during the monthly project reports, we were also providing release demonstrations to the client representatives. They then tell us what new features to include and which ones to exclude” (Senior Programmer and Manager, Company E).

Face to Face Communication. The companies in this study organise frequent internal meetings of team members and external meetings with customers. In companies A, C and G, they have daily team meetings. The Chief Technology Officer from Company A stated that:

“each of our development teams conduct a 10 to 15 min meeting as their first activity of the day. During this meeting, the team discusses their progress, problems and challenges faced, they also share experience and learn from each other this is a good practice we picked from the Scrum method we have also weekly meeting with all teams as our ISO standard process requirement.”

However, in contrast, the Chief Technical Manager from Company B stated, “we do not need daily team meeting as each team is collocated but we have weekly meeting of all teams.” The meetings are used as a platform to discuss progress and challenges. They are also used to enable learning from each other.

Working Software. Working software has a number of advantages for organizations. It enables early understanding of requirements, to monitor if the project is on the right track and meet schedule. By showing something functional to customers, it is possible to motivate them to participate and provide quick feedbacks. Manager and Programmer from Company E emphasized, “our milestone is producing a working module that is acceptable by our customer.” Chief Technical Manager from Company B stressed, “we want a method that is product focused; provides the opportunity to start the actual development as quickly or early as possible.”

User Involvement and Customer Management. Involving users is a common challenge for the companies working on government projects in this study. To address this challenge, the software companies in this research use frequent product feature demonstrations to involve users and collect requirements. Companies A, E and F also have dedicated teams working on client sites. The Manager and Programmer from Company E stated that “we have a customer relations management team which is a technical team working at our customer site with the user to identify variations we should accommodate in our system.” There are also practices of setting up client representatives separately for technical and management people as in Company D for example.

4.2 Contract Challenges

Participants have identified bureaucracy in government organizations and the tender and contract nature as major barriers to companies use of agile methods and success of projects. Government contracts mandate formal documentation and milestone phase delivery. The contract award criteria are based on the least bid/tender cost and the project schedules are fixed and very short. (Chief Technical Manager, Company B; Manager and Programmer, Company C; Chief Technology Officer, Company A).

“Our big challenges are [government] project tender/bid procedure and contract requirements. We are forced to follow the waterfall cycle, we should produce inception, analysis and design documents based on fixed schedule...project schedules are commonly four to six months” (Chief Technology Officer, Company A).

4.3 Issues of User Involvement, Requirement and the Waterfall Method

There is a common problem of shortage of user involvement particularly for government projects. Users are not interested in the project, they are not reachable and they believe software project is not their responsibility. Participants believe that following the waterfall process results in failure mainly due to the difficulty of getting clear and complete requirement during early stage of the project in one short phase. There is also limited or shortage of user involvement and they lack knowledge and understanding of software requirement and have difficulty of describing their requirements. Manager and Programmer from Company D has pointed out that “users understand their requirement at implementation.” It has also been indicated, “if you follow the waterfall cycle only, you know you will fail...Users start to ask for new and different features at UAT [user acceptance test]. At the end of the day, no one will be willing to sign off the project” (Chief Technology Officer, Company A). On the importance of documentation, Chief Technical Manager from Company B has mentioned, “you should accommodate documentation for payment purpose.” Participant indicated the problem of using agile methods stating, “if you purely follow agile you will get no money. So you try to mix them [agile with waterfall]...” (Chief Technology Officer, Company A).

In summary, this research has shown that small companies in the study are working on government projects; they are using agile practices with documentations; there are a number of situational issues affecting the use of agile practices by companies. The next section discussion on how the findings of this research can relate to previous studies.

5 Discussion

Our study participants largely agree with practitioners from the global north that ‘frequent delivery of working software’, ‘daily interaction between business people and developers’, and ‘face-to-face communication’ are the most important features of agile methods [15]. Most of our study participants stated that increment demonstrations have helped them to manage incomplete and evolving requirements, which they believe would have been difficult or impossible using the waterfall methodology.

Agile requirements engineering employs an iterative approach and intensive face to face communication with customers to improve requirement understandability and completeness [14, 26]. In addition, prototyping and release demonstration have also been used by companies in our study to support requirement elicitation [16]. However, in our study, product delivery is done at the end while software construction or customization may begin at early development stage with frequent feature demonstration for user feedback.

Lack of user participation has been identified as the major barrier to organizations use of agile requirement engineering practices [14]. Participants in our research try to address a lack of user participation by using frequent product feature demonstrations and having teams work at the customer site.

It has been argued that formal documentation of requirements does not eliminate the need for frequent communication [14]. However, the stringent requirement for extensive documentation imposed by government projects in our study has been identified as a major challenge. Most participants in the current research believe that using agile with documentation is costly and time consuming as it creates repetition of work.

Tailored approaches that mix agile practices with plan-based approaches have been observed in many organizations [7, 21]. Those studies provide evidence of pragmatic approaches to process tailoring. Paradoxically, participants in this research perceive that there are extreme differences between agile and waterfall approaches. Despite constraints placed on participating software companies, for example by bureaucratic government clients, participants tended to adopt a somewhat dogmatic view of the differences between agile and plan-based approaches.

Agile methods can be used to improve job satisfaction, productivity, and increased customer satisfaction while its success requires focusing on individual and social issues [19]. The findings of our research indicated that agile use enable companies to improve participation of customers and manage requirements through release demonstration. Cross functional teams also improve team motivation by providing team autonomy. This in turn can improve staff retention in a labour market with pronounced shortages of skilled people.

Though agile methods are believed to be particularly applicable to small software companies [19], our results indicate that they are finding adoption of the method difficult. Government demands for extensive documentation and reporting requirements impose a barrier to agile procurement adoption in the U.S. [30]. Participants in our study believe that agile conflicts with contracts that have milestone and extensive documentation requirements. Critical success factors for agile use [16] hold for the companies in our study too. For example, they do not have personnel to fill all agile roles. The findings of our research also suggest that there are gaps in practically using agile practices in the study organizations regardless of the widespread perception of the method importance.

Successful agile adoption for larger projects requires a disciplined approach [2]. However, scrum related roles, ceremonies and artefacts are missing from the methods adopted by companies in our study because of a lack of staff and finance as well as the lack of capacity more generally in the local context.

6 Conclusions

This research has investigated software development by smaller software companies in sub-Saharan Africa. The research has adopted the grounded theory method to analyse audio-recorded semi structured interview data collected from 17 participants from 7 software companies in Addis Ababa, Ethiopia, which were recruited using the snowball sampling technique.

Our findings focus on three main areas: agile practices used in small companies, the type of projects they use them on, the benefits and barriers of using agile. Software companies use agile methods to address development problems that can arise if they follow the waterfall process. Iterative methods, which provide the opportunity to work closely with users, enable vendors to get valid and complete requirements from clients. During each iteration, continuous tests and demonstrations of working software earn customers’ trust, encouraging their participation in projects and managing their expectations.

By using agile methods companies are trying to create motivated and cohesive teams by allowing them to be self-managed and self-organized. Frequent team meetings create a platform to share experience, collaborate and reflect on the challenges they face. Companies in our study have strong focus on starting software construction earlier in the development process. Participants in our study do not give much attention and importance to documentation and yet are often obliged to produce extensive documentation to comply with government contract terms.

This study makes three main contributions to literature on information system development in sub-Saharan Africa. First, the research discovered that there is a widespread awareness and use of agile practices. Participants have stressed that the focus on working software enabled companies to motivate user involvement, improve requirement understanding, gain customer trust and get market to their product. Moreover, companies believe that agile use enables retention as a result of motivation from the autonomy it provides to the team; it also provides the opportunity to have cross-functional team. The barriers to companies use of agile practices on government projects have also been identified.

Second, it is interesting that companies in this study are working on government projects. Such projects have fixed price contracts with a pre-determined delivery schedule and formal document approvals.

Third, the study has shown the barriers to the practical use of agile method to the level required in companies. We have provided empirical evidence on how agile adoption by companies can be influenced by the nature of contract, nature of client, user involvement, shortage of finance and skill.

Further research is required on how agile methodologies can be tailored for use in a developing country context, for example investigating how agile practices are mixed with plan-based approaches in African and other developing countries.