Comparative Study of Agile Methodologies in Mobile Application Development

Akanksha Sharma *  Vijay Gupta **
*-** International School of Informatics and Management, Jaipur, India.

Abstract

Agile is an iterative and step-by-step software development methodology with very less risk factor. This methodology comprises of small cycles. Every development life cycle in agile application includes planning, requirement analysis, design, development, testing and documentation drawing up. Mobile apps are more flexible for users as compared to conventional desktop applications for PC that may function for a few years without an upgrade. User requirements changes frequently, so mobile application developers or owners should update the application to meet the user demands. Users update the new change as desired. To build a new mobile app agile methodology is acceptable and can be used easily. This paper discusses a comparative study of agile methodologies such as, Scrum Methodology, Extreme Programming, Adaptive Software Development, and Feature Driven Development in mobile application development.

Keywords :

Introduction

Agile software development approach is a process for developing software. This methodology differs significantly from other methodologies. 'Agile' means “Ability to move quickly and easily” and responding rapidly to the change. This is a significant feature of agile software development. To organize different methods like planning, designing, development and testing, Agile methodology helps by creating a software. The methodology of Agile are based on the following principles:

Mobile Application Development is the set of developments and events involved in writing software programs for small, wireless computing devices such as, smartphones or tablets. In simple words, it is the act by which a mobile application is developed for mobile devices such as, PDA (Personal Digital Assistant), EDA (Electronic Design Automation) or mobile phones. These apps can be pre-installed during manufacturing platforms or delivered as web app. This application development has been increasing gradually now-a-days in IT industry. So, the growth of mobile apps must ponder some strong development methodology. Agile Methodology for mobile application development seeks to provide an substitute to traditional methods of project management like, Waterfall Methodology. By the joint effort of the development team and customer, this approach permits the requirements and solutions. It stimulates adaptive planning, evolutionary development, quick delivery and constant enhancements. In complex projects, customer requirements changes very fast. At that time, this iterative and flexible approach will be used. When choosing the app development methodology, it is important to understand the advantages of Agile methodology over others and the positive qualities include the following:

To create an app, a large project can be divided into small parts and on each part Agile approach can be used. The developers face lot of issues to develop a mobile app likeshort software lifecycle development, limited hardware, fast changing technology and changing user demands. The app which is to be developed should update easily, should be downloaded easily and as well as it should have very good design. In the first section of the paper, the review of literature is described to show the previous works which have been done in this area by others and their outcomes.

In the next section, the four technologies of Agile Methodology i.e. Scrum Methodology, Extreme Programming, Adaptive software Development, Feature Driven Development are discussed in detail.

There is a table of comparative analysis of all these four technologies of Agile Methodology on the basis of some parameters mentioned over the upcoming section of the paper.

In the last section, the overall conclusion of this study of these technologies is presented and discussed about which technology is best suitable for mobile application development on the basis of comparison.

1. Review of Literature

The work of Kirmani (2017a) evaluates the employment of Agile approach for fulfilment in mobile application development by determining the importance of the foremost used Agile methodologies like Scrum, Lean, XP, etc. This study generates variety of contributions. The literature review known appropriate Agile practices for the event of mobile applications. The advantages of Agile practices for mobile application development area unit helps to boost the management. It also discusses about the use of Agile approaches in project management and in increasing speed.

Prasad et al. (2016) discuses that Agile approach is one of the most popular software development approaches and methodology. This approach needs to be modified to adapt, increase threats and vulnerabilities of an information system. This paper also described different methodologies that are used in real time applications. It is a very challenging task for the testers to test these applications and methods and find the weaknesses, faults or any loop holes in the system.

Abrahamsson, et al, (2004) have presented the practices from the ICAROS project funded by The National Technology Agency of Finland (TEKES). Three companies have participated in the development of this approach.

Kirmani (2017b) proposed that Agile strategies have a decent level of quality for the event of mobile applications. Agile processes were thought of to be applicable for fast markets, wherever customer satisfaction is ruled by early and frequent delivery. There is a possibility for modifications even at the later part of the project. The delivery cycle is short as there is applicable collaboration between businesses and developers and there is a continuous attention to technical excellence and sensible style and ease. The findings of the study shows that by adapting these Agile strategies measure appropriately, they assist in better planning, increase speed deliver and improve quality for mobile application development. The result shows that the Agile development strategies, covers certain phases of the computer code development life cycle and most of them do not supply adequate support for universal answer for the project and empirical proof remains terribly restricted. As good model ought to mix the responsibility and accountability of waterfall model with quickness and adaptability of the Agile model.

