Название: Agile Transformation in IT-organizations
Автор: Алиса Олеговна Бобовникова
Издательство: Автор
isbn:
isbn:
For example, one of these tasks is to create a text editor. Before MS Word began to dominate, a lot of trial and error was done, a lot of processors and text editors appeared, many of which only few people remember now: WordStar, WordPerfect, Lexicon, XyWriter, Lotus notes, Makurita and others. This kind of product development has to be conducted with a constant attention to user's reaction, quickly responding to his needs with new versions.
Approaches to development based on the cascade model, with clear sequential stages, and comprehensive documentation have received the conditional name of "heavy methods" (heavy methodologies)3. At the same time, various specialists from the IT world attempted to work differently, inventing new tools, techniques, or even developing whole methodologies in order to increase software adaptability and development speed as well as deliver valuable product to the user faster.
These new approaches used a similar set of principles and tools:
• iterative-incremental development;
• regular customer or user feedback;
• teamwork;
• maximum transparency.
Several so-called "lightweight" methods (lightweight methodologies)4 emerged in the 90s of the 20th century: Crystal Clear, Extreme programming (XP), Rapid application development (RAD) and Dynamic System Development method (DSDM), ICONIX, Scrum5, Adaptive Software Development (ASD), Function-driven Development (FDD).
Jim Highsmith, author of the book "Adaptive Software Development" recalled that time: “I think that at that moment we were all looking for legitimacy. Each of us could worked alone and did similar things in own way, but it could not have success and recognition in the community [of software developers].”
Classical "heavy-methods" were often officially fixed as standards for large-scale software development projects (for example, in the US Department of Defense). "Lightweight methods" have long been perceived as exotic, or specific ways of working in a specific company on a specific project. They did not receive wide recognition, and were promoted only by their founders’ efforts.
Many people came up with the idea that it was necessary to organize a general meeting at which various "lightweight" methodologies founders and supporters would form a common document proclaiming a new software development paradigm. Then they could act as a united front, as an organized force, as opposed to "heavy-methods" dominance.
In early 2001, 17 people gathered not far from Wasatch Mountains in Snowbird, Utah, to discuss the future of software development. The participants of this group were united by concern about the current state of affairs in the industry, when “heavy-methodology” driven projects increasingly failed and flexible approaches were in great demand of legitimization and recognition. At the same time, they were not afraid that their thoughts about optimal solution differed.
The long weekend meeting resulted in Agile Manifesto of Software Development and became an answer to all these questions. This concise and expressive document consisted of only 68 words and changed software development forever. For almost two decades since its creation, these words (and the 12 principles that followed) have been adopted (to one degree or another) by a huge number of people, teams and companies.
Agile emerged as a mindset, a thought process that involves understanding, collaborating, learning, and staying flexible to achieve high-performing results, as a counterbalance to outdated approaches and excessive bureaucracy in IT field. Silicon Valley Residents realized that it is impossible to create innovative products in a conservative environment.
Here are Agile values with more detailed explanation.
There are four of them:
• if you want to build an agile process, you need to interact and communicate with each other. You can (and definitely will) use some tools, for example, trackers – JIRA, Redmine, etc. But the whole process should be based on various meetings and interaction, and not on tracker’s settings or TFS (Microsoft stack);
• the working product that we make is much more important than the documentation for it. An example was given above with two companies. Documentation, the user cannot apply because the product is not ready, does not bring value to this user. If we learn to work minimizing software development steps, or by making them smaller, then we will have a more flexible process;
• cooperation and interaction with the customer is more important than strict contract following. It is usually named Fixed Price when you sign an agreement and fulfill agreed amount of work. The time, amount of work and deadlines are fixed. This approach is not very good if you want to work for the long term and be flexible. To be agile, it is more correct to build partnerships with the customer. The most important thing is that the search for a partnership and a win-win situation begins here, when both the customer and his contractor win;
• readiness for changes with following the original plan. Agile development approach requires plan, estimates and forecasts. If you have an initial annual project plan and provide some working product version in some months or requirements change while developing you can change the whole plan taking changes and feedback into consideration.
12 Agile development principles, also the result of the Snowbird meeting, expand these several value-defining proposals.
It's all. Since then, the website with the Agile Manifesto has hardly changed (or maybe it hasn't changed at all), which can't be said about the world around Agile.
Agile methodologies have enjoyed overwhelming popularity: first mentioned in the PMBOK (the US Project Management Body of Knowledge standard) 5th edition (2013), then they were fully adopted in the PMBOK version 7, released in 2021 which took all the Agile principles and became its direct ambassador.
To conclude with Agile introduction, it is necessary to state the main goal of this approach – delivering value to the consumer. According to Agile methodology, it is achieved using three characteristics for a software product:
Thus, the Agile method is applied to:
• accelerate the product launch to the market. If you want to develop software faster, you need to apply Agile. For example, two similar business companies. The first one creates the technical task for software development, designs the structure and interface consistently, this is a waterfall model, implementing it can take several months. Another team can already release a website and software applying Agile, start earning money and hijack the market;
• manage priority changes. An unpleasant challenge for almost all companies. Your requirements will definitely change if you are doing the project that lasts at least a few months.What about commercial development, the problem СКАЧАТЬ
3
Approaches to software development based on the cascade model, with clear sequential stages, and comprehensive documentation.
4
Approaches to software development based on the iterative incremental method.
5
The most common and popular Agile framework.