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

Agile Methodology-1

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

AGILE METHODOLOGY

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 is a software development methodology to build a software incrementally using short
iterations of 1 to 4 weeks so that the development process is aligned with the changing business
needs. Instead of a single-pass development of 6 to 18 months where all the requirements and
risks are predicted upfront, Agile adopts a process of frequent feedback where a workable
product is delivered after 1 to 4 week iteration.

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 Waterfall Model


 Agile method proposes  Development of the software flows
incremental and iterative sequentially from start point to end
approach to software design point.
 The agile process is broken into  The design process is not broken into an
individual models that designers individual models
work on
 The customer has early and  The customer can only see the product at
frequent opportunities to look at the end of the project
the product and make decision
and changes to the project
 Agile model is considered  Waterfall model are more secure because
unstructured compared to the they are so plan oriented
waterfall model
 Small projects can be  All sorts of project can be estimated and
implemented very quickly. For completed.
large projects, it is difficult to
estimate the development time.
 Error can be fixed in the middle  Only at the end, the whole product is
of the project. tested. If the requirement error is found
or any changes have to be made, the
project has to start from the beginning
 Development process is iterative,  The development process is phased, and
and the project is executed in the phase is much bigger than iteration.
short (2-4) weeks iterations. Every phase ends with the detailed
Planning is very less. description of the next phase.
 Documentation attends less  Documentation is a top priority and can
priority than software even use for training staff and upgrade
development the software with another team

 Testers and developers work  Testers work separately from developers


together
 At the end of every sprint, user  User acceptance is performed at the end
acceptance is performed of the project.
 It requires close communication  Developer does not involve in
with developers and together requirement and planning process.
analyze requirements and Usually, time delays between tests and
planning coding
The Agile Manifesto is based on twelve principles:

1. Customer satisfaction by early and continuous delivery of valuable software


2. Welcome changing requirements, even in late development
3. Working software is delivered frequently (weeks rather than months)
4. Close, daily cooperation between business people and developers
5. Projects are built around motivated individuals, who should be trusted
6. Face-to-face conversation is the best form of communication (co-location)
7. Working software is the principal measure of progress
8. Sustainable development, able to maintain a constant pace
9. Continuous attention to technical excellence and good design
10. Simplicity—the art of maximizing the amount of work not done—is essential
11. Best architectures, requirements, and designs emerge from self-organizing teams
12. Regularly, the team reflects on how to become more effective, and adjusts accordingly

Agile methods

Software development life-cycle support

Agile methods support a broad range of the software development life cycle.Some focus on the
practices (e.g., XP, pragmatic programming, agile modeling), while some focus on managing the
flow of work (e.g., Scrum, Kanban). Some support activities for requirements specification and
development (e.g., FDD), while some seek to cover the full development life cycle (e.g., DSDM,
RUP).

Popular agile software development frameworks include (but are not limited to):

 Adaptive software development (ASD)


 Agile modeling
 Agile Unified Process (AUP)
 Crystal Clear methods
 Disciplined agile delivery
 Dynamic systems development method (DSDM)
 Extreme programming (XP)
 Feature-driven development (FDD)
 Lean software development
 Kanban
 Rapid application development (RAD)
 Scrum
 Scrumban

Terminologies:

Important SCRUM Terminologies:

1. Scrum Team
Scrum team is a team comprising of 7 with + or – two members. These members are a mixture of
competencies and comprise of developers, testers, data base people, support people etc. along
with the product owner and a scrum master. All these members work together in close
collaboration for a recursive and definite interval, to develop and implement the said features.

2. Sprint
Sprint is a predefined interval or the time frame in which the work has to be completed and make
it ready for review or ready for production deployment. This time box usually lies between 2
weeks to 1 month. In our day to day life when we say that we follow 1 month Sprint cycle, it
simply means that we work for one month on the tasks and make it ready for review by the end
of that month.

3. Product Owner
Product owner is the key stakeholder or the lead user of the application to be developed.

Product owner is the person who represents the customer side. He / she have the final authority
and should always be available for the team. He / she should be reachable in case any one has
any doubts that need clarification. It is important for the product owner to understand and not to
assign any new requirement in the middle of the sprint or when the sprint has already started.

