Introduction to Agile Process Model
In the IT organization when the software is developed, then its development process is associated with a methodology. There are various models that can be used to develop software. Noted ones include a waterfall model, Agile Process Model, RAD model, prototype model, extreme programming methodology, etc. The choice of model is dependent on many factors such as time required for delivery, funding, how important the software is going to be, the skill set of team, client involvement, etc. Traditionally many organizations used to use the waterfall model in their development process but there are more shortcomings from that model such a waterfall model is rigid that cannot accept the changes easily also it requires and has to focus heavy documentation. To overcome such a shortcoming, the Agile process model is introduced which is more focused on delivering working software. Agile can accommodate changes easily and has shown tremendous outcomes in delivering software. That is the reason it has become such a popular name among IT developers and organizations
Phases of Agile Process Model
The agile model encourages to practice of continuous iteration of development and testings in the software development life cycle SDLC. Here both the development and testing activities are performed together so that better track on defects can be identified. This was one of the major shortcomings of the waterfall model.
Agile Process models are below:
- Extreme Programming
- Adaptive Software Development ASD
- Dynamic System Development Model DSDM
- Feature Driven Development
Let us look at each with the phases involved in them:
The team should have proper communication and there should not any overhead on each associate. The work needs to be shared and must be done parallelly. The process is adaptable to both business and technical challenges.
The phase pattern in the scrum are:
- Backlog: List the requirements in the form of a story and prioritize them in descending order.
- Sprints: This basic work unit needs to required to achieve the backlog requirement packet.
- Scrum Meetings: There need to be at least 15 minutes daily stand up so that any impediments in the sprint packets can be.
- Reviews and Demos: There will be Reviews and demos so that the work packet can be tracked and if any changes that can be.
2. Extreme Programming
Extreme programming XP is quite helpful where there are frequent changes in the requirement and these changes can be incorporated easily. It is based on the object-oriented approach. It follows short releases for the product in its development life cycle.
Each iteration of this model has the following phases:
- Iteration Planning: In this phase, the requirement is understood and drafted as stories and sub-tasks.
- Design: This phase takes care of designing the implementation.
- Coding or Implementation: The requirement is coded.
- Testing: The implementation is rigorously tested for defects.
3. Adaptive Software Development
In this method group of individuals tries to obtain a solution to a major problem which can be difficult for specific individual agents. More emphasis on group communication and adaptive collaborations.
- Speculate: Get the complex requirement.
- Collaborate: Require to work jointly to obtain the desired result.
- Learn: The team has to enhance their knowledge and solving the complex requirement is great learning. The learning can be from the technical review, retrospective meetings.
4. Dynamic System Development Model DSDM
DSDM is a type of rapid application development approach where there are stringent timelines for delivery are met. The most important activity of DSDM is the user is involved actively and the team members are allowed to take decisions. Frequent delivery of releases is one of the characteristics of DSDM.
The phase of development framework of DSDM are as follows
- Get the complete requirements details and constraints and will come under a feasibility study.
- For business study understand the functional requirement of the software.
- Design and build Iterations.
This is an agile software development model that focuses on the people in the team and their working rather than on processes and tools. Crystal model firmly believes that people skill, teamwork, and their communication is firmly important in product outcomes.
Crystal methodologies are as below.
- CLEAR: for small and low critical efforts.
- ORANGE: For moderately larger and critical projects.
- ORANGE WEB: Typically electronic business.
6. Feature Driven Development
As the name suggests FDD manages the software development process with iterations focused on “features”. These features may be necessarily the product features but also can be akin to the user stories which are there in the sprint
The project life the cycle of FDD model is as follows:
- Develop an overall model
- Build the features list that considered necessary
- Plan by the features
- Design by the feature
- build or implement by the feature.
Agile Testing and Methods
Agile testing is one of the cores of the agile development process, unlike the waterfall model where development and testing are linear and sequential. But in agile development and testing are concurrent.
The testing methods of Agile are:
- Behavior Driven Development BDD: In BDD, Testers, developers, and the required business analysts will communicate and create test scenarios with focused communication so that there will not be any miss. The scenarios are captured in a specific format. The idea of BDD is to create scenarios, build tests that will fail initially, and build the software functionality that can be aligned with the testing scenario.
- Acceptance Test-Driven Development (ATDD): Here customer, developer and the tester will define and accept and performs the tests. The customer brings the problem, the coder will solve the problem and the tester will test the implementation is according to the customer or not.
- Exploratory Testing: Here test design and the test execution go together. This type of testing is more focused to test on working software.
- Session-Based Testing: Has similarity with exploratory testing but its main focus is to ensure that software is tested completely and comprehensively.
When do we Use the Agile Model?
Agile model is beneficial in the following scenarios:
- When there are frequent changes and needs to be implemented.
- when the focus are more on developing working software and less on documentation.
- When the planning is not rigid and the business scenarios are volatile.
Advantages and Disadvantages of the Agile Model
Below are the advantages and disadvantages of Agile Process Model:
- A higher level of customer satisfaction is noted since they are involved frequently.
- Testing is in concurrent with development hence better reliance on software is achieved.
- Review and emos make sure the developed software is following the standards.
- Working software developed frequently.
- Changes can be understood and adapted easily.
- late changes are also welcomed.
- More importance on communication as well and teamwork.
- Estimation of effort requirement may go wrong some times as it is little stress on planning.
- The documentation focus is lesser and hence sometimes the possibility of poor documentation.
- The chances of the off-track are more for large projects and where there are frequent changes.
This is a guide to Agile Process Model. Here we discuss the brief overview on Agile Process Model and its different phases along with advantages and disadvantages. You can also go through our other suggested articles to learn more –