Within the development organizations of applications there are two main currents for methodology in the development of a project.
What we traditionally known as “cascade or sequential development” and the new methodologies that propose the generation of small deliverables in a scheme of activities that can overlap or overlap, either in sequential or with a totally overlapping approach.
Within these two forms of work, here we analyze the main characteristics of the cascade development with CMMI / RUP and the agile development with AGILE – SCRUM. We will focus our attention on understanding the methodology a bit more Agile – Scrum and compare it with the cascade development methodology that is the most used nowadays.
Agile – Scrum Characteristics
Scrum is a reference model that defines a set of practices and roles, and that can be taken as a starting point to define the development process that It will be executed during a project. The main roles in Scrum are the ScrumMaster, which maintains the processes and works in a similar way to the director of project, the ProductOwner, which represents the stakeholders external or internal), and the Team that includes the developers. Scrum is
cataloged as an AGILE development methodology with cycles sequences with overlap.
Scrum allows the creation of self-organized teams promoting the co-location of all team members, and verbal communication between all the members and disciplines involved in the project.
A key principle of Scrum is the recognition that during a project the customers can change their minds about what they want and need (often called requirementschurn), and that unpredictable challenges cannot be easily confronted in a predictive and planned way. Therefore, Scrum adopts a pragmatic approach, accepting that the problem cannot be completely understood or defined, and focusing on maximizing the capacity of the Team deliver quickly and respond to emerging requirements.
There are several system implementations to manage the Scrum process, ranging from yellow “post-it” notes and blackboards to software packages. A of the greatest advantages of Scrum is that it is very easy to learn, and requires very little effort to start using.
Cascade Development Characteristics compared with AGILE – SCRUM.
The cascade development scheme is characterized by proposing activities sequential, clearly grouped into phases or cycles of the development of the project, proposes to make an intensive analysis of requirements and becomes complicated to return to previous stages of the project when differences are found significant in the scope defined in early stages of it. The survey of requirements is very rigorous and Analysts define a priori all the functional and non-functional requirements related to the project.
Normally, a phase cannot start without the previous phase having been revised and accepted by the client or end user, without this meaning the system will comply with your needs.
Scheme of Cascade Development Phases
Differences in the handling of Requirements
While in cascade development the acceptance of scopes is required previously defined through documents such as “Use Cases”, in which they make technical references based on the user’s requirements, in Scrum they propose the scheme of generating “User Stories” (Userstories) to understand and handle the requirement from the point of view of an end user of the application.
For cascade development, normally only analysts are involved systems for raising requirements without involving other members of the development team (example: tester).
Problems and characteristics with this type of specification
- The scope freezes quickly;
- You have a clear knowledge of when to stop;
- Even if the requirements evolve, the scope must be maintained until a change control is generated;
- Changes in requirements usually appear throughout the project.
Management of requirements in Agile
The methodologies that use AGILE as Scrum, require that ALL the team of development is involved in all stages of the project in constant contact with the end user of the application. Agile requirements are represented as “User Stories” (Userstories), which is a short description of the requirement of the user described in a language as close to his jargon daily There is a strong emphasis on this type of communication being oriented to the end user and that is easy to understand. These stories define scopes easy to identify in order to make iterative plans for definition, review and confirmation of scopes. End-users are not required to have to know all your requirements from the beginning. However, yes it is requested that they not be changed in the iterative cycles (sprints) that are defined for the
Product development.
Agile-Scrum iteration model
An Agile Requirements Process
In the model that Microsoft proposes for the iterative development of products, one of the main characteristics that stand out from the iterative methods, is that the understanding of the needs of the final customer become clearer,
they minimize misunderstandings between developers and end users.
However, it will be necessary to remember that some methodologies, independently of its great benefits, may be appropriate for certain types of end users and for the developers involved.
While other methodologies may represent a serious challenge for its implementation. To conclude, we will say that if you want to deliver the wrong product, that meet the needs of your end users, do not follow a methodology; but if you intention is to approach you as much as you can to solve a specific need, what It is better to use a methodology, test it, refine it and adapt it to your operating environment.