Keywords

1 Introduction

Software development is the process whose success and failure depends upon the team, organization, and technical environment. Software project development is a teamwork where the delivery of the project depends upon different factors or circumstances. In the traditional development, the customer got the final product after the completion of development and testing that final product sometimes satisfied or unsatisfied the customer. According to the agile development, customer has the continuous involvement in the project through the daily meetings. Agile methodology has four agile manifesto and twelve principles [1].

Different methods such as scrum, XP, FDD, DSDM, lean are coming with agile development. Agile methodology overcomes the problems of the traditional development. Agile approach is driven by self-organizing teams that coordinate their tasks on their own. This enables the employee innovate, team work and increases the productivity and quality of the product. While different steps have been taken to understand the barriers occurred in software teams, and all these issues may be addressed by taking into the concerns of involved customer and stakeholders. In fact, due to various roles and their expectations, the software team may have perceptual differences on issues such as delivery time of software, risk factors, success and failure of the project [2]. Due to lack of knowledge and understanding about the project, it may directly affect the performance and delivery of the project. In the agile team, knowledge sharing is a challenging task to enlarge user’s motivation to share their knowledge with the developers and other team members; to handle the diversity of social identities and cross-functionally involved in the software development [3].

2 Literature Review

The software development process depends upon the interest of the project team and the other resources. One of the major problems with software development is causing during the change of project development technology and business environment [4]. During the survey of agile projects in government and private sectors in Brazil and UK, five sociological (such as experience of team members, domain expertise and specialization) and five projects (team size, estimation of project, delivery of the product, etc.) related factors were added [5].

Tore Dyba signifies a major departure from traditional approaches to agile software development by identifying the 1996 studies, out of which 36 were the empirical studies. The studies fell into four groups: introduction and adoption, human and social factors, perceptions on agile methods, and comparative studies [6]. A framework was proposed a conceptual framework on different factors and represents the link between various predictor variables and agile development success [7].

Mahanti [8] mentioned six critical factors in agile methodology, during the survey conducted in four projects. He discussed several factors such as an office environment, team mind-set, mind-set toward documentation. Harnsen [9] mentioned different factors focusing on culture, stability, time variations, technology, stability, etc. Different factors and barriers of agile implementation were considered those significantly affecting the agile methods [10].

3 Different Factors in the Agile Development

In an agile environment, different technical (requirement volatility, requirement quality, technical dependency, non-functional requirement, etc.) and non-technical factors (communication, documentation, domain, hardware, customer involvement, etc.) are continually impacting in the agile environment. Figure 1 represents the various success and failure factors that are impacting on software development.

Fig. 1
figure 1

Factors impacting the agile development

  1. A.

    Success Factors:

    There are certain success attributes which determine the overall observation of a particular project such as delivering a quality product and customer satisfaction, on-time delivery of product with the planned estimations. Ambler contends that in software development, the expert people are critical to make sure the success of the project while adopting the agile approaches [11]. In 2013 comparing software development paradigms, Ambler found the highest success rate of agile projects [12].

  2. B.

    Failure Factors:

    Boehm and Turner focus on management challenges in implementing the agile projects [13], whereas in another research Nerur et al. focused on management, people, technical, and process dimensions in agile projects [14].

4 Strategies for Mitigating Factors Affecting Agile and Distributed Agile Development

There are different success factors on agile such as make training programs on higher priority, keep agile practices consistent, encourage team members, scale the infrastructure. Table 1 represents the different success, failure, and mitigation factors in agile software development.

Table 1 Success, failure, and mitigation factors based on different dimensions

5 Case Study

Case study is based on the software project implementation during the training period of the students. Projects were divided into 5 teams and each team had 10 team members. Projects were based on the application development and Web site development for the customer. Projects were related to social implications such as safe cab car facility, e-voting system, women security app. Table 2 represents the team configuration, where different development processes of each team are mentioned, with the total number of team members involved in the development of project. The project implementation was implemented by waterfall, spiral, and the scrum (agile methodology). In the spiral implementation, each builds focused especially on risk analysis, including the requirement gathering and evaluation part. Scrum principles were followed by the team members for the requirement elicitation, daily meetings, and frequent changes. Daily meetings were conducted in a classroom and there was a customer interaction between the team members in a laboratory after every sprint cycle.

Table 2 Team configuration

6 Findings

Initially, user stories were created by the customers and team members. Figure 2 shows the different user stories of project 1 by the team 1. Like project 1, other team members also build their different user stories as per customer and project requirement.

Fig. 2
figure 2

User stories of project 1

But due to the lack of experience, different responsibilities and environmental restrictions, it is really tough for students to follow this process. An analysis report was maintained on the success and failure factors of the projects. This analysis was done with the help of questionnaire and personal interaction with the team members. On the basis of a questionnaire, different factors were analyzed as:

  1. 1.

    Organization: Student had other responsibilities also and do not have a proper work environment; hence, there was a delay in delivery of the project.

  2. 2.

    Team: Team had a good relationship and trust between them, but as the beginner’s team had a lack of experience about the methodology. Hence, they faced problems at the initial stage of development.

  3. 3.

    Process: Team followed the agile development process in which there was a proper group discussion between team members and also set sprint meetings with the customer. Project planning and roles were clearly defined. Team roles were rotated for the constant change in task prioritization to maintain the quality of the final product.

  4. 4.

    Technical: The team continuously tested the whole process with the strict TDD process. Students faced the technical issues such as new technical tool and techniques. Hence, free tools were used for the development of the project.

  5. 5.

    Documentation: As documentation, students maintain a daily diary on the regular basis, and at the end, report was generated.

6.1 Outcomes

During the analysis, it was observed that there were differences in non-functional activities with the different methods. Analysis was based on the efficiency, accuracy, time management, risk analysis, and product quality of the project. In the waterfall approach, team members approached to the customer after the delivery of the project. Development with waterfall approach had low efficiency, medium accuracy; low time management and product quality were less without the customer’s involvement during the development. In the spiral method, students focused on risk analysis and quality of product. Projects had low accuracy in the spiral model as they created a prototype and did risk analysis. In the scrum methodology, results were better than waterfall and spiral model, where efficiency, product quality, and time management are high.

In Table 3, there is different parametric value that had major impact on success and failure of projects by using different approaches. Waterfall, spiral, and scrum methodology were used on different projects and all had different impacts. In Table 3, L represents the less/low value, M represents the medium value, and H represents the high value of different projects based on the usage of various approaches. Figure 3 represents the graphical representation of different factors using different methods, according to which agile methodologies have high performance rate and good quality of product on fixed time.

Table 3 Factors based on different methodology
Fig. 3
figure 3

Graphical representation of different factors using different methods

7 Conclusion

Paper is concluded with the success, failure, and mitigation factors in agile development projects. A case study was conducted based on the development of five projects. Projects were developed by the students as five different teams. It was observed that projects were developed using different development approaches such as waterfall, spiral, and agile approach and examined that there were differences in non-functional activities with different methods. Analysis was based on the efficiency, accuracy, time management, risk analysis, and product quality of the project. Finally, outcome was that in the scrum methodology results were better than waterfall and spiral model, where efficiency, product quality, and time management are high.