2. Methodologies

2.1 Scrum Methodology

Scrum is the most used sub field of the Agile methodology. This methodology is used to handle big and complicated projects. It is used to finish the projects in time. The projects which have taken a large amount of time, can be handled easily. In this approach, the process of app development breaks the process into small chunks. Each small chunk is called scrum. This scrum is managed by an individual called scrum-master. It is an Agile approach which helps in managing the team and also utilizes the resources to the maximum. By this approach performance will be upgraded.

The scrum team breaks down their allotted work, which they could cover within the two-week cycles, also known as – “sprints.” After the completion of every sprint, a working mobile app will be expected to be created by the team. The team has to work on the app continuously in order to improve it. Every sprint comes with a timeline that prolongs from 2 months to maximum 4 months. Scrum methodology is shown in Figure 1.

Figure 1. Scrum Methodology (Singh, 2018)

The components which makes this technology more effective than other traditional technologies are as follows:

2.1.1 Scrum Roles

2.1.2 Product Backlog

It is a list of tasks that the team needs to perform. Priorities and the modifications are set when needed. Before the sprint starts, a list of backlogs should be ready.

2.1.3 Agile Sprint Backlog and Planning

The team developing the app should focus on backlogs and targets in the current sprint. They search the backlogs and target it. During the time of delivery, a large number of things will be achieved which is called Sprint backlog. Sprint backlogs are divided into effective actions. Team should agree upon the backlog items and then the sprint begins.

2.1.4 Daily Scrum Meeting

When the team starts working on the backlogs, a meeting should be held daily. This meeting is called daily scrum. This meeting is held daily for 10 to 15 minutes. In this meeting, all the team members have to explain their previous day work and day's plan. By this everyone knows about the progress of project.

2.1.5 Agile Sprint Review

After every agile sprint, the review will be taken. Team validates what was developed to the shareholders. They also explains the steps where they got problems and which went well. During this the results or findings of one sprint become the action statement of the next.

2.1.6 Increment

Increment is the end result of a scrum. Increment which is to be delivered should be complete. All the quality standards should be adhered which are set by the product owner and team.

2.1.7 Learn Repeat Improve

In the next sprint, the whole cycle is repeated. Next set of items will be chosen in the Product Backlog and then sprint cycle starts. The items which are at the top of the product backlog should be executed first in the next Sprint. This will be ensured by the Agile Product Owner. This iterative cycle of scrum methodology offers the team a lot of new perspectives for learning and improvement in app development.

2.2 Extreme Programming (Kamthan, 2007)

Extreme Programming also called as XP (Select Business Solution, 2019), is the second preferred Agile approach that is believed by experienced and developer participants that the initial development can be best with XP practices. It is the most broadly used and well-tested Agile methodology. Due to Behavior-Driven Development (BDD), Test-Driven Development (TDD) and Continuous Integration (CI), it is used in mobile application development. It is a lightweight methodology designed for small teams which emphasizes customer satisfaction and promotes teamwork. XP was created to tackle all uncertainties that occur in development environment, and in doing so, put more emphasis on the people component such as, engineer, customer, and end user (Cohn, 2007; Powell-Morse, 2017; Select Business Solutions, n.d.). The process involved in extreme programming is shown in Figure 2.

Figure 2. Extreme Programming (Saputra et al., 2019)

There are 3 main practice components of XP as follows:

2.2.1 Pair Programming

All production will be written in pairs. Two programmers working together at one machine. One programmer gives emphasis on coding and thinking of the strategies of implementing the method, while the other is thinking about how the method strategically fits into other parts of the project.

2.2.2 Test Driven Development

In this phase, XP teams focus on validation of the software throughout the development of application. Programmers develop mobile application by writing tests that first checks its correctness, and then app that fulfills the requirements reflected in the tests. Customers provide acceptance tests that enable them to be certain that the features they need are provided. Pair programming makes it easier for developers to adopt TDD.

2.2.3 Continuous Integration

New features and changes are worked into the system immediately and XP teams focus on validation of application at all times. Each developer works on their own part of the project, and should integrate their code with other developer's code. Hence, continuous integration should be encouraged, which means to constantly integrate the code, at least once a day.

