Categories

2 Answers

Sep 1, 2019
Agile Methodology & Model: Guide for Software Development & Testing

What is Agile Methodology?

AGILE methodology is a practice that promotes continuous iteration of development and testing throughout the software development lifecycle of the project. Both development and testing activities are concurrent unlike the Waterfall model

Agile Model & Methodology: Guide for Developers and Testers

The agile software development emphasizes on four core values.

Individual and team interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

In this Software Engineering tutorial, you will learn

What is Agile Methodology?

Agile Vs Waterfall Method

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 Vs Waterfall Method

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

Agile method proposes incremental and iterative approach to software design

The agile process is broken into individual models that designers work on

The customer has early and frequent opportunities to look at the product and make decision and changes to the project

Agile model is considered unstructured compared to the waterfall model

Small projects can be implemented very quickly. For large projects, it is difficult to estimate the development time.

Error can be fixed in the middle of the project.

Development process is iterative, and the project is executed in short (2-4) weeks iterations. Planning is very less.

Documentation attends less priority than software development

Every iteration has its own testing phase. It allows implementing regression testing every time new functions or logic are released.

In agile testing when an iteration end, shippable features of the product is delivered to the customer. New features are usable right after shipment. It is useful when you have good contact with customers.

Testers and developers work together

At the end of every sprint, user acceptance is performed

It requires close communication with developers and together analyze requirements and planning

Waterfall Model

Development of the software flows sequentially from start point to end point.

The design process is not broken into an individual models

The customer can only see the product at the end of the project

Waterfall model are more secure because they are so plan oriented

All sorts of project can be estimated and completed.

Only at the end, the whole product is tested. If the requirement error is found or any changes have to be made, the project has to start from the beginning

The development process is phased, and the phase is much bigger than iteration. Every phase ends with the detailed description of the next phase.

Documentation is a top priority and can even use for training staff and upgrade the software with another team

Only after the development phase, the testing phase is executed because separate parts are not fully functional.

All features developed are delivered at once after the long implementation phase.

Testers work separately from developers

User acceptance is performed at the end of the project.

Developer does not involve in requirement and planning process. Usually, time delays between tests and coding

There are various 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). It consists of three roles, and their responsibilities are explained as follows:

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:

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.

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

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

Cyclic delivery: The main development phase consists of two or more delivery cycles, during which the

Team updates and refines the release plan

Implements a subset of the requirements through one or more program test integrate iterations

Integrated product is delivered to real users

Review of the project plan and adopted development methodology

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

Time Boxing

MoSCoW Rules

Prototyping

The DSDM project consists of 7 phases

Pre-project

Feasibility Study

Business Study

Functional Model Iteration

Design and build Iteration

Implementation

Post-project

Feature Driven Development (FDD)

This method is focused around "designing & building" features. Unlike other agile methods, 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

Domain object Modeling

Development by feature

Component/ Class Ownership

Feature Teams

Inspections

Configuration Management

Regular Builds

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.

Eliminating Waste

Amplifying learning

Defer commitment (deciding as late as possible)

Early delivery

Empowering the team

Building Integrity

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 testing.

Scrum Vs Kanban

Scrum

Kanban

In scrum technique, test must be broken down so that they can be completed within one sprint

No particular item size is prescribed

Prescribes a prioritized product backlog

Prioritization is optional

Scrum team commits to a particular amount of work for the iteration

Commitment is optional

Burndown chart is prescribed

No particular item size is prescribed

Between each sprint, a scrum board is reset

A Kanban board is persistent. It limits the number of items in workflow state

It cannot add items to ongoing iteration

It can add items whenever capacity is available

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
Click here to read more about Agile
Click here to read more about Insurance

Related questions

Madanswer
Sep 1, 2019 in Agile
Sep 1, 2019 in Agile
Sep 18, 2019 in Agile
...