RSS
Логотип
Баннер в шапке 1
Баннер в шапке 2
2021/03/09 23:45:29

Agile Software Development Flexible development methodology

Conceptual approach in which software development is performed. There are several similar techniques.

Content

Most flexible methodologies are aimed at minimizing risks by reducing the development to a series of short cycles called iterations, which usually last one to two weeks. Each iteration itself looks like a software project in miniature, and includes all the tasks necessary to issue a mini-boost in functionality: planning, requirement analysis, design, coding, testing and documentation.

Agile methods emphasize direct face-to-face communication. Most agile commands are located in the same office, sometimes called bullpen. At a minimum, it also includes "customers" (customers who define a product, they can also be product managers, business analysts, or customers). The office may also include testers, interface designers, technical writers and managers.

The main metric of agile methods is the working product. By preferring direct communication, agile methods reduce the amount of written documentation over other methods.

Implementation in Russia

2023: From Agile to Flexibility: How Magora Systems Helps Russian Businesses Grow

Alexey Chernega, senior project manager at Magora Systems, spoke in an interview about how to overcome skepticism about Agile, hybrid approaches, basic project manager skills and project management features in fintech and healthcare. Read more here.

2021: Analysis of different areas of the economy for the application of Agile

Performance Lab analyzed various areas of the economy for popularity and understanding of Agile methods by companies and made forecasts for 2021 regarding the implementation and success of this approach on the Russian market. The company announced the results of the analysis on March 9, 2021.

