Adapting Agile Practices to Mobile Apps Development

Adapting Agile Practices to Mobile Apps Development

Alberto Heredia (Universidad Carlos III de Madrid, Spain), Javier Garcia-Guzman (Universidad Carlos III de Madrid, Spain), Roberto Esteban-Santiago (Universidad Carlos III de Madrid, Spain) and Antonio de Amescua (Universidad Carlos III de Madrid, Spain)
DOI: 10.4018/978-1-4666-5182-1.ch005
OnDemand PDF Download:
$30.00
List Price: $37.50

Abstract

Mobile app markets have experienced remarkable growth during the last year. The increasing number of apps available on the market and the revenue that developers and companies obtain is significant enough to seriously consider the way apps are developed. The ever-changing environment in which apps are developed makes agile methodology convenient to follow. Although agile methodologies allow the development team to quickly adjust the requisites to the new customer’s needs, there is a lack of research on how they can be explicitly adapted to develop mobile apps. There are many Websites that explain how to code a mobile app, but there is not enough information about other stages in the development process. Adapting an agile methodology for mobile apps would provide development teams with a clear guide to successfully develop an app without missing any step in the development process. This chapter proposes an agile mobile app development process, including processes and activities to be followed as well as the roles involved in these activities. Marketing issues are also considered in the proposed development process as they are necessary to publicize the mobile app. This process has been applied for over two years in the development of the institutional apps at Carlos III University of Madrid.
Chapter Preview
Top

2. Background

Agile methodologies have been applied since the 90s for software development. Due to the growth of light applications oriented to mobile devices, agile is currently one of the most adopted methodologies for mobile software development (Shen, Yang, Rong, & Shao, 2012).

The characteristics of all agile methodologies are based on the Agile Manifesto (Agile Alliance, 2001) which 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.

There are also twelve principles behind the Agile Manifesto. The first one states that the highest priority is to satisfy the customer through early and continuous delivery of valuable software, as working software is considered the primary measure of progress. Another cornerstone of agile development is to welcome changing requirements because agile processes harness change for the customer's competitive advantage. Agile methodologies also encourage motivated individuals working in self-organizing teams composed of both business people and developers. The team should be able to maintain a constant pace indefinitely, paying continuous attention to technical excellence and good design, and reflecting on how to become more effective. To do so, good communication is key and agile methods consider face-to-face conversation as the most efficient and effective method of conveying information to and within a development team. Finally, agile principles state that the team should choose simpler solutions until more complexity is needed because simplicity allows to maximize the amount of resources not expended.

Recently, numerous agile methodologies have appeared, each with different characteristics (Dybå & Dingsøyr, 2008). However, all of them share the following attributes: incremental, cooperative, straightforward and adaptive (Abrahamsson, Warsta, Siponen, & Ronkainen, 2003). Incremental refers to small software releases, with rapid development cycles. Cooperative refers to a close customer and developer interaction. Straightforward implies that the method itself is easy to learn and to modify and that it is sufficiently documented.

Complete Chapter List

Search this Book:
Reset