Abstract
The major challenge that software developers have faced over time is dealing with the dynamic requirements of their customers and the software industries at large. Customer requirements keep changing, and software developers run the risk of developing irrelevant software. The agile software development methodology came as a great relief to software developers as it provided a way through which software developers could cope up with the constantly changing needs of the customers (Ahimbisibwe, Cavana, & Daellenbach, 2015). This research interrogates the extent to which agile software methodology has helped software developers to meet the needs of their customers and the overall industry. It further interrogates the applicability of the agile software in highly distributive models besides identifying the challenges of integration and ways of overcoming them.
Introduction
The nature of business in the contemporary world is such that it keeps changing. This change is informed by the dynamic needs of the customers and the changing business environment. As such, businesses endeavor always to remain ahead of their customer requirements. This requires foreseeing such changes and planning in time to accommodate such changes. As such, the software needs of the businesses keep changing to reflect the dynamic nature of the environment they operate in (Alahyari, Svensson, & Gorschek, 2017). Businesses today require software developers that are both responsive to the changing needs of their businesses and can anticipate such changes and provide room for software customization in a way that responds to such changes.
Delegate your assignment to our experts and they will do the rest.
The traditional methodologies in software development are sequential. The development process is divided into different sequential steps and executed through a systematic process. The first step involves gathering requirements of the project and documenting them. The second step involves designing the system based on the requirements gathered and testing of the code and the unit in the third step. This is followed by testing the system and user acceptance testing, bug fixing before the product is delivered to the customer. The traditional method required the developer to visualize the end product before starting the design process itself. Moreover, the traditional method of software development limited the involvement and participation of customers. Customers are only involved during the initial stage of gathering the product requirements. They give the requirements as well as their intended specification of the software. However, their input is no longer required as the project progresses. This approach to software development presents several challenges. First, the approach provides very little room for correction or change of specification. Therefore, this project cannot be used is a case where the scope of the project is ambiguous but clarified as the project progresses. Moreover, the approach does not provide flexibility in product design in the event customer requirements change.
The Agile methodology approach fills the gap and provides a solution to the limitations of the traditional methodologies in software development. This methodology approach involves collaborative efforts from cross-functional and self-organizing teams as well as customers and end users through requirement collection development and implementation of the software in question (Casey & Richardson, 2011). As such, the agile approach puts the customer at the center of the development. The development process is divided into sprints. Each sprint takes specific times and involves specific tasks. The tasks that cannot be completed in one sprint are carried forward to subsequent sprints. Therefore, the agile approach provides room for revisiting previous sprints and making changes whenever required to do so by the customer, which enhances the flexibility of the system.
The major requirement for the agile approach is inter-team collaborations in the design and development of the software. Such collaborations require team members to communicate and consult extensively during the implementation of the project. As such, the success of the implementation of the project heavily depends on the interconnectedness between team members and among teams involved in the software development using the agile methodology (Casey & Richardson, 2011).
Literature Review
The framework of software development methodology began to change towards the agile approach in the 1990s. During this period, there were increasing needs for software developers to adopt methodologies that are more flexible and centered on human interaction (Alahyari, Svensson, & Gorschek, 2017). The software development arena was changing from a software engineering concept to an art concept that involved interaction between people. Software developers began to adopt methodologies that gave them both flexibility in software design and development as well as the opportunity to interact with other stakeholders in the process of designing and developing software. The term agile was adopted in 2001 to refer to a collection of methodologies in software development that adhered to such basic principles and trends in software development (Beck et al., 2016). This led to the emergence of techniques and methodologies such as Scrum, crystal methodologies, adaptive software development, Extreme programming, extreme testing and Dynamic System Development Methods (DSDM) among others that largely relied on and espoused the basic principles of agile methodology in software design (Dingsøyr & Lassenius, 2016). The agile methodology has since developed and become popular among most software developers. The potential of this approach in guaranteeing customer satisfaction has attracted in research with the view of improving its applicability and compatibility with diverse business settings.
The effectiveness of agile methodology in any software development organization depends on five main factors. First, the organizational factors are a critical determinant of the success of such methodologies. Organizational factors include the environment of the organization as well as the commitment of the top management of the organization. The success of the agile approach can only be realized where there is a good organizational environment for the approach to thrive (Beck et al., 2016). Moreover, the approach can be effective where the top management of the organization not only has the goodwill but committed and supportive of the process. The second factor that determines the success of the agile methodology is the people factor. Customer involvement and team capabilities are at the core of this approach (Ahimbisibwe, Cavana, & Daellenbach, 2015).
The ability of teams to correlate and team members to communicate plays a critical role in the success of adopting the agile approach in software development. Moreover, communication and involvement of customers and end users are equally important to the success of the agile approach in any software development company. Thirdly, process factors are equally important determinants of the success of agile methodologies in organizations. Project definition processes, as well as project management processes, must be aligned with the requirements of the agile methodology if that methodology is to succeed.
Technical factors are the fourth determinants of the success of the agile methodology implementation. Favorable delivery strategies and techniques for software development are essential if this approach is to be effective in any organization (Alahyari, Svensson, & Gorschek, 2017). Lastly, project factors equally contribute to the success of the implementation of the agile approach in software development organizations. The type of project and the nature of the project in question will determine the effectiveness of the implementation of the agile methodology.
Figure 1: Chow and Cao’s Research model (Lesser & Ban, 2016)
As pointed out, the personal factors inter-teams coordination and communication is a critical factor that determines the success of an agile approach to software development within organizations. However, the connectedness among teams largely depends on the culture of the organization as well as the size of the teams and the entire organization (Dingsøyr & Lassenius, 2016). Moreover, factors of geographical distributions and separation of distance among teams and customers have a great impact on the effectiveness of the agile approach in software development.
Advancement in technology has enabled routine collaborations among employees. In a traditional environment, people could only work together if they are located in the same location. Interaction in the context of work was only possible when people work together. However, globalization has opened up opportunities for people to work together even when they are not in the same geographical location. Advancement in technology has opened up avenues of interactions among people working in different locations (Ghobadi & Mathiassen, 2016). Consequently, people can remotely connect to their offices either from their homes or from a remote location from where they work. Therefore, many software development companies among other types of companies are getting interested in hiring workers from other countries where wages are relatively low. The increasing competition in the contemporary marketplace and the need to reduce costs for companies has informed the decision by many companies to hire employees from countries and locations where their wages are relatively low. Such employees can then work and interact with other employees remotely their specific locations and countries of origin (Lesser & Ban, 2016). The potential of telecommunication and the need for cheap labor has led to the creation of a work environment in which people collaborate in the development of software from their different locations and may never meet.
The model of software development in which team members are in different locations and hence are not physically collaborated is referred to as distributed software development. Under this setting, team members are not able to hold physical meetings or have face-to-face communication. More functions are not centralized. Therefore, no particular location can be tasked with the responsibility of functions such as software testing or quality assurance (Pikkarainen, Haikara, Salo, & Abrahamson, 2014). On the other hand, collocated sub-team models occur where different sub-teams are located in different locations. However, members of each sub-team are in the same location and can hold physical meetings. While highly distributed models frequently occur in literature, such models are rare in practice. The collocated sub-team models common compared to highly distributive models. The models present unique environments for the implementation of agile methodology in software development (Ghobadi & Mathiassen, 2016). It is important to overcome the challenges presented by this setting if an organization is to employ the agile approach effectively to software development.
Problem Statement
The development and implementation of an agile approach to software development require high levels of collaboration among team members. The collaborative spirit among team members in an agile approach is mainly supported by practices such as collective ownership, physical meetings and work sharing among other practices and behavior (Dingsøyr & Lassenius, 2016). Moreover, communication is a critical component of the agile methodology. This communication is not limited to written and verbal forms but also includes face-to-face communication while paying attention to details including nonverbal cues in the communication. Therefore, a restriction of communication equally serves to restrict agile methodology in software development.
Highly distributed models in organizations offer a unique environment for software development particularly using the agile approach. The setting in highly distributed models of organizations is that each team member is in a different location and the team members cannot meet or hold a physical meeting. As such, highly distributed models offer an environment that does not support practices such as work sharing and face-to-face meetings (Santos, Goldman, & De Souza, 2015). Therefore, it is challenging to adopt an agile methodology approach in settings of highly distributive models. This project seeks to find a solution to the challenges of implementing an agile methodology of software development in distributive settings of software development organizations.
Research Methodology
This research involved two steps. The first step involved sending questionnaires to different countries within America and Europe that deal with software development and have a highly distributive setting. The second step involved an interview with executives from selected companies with the highly distributive setting. The interviews involved ten respondents from ten different software development companies. Five of these software development companies had adopted the agile approach while the other five had not adopted the agile approach. In both steps, the research aimed at collecting data on the level of success that these highly distributive companies had observed with their implementation and use of the agile process.
Secondly, the interviews and the questionnaires sought the barriers to effective implementation of the agile approach among highly distributive companies that had not adopted the approach. Thirdly, both steps sought to find out how the companies that were successful had breached the major barriers to the success of an agile methodology approach in software development given their highly distributive setting. Lastly, the research sought to establish how customer experience has grown with the integration of an agile approach in software development to their companies.
Questionnaires
The questionnaires were sent to 60 software companies spread across America and Europe. The questionnaires were sent through emails. The first question in the questionnaire sought to establish whether the company had a highly distributive setting. For companies with such settings, the second questions aimed at finding out if they had adopted an agile methodology in any of their projects. For the companies that had adopted it, the third question sought to find out if how they had overcome the challenges of communication and interactions as required by the agile approach in software development. For the companies that had not been successful in the implementation of an agile approach, the questionnaire sought to find out the main barriers to its implementation in their respective organizations.
Interviews
The interviews were conducted on executives from sixty companies. The interviews aimed to find out how the organizations they represent had managed to overcome the barriers of adopting agile methodology in the context of their highly distributive model of business. The structured interviews were held in their respective organizations and at the time of their convenience. We first sought the consent of the participants before engaging them in this interview.
The Findings of the Research
This section presents the quantitative data collected from the research study. Out of the sixty companies sampled for this study, forty-two of them had adopted or attempted to adopt a highly distributive structure. Their employees were scattered in different parts of the world and worked on a project remotely from their respective locations. This was the case at least in one of their software development projects. Eighteen of the companies had not attempted to adopt such a distributive structure in any of their projects.
Fig 2: Distributive Vs. Non Distributive structures
Out of the forty-two companies that indicated that they had adopted a distributive structure, thirty-three of them had attempted an agile approach in software development while nine of them failed to attempt the approach in their software development projects. Out of the thirty-three companies that attempted the agile approach in their software development projects, only eleven companies were successful in the venture and hence could sustain the approach in their subsequent software development projects. However, twenty-two of these companies recorded great frustrations and hence reverted to the traditional models of software development. Six out of the twenty-two companies that failed to sustain an agile approach sited cultural barriers that hindered effective inter-teams communications over online platforms. Such cultural barriers equally included language barriers as well as differences in religious and cultural beliefs.
Four of the companies cited lack of goodwill from their respective top management that hindered the support and effectiveness in the implementation of the agile approach as the major barrier to its successful adoption. Eleven of these companies equally cited ineffective communications among the team members over long distances that created misunderstandings and hence was a barrier to effective collaborations among the team members. Lastly, two of the companies cited their organizational culture, structure, and type of business as the barriers to the adoption of an agile approach in the development of software projects.
Figure 3: Barriers to adopting an agile approach
The eleven companies that were successful attributed different reasons for their success. Seven of these companies attributed their success to the adoption of technological approach in communication that allowed for video conferencing and communication. This included the use of platforms such as Skype among others. Five of these companies equally attributed their success in the rollout and implementation of an agile approach to their pre-engagement training that dwelt with issues of cultural diversity and dealing with cultural differences in their respective projects as well as effecting communications over online platforms. Two of the companies cited the overall goodwill and support from their top management as the greatest motivation for the success of this approach.
Figure 4: Success factors
Discussion
This project presents interesting findings to any person or company wishing to adopt the agile methodology in their software development approach. First, it points to the number of companies that are now adopting highly distributive structures as their preferred model of operations. Out of the sixty companies, sampled seventy-percent of these companies had at least attempted to adopt a highly distributive model in their structure. This indicates the increasing number of software development companies that are increasingly getting interested in this model of operation. The landscape of the software development business has become greatly competitive. Many companies are being set up and taking up the business. The low cost of startup for this business coupled with less stringent regulatory measures has opened up the industry to the influx of new businesses. Consequently, businesses are greatly competing based on pricing of their respective products as well as the quality and responsiveness of their products to the changing customer requirements.
The need to reduce cost in the software business across the globe with the view of reducing the pricing the profit margin is increasingly becoming paramount for most businesses in the industry. As such, the number of companies who have resorted to the highly distributive model has increased tremendously in the recent past. The trend depicted in this research indicate that many companies are now resorting to making use of employees in different regions across the world that probably could offer cheap labor compared to the cost of labor in their respective countries. It is imperative to note that the cost of labor forms a significant fraction of the overall cost in most software development companies. This informs the decision by many software companies to venture into the models.
Secondly, this study identified four major barriers to ineffective communication. These four barriers included cultural barriers, ineffective communications, lack of Management goodwill and the organizational structure. Distributive models use team members from different countries and cultural background. The differences in culture have a strong bearing on the effectiveness of communication among the team members as well as the overall collaborative approach. Different cultures have different ways of expression in communication. Some of these ways of expressions are different in different culture and some instances contradictory. As such, cultural barriers offer a great hindrance both to communication and the overall adoption of the agile methodology in a highly distributive setting (Krishna, Sahay, & Welshman, 2014). Secondly, the agile approach thrives on physical meetings and face-to-face engagements among the team members. However, distributive settings do not provide room for such formats of engagements.
In the absence of physical meetings and face-to-face communications, online platforms of communications and interactions are subject to misunderstandings and miscommunication. For instance, nonverbal cures of communications such as facial expressions and gestures that are critical in communications cannot be expressed or understood in many online platforms of communication. Therefore, ineffective communication is common over online platforms mainly used in the models. Thirdly, management support is also a critical factor in both the implementation as well as the overall success of the agile methodology in highly distributive settings. The management supports in the provision of resources as well as in their overall goodwill for the adoption of this approach. Without the support of the top management, the implementation and success of an agile methodology in highly distributive structured is greatly affected. Lastly, organizations that are structured in ways that do not support an agile approach also offer resistance. It includes the organizational behavior and culture.
Companies with highly distributive structures that have been successful in the implementation of the agile methodology have put in place several specific measures aimed at overcoming the barriers identified above in both the implementation as well as the success of agile methodology in highly distributive settings. First, such companies have adopted online forms of communication and interactions that allow for video conferencing and communication. Such forms of online communications help to overcome several limitations presented by highly distributive structures in the implementation of an agile methodology (Erickson, Lytinen, & Siau 2013). First, video conferencing offers an opportunity where participants can see each other while they communicate. This is a great replacement for physical meetings and face-to-face communications as required in the agile approach.
Moreover, the participants can see and engage in other non-verbal forms of communications as well as demonstrations and effective explanations of charts and figures involving their collaborative efforts. This not only helps the team to move in the same direction during the implementation of their projects but also helps in bridging the communication gaps that most other online platforms present. Secondly, pre-engagement training has proved to equally help in bringing the interaction gaps over highly distributive structures. Such training involves understanding and dealing with cultural diversities in teams that affect their ability to work together and effectively communicate. As such, the training is imperative as it helps to create the team spirit required in the implementation of this project beyond the limitations of culture. Moreover, the training involves ways of optimizing online forms of communications. Therefore, this training prepares the people to tackle the challenges of distributive models in their adoption to a distributive model. Lastly, the management goodwill and support in creating a favorable organizational culture and structure is imperative to the success of the agile approach in such settings.
In summary, there are four major hindrances to the adoption of agile processes in highly distributed models of organizations. These include Cultural barriers, ineffective communication, lack of management goodwill and no supportive organizational structure. The findings of this research indicate that ineffective communication is the major hindrance to the adoption of agile methodologies under this model of organizational framework. Conversely, organizational structure and management goodwill offer the least resistance to the adoption of such methodologies. The research h identified three major solutions to these challenges. These solutions include using video-based channels of online communication, online reengagement training and offering management support as well as goodwill. Of all the three-intervention measure, Video conferencing was found to offer the greatest solution to for challenges of agile methodology under highly distributive models for the majority of the companies that recorded great success in the adoption of agile methodology over such highly distributive models.
On the contrary, management goodwill offered a solution to the least number of companies engaged in the highly distributive model. It shows that management goodwill is the least of the challenges that such organizations encounter in their attempt to roll out agile methodologies. Therefore, a software development organization that seeks to adopt the agile methodology framework over a highly distributed model will require dealing mostly with the challenge of ineffective communication. Being the largest challenge in such implementations, overcoming it almost guarantees a successful rollout of the program. In dealing with this challenge, adopting video conferencing as pre-engagement training is critical this research indicates that the two interventions are most critical in such organizations.
Recommendations
Given the competitive nature of day’s business environment particularly in the software development industry, there is a need for software organizations to reduce their cost of operations while increasing their profit margin and being able to offer a competitive price (Papadopoulos, 2015). Secondly, software development organizations must ensure that they remain competitive through offering quality products and products that respond to the needs of the customers. From the findings and the analysis of the results presented in this project, there are several recommendations that software developing countries across the world can adopt.
First, all software developing companies should consider using highly distributive models. Such models offer an opportunity to engage a workforce from different parts of the world. As such, the organization has the opportunity to engage people from countries where the cost of wages is low. This significantly cuts down the cost of wages. As already noted, the cost of wages forms a significant fraction of the overall cost of software developing companies (Migues, Mario, & Aurora, 2009). Therefore, being able to manage it is a critical step towards cutting down the cost of wages. The distributive model offers this opportunity.
Secondly, software development companies must endeavor to use agile methodologies in their development of software. As already demonstrated, the agile approach gives the teams an opportunity to interact with the customers at every step of the development process. As such, changing customer requirements are taken care as the project proceeds. Moreover, this approach allows for future corrections of errors that could have been made or modifications in customer requirements. This flexibility enables the software developer to comply with the customer requirement fully and produce quality products.
Thirdly, the software developing companies under highly distributive models must seek to bridge the interaction and communication barriers. The major barriers to the effective implementation of an agile approach in a highly distributive model are cultural barriers and barriers to effective communication (Migues, Mario, & Aurora, 2009). Software development companies using the highly distributive model approach must seek to bridge these barriers through two fundamental steps. First, such organizations should seek to employ online interaction platforms with video communications and conferencing options. This will help overcome the barriers to effective communications since it will provide an opportunity for participants to engage in both verbal as well as nonverbal forms of communication (Phalnikar, Deshpande, & Joshi, 2009). Secondly, such organizations should train the people they engage in recruiting them. This training should be aimed at enabling them to work in multicultural setting and helping them cope with cultural differences. This will greatly help in the overcoming the cultural barriers to interaction among team members.
Conclusion
The incorporation of agile methodology in software development companies with distributive models is the ultimate solution to the challenges of customer requirements and the need to reduce the cost of operations. Highly distributive e models offer a solution to the challenges of operating cost. They enable the firm to higher personnel from countries where labor costs are low. This helps in reducing the cost of operations and the pricing of the product. It further creates a higher profit margin for the business. On the other hand, an agile methodology approach enables the firm to meet the changing requirements of customers as well as anticipate such changes and hence provide room for their accommodation. Therefore, an agile approach helps the business to be responsive to the needs of the customer. However, integrating the two aspects faces the challenges of communications and interactions. This research has demonstrated that the major barriers to this integration include cultural barriers, effective communication barriers, organizational structural barriers, and barriers of top management commitment and goodwill. The research has further established three main solutions to these challenges. These include using online platforms with video teleconferencing options, pre-engagement training and creating supportive leadership.
References
Ahimbisibwe, A., Cavana, Y., & Daellenbach, U. (2015). A contingency fit model of critical success factors for software development projects: A comparison of agile and traditional plan-based methodologies. Journal of Enterprise Information Management , 28(1): 7-33.
Alahyari, H., Svensson, R. B., & Gorschek, T. (2017). A study of value in agile software development organizations. Journal of Systems and Software, 125 : 271-288.
Beck, K., Beedle, M., van Bennekum, A., Cockburn, A., Cunningham, W., & Fowler, M. (2016). 12 Principles behind the Agile Manifesto. Agile Alliance. 2 (4): 234-241.
Casey, V., & Richardson, I. (2011). Project management within virtual software teams. Proceedings of the IEEE International Conference on Global Software Engineering (ICGSE ’06), pp. 33–42,
Dingsøyr, T., & Lassenius, C. (2016). Emerging themes in agile software development: Introduction to the special section on continuous value delivery. Information and Software Technology , 77: 56-60.
Erickson, J., Lytinen, K., & Siau, K. (2013). Agile modeling, agile software development, and extreme programming: The state of research. Journal of Database Management , 16(4): 88-100.
Ghobadi, S., & Mathiassen, L. (2016). Perceived barriers to effective knowledge sharing in agile software teams. Information Systems Journal, 26 (2): 95-125.
Krishna, S. Sahay, S., & Welshman, G. (2014), Merging cross-cultural issues in global software outsourcing. Communications of the ACM , 47(4): 62-66.
Lesser, E., & Ban, L. (2016). How leading companies practice software development and delivery to achieve a competitive edge. Strategy and Leadership , 44 (1): 41-47.
Migues, J., Mario, P., & Aurora, V. (2009). Review article challenges and improvements in distributed software development: a systematic review. Advances in Software Engineering . 4(7)336-347.
Papadopoulos, G. (2015). Moving from traditional to agile software development methodologies also on large, distributed projects. Procedia-Social and Behavioral Sciences, 175: 455-463.
Phalnikar, P, Deshpande V., & Joshi S. (2009). Applying agile principles for distributed software development. International Conference on Advanced Computer Control , p.535-539.
Pikkarainen M., Haikara J., Salo O., & Abrahamson P. (2014). The impact of agile practices on communication in software development. Empir. Software Engineering 13 (7): 303-337.
Santos, V., Goldman, A., & De Souza, C. (2015). Fostering effective inter-team knowledge sharing in agile software development. Empirical software engineering. Agile Software Development Methodology 20(4):1006-1051.