4. Scrum Master
Scrum Master is the facilitator of the scrum team. He / she make sure that the scrum team is
productive and progressive. In case of any impediments, scrum master follows up and resolves
them for the team.

5. User Story
User stories are nothing but the requirements or feature which has to be implemented. In scrum,
we don’t have those huge requirements documents, rather the requirements are defined in a
single paragraph, typically having the format as:
As a <User / type of user>
I want to <Some achievable goal / target>
To achieve <some result or reason of doing the thing>
For example:
As an Admin I want to have a password lock in case user enters incorrect password for
consecutive 3 times to restrict unauthorized access.

There are some characteristics of user stories which should be adhered. The user stories should
be short, realistic, could be estimated, complete, negotiable and testable.

Every user story has an acceptance criterion which should be well defined and understood by the
team. Acceptance criteria details down the user story, provides the supported documents. It helps
to further refine the user story. Anybody from the team can write down the acceptance criteria.
Testing team base their test cases / conditions on these acceptance criteria.

6. Epics
Epics are equivocal user stories or we can say these are the user stories which are not defined and
are kept for future sprints. Just try to relate it with life, imagine you are going for a vacation.
Since you are going next week, you have everything in place like your hotel bookings,
sightseeing, travelers check etc. But what about your vacation plan for next year? You have only
a vague idea that you may go to XYZ place, but you have no detailed plan.

An Epic is just like you next year’s vacation plan, where you just know that you may want to go ,
but where, when, with whom, all these details you have no idea at this point of time.

In a similar way there are features which required to be implemented in future whose details are
not yet known. Mostly feature begins with an Epic and then broken down to stories which could
be implemented.

7. Product Backlog
Product backlog is a kind of bucket or source where all the user stories are kept. This is
maintained by Product owner. Product backlog can be imagined as a wish list of the product
owner who prioritizes it as per business needs. During planning meeting (see next section), one
user story is taken from the product backlog, team does the brainstorming, understands it and
refine it and collectively decides which user stories to take, with the intervention of the product
owner.

8. Sprint Backlog
Based on the priority, user stories are taken from the Product Backlog one at a time. The Scrum
team brainstorms on it, determines the feasibility and decides on the stories to work on a
particular sprint. The collective list of all the user stories which the scrum team works on a
particular sprint is called s Sprint backlog.
9. Story Points:
Story points are quantitative indication of the complexity of a user story. Based on the story
point, estimation and efforts for a story is determined. Story point is relative and is not absolute.
To make sure that our estimate and efforts are correct, it’s important to check that the user stories
are not big. Precise and smaller is the user story, accurate will be the estimation.

Each and every user story is assigned a story point based on the Fibonacci series (1, 2, 3, 5, 8,
13&21). Higher is the number, complex is the story.

To be precise
 If you give 1 / 2 / 3 story point it means the story is small and of low complexity.
 If you give points as 5 / 8, it is a medium complex and
 13 and 21 are highly complex.
Here complexity consists of both development plus testing effort

To decide a story point, brainstorming happens with in the scrum team and the team collectively
decides a story point. It may happen that development team gives a story point of 3 to a
particular story, because for them it may be 3 lines of code change, but testing team gives 8 story
point because they feel this code change will affect larger modules so testing effort would be
larger. Whatever story point you are giving, you have to justify it. So in this situation,
brainstorming happens and the team collectively agrees to one story point.

Whenever you are deciding on a story point, keep the below factors in mind:

 Dependency of the story with other application / module,


 Skill set of the resource
 Complexity of the story
 Historical learning,
 Acceptance criteria of the user story
If you are not aware of a particular story, don’t size it.
If you see that the story point is very high, further decompose it to smaller stories.
10. Burn down chart
Burn down chart is a graph which shows the estimated v/s actual effort of the scrum tasks.

It is a tracking mechanism by which for a particular sprint; day to day tasks are tracked to check
whether the stories are progressing towards the completion of the committed story points or not.

Example: To understand this, check the below figure:

I have assumed:
 2 weeks Sprint ( 10 days)
 2 resources actual working on the sprint.
