[an error occurred while processing the directive]
RSS
Логотип
Баннер в шапке 1
Баннер в шапке 2
2021/03/09 23:45:29

Agile Software Development Flexible Development Methodology

Conceptual approach for software development. There are several similar techniques.

Content

Most flexible methodologies aim to minimize risks by reducing 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 a miniature, and includes all the tasks necessary to produce a mini-increase in functionality: planning, analysis of requirements, design, coding, testing and documentation.

Agile methods emphasize 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, or they can 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. Favoring direct communication, agile methods reduce the volume of written documentation over other methods.

Implementation in Russia

2021: Analysis of different areas of economics for Agile application

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

In banks, Agile uses the majority (91%) of 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 Zenit information technology block, agrees that Agile technologies are increasingly penetrating banking. According to him, from the outside it may seem that we are talking exclusively about the technical moment, but in practice this trend entails fundamental changes in the entire IT market. With the introduction of flexible methodologies, approaches to recruitment and personnel management will be adjusted, the role of management will have to be rethought. {{quote 'So, at some point I realized that if we at 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 RQR 2020-2021 (Russia Quality Report) study, Performance Lab, in which more than 350 organizations from telecom, IT, finance, retail, fuel and energy complex, industry were interviewed about the situation in the IT systems quality assurance market and software market testing 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. Despite this, Agile's flexible development methodologies 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 used 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 has not become a panacea for domestic companies: when introducing flexible methodologies, organizations are still not immune from problems.

In retail, Agile's popularity 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 operate in the retail and e-commerce markets have named lack of understanding of testing approaches by Agile methodology a major concern in 2020. 57% of respondents said this.

Agile uses only 25% of public sector organizations surveyed. Respondents explain the choice in favor of this approach by increasing transparency, manageability and speed of product development.

The main difficulties when 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 using Agile that are relevant for them, since they do not use this methodology.

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

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

2017: Companies quickly master Agile - research

At the end of October 2017, ScrumTrek, 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.

The ScrumTrek interviewed  almost 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 Agile is 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 have managed to go further than local experiments.

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

Most often, the Russian business introduces Agile to accelerate the supply and launch of products. It was succeeded to achieve this objective thanks to flexible methodologies at the time of drawing up a research less than a half of respondents (a world indicator - 81%), it is told in the report of ScrumTrek.

Why Russian companies are introducing Agile

More than two thirds of survey participants (68%) working in companies with experience in implementing Agile, either represent IT-Business or are actively involved in the software development process. At the same time, the share of respondents who are not related to information technologies 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 agile approaches in the past few years. 

SAFe - Scaled Agile Framework

SAFe (ScaledAgile Framework) - 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 real experience of world companies
  • Based on principles close to us
  • Includes leveling at all levels of strategy while maintaining organization flexibility
  • There is practical experience in Russia
  • Pays attention to technical debt, architecture and DevOps

4 basic Agile concepts

Agile, a flexible development methodology, ON offers a number of advantages over the more conservative and less suitable Waterfall system for software manufacturers, but some organizations are slow to transition. IT expert Bob Ronan in his article lists the benefits to be taken into account by CIO's (CIO's CIO) considering moving to Agile On[1]

1. Technical and business units are co-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 workers. For example, on the technological side, the practice of combining data engineers, database administrators and technology operations staff in one unit is widespread today, even if they are only temporarily located 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 phase, the most important thing is to compile test scenarios, especially modular test scenarios, which are often not used at all in the cascade model.

3. Morning gliders are held every day

During such gliding, 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 discussed 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 work cycles lasting from one to four weeks, which are called "sprints"

At the output of each cycle, a working code is obtained. Based on 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 previously collected" user wishes. " The wishes of users are high-level descriptions of the business tasks that the application must 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 most commercial value are at the top of the list.
  • Develop screen layouts and test scripts.
  • Code writing and interoperability testing of system components. Note the fact that code is often shared, allowing everyone to work with the same version to quickly detect integration issues.
  • Show the work code to the team and to the technical or business department management.
  • A retrospective discussion of what has gone well in 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 identified in the retrospective review and to develop them in the next cycle, as this supports the concept of continuous improvement.

Distributed Flexible Model

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

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

This was effective, but the real turning point was the introduction of video technologies. Each member of the group was provided with a video device installed on the desktop, allowing you to see other participants working individually or gathered together. For groups, we purchased mobile monitors with video conferencing 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 department that were never turned off. To understand how it works, imagine the room in which developers sit, with a monitor installed at the far end. The monitor shows a group working in a different location that also has its own monitor that displays your development space. People approach the monitor and talk as if they were in the same room. Continually enabled 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 several members of a working group work in a different location each year in one of the cycles, this brings a positive result. This allows them to build personal relationships and, upon return, such relationships increase the productivity of video conferences, "said Bob.

10 benefits of Agile

1. Quick detection of incorrect approaches

There is a lot of documentary evidence that in the field of technology, the later the incorrectly chosen path is discovered, the more difficult it is to fix everything. With daily work progress tracking, Agile can 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. It is very rare for formal meetings to take several days to agree on a schedule.

3. Collaboration brings many benefits

Given that technical and business groups bear the same responsibility, they are equally interested in achieving success. Technical staff 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 recognized as inevitable and welcome

It is clear that at the very beginning of the project, no one can accurately imagine how the system should work. Many cascade projects face "analytical paralysis" due to the pressure associated with the need to develop technical requirements before you can start work directly. With a flexible model, the system is developed in several cycles and amendments are made on the go.

5. The final product contains the most useful features

Because business employees are directly involved in product development, they effectively define functions that add value to the product. On the contrary, defining all requirements in the initial stages of a project can lead to the development of useless or limited useful functions.

6. A more attractive environment for Generation Y

Today, talk of involving a generation born at the end of the 20th century is very popular. Agile is ideal for this, since young employees like a dynamic working environment that is conducive to cooperation.

7. Better Finished Product Code Quality

"Once I did a seven-year analysis of our quantifications. It turned out that projects based on a flexible development model featured significantly fewer defects in the production environment, "says Bob.

8. Business Group is more satisfied with results

The above-mentioned seven-year analysis also showed that during the customer satisfaction study, projects based on a flexible development model gained significantly more points than cascade 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 perform the tasks (user wishes, test scenarios, etc.), it reflects what was implemented, and not what could be planned. Audit traceability is much broader, as all discrete functions are consistent, as opposed to approving several hundred pages of documentation once. Traditional development approaches spend a huge amount of time compiling documentation that is often not updated or used. In a cascade model, intermediate steps are often associated with documentation rather than actual running code.

10. Simpler application maintenance

We 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 work 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 the management of government projects

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

"First, many IT managers do not like to take risks, and the change in the development process is associated with drastic changes. Secondly, the flexible model sometimes does not work, after which it is abandoned. These two reasons are based on the risk of failure, but can be reduced if two typical errors of applying a flexible model are avoided. 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 now they will use a flexible development model and say 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.

In order for the agile method to work, it is necessary to find a group that does not mind testing it, and then give them complete freedom in choosing methods suitable for this particular organization. You 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 project result best meets its business goals and fulfills its tasks. Experts of GKS (Systematics Group JSC) spoke about the most popular flexible development methodologies and their experience in using them under the TADethali heading. See Supersets, relay races and high-speed sports cars - sports agile approach to the project execution process

See also

Notes