In banks, flexible development methodologies (Agile) are used by the majority (91%) of the surveyed banking organizations. Although according to surveys, some banking organizations are not yet ready to use Agile in full. For example, Ilya Kuchugin, director of the information technology block of Zenit Bank, agrees that Agile technologies are increasingly penetrating banking activities. According to him, from the outside it may seem that we are talking exclusively about the technical moment, but in practice this trend entails radical changes in the entire IT market. With the introduction of flexible methodologies, approaches to recruitment and personnel management will be adjusted, we will have to rethink the role of management. {{quote 'So, at some point I realized that if we in the bank can build work on the principles of Agile, then my position will no longer be necessary. And this is a challenge to each leader: what steps must be taken to remain in demand in the new conditions?, Ilya Kuchugin shared. }}

From the study RQR 2020-2021 (Russia Quality Report) Performance Lab, which interviewed more than 350 organizations from telecom, IT, financial sector, retail, fuel and energy complex, industry about the situation in the market for quality assurance of IT systems and testing the software market in Russia, it follows that flexible development methodologies (Agile) are not popular in all areas of the economy, someone does not know what to do with them, has little experience or is simply not ready for use yet. Despite this, flexible development methodologies (Agile) continue to win the sympathy of Russian companies and organizations. According to past reports of the company, four years ago, only 43% of market players surveyed took this approach. In 2020, their number increased to 80%.

The growing popularity of Agile in Russia, however, does not mean that domestic companies no longer face challenges in implementing flexible development methodologies in practice. Agile did not become a panacea for domestic companies: when implementing flexible methodologies, organizations are still not immune from problems.

In retail, the popularity of Agile continues to grow in Russia. A survey of trading companies showed that most of them (60%) use this approach. For 2019-2020, this indicator increased by 7%.

Organizations that work in the retail and e-commerce markets have named lack of understanding of Agile methodology testing approaches as a major issue in 2020. 57% of respondents spoke about this.

Flexible development methodologies (Agile) are used by only 25% of the surveyed public sector organizations. Respondents attribute the choice to this approach to increasing transparency, manageability and speed of product development.

The main difficulties in using Agile for respondents are: lack of test environments and data, as well as lack of test experience in the team (33% each). Another 67% of survey participants cannot name the problems of Agile application that are relevant for them, since they do not use this methodology.

In the system integration market, about 90% of system integrators who took part in the survey use Agile.

In telecom, the majority of telecommunications companies surveyed (80%) use flexible development methodologies (Agile).

2017: Companies quickly embrace Agile - study

At the end of October 2017, ScrumTrek (Scramtrek), a company specializing in the implementation of agile approaches, published the results of a study that showed the rapid implementation of Agile in Russia. At the same time, the technology goes beyond IT.

ScrumTrek surveyed nearly 800 representatives of small, medium and large businesses in 50 cities. 61% of respondents are project managers, middle managers, scrum masters and other managers; 21% of this segment are top managers and owners of enterprises. 

How developed is Agile in Russia

According to the survey, 40% of respondents who started using Agile no more than 1.5 years ago have already implemented flexible methodologies throughout or almost throughout the company. Only 20% of organizations using Agile for 2-3 years continue pilot projects at the level of individual teams, but many managed to go further than local experiments.

About 50% of companies started using Agile about back. About 41% of organizations got acquainted with flexible methodologies about a year and a half ago.

Most often, Russian business introduces Agile to accelerate the supply and launch of products on the market. Less than half of the respondents were able to achieve this goal thanks to the use of flexible methodologies at the time of the study (the world figure is 81%), according to the ScrumTrek report.

Why Russian companies are introducing Agile

More than two-thirds of the survey participants (68%) working in companies with Agile implementation experience either represent the IT-Business or are actively involved in the software development process. At the same time, the share of respondents who have nothing to do with information technology is quite large and amounts to 32%.

Almost half of these respondents (40%) work in insurance and financial companies, including banks, which are often called the main driver of the application of agile approaches in the past few years. 

SAFe - Scaled Agile Framework

SAFe (ScaledAgile Framework) is a knowledge base of proven, integrated principles, practices and competencies for Lean, Agile, DevOps at scale

Benefits of SAFe

  • Designed for large Enterprise organizations
  • Based on the real experience of global companies
  • Based on principles close to us
  • Includes alignment at all levels from strategy while maintaining organization flexibility
  • Practical experience in Russia
  • Focuses on technical debt, architecture and DevOps

4 basic Agile concepts

Agile, a flexible development methodology, ON provides a number of advantages over the more conservative and less suitable Waterfall system for software manufacturers, but some organizations are in no hurry to switch. IT expert Bob Ronan, in his article, lists the benefits that CIOs (CIOs) should consider CIO when considering switching to Agile Based on[1]

1. Technical and Business Units are jointly located in an open area

The first agile followers started with key employees (project manager, system and business analysts, developers, testers), but over time the process covered all employees. For example, on the technological side, the practice of combining data analysis and processing engineers, database administrators and process operations personnel in one unit is widespread today, even if they are only temporarily there.

2. Test scenarios are developed prior to the programming phase

In the case of test-based development, developers are given the opportunity to immediately check the health of their code. Despite the fact that in reality many teams are trying to implement this step before the start of the programming stage, the most important thing is the compilation of test scenarios, especially unit testing scenarios, which are often not used at all in the cascade model.

3. Morning planning sessions are held every day

During such gliders, the team gathers in a circle and each participant talks about what he did yesterday, what he plans to do today, and what problems he faced. All issues requiring more time than a brief discussion are documented and addressed later. At the same time, it is very important that everyone stands, as this emphasizes the need to be brief.

4. The process consists of one to four week work cycles called "sprints"

At the output of each cycle, a working code is obtained. From experience, we can say that two-week sprints provide a balanced opportunity to create something really valuable while maintaining a sense of urgency. Each cycle includes:

  • Ÿ"Igrovoye planning, "which allows you to decide which functions will be built into the current version based on the priority list of pre-collected" user wishes. " User wishes are high-level descriptions of the business tasks that the application should solve. Initially, they are developed during a workshop where all technical and business employees are present, and then gradually updated to ensure that the items with the highest commercial value are at the top of the list.
  • Development of screen layouts and test scenarios.
  • Writing code and testing the interaction of system components. It should be noted that often the code is brought to a common basis, allowing everyone to work with the same version, which allows you to quickly detect integration problems.
  • Show the working code to the workgroup and technical or business unit management.
  • Retrospective discussion of what went well within the cycle and what should be changed in the future. The best practice is to develop the wishes of users to take into account all the opportunities outlined in the retrospective review and their elaboration in the next cycle, as this reinforces the concept of continuous improvement.

Distributed Flexible Model

Most organizations cannot afford the luxury of assembling all developers in one physical place, so they doubt whether the agile model will suit them. It will suit, but it will require investment in technology and business trips.

"When I first tried Agile in which the developers were in different places, the results were not very rosy. The planning sessions were conducted by phone, and we often had difficulty understanding what the other location said. Our first attempt to solve the problem was quite funny: we passed the phone in a circle to the speaker. This solution was not completely optimal, but it pushed us to a better idea of ​ ​ using a headset connected to a single telephone system. Thanks to this, everyone could hear each other.

It was effective, but the real turning point was the introduction of video technology. Each member of the group was provided with a video device installed on the desktop, allowing them to see other members working separately or gathered together. For groups, we purchased video conferencing mobile monitors that could move from one place to another, depending on where the group was assembled.

A big step forward was the installation of monitors in each development unit that never turned off. To understand how it works, imagine a room in which developers are sitting, with a monitor installed at the far end. The monitor shows a group working in another location, which also has its own monitor installed, displaying your development space. People walk up to the monitor and talk as if they were in the same room. Constantly on monitors provided closer interaction than if groups had to constantly call each other.

When working groups are in different places, it is very important to build personal relationships, and this requires investment in travel. We found that when multiple working group members work in a different location each year within one of the cycles, it brings a positive result. This allows them to build personal relationships and, in return, such relationships increase the productivity of video conferences, "Bob notes.

10 benefits of Agile

1. Quickly identify wrong approaches

There is a lot of documentary evidence that in the field of technology, the later an incorrectly chosen path is discovered, the more difficult it is to fix everything. With daily tracking of work progress, Agile allows you to quickly detect errors.

2. Fast Decision Making

Most decisions are made by partners working in the same room. When any questions arise, normal practice involves gathering workers in one place to discuss them. Very rarely there is a need for formal meetings, the scheduling of which can take several days to agree.

3. Collaboration translates into many benefits

Given that technical and business groups have the same responsibility, they are equally interested in achieving success. Technical employees understand the difficulties experienced by business units with the current environment, while business employees understand the technical difficulties of developing a new application. When any problems arise, they become known to all members of the group, and very often people working on completely different tasks find a solution.

4. Changes are recognised as inevitable and welcomed

It is clear that at the very beginning of the project, no one can imagine exactly how the system should work. Many cascading projects face "analytic paralysis" due to the pressure of having to develop technical requirements before work can begin directly. With a flexible model, the development of the system is carried out during several cycles and corrections are made on the go.

5. The final product contains the most useful features

Since business employees are directly involved in the development of the product, they effectively identify functions that increase its value. On the contrary, defining all requirements in the initial stages of the project can lead to the development of useless or limitedly useful functions.

6. A more attractive environment for Generation Y

Today, conversations about the involvement of a generation born at the end of the 20th century are very popular. Agile is ideal for this, as young employees like the dynamic working environment that has to cooperate.

7. Better Finished Product Code Quality

"I once did a seven-year analysis of our numbers. It turned out that projects based on a flexible development model were distinguished by significantly fewer defects in the production environment, "says Bob.

8. The business group is more satisfied with the final results

The above-mentioned seven-year analysis also showed that in the course of customer satisfaction studies, projects based on a flexible development model scored significantly more points than cascading projects. Actually, very rarely flexible projects scored less than five points on a five-point scale.

9. Technical documentation takes less time and contains fewer errors

Considering that the documentation is limited to the work products necessary to fulfill the assigned tasks (user wishes, test scenarios, etc.), it reflects what was implemented, and not what could be planned. Audit tracking is much broader because all discrete functions are consistent, as opposed to approving several hundred pages of documentation once. With traditional approaches to development, a huge amount of time is spent on drawing up documentation, which is often not updated or used. In a cascading model, intermediate steps are often related to documentation, rather than actual code.

10. Easier application maintenance

We have all heard terrible stories about a single point of code failure, when only one person knows the code well enough to make changes to it. This never happens in a flexible model, because several developers are working on each part of the system at once.

Methodologies

Agile's philosophy has formed a class of project management methodologies that includes:

Directions of use

Agile in the management of state projects

Main article: Agile in Government Project Management

If Agile is so good, why isn't it used by all organizations?

"First,
many IT executives don't like to take risks, and the change in the development process is due to a dramatic change. Secondly, the flexible model sometimes does not work, after which it is abandoned. At the heart of these two reasons is the risk of failure, but it can be reduced by avoiding two typical errors in the application of the flexible model. From experience, I can say that Agile does not work when the initiative to implement it comes down from above - project teams are told that they will now use a flexible development model and tell them exactly how to work with it. Strict methodology contradicts the very essence of Agile. Its whole point is to try as many ideas as possible and use those that will work.

For the agile method to work, it is necessary to find a group that does not mind trying it, and then give them complete freedom in choosing methods suitable for this particular organization. You will get the result, the project team will become an adherent of the method, and soon the leaders of other groups will come to you and ask why Agile does not work in their projects, "the expert emphasizes.

Agile in banks

Application experience

The main difference between the Agile methodology and past development methods is the understanding that everything can change during the project. Therefore, it is important and necessary to take into account these changes so that the result of the project most fully meets its business goals and fulfills its tasks. Experts from the Group of company Systematica (Systematics Group JSC) spoke about the most popular flexible development methodologies and experience in their use under the TAD heading. See Supersets, Relay Races and Speed ​ ​ Car Racing - Sports Agile Approach to the Project Execution Process

See also

Notes