“Story”-> Column shows the user stories taken for the sprint.
“Task” -> Column shows the list of task associated to the user story.
“Effort” -> Column shows the effort. Now; this measure is the total effort to complete the task. It
does not depict the effort put in by any specific individual.
“Day 1 – Day 10” -> – Column(s) shows the hours which are left to complete the story. Please
see that the hour is NOT the hour which is already done BUT the hours which are still left.
“Estimated Effort” -> is the total of the effort. For the “Start” it is simply the sum of the entire
individual task: SUM (C5: C15)
Total number of effort that has to be completed in 1 day is 70 / 10 = 7. So at the end of day 1, the
effort should reduce to 70 – 7 = 63. In a similar way it is calculated for all the days till day 10,
when estimated effort should be 0 (Row 16)

------------
“Actual Effort Left” -> as the name suggests, is the effort actually left to complete the story. It
may also happen that the actual efforts increases or decreases than the estimated one.
You can use the in build functions and Chart in Excel to create this burn down chart.

Burn Down Chart steps would be:


1. Enter all the stories ( Column A5 – A15)
2. Enter all the Tasks ( Column B5 – B15)
3. Enter the Days ( Day 1 – Day 10 )
4. Enter the starting efforts (Sum the tasks C5 – C15 )
5. Apply formula to calculate the “Estimated Efforts” for each day (Day 1 to Day 10). Enter
the formula at D15 (C16-$C$16/10) and drag it for all the days.
6. For each day, enter the actual efforts. Enter the formula at D17 (SUM (D5:D15)) for
summing up the actual efforts left, and drag it for all the other days.
7. Select it and create the chart as follows:

11. Velocity
Total number of story point which a scrum team archives in a sprint, is called Velocity. The
Scrum team is judged or referenced by its velocity. Having said that, it should be kept in mind
that the objective here is NOT achieving the maximum story points, but to have quality
deliverable, respecting scrum team’s comfort level.

For example: For a particular sprint: total number of user stories are 8 having story points as

So here the velocity will be the sum of the story points = 30

12. Definition of Done:


A story is DONE in Scrum, only when it is development and QA complete and the feature is
eligible to be shipped to production.
Acceptance Criteria
It is the conditions set by the product owner or the customer in order to accept a feature to be
valid and adhering to their requirements.

Feature
An improvement done to a product or capability of value to stakeholder which can be developed
in a release.

Iteration
A theme-based work item that can be completed within a time box and accepted within the
release of a product. Iteration work is defined during iteration planning and it finishes with
demo and review meeting. It is also termed as Sprint.

Increment
An increment is the changing state of a product as it undergoes gradual development. It is
normally represented by milestones or number of fixed iterations.

Product Backlog
Set of functional and non-functional product requirements.

Product Backlog Items


May be user stories, defects, features which are to be developed by the agile team.

Task
It is a unit of work that contributes towards the completion of a user story within an iteration.
User stories are decomposed into multiple tasks and each task can be divided between team
members marking them as owner of the tasks. Team members can take responsibility of each
task, update estimates, log work done or to-do as desired.

User Story
A listed acceptance criteria to fulfil certain requirements of a user. It is normally written from
the perspective of an end-user.

Velocity
A measure to weight the accepted work in an iteration or timebox. Normally it is the sum of
story points accepted in an iteration.

Activities done in SCRUM Methodology:

#1: Planning meeting


Planning meeting is the starting point of SCRUM. It is the meeting where the entire scrum team
gather, the product owner selects a user story based on the priority from the product back log and
the team brain storms on it. Based on the discussion, the scrum team decides the complexity of
the story and sizes it as per the Fibonacci series. Team identifies the tasks along with the efforts
(in hours) which would be done to complete the implementation the user story.

Many a time planning meeting is preceded by a “Pre-Planning meeting”. It’s just like a home
work which the scrum team does before they sit for the formal planning meet. Team tries to write
down the dependencies or other factors which they would like to discuss in the planning meet.

#2: Execution of sprint tasks


As the name suggests, these are the actual work done by the scrum team to accomplish their task
and take the user story into the “Done” state.

#3: Daily scrum meeting (call)


