The AGILE methodology is a practice that promotes the continuous iteration of development and testing throughout the life cycle of software development of the project. Both the development and the test activities are concurrent unlike the cascade model.
Agile Vs Waterfall Method
The Agile and Waterfall models are two different methods for the software development process. Although they are different in their approach, both methods are sometimes useful, depending on the requirement and the type of project.
SCRUM is an agile development method that focuses specifically on how to manage tasks within a team-based development environment. Basically, Scrum is derived from the activity that occurs during a game of rugby. Scrum believes in training the development team and advocates working in small teams (for example, 7 to 9 members). It consists of three roles, and their responsibilities are explained below:
The Master is responsible for setting up the team, speed meeting and eliminating obstacles to progress, so there can be a better outcome, improved and above all results.
Owner of the product
The product owner creates a product record, prioritizes the backlog and is responsible for delivering the functionality in each iteration.
The team manages its own work and organizes work to complete the sprint or cycle
This is a repository where the requirements are followed with details about the non-requirements that must be completed for each version. The owner of the product must maintain it and give it priority, and must distribute it to the scrum team. The team can also request a new addition, modification or elimination requirement
Process flow of Scrum methodologies
The process flow of the scrum tests is as follows:
Each iteration of a scrum is known as Sprint
The product portfolio is a list where all the details are entered to obtain the final product
During each Sprint, the main elements of the product portfolio are selected and become the Sprint portfolio
The team works in the defined sprint portfolio.
Team verifies daily work.
At the end of the sprint, the team delivers the functionality of the product.
Extreme programming (XP)
The extreme programming technique is very useful when there are constantly changing demands or requirements from the clients or when they are not sure of the functionality of the system. He advocates frequent “releases” of the product in short development cycles, which inherently improves system productivity and also introduces a checkpoint where customer requirements can be easily implemented. XP develops software keeping the client on target.
The methodology of the crystal is based on three concepts.
Chartering: several activities involved in this phase are to create a development team, perform a preliminary feasibility analysis, develop an initial plan and refine the development methodology
Cyclical delivery: the main development phase consists of two or more delivery cycles, during which the team updates and refines the launch plan.
Implements a subset of the requirements through one or more program tests that integrate iterations.
Integrated product delivered to real users.
Review of the project plan and development methodology adopted.
Conclusion: the activities carried out in this phase are the implementation in the user’s environment, post-implementation reviews are carried out and reflections are made.
Dynamic software development method (DSDM)
DSDM is a rapid application development (RAD) approach to software development and provides an agile project delivery framework. The important aspect of DSDM is that users must actively participate and teams have the power to make decisions. Frequent delivery of the product becomes the active focus with DSDM. The techniques used in DSDM are:
- Time Boxing
- Rules of MoSCoW
- The DSDM project consists of 7 phases.
- Draft project
- Feasibility study
- Business study
- Iteration of the functional model
- Design and build iterations.
- Character driven development (FDD)
This method focuses on the characteristics of“design and construction”. Unlike other agile methods, FDD describes very specific and brief phases of the work that must be carried out separately by function. Includes domain tutorial, design inspection, construction promotion, code inspection and design. FDD develops products following the things in the objective.
Modeling domain objects
Development by feature
Component / class property
Visibility of progress and results.
Development of Lean Software
The Lean software development method is based on the principle “Just-in-time production”. Its goal is to increase the speed of software development and lower costs.
Lean development can be summarized in seven steps.
- Eliminating waste
- Amplifier learning
- Defer commitment (decide as late as possible)
- Early delivery
- Empower the team
- Building integrity
- Optimize the set