Adaptive Software Development – ASD
Traditional software development methodologies impose a disciplined process with the goal of making work more predictable, efficient, and planned.
They have been around for a long time and the most frequent criticism of these methodologies is that they are bureaucratic.
As a reaction to the failures of traditional methodologies and the numerous steps that must be followed, agile methodologies have emerged that are based on adaptability, rather than predictive behavior.
Adaptive Software Development (ASD) is a development methodology promoted by Jim Highsmith and Sam Bayer that emphasizes applying the ideas that originated in the world of complex systems, continuous adaptation of the process to work.
Among its main characteristics we have:
• Iterative
• Oriented to software components (the functionality that the product will have, characteristics, etc.) rather than to the tasks in which this objective is to be achieved.
• Tolerant to changes.
• Component review helps you learn from mistakes and start the development cycle again. Unlike the life cycles of traditional methodologies, the adaptive life cycle is based on the following states or processes:
• Speculation.- It is where the characteristics of the Software are started and planned.
• Collaboration.- The characteristics of the software are developed.
• Learning.- Quality is reviewed, and if there are no errors, it is delivered to the customer.

Advantage
• The third phase of the life cycle, component review, serves to learn from mistakes and start the development cycle again.
• Points toward Rapid Application Development (RAD), which emphasizes speed of development to create a high-quality, low-maintenance product by involving the user as much as possible.
• Uses available information about changes to improve the behavior of the software.
• Promulgates collaboration, the interaction of people.
• Anticipates changes and automatically deals with them within a running program, without the need for a programmer.
Disadvantages
• Although the cycle between learning and speculation is good, allowing us to deliver high quality products, the prolongation of this cycle due to errors or changes that are not detected in previous meetings affects both the quality of the product and its total cost.
• Given that it is an agile methodology, it implies not carrying out processes that are required in traditional methodologies or at least not carrying them out in different processes, which implies that large companies which need to take greater control of processes and people, have assigned tasks to a specific state or process, and in which said increased processes do not greatly affect the final cost of the product, for these companies choosing a traditional methodology is much more profitable both due to the large volume of personnel, products, and of costs that are managed and for which there will be greater control.
Properly used this methodology (Adaptive Software Development) can achieve excellent results but due to the characteristics it handles it is more feasible to use it for small and medium projects, to gain practice and experience in order to reach Rapid Application Development (RAD) in where we will have high quality products.
What is Scrum?
Scrum is an iterative and incremental development process focused on the management of software development processes, although it can also be used in software maintenance teams, which serves to manage and control the development of systems.
This methodology, initially documented by two Japanese (Takeuchi and Nonaka) in 1986 and with contributions from specialists (Sutherland and Schwaber) throughout the last decade, tends to make the processes that influence technology development increase rapidly. and flexibility, always taking into account the times and business rules that give rise to the development of the project. It is used in environments that work with unstable requirements and that require speed and flexibility; frequent situations in the development of certain software systems, usually with small and multidisciplinary teams.
What is this methodology about?
Development is done iteratively and incrementally. Each iteration ends with a piece of executable software that incorporates new functionality. These iterations generally last between 2 and 4 weeks.
Scrum focuses on prioritizing work based on the value it has for the business, maximizing the utility of what is built and the return on investment. It is specially designed to adapt to changing requirements. Requirements and priorities are reviewed and adjusted during the project at very short and regular intervals. In this way, the product being built can be adapted in real time to the client’s needs or, in other words, incorporate changes quickly and at any stage of the project.
There are statistical studies of the Software industry that show that almost half of the functionality that is implemented is not used. In Scrum, the functionality that results in the greatest benefit for the business is built first and it is avoided at all times to develop things that will not be of use to the client. In this way a system can be developed in less time avoiding unnecessary work.
An advantage of this methodology is that it is very easy to learn and requires very little effort to get started. Scrum is used as a framework for other software engineering practices such as RUP or Extreme Programming.
Introduction to Scrum methodology. Concepts.
Scrum is a process that includes a set of actors or roles and predefined actions or practices.
The main roles in Scrum are the Scrum Master, who maintains the processes and works in a similar way to the project manager, Product Owner, who represents the Stakeholders (external or internal clients), and the Scrum Team that includes the developers. Then, the users or clients, who must be involved with the project for it to be successful.
During each Sprint, a period between 15 and 30 days, the team creates a potentially deliverable (usable) software increment. The feature set that is part of every Sprint comes from the Product Backlog, which is a set of prioritized high-level requirements that shape the work to be done. The Backlog items that are part of the Sprint are determined during the Sprint Planning meeting. During this meeting, the Product Owner informs the team of the items in the Product Backlog that they want to see completed. The team then determines how much of that work it can commit to complete during the next Sprint. During the Sprint, no one can change the Sprint Backlog (a list detailing how the different product requirements are going to be built), which means that the requirements are frozen during the Sprint.
Scrum in greater detail. Its actors and actions. His way of working.
The actors are the ones who would obviously execute the actions.
The Scrum Master is the one who facilitates the Scrum; His primary job is to remove the obstacles that prevent the team from reaching the Sprint goal and thereby facilitate Scrum. The Scrum Master is not the team leader (because they organize themselves), but acts as a buffer between the team and any distracting influences. Ensures that the Scrum process is used as it should. He is the one who enforces the rules. He is the person who ensures the follow-up of the methodology, guiding the meetings and helping the team with any problem that may appear.
The Product Owner represents the voice of the customer and provides the business vision. They make sure that the Scrum team works properly from a business perspective. The Product Owner writes user stories (simple cards in which what we want to do is collected in a schematic way and in clear language), prioritizes them and places them in the Product Backlog.
The Scrum Team has the responsibility to deliver the product. A small team of 5 to 9 people with a mix of skills necessary to get the job done (developers, designers, etc.) of implementing the functionality or features chosen by the Product Owner.
The others involved in the process are the users of the product or application, the customers and vendors, and the managers and directors. They are not essential actors but they are involved and must be taken into account. They provide ideas, suggestions or needs.
The actions are directly related to the actors. In Scrum, the actions to be taken and how to take them are clearly indicated. Actions in Scrum form a repetitive iterative cycle that aims to minimize effort and maximize performance in development.
The Product Backlog corresponds to all the tasks, functionalities or requirements to be carried out. The Product Owner is the person in charge of prioritizing, maintaining and updating the Product Backlog.
The Sprint Planning Meeting is a meeting whose objective is to plan the Sprint from the Product Backlog. The objective of this meeting is to move the tasks from the Product Backlog to the Sprint Backlog. In this meeting, the Product Backlog, the Scrum Master and the Scrum Team usually participate. From the Sprint Planning Meeting the Sprint Goal also comes out, which is a small document or a brief description that indicates what the Sprint will try to achieve.
The Sprint Backlog corresponds to one or more tasks that come from the Product Backlog. One or more tasks are taken from the Product Backlog that will be part of the Sprint Backlog. These tasks should be completed in about 2 to 4 weeks.
Once the Sprint Backlog is started, it cannot be altered or modified. You have to wait for it to conclude to make the corresponding modification or alteration, whose task would be part of another Sprint Backlog.
The Daily Scrum Meeting is an iterative task that takes place every day during the Sprint Backlog with the development team. It is a daily, operational, informal and agile meeting, lasting a maximum of 30 minutes, in which each member of the team is asked questions. Questions about the tasks you have done since the last meeting, questions about what you are going to do on the current day, and questions about identifying obstacles or risks that prevent or may prevent normal progress. The Scrum Master must remove any obstacles he encounters here.
In the Sprint Review the completed Sprint is reviewed. This meeting is usually attended by the Product Owner, the Scrum Master and people who could be involved with the project. The Scrum Team is the one who shows the progress made in the Sprint.
At the end of the Sprint Backlog and the Sprint Review, the Sprint Retrospective begins. The Product Owner will review with the team the objectives initially set in the concluded Sprint Backlog, the changes and adjustments will be applied if necessary, and the positive aspects (to be repeated) and the negative aspects (to prevent them from being repeated) of the Sprint will be marked. .
Advantage
– Software is obtained as quickly as possible and it meets the most important requirements.
– It works in short iterations, with high focus and total transparency.
– It is accepted that change is a universal constant and development is adapted to integrate the changes that are important.
– Creativity of developers is encouraged by making the team self-managed.
– The effectiveness of the equipment is maintained by enabling and protecting an environment free from interruptions and interference.
– It allows to produce software in a consistent, sustained and competitive way.
– Meetings are dedicated to recent inconveniences, avoiding stagnation
Disadvantages
– It requires delegating responsibilities to the team, even allowing failure if necessary.
– It is a methodology that differs from the rest, and this causes some resistance in its application for some people Concluding Scrum by its characteristics is not valid for any project or for any person or team of people. Moreover, Scrum according to many specialists of this methodology, is optimal for work teams of up to 8 people, although there are companies that have used Scrum successfully with larger teams.
It can be said that for 90% of projects and companies, it is a valid methodology, but it is not a 100% valid methodology. What’s more, there is no methodology better than another or 100% valid for all people and companies.
Scrum is therefore one more methodology of the many that there are.
Scrum is neither the best nor the only methodology, but it is a methodology that is pushing very hard due to the ease of implementation and its agility in terms of changes and what it properly contributes compared to other methodologies.
On the one hand, Scrum avoids bureaucracy and the documentary generation. It is not that with Scrum it is not necessary or cannot be documented, but that with Scrum it is not required to document anything to start a project, something that in other methodologies is unthinkable.
With Scrum, on the other hand, the main idea is to get to work practically from the first moment and start to take advantage of that work so that the client sees the progress and remains satisfied with what is being done and how it is being done. doing.
The idea of the agile methodology is fundamentally that it adopts the changes, that the project can be redirected at a given moment, and that it affects costs, time and the work team as little as possible.