Agile development is especially useful for mobile app development. Provides a feedback loop. Sourcebits mobile app every 2-3 weeks. They are not a subject of the project. For mobile phones. - Joe Chen, CTO, Sourcebits
It is no secret that the development for mobile platforms has important distinctive characteristics relating to most phases of the life cycle, such as:
- the need for a short time to deliver the product to a dynamic market, and further ongoing updates;
- a large number of users from around the world;
- difficulty in identifying application requirements, including due to difficulties in identifying stakeholders;
- high probability of changes in the needs and expectations of users, and accordingly the need to make changes in the course of development;
- high rate of technical evolution - new devices, releases of OS, PL, mobile communication technologies & IoT, etc.
In order to meet these characteristics, reduce the risk, and streamline the process of mobile development - Agile methodology is widely used with its
adaptive (the admissibility of frequent changes),
iterative-incremental (feedback with the customer at each iteration, and multiple releases),
cooperative (dense cooperation of developers, customers and end users) and a
simple (easy to understand, change and improve) approach to development.
Agile
Agile is a series of approaches to the development of software products through the continuous and quick delivery of valuable working functionality by a self-organized team of professionals in collaboration with the customer.
')
Agile is a combined version of
an iterative and
spiral life-cycle model: step-by-step development and the availability of ready-made pieces of working software taken from an iterative model + the main role of the human factor and an analysis of possible risks taken from a spiral model.
The advantages of Agile, and the reasons why it is used by companies, have been well illustrated in a number of well-known studies:
State of Agile ,
CHAOS Report ,
Agile Quantitative Assessment .
State of Agile : the reasons why Agile is used
The main ideas of Agile were set forth in a document called the Manifesto of Agile Development. It also contains twelve concretized Agile principles. The full text of both documents (and their translations) are available at
http://agilemanifesto.org .
Agile for mobile development
As noted, Agile allows you to adapt processes to the unstable needs of the mobile area. Agile provides the flexibility to understand the market, structure the product and release it in a short time.
Over the past few years, a number of frameworks have been developed that are suitable for use in the mobile field: Mobile-D, MASAM, Hybrid, Scrum, SLeSS.
Evolution of agile mobile software development methodology ( Image source )
Scrum and SLeSS are the most modern, with the same Scrum being the basis of SLeSS. The very first attempt to adapt Agile for mobile development - Mobile-D - is also of interest, especially for the reason that it includes elements of XP engineering practices.
Scrum and XP will be discussed in more detail below.
Scrum
Scrum is one of the agile techniques in which product creation takes place as a series of iterations of a fixed duration. The technique focuses on quality control of the development process, on task management in a team development environment.
In general, Scrum involves working on a project in short iterations (usually 2-4 weeks), each of which is a
reduced version of the project , and includes all the tasks necessary to produce an increase in functionality.
A scrum rally is held every day at which the team synchronizes its work and discusses problems.
Every time a new feature, module or update is completed, testing is performed. Thanks to testing during development, possible bugs are fixed in time, which ultimately leads to a much more stable product.
At the end of the iteration, the customer receives a new version of the product, and, if necessary, the project or any part of it is revised. It also takes into account feedback from end users. In addition, during the retrospective process, the team gets the opportunity to optimize their workflows. Then the implementation loop starts up again. As a result, a solution is created that meets the requirements of the customer as accurately as possible and is demanded by the market.
Scrum Process ( Image Source )
Scrum main tools:
- Product Backlog (Product Backlog);
- User stories (User Stories);
- Sprint planning (iteration in Scrum);
- Backlog sprint;
- Task board (in physical or digital form, for example, inside JIRA )
Sample task board
- Task Burning Chart (Burndown Chart);
- Quick meetings (stand-ups / rallies);
- Sprint review (demo and retrospective).
Xp
Agile XP technique (Extreme Programming) focuses on the engineering side of product development. This is a systematic approach to programming. While Scrum pays more attention to management and release, XP focuses on the production process. XP includes practices that significantly improve the quality of the final product:
- Continuous Integration (Continuous Integration (CI))
Continuous Integration Cycle ( Image Source )
- Automated testing;
- Refactoring;
- Review Code;
- Pair programming;
- Coding standards, and others.
Adaptation of techniques
Quite often, in mobile development, classical techniques need to be adapted to the specifics of the project, team and customer. Some options for this adaptation:
- modification of the timeline of the agile practice . For example, reducing the time of the sprint to 1 week - as a rule, the customer of the application wants to receive new releases, and the team will receive feedback as often as possible. Another example: a retrospective can be once a month or every iteration, depending on the needs of the project;
- modification of the implementation of the agile practice . For example, asynchronous stand-ups via Slack / Stride / others. If the team works remotely, this is especially true. Another example: due to the often “vague” requirements of the customer, and the corresponding difficulties of the team when planning work, the Dual-Track Scrum looks interesting;
- modification of the set of agile practices . Obviously, it is not always necessary to include at once all the tools of the chosen methodology, especially in a startup. Therefore, at first, only the most necessary and “working” ones can be selected.
What about waterfall?
It should be noted that it is impossible to say definitely about the inapplicability of the traditional waterfall methodology with its successive phases in mobile development. It all depends on the specifics of a particular project. There are examples of projects (for example, performing super-critical work; in a completely new area requiring preliminary research; with large size, complexity and length of development period; government contracts), the essence of which contradicts the principles of Agile, and then the waterfall is a suitable choice. However, there are very few such projects in commercial development.
Total
A mobile project is often subject to internal or external uncertainties, such as unclearly defined requirements or frequent changes in user needs, so it is prudent to plan its life cycle using any agile methodology, or, as often happens in practice, their combination. Good results were shown by the use of adapted versions of Scrum and XP.
An English version is available here .