Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Agile Methodology

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 14

What is Agile Methodology?

Agile Methodology meaning a practice that promotes continuous iteration of development and


testing throughout the software development lifecycle of the project. In the Agile model in
software testing, both development and testing activities are concurrent, unlike the Waterfall
model.

Agile Methodology

What is Agile Software Development?


The Agile software development methodology is one of the simplest and effective processes to
turn a vision for a business need into software solutions. Agile is a term used to describe
software development approaches that employ continual planning, learning, improvement, team
collaboration, evolutionary development, and early delivery. It encourages flexible responses to
change.

The agile software development emphasizes on four core values.


1. Individual and team interactions over processes and tools
2. Working software over comprehensive documentation
3. Customer collaboration over contract negotiation
4. Responding to change over following a plan
In this Agile project management tutorial, you will learn-
 What is Agile Methodology?
 Agile Model Vs Waterfall Model
 Scrum
 Product Backlog
 Scrum Practices
 Process flow of Scrum Methodologies:
 Extreme Programming (XP)
 Phases of eXtreme programming:
 Crystal Methodologies
 Dynamic Software Development Method (DSDM)
 Feature Driven Development (FDD)
 Lean Software Development
 Kanban
 Agile metrics
Agile Model Vs Waterfall Model
Agile and Waterfall model are two different methods for software development process. Though
they are different in their approach, both methods are useful at times, depending on the
requirement and the type of the project.
Agile Model Waterfall Model
 Agile methodology definition: Agile methodologies propose  Waterfall Model: Development of th
incremental and iterative approach to software design flows sequentially from start point t
 The Agile process in software engineering is broken into  The design process is not broken int
individual models that designers work on individual models
 The customer has early and frequent opportunities to look at  The customer can only see the produ
the product and make decision and changes to the project of the project
 Agile model is considered unstructured compared to the  Waterfall model are more secure be
waterfall model are so plan oriented
 Small projects can be implemented very quickly. For large  All sorts of project can be estimated
projects, it is difficult to estimate the development time. completed.
 Only at the end, the whole product i
the requirement error is found or any
 Error can be fixed in the middle of the project.
have to be made, the project has to s
beginning
 The development process is phased,
 Development process is iterative, and the project is executed phase is much bigger than iteration.
in short (2-4) weeks iterations. Planning is very less. ends with the detailed description of
phase.
 Documentation is a top priority and
 Documentation attends less priority than software
for training staff and upgrade the so
development
another team
 Every iteration has its own testing phase. It allows  Only after the development phase, th
implementing regression testing every time new functions or phase is executed because separate p
logic are released. fully functional.
 In agile testing when an iteration end, shippable features of
the product is delivered to the customer. New features are  All features developed are delivered
usable right after shipment. It is useful when you have good the long implementation phase.
contact with customers.
 Testers and developers work together  Testers work separately from develo
 User acceptance is performed at the
 At the end of every sprint, user acceptance is performed
project.
 Developer does not involve in requi
 It requires close communication with developers and
planning process. Usually, time dela
together analyze requirements and planning
tests and coding
Agile Process
Check the below Agile methodology process to deliver successful systems quickly.

Agile Process Model


There are various Agile methods present in agile testing, and those are listed below:

Scrum
SCRUM is an agile development method which concentrates specifically on how to manage
tasks within a team-based development environment. Basically, Scrum is derived from activity
that occurs during a rugby match. Scrum believes in empowering the development team and
advocates working in small teams (say- 7 to 9 members). Agile and Scrum consist of three roles,
and their responsibilities are explained as follows:
Scrum Method
 Scrum Master
 Master is responsible for setting up the team, sprint meeting and removes
obstacles to progress
 Product owner
 The Product Owner creates product backlog, prioritizes the backlog and is
responsible for the delivery of the functionality at each iteration
 Scrum Team
 Team manages its own work and organizes the work to complete the sprint or
cycle

Product Backlog
This is a repository where requirements are tracked with details on the no of requirements(user
stories) to be completed for each release. It should be maintained and prioritized by Product
Owner, and it should be distributed to the scrum team. Team can also request for a new
requirement addition or modification or deletion

Scrum Practices
Practices are described in detailed:

Scrum Practices

Process flow of Scrum Methodologies:


Process flow of scrum testing is as follows:
 Each iteration of a scrum is known as Sprint
 Product backlog is a list where all details are entered to get the end-product
 During each Sprint, top user stories of Product backlog are selected and turned into Sprint
backlog
 Team works on the defined sprint backlog
 Team checks for the daily work
 At the end of the sprint, team delivers product functionality

Extreme Programming (XP)


Extreme Programming technique is very helpful when there is constantly changing demands or
requirements from the customers or when they are not sure about the functionality of the system.
It advocates frequent “releases” of the product in short development cycles, which inherently
improves the productivity of the system and also introduces a checkpoint where any customer
requirements can be easily implemented. The XP develops software keeping customer in the
target.

Extreme Programming
Business requirements are gathered in terms of stories. All those stories are stored in a place
called the parking lot.
In this type of methodology, releases are based on the shorter cycles called Iterations with span
of 14 days time period. Each iteration includes phases like coding, unit testing and system testing
where at each phase some minor or major functionality will be built in the application.