2.3 Mobile-D Approach (Kamthan, 2007)

Mobile-D is the another approach to beat the challenges concerned in mobile application development. This approach is predicated on Extreme Programming (development practices), Crystal methodologies (method scalability), and Rational Unified Process (life-cycle coverage). This approach is optimized and appropriate for a team of less than 10 developers operating in a colocated workplace area aiming at delivering a completely functional mobile application in a short time frame (i.e., less than ten weeks). Mobile-D (Kamthan, 2007) approach is divided into five iterations. These phases are- Set-up, Core, Core2, Stabilize, and Wrap-up. Three different types of development days are there in every phase: Planning Day, Working Day, and Release Day. If multiple teams are concurrently developing different parts of the same product, an Integration Day is also needed. Mobile D approach is shown in Figure 3. The practices of the different phases comprise nine principal elements as follows:

Figure 3. Mobile-D Approach (Kamthan, 2007)

All these elements are distinguished Agile practices and have been focused for mobile software development. The development is required to be tested to make sure proper operation of the product in multiple mobile platforms as early as possible, to enhance software design, and to improve app changeability. The Mobile Test-Driven Development (MTTD) practice employed in Mobile-D involves writing tests before actual implementation, automating unit testing procedures, and acceptance testing of all features with the customer.

Conclusion

This paper indicates that agile strategies have a decent level of suitableness for the event of mobile applications wherever the customer's satisfaction is ruled by early and frequent delivery. It conjointly indicates that wherever there is scope for changes even late within the project or perhaps the delivery cycle of app is extremely short. Agile methodologies are appropriate and projected to assist in quick delivery, increased speed and quality for mobile application development. Agile approaches area unit are very helpful in mobile application development. Agile methodologies like Scrum, XP, Mobile-D plays important role in development of mobile applications. This comparative study shown in Table 1 provides new directions to put emphasis on method quality not methodology amount.

Table 1. Table of Comparative Analysis

References

[1]. Abrahamsson, P., Hanhineva, A., Hulkko, H., Ihme, T., Jäälinoja, J., Korkala, M., & Salo, O. (2004, October). Mobile-D: An agile approach for mobile application development. In Companion to the 19th annual ACM SIGPLAN conference on Object-Oriented Programming Systems, Languages, and Applications (pp. 174-175). https://doi.org/10.1145/1028664.1028736
[2]. Differences Between Scrum and Extreme Programming. Retrieved from https://www.mountaingoat software.com/blog/differences-between-scrum-andextreme- programming
[3]. Kamthan, P. (2007). Extreme programming for mobile applications. In Encyclopedia of Mobile Computing and Commerce (pp. 277-282). IGI Global. https://doi.org/10. 4018/978-1-59904-002-8.ch047
[4]. Kirmani, M. (2017a). Agile methods for mobile application development: A comparative analysis. International Journal of Advanced Research in Computer Science, 8(5).
[5]. Kirmani, M. (2017b). Agile development method for mobile applications: A study. International Journal of Advanced Research in Computer Science, 8(5).
[6]. Powell-Morse, A. (2017, January 20). Extreme Programming: What is it And How do you use it?. Retrieved from https://airbrake.io/blog/sdlc/extreme-programming
[7]. Prasad, G. P., Hamsini, R., & Smitha, G. R. (2016). Agile development methodology and testing for mobile applications - A survey. International Journal of New Technology and Research, 2(9), 98-101.
[8]. Saputra, K., Nazaruddin, N., Yunardi, D. H., & Andriyani, R. (2019). Implementation of Haversine Formula on location based mobile application in Syiah Kuala University. In 2019, IEEE International Conference on Cybernetics and Computational Intelligence (CyberneticsCom), Banda Aceh, Indonesia, pp. 40-45, doi: https://doi.org/10.1109/CYBERNETICSCOM.2019.8875686
[9]. Select Business Solutions (n.d.). What is Extreme Programming? (XP). Retrieved from http://www.selectbs. com/process-maturity/what-is-extreme-programming
[10]. Singh, P. (2018, May 22). A Guide to Agile Scrum Methodology in Mobile App Development. Retrieved from https://appinventiv.com/blog/agile-scrum-methodologyin- mobile-app-development