During the sprint cycle, every day the scrum team meets for, not more than 15 minutes (could be
a stand up call, recommended to have during the beginning of the day) and state 3 points:

1. What did the team member did yesterday


2. What did the team member plan to do today
3. Any impediments (roadblocks)
It is the Scrum master who facilitates this meeting. In case, any team member is facing any kind
of difficulties, the scrum master follows up to get it resolved.

#4: Review meeting


At the end of every sprint cycle, the SCRUM team meets again and demonstrates implemented
user stories to the product owner. The product owner may cross verify the stories as per its
acceptance criteria. It’s again the responsibility of the Scrum master to preside over this meeting.

#5: Retrospective meeting


Retrospective meeting happens after the review meeting. The SCRUM team meets and discusses
& document the following points:

1. What went well during the Sprint (Best practices)


2. What did not went well in the Sprint
3. Lessons learnt
4. Action Items.
The Scrum team should continue to follow the best practice, ignore the “not best practices” and
implement the lessons learnt during the consequent sprints. The retrospective meeting helps to
implement the continuous improvement of the SCRUM process.

How the Process is done? An example!


Having read about the technical jargons of SCRUM; let me try to demonstrate the whole process
with an example.
Step #1: Let’s have a SCRUM team of 9 people comprising of 1 product owner, 1 Scrum master,
2 testers, 4 developers and 1 DBA.
Step #2: The Sprint is decided to follow 4 weeks cycle. So we have 1 month Sprint starting
5th June to 4th of July.
Step #3: The Product owner has the prioritized list of user stories in the product backlog.
Step #4: The team decides to meet on 4th June for the “Pre Planning” meeting.
 The product owner takes 1 story from the product backlog, describes it and leaves it to
the team to brainstorm on it.
 The entire team discusses and communicates directly to the product owner to have clear
understood of the user story.
 In a similar way various other user stories are taken. If possible team can go ahead and
size the stories as well.
After all the discussion, Individual team member go back to their work stations and

 Identify their individual tasks for each story.


 Calculate the exact number of hours on which they will be working. How the member
concludes these hours; let’s check that
Total number of working hours = 9
Minus 1 hour for break, minus 1 hour for meetings, minus 1 hour for mails, discussions,
troubleshooting etc.
So the actual working hours = 6
Total number of working days during the Sprint = 21 days.
Total number of hours available = 21*6 = 126
The member is on leave for 2 days = 12 hours (This varies for each member, some may take
leave and some may not.)
Number of actual hours = 126 – 12 = 114 hours.
This means that the member will actually available for 114 hours for this sprint. So he will break
down his individual sprint task in such a way that total of 114 hours is reached.

Step #5: On 5th of June the entire Scrum team meets for the “Planning Meeting”.
 Final verdict of the user story from the product backlog is done and the story is moved to
the Sprint back log.
 For each story, each team member declares their identified tasks, if required can have a
discussion on those tasks, can size or resize it (remember the Fibonacci series!!).
 The Scrum master or the team enter their individual tasks along with their hours for each
story in a tool.
 After all the stories are completed, Scrum master notes the initial Velocity and formally
starts the Sprint.
Step #6: Once the Sprint has started, based on the tasks assigned, each team member starts
working on those tasks.
Step #7: The team meets daily for 15 minutes and discusses 3 things:
 What did they do yesterday?
 What they plan to do today
 Any impediments (roadblocks)?
Step #8: The scrum master tracks the progress on daily basis with the help of “Burn down chart”
Step #9: In case of any impediments, the Scrum master follows up to resolve those.
Step #10: On 4th July, the team meets again for the review meeting. A member demonstrates the
implemented user story to the product owner.
Step #11: On 5th July, Team meets again for the Retrospective, where they discuss
 What went well?
 What did not went well
 Action Items.
Step #12: On 6th July, Team again meets for the pre-planning meeting for the next sprint and the
cycle continues.

Tools that can be used for SCRUM activities:


There are many tools available which can be used extensively for tracking the scrum activities.
Some of them include:

 Jira
 XPlanner
 VersionOne
 Sprintometer
 ScrumNinja

You might also like