Phases of eXtreme programming:


There are 6 phases available in Agile XP method, and those are explained as follows:
Planning
 Identification of stakeholders and sponsors
 Infrastructure Requirements
 Security related information and gathering
 Service Level Agreements and its conditions
Analysis
 Capturing of Stories in Parking lot
 Prioritize stories in Parking lot
 Scrubbing of stories for estimation
 Define Iteration SPAN(Time)
 Resource planning for both Development and QA teams
Design
 Break down of tasks
 Test Scenario preparation for each task
 Regression Automation Framework
Execution
 Coding
 Unit Testing
 Execution of Manual test scenarios
 Defect Report generation
 Conversion of Manual to Automation regression test cases
 Mid Iteration review
 End of Iteration review
Wrapping
 Small Releases
 Regression Testing
 Demos and reviews
 Develop new stories based on the need
 Process Improvements based on end of iteration review comments
Closure
 Pilot Launch
 Training
 Production Launch
 SLA Guarantee assurance
 Review SOA strategy
 Production Support
There are two storyboards available to track the work on a daily basis, and those are listed below
for reference.
 Story Cardboard
 This is a traditional way of collecting all the stories in a board in the form of stick
notes to track daily XP activities. As this manual activity involves more effort and
time, it is better to switch to an online form.
 Online Storyboard
 Online tool Storyboard can be used to store the stories. Several teams can use
it for different purposes.

Crystal Methodologies
Crystal Methodology is based on three concepts
1. Chartering: Various activities involved in this phase are creating a development team,
performing a preliminary feasibility analysis, developing an initial plan and fine-tuning
the development methodology
2. Cyclic delivery: The main development phase consists of two or more delivery cycles,
during which the
1. Team updates and refines the release plan
2. Implements a subset of the requirements through one or more program test
integrate iterations
3. Integrated product is delivered to real users
4. Review of the project plan and adopted development methodology
3. Wrap Up: The activities performed in this phase are deployment into the user
environment, post- deployment reviews and reflections are performed.

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 the users
are required to be involved actively, and the teams are given the power to make decisions.
Frequent delivery of product becomes the active focus with DSDM. The techniques used in
DSDM are
1. Time Boxing
2. MoSCoW Rules
3. Prototyping
The DSDM project consists of 7 phases
1. Pre-project
2. Feasibility Study
3. Business Study
4. Functional Model Iteration
5. Design and build Iteration
6. Implementation
7. Post-project

Feature Driven Development (FDD)


This method is focused around “designing & building” features. Unlike other Agile methods in
software engineering, FDD describes very specific and short phases of work that has to be
accomplished separately per feature. It includes domain walkthrough, design inspection, promote
to build, code inspection and design. FDD develops product keeping following things in the
target
1. Domain object Modeling
2. Development by feature
3. Component/ Class Ownership
4. Feature Teams
5. Inspections
6. Configuration Management
7. Regular Builds
8. Visibility of progress and results

Lean Software Development


Lean software development method is based on the principle “Just in time production”. It aims at
increasing speed of software development and decreasing cost. Lean development can be
summarized in seven steps.
1. Eliminating Waste
2. Amplifying learning
3. Defer commitment (deciding as late as possible)
4. Early delivery
5. Empowering the team
6. Building Integrity
7. Optimize the whole

Kanban
Kanban originally emerged from Japanese word that means, a card containing all the information
needed to be done on the product at each stage along its path to completion. This framework or
method is quite adopted in software testing method especially in Agile concepts.

Scrum Vs Kanban
Scrum Kanban
 In scrum technique, test must be broken down so that they
 No particular item size is prescribed
can be completed within one sprint
 Prescribes a prioritized product backlog  Prioritization is optional
 Scrum team commits to a particular amount of work for the
 Commitment is optional
iteration
 Burndown chart is prescribed  No particular item size is prescribed
 A Kanban board is persistent. It limit
 Between each sprint, a scrum board is reset
of items in workflow state
 It cannot add items to ongoing iteration  It can add items whenever capacity is
 WIP limited indirectly  WIP limited directly
 Timeboxed iterations prescribed  Timeboxed iterations optional

Agile metrics:
Metrics that can be collected for effective usage of Agile is:
 Drag Factor
 Effort in hours which do not contribute to sprint goal
 Drag factor can be improved by reducing number of shared resources, reducing
the amount of non-contributing work
 New estimates can be increased by percentage of drag factor -New estimate =
(Old estimate+drag factor)
 Velocity
 Amount of backlog(user stories) converted to shippable functionality of sprint
 No of Unit Tests added
 Time interval taken to complete daily build
 Bugs detected in an iteration or in previous iterations
 Production defect leakage
 ========================

What is Agile?

Agile is a collection of principles used in software development and project


management. Agile focuses on enabling teams to deliver work in small, workable
increments, thus delivering value to their customers with ease. Evaluation of the
requirements, plans, and results take place continuously. This helps the team in
responding to changes in a quick manner. 

