The article is devoted to the currently popular topic of the expediency of using an agile development methodology. The author of the study defines this series of approaches to software development, comprehensively characterizes it, and also identifies the existing strengths and weaknesses. The work reveals the principles and main advantages of «Agile» methods. The literature studied in the course of the research allowed the author to conclude that flexible methodologies are not universal. They have a number of significant drawbacks.
Key words: software, flexible methodology, information systems, techniques, extreme programming.
Introduction
The purpose of this article is to find out what agile development methodologies are and the effectiveness of their application in today's digital space. It is not difficult to notice that at present not a single sphere of human life is complete without information technology. The latter are characterized by such a rapid development that not even every «advanced IT specialist» has time to quickly and competently assess the advantages and disadvantages of each of the innovations.
Agile methodology is a series of approaches to software development. The indicated approaches are focused on the use of interactive development, dynamic development of requirements. And also ensuring their implementation as a result of constant interaction within self-organizing working groups. The latter, as a rule, consist of professionals in various fields.
Today, specialists know several techniques belonging to the class of agile development methodologies, including FDD, DSDM, Scrum and extreme programming.
The goal of most agile methodologies is to develop software through a series of short cycles. Such cycles are called «iterations» and usually last from two to three weeks. Each individual iteration is a miniature software project and solves all problems, providing ready-made functionality to users. According to the life cycle, for each iteration, it is necessary to carry out the following activities, which generally corresponds to the classical methods of software development:
— planning;
— requirements analysis;
— design;
— programming;
— testing and the final stage — documentation [1].
At the end of each iteration, the team re-evaluates development priorities. Let's take a closer look at Agile methods.
Main part
So, Agile methods were developed back in the early 2000s as an alternative to traditional IT development methodologies. These agile methodologies include Scrum, Lean Development, and others.
Almost all agile teams are concentrated in one office, which includes the customer's product owner, who, in turn, determines the requirements for a specific product. The customer can be both a client and a manager or business analyst. The office may include technical writers, testers, and interface designers [1].
It's not hard to see that, first of all, Agile methods involve direct communication. The work product is the main metric for agile methods. It should be noted that agile significantly reduces the amount of written documentation in comparison with other methods, thanks to direct communication. Among the main ideas of these methods are the following provisions:
— cooperation with the customer is more important than agreeing on the terms of the contract;
— a working product is more significant than comprehensive documentation;
— readiness for changes is more important than following the original plan;
— a working product is more important than comprehensive documentation;
— people and their interactions are more essential than processes and tools.
Further, characterizing Agile, one should call the advantages of these methods.
- The quality of the web product , which is ensured by involving the customer in the process of each iteration, which provides an opportunity for constant adjustment of this process.
- Minimization of risks . A large project provides the customer with the opportunity to pay for several iterations at once and in the course of work to understand that he will receive exactly the product that he needs, and at a reasonable price, within a specified time frame. Note that waterfall models, with the obligatory use of technical tasks and specifications, used mainly in the development of state information systems, do not provide such opportunities [1].
The customer always has the right to observe the entire development process, can adjust the functionality of the project, has the ability to test or launch it, even has the right to stop it at any time.
- And, finally, high development speed. We have already indicated above that the iteration lasts 2–3 weeks, by the end of which there will certainly be a result.
Describing the main ideas and advantages of Agile, it must mention the main principles of these methods:
- Maintaining daily contact of the customer with the developers throughout the project. This circumstance is very important, since it allows you to instantly make changes to the project, to make the necessary adjustments.
- Satisfaction of customer requests through early and uninterrupted delivery of valuable software;
- The recommended method of transmitting information is personal conversation.
- Working software is the best measure of a developer's professionalism.
- Continuous adaptation to changing circumstances.
- Unswerving attention to user-friendly design and technical excellence.
- The art of not doing unnecessary work lies in simplicity.
All agile methodologies have a common goal of overcoming the expected incompleteness of requirements and their stable change. Note that a team involved in agile development does not always, and with great difficulty, have the ability to predict the future of a project. The specialists have an exact plan in their hands only for the near future. Long-term plans are available only in the form of declarations on the goals of the project, expected results, costs [2].
Let's dwell on one of the most popular agile methodologies, which is recognized by Scrum. It differs from others in that it places a strong emphasis on quality control over the development process. In addition to software development project management, the technique is used by software support teams, as well as a software development and maintenance management approach.
The entire development process according to the Scrum methodology is divided into small periods — sprints, during which the functional growth of the software being developed takes place. This fragmentation is very effective because it makes the development process flexible and predictable.
For example, the result of the use of Scrum by the mobile development studio «65 Gigabyte» LLC was several positive moments:
— increasing productivity due to the full use of the potential of teamwork and focusing not on individual productivity, but on the productivity of the entire team;
— improving the quality of the product, namely, reducing the number of errors due to their timely detection and achieving full compliance with the expectations of users [2].
It is worth noting that, with its many advantages, the Scrum methodology has, like everything in this world, a number of known problems, such as:
- If a specialist does not have the necessary qualifications, you should not expect the desired results from Scrum. This methodology «will not be friends» with trainees, employees with insufficient work experience.
- Insufficient attention to tests at various stages of the development of a software project. Due to too short sprint intervals, all sorts of errors can begin to accumulate in the project.
- Excessive limited specialization of methods. The Scrum methodology is effective in the technical field. For example, if you use Scrum in website development, the stages of content and design will go beyond the methodology and require a completely different approach [2].
Сonclusion
Knowing the main advantages and disadvantages of using flexible methodologies in comparison with classical methodologies with the mandatory development of technical specifications, specialists can anticipate difficulties in project implementation in advance and choose the most suitable methodology for the customer's requirements.
References:
- Agile development methodology. [Electronic resource]. URL: https://qaevolution.ru/metodologiya-menedzhment/agile/.
- Mikhailova E. A. Feasibility of using flexible methodologies in project management on the example of the mobile development studio «65 gigabytes» // Modern problems of science and education. — 2014. — No. 6.
- New culture of design work in the state. «GOSAgile» [Electronic resource]. URL: http://gosagile.ru.
- Razumovsky K. Introduction to flexible software development / [Electronic resource]. — Access mode: http://www.kv.by/index2008334201.htm.
- Sutherland J. Scrum. A revolutionary approach to building teams, beating deadlines and boosting productivity. M.: Mann, Ivanov and Ferber, 2015.288 p.