Agile is an iterative approach to project management and software development that helps teams deliver value to their customers faster and with fewer headaches. Instead of betting everything on a "big bang" launch, an agile team delivers work in small, but consumable, increments. Requirements, plans, and results are evaluated continuously so teams have a natural mechanism for responding to change quickly.
An agile framework is an umbrella term for
several iterative and incremental software development approaches such as Scrum and kanban etc..
Agile methodology type has its own unique qualities, they
all incorporate elements of iterative development and continuous feedback when
creating an application. Any agile development project involves continuous
planning, continuous testing, continuous integration, and other forms of
continuous development of both the project and the application resulting from
the agile framework
Scrum
Scrum typically involves daily standups and sprints
with sprint planning, sprint reviews, and retrospectives. There are daily
scrums and two- to four-week sprints (putting code into production) with the
goal to create a shippable product after every sprint. Daily stand-up meetings allow team members to share progress.
Scrum teams are usually comprised of a scrum master, a
product owner, and the development team. All must operate in synchronicity to
produce high-quality software products in a fast, efficient, cost-effective way
that pleases the customer.
Agile Testing
Agile Testing is a practice that a QA follows in a dynamic
environment where testing requirements keep changing according to the customer
needs. It is done parallel to the development activity where the testing team
receives frequent small codes from the development team for testing.
When do we use Agile Scrum Methodology
1. When the client is not so clear on requirements.
2. When the client expects quick releases.
3. When the client doesn’t give all the requirements at a time.
Sprint
In Scrum, the project is divided into Sprints. Each
Sprint has a specified timeline (2 weeks to 1 month). This timeline will be
agreed by a Scrum Team during the Sprint Planning Meeting. Here, User Stories
are split into different modules. The end result of every Sprint should be a
potentially shippable product.
Burn-Up and Burn-Down
charts
Burn Down Charts provide proof that the project is on track
or not. Both the burn-up and burn-down charts are graphs used to track the progress
of a project.
Burn-up charts represent how much work has been completed in
a project whereas Burn-down chart represents the remaining work left in a
project.
Types of Burn-Down charts
There are four popularly used burn down charts in Agile.
1. Product burndown chart
2. Sprint burndown chart
3. Release burndown chart
4. Defect burndown chart
Product Burndown Chart- A graph which shows how many Product Backlog Items (User
Stories) implemented/not implemented.
Sprint Burndown Chart - A graph which shows how many Sprints implemented/not
implemented by the Scrum Team.
Release Burndown Chart - A graph which shows List of releases still pending, which
Scrum Team have planned.
Defect Burndown Chart - A graph which shows how many defects identified and fixed.
Roles in Scrum
There are mainly three roles that a Scrum
team have:
Product Owner - Product Owner usually represents
the Client and acts as a point of contact from the Client side. The one who
prioritizes the list of Product Backlogs which Scrum Team should finish and
release.
Scrum Master - Scrum Master acts as a facilitator
to the Scrum Development Team. Clarifies the queries and organizes the team
from distractions and teach the team how to use scrum and also concentrates on
Return on Investment (ROI). Responsible for managing the sprint.
Scrum Development Team - Developer’s, QA’s. Who
develops the product. Scrum development team decides the effort estimation to
complete a Product Backlog Item.
Scrum Team - A cross-functional, self-organizing
group of dedicated people (Group of Product Owner, Business Analyst, Developer’s
and QA’s). Recommended size of a scrum team is 7 plus or minus 2 (i.e, between
5 to 9 members in a team).
Product backlog & Sprint Backlog
Product backlog is maintained by the
project owner which contains every feature and requirement of the product.
Sprint backlog can be treated as subset of product backlog
which contains features and requirements related to that particular sprint
only.
Velocity in Agile
Velocity is a metric that is calculated by
addition of all efforts estimates associated with user stories completed in a
iteration. It predicts how much work Agile can complete in a sprint and how
much time will require to complete a project.
Re-factoring
Modification of the code without changing
its functionality to improve the performance is called re-factoring.
Epic,
User stories & Tasks
User Stories:User Stories defines the
actual business requirement. Generally created by Business owner.
Task: To accomplish the business requirements
development team create tasks.
Epic: A group of related user stories is called
an Epic.
Task board in Agile
Task board is dash board which shows
progress of the project. It contains:
1. User
Story: which has the actual business requirement.
2. To
Do: Tasks that can be worked on.
3. In
Progress: Tasks in progress.
4. To
Verify: Tasks pending for verification or testing
5. Done:
Completed tasks.
Daily Stand-up Meeting
Daily Stand-up Meeting is a daily routine meeting. It brings
everyone up to date on the information and helps the team to stay organized. Each team member reports to the peers the following:
- What
did you complete yesterday?
- Any
impediments in your way?
- What
do you commit to today?
- When
do you think you will be done with that?
In general, it’s not a recorded meeting. Reporting will be
between peers not to Scrum Master or Product Owner. It is normally
timeboxed to a maximum of 15 minutes.