The major principles of Agile are detailed in the Agile manifesto. Created in early 2001,
the Agile manifesto details the different values and principles that embody the process.
The manifesto states: 
Individuals and Interactions OVER Process and Tools

Working Products OVER Comprehensive Documentation

Customer Collaboration OVER Contract Negotiation

Responding to Changes OVER Following a Plan

Next, let’s have a look at different Agile methodologies.

Agile Model
The meaning of Agile is swift or versatile."Agile process model" refers to a software
development approach based on iterative development. Agile methods break tasks into
smaller iterations, or parts do not directly involve long term planning. The project scope
and requirements are laid down at the beginning of the development process. Plans
regarding the number of iterations, the duration and the scope of each iteration are
clearly defined in advance.
Each iteration is considered as a short time "frame" in the Agile process model, which
typically lasts from one to four weeks. The division of the entire project into smaller
parts helps to minimize the project risk and to reduce the overall project delivery time
requirements. Each iteration involves a team working through a full software
development life cycle including planning, requirements analysis, design, coding, and
testing before a working product is demonstrated to the client.

Phases of Agile Model:


Following are the phases in the Agile model are as follows:
1. Requirements gathering
2. Design the requirements
3. Construction/ iteration
4. Testing/ Quality assurance
5. Deployment
6. Feedback
1. Requirements gathering: In this phase, you must define the requirements. You
should explain business opportunities and plan the time and effort needed to build the
project. Based on this information, you can evaluate technical and economic feasibility.
2. Design the requirements: When you have identified the project, work with
stakeholders to define requirements. You can use the user flow diagram or the high-
level UML diagram to show the work of new features and show how it will apply to your
existing system.
3. Construction/ iteration: When the team defines the requirements, the work begins.
Designers and developers start working on their project, which aims to deploy a working
product. The product will undergo various stages of improvement, so it includes simple,
minimal functionality.
4. Testing: In this phase, the Quality Assurance team examines the product's
performance and looks for the bug.
5. Deployment: In this phase, the team issues a product for the user's work
environment.
6. Feedback: After releasing the product, the last step is feedback. In this, the team
receives feedback about the product and works through the feedback.
Agile Testing Methods:
o Scrum
o Crystal
o Dynamic Software Development Method(DSDM)
o Feature Driven Development(FDD)
o Lean Software Development
o eXtreme Programming(XP)
Scrum
SCRUM is an agile development process focused primarily on ways to manage tasks in
team-based development conditions.
There are three roles in it, and their responsibilities are:
o Scrum Master: The scrum can set up the master team, arrange the meeting and
remove obstacles for the process
o Product owner: The product owner makes the product backlog, prioritizes the
delay and is responsible for the distribution of functionality on each repetition.
o Scrum Team: The team manages its work and organizes the work to complete
the sprint or cycle.
eXtreme Programming(XP)
This type of methodology is used when customers are constantly changing demands or
requirements, or when they are not sure about the system's performance.
Crystal:
There are three concepts of this method-
1. Chartering: Multi activities are involved in this phase such as making a
development team, performing feasibility analysis, developing plans, etc.
2. Cyclic delivery: under this, two more cycles consist, these are:
o Team updates the release plan.
o Integrated product delivers to the users.
3. Wrap up: According to the user environment, this phase performs deployment,
post-deployment.
Dynamic Software Development Method(DSDM):
DSDM is a rapid application development strategy for software development and gives
an agile project distribution structure. The essential features of DSDM are that users
must be actively connected, and teams have been given the right to make decisions. The
techniques used in DSDM are:
1. Time Boxing
2. MoSCoW Rules
3. Prototyping
The DSDM project contains seven stages:
1. Pre-project
2. Feasibility Study
3. Business Study
4. Functional Model Iteration
5. Design and build Iteration
6. Implementation
7. Post-project
Feature Driven Development(FDD):
This method focuses on "Designing and Building" features. In contrast to other smart
methods, FDD describes the small steps of the work that should be obtained separately
per function.
Lean Software Development:
Lean software development methodology follows the principle "just in time production."
The lean method indicates the increasing speed of software development and reducing
costs. Lean development can be summarized in seven phases.
1. Eliminating Waste
2. Amplifying learning
3. Defer commitment (deciding as late as possible)
4. Early delivery
5. Empowering the team
6. Building Integrity
7. Optimize the whole
When to use the Agile Model?
o When frequent changes are required.
o When a highly qualified and experienced team is available.
o When a customer is ready to have a meeting with a software team all the time.
o When project size is small.
Advantage(Pros) of Agile Method:
1. Frequent Delivery
2. Face-to-Face Communication with clients.
3. Efficient design and fulfils the business requirement.
4. Anytime changes are acceptable.
5. It reduces total development time.
Disadvantages(Cons) of Agile Model:
1. Due to the shortage of formal documents, it creates confusion and crucial
decisions taken throughout various phases can be misinterpreted at any time by
different team members.
2. Due to the lack of proper documentation, once the project completes and the
developers allotted to another project, maintenance of the finished project can
become a difficulty.

You might also like