MainMenu

Home Java Overview Maven Tutorials

Agile Methodology with example

Agile Methodologies

The word agile is derived from agile manifesto, where a small group of people get together to discuss their feeling & strategy to enhance Software development process.
As Name says Agile means fast so we need this when requirement are not freezed in initial state and there is a lot of chances to change in requirement.
Basically Agile is nothing but a combination of iterative and incremental process.
In agile we break the project in small crunches of builds and these crunches are known as Sprint and the size on sprint depends on difficulty level that build.
Generally a sprint have Life from 2 weeks to 3 weeks and each sprint cover various areas like Planning, requirement analysis, design coding, unit testing and acceptance testing etc.
Main Benefit of agile is we get Customer Sanctification more and every engineer individually have a clear task.

Agile Process of every sprint

Team Build Up : A dedicated team of Engineers will be buildup with scrum master.
Daily Stand up meeting : Here a daily short meeting will be done with Three points :
1.) What have done yet.
2.) What will be done today.
3.) What are the obstacles.
Less documentation :In agile very less documentation is required.
Rapid development & testing: Here rapid development and testing required so build can be delivered frequently
Client Feedback: Client feedback observed if client is satisfied then work on next sprint if not then update the build as per new requirement.


Key points in Agile :


1.) Only active Engineers are involved in the project.
2.) Engineers must be able to take suitable decision should be able to work individually and seprately.
3.) A optimize Estimation of requirement with time.
4.) Develop small, incremental release and iterate.
5.) Highly focus on frequent delivery and client feedback.
6.) Testing is integrated from one phase to another.
7.) After every sprint a review cycle is done to improve next sprint process more.

Main Phases of Agile are :-
Plan
Implement
Test
Review


Agile Manifesto :-
We are uncovering better ways of developing software by doing it and helping others do it.

Parts of Agile Manifesto :-
individuals and interactions
Less Comprehensive documentation
Working software over heavy documents
Customer Collaboration over contract negotiation
Accepting & responding to change.

Principals of Agile :-
1).Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

2).Welcome Changing requirements, even late in development. Agile Processes harness changes for the customer's competitives advantage.

3).Delivery working software frequently from a couple of weeks to a couple of months, with preference to the shorter timescale.

4).Business people and developers must work daily throughout the project.

5).Build Project around motivated individuals. Give them the environment and support they need and trust them to get the job done.

6).The most efficient and effective method of conveying information to and within a the development team is face to face conversation.

7).Working software is the primary measure of Progress.

8).Agile process promote sustainable development. The sponsors, developers and users should be able to maintain a contant pace indefinitely.

9).Cintinuous attenyion to technical excellenece and good design enhances agility.

10).Simplicity - the art of maximizing the amount of work not done - is essential.

11).The best architechtures, requirements and design emerge from self-organizing team. 12).At regular intervals the team reflects on how to become more effective the tumes and adjusts its behaviuor accordingly.

Benefits of Agile :-

Transparency
Predictable costs and schedule
Allows the change
improve quality

Practices of Agile :- Daily Standup
Sprints
Splitting user stories
Pair Programming
Test Driven Development


Agile Frameworks :- Scrum
Lean
Kanban

----------------------------------------------------------------------------------

Scrum in agile :


Scrup is a part of Agile, it is light weight process framework and most widely used.
Scrum enable engineers in real time decision making based on actual events and information.

Scrum have three terms :
1).Scrum Master : Scrum master is responsible to build an engineers team, schedule sprint meetings and find out the solution of Obstacle
2).Product Owner :Product owner is responsible to create backlog and he will give priority of that backlog based on his requirement and responsible to provide sign-off for each sprint.
3).Scrum Team : Team has individual task and complete the assigned task.

A scrum involves : 1.) Initially appointment of a project manager called the Scrum Master 2.) Clear & suitable partition of task that need to be done
3.) A separate planning for each task.
4.) Daily stand up meeting
5.) Raise the issue/obstacle on frequent bases.
6.) Execution of project in brief, high- intensity and frequent work sessions.
7.) Continuous review of project progress.

An agile scrum process benefits the organization by helping :
1.) It improved the quality because at every stage client is involved.
2.) Changes are accepted frequently so client expected changes can be done easily.
3.) It provide better estimation with less time.
4.) Project remains under control in complete development life cycle.
Tips : Generally in Scrum process there is no tester directly involved.

Example of agile :

Suppose a client name Tina has a Toy shop and she want a website to sell her toys online
but he don't know about it much more means not clear about requirement.
Tina contact to Mr Ben who is a software Engineer, Mr. ben will build a team of software engineer and in first sprint mr. ben delivered a template of website
Tina is Ok with that website after that in second sprint Mr. ben delivered a online website but it is not completed yet.
Now tina can add her toys to sell them online and after every sprint a new feature will be added with the website like discount, offer, return policy etc.
and as the sprint will passes the web site will be near to complete.
finally tina's website will get completed and she will give Sign-off documents(closure document) to ben and will continue with her website.

Difference between Agile and SDLC

Sr No.AgileSDLC
1.Requirements are highly variable and changes are accepted on frequent basisRequirements are freezed in initial phases
2.Highly Client involvement Less client involvement
3.Follow the adaptive approach where no much planning requiredHigh level of planning is required
4.Testing is done frequently and integrated testing is requiredTesting is done in testing phase only
5.It follows the increment and iterative approachIt follows the sequential approach
6.In agile process are divided into small sprintsUsually process are not divided
7.Less documentation requiredHigh documentation is required
8.User acceptance is required at the end of every sprintUser acceptance is performed at the end of project

Scrum :- Scrum is a simple framework for effective team collaboration on complex products. It goes on to say that Scrum is not a methodology because it is flexible, but that you are not doing Scrum if you modify it in anyway.

Scrum have five Elements :-
1).The Sprint
2).Sprint Planning
3).Daily Scrum
4).Sprint Review
5).Sprint Retrospective

Artifacts of Scrum :-
Product Backlog
Sprint Backlog
Increment

A Scrum Includes :-
Product Backlogs
Team roles
Sprint
Burndown Chart

In scrum, features are written from the perspective of the end-user therefore, features are known as user-stories.
The Collection of these user-stories is called the Product Backlog.



Product owner :- Product owner helps to make sure the right features make it into the product backlog representing the users and customers of the product basically he helps to set the direction of the product.

Scrum Master :- His job is to make sure the project is progressing smoothly and that every member of the team has the tools they need to get their job done. He sets up meetings, monitors the work being done and facilitates release planning also he is lot like a project manager, but that's such a boring title.

The rest of the team has similar roles to other development processes, developer build the product & QA (Tester) will test the product and customer use it and hopefully pay for it.

Release Planning :- To plan a release the team starts with this the product backlog and they identify the user-stories they want to put into this release.
These user-stories then become part of the release backlog.
The team then prioritizes the user-stories and estimates the amount of work involved for each item.
Sometimes larger user-stories are broken down into smaller more manageable chunks.
The collection of all the estimates provided a rough idea of the total amount of work involved to complete the entire release.

Estimates :- There are a lot of techniques for creating good estimates.Some prefer estimating in story points where estimates are made relative to building a small component with a known level of difficulty.
Unfortunately, story points don't answer the question of "When will my project ship?" The best technique is to estimate work in hours, but to use some standard in how estimates are done.
For example, things that takes less than a day to complete will be estimated as 1 hours, 2 hours, 4 hours or 8 hours.
Every item will fall into one of those hour buckets.
Larger items will be estimated as 2 days, 3 days, 5 days or 10 days.
Extremely large items are similarly estimated in months : 1,2,3 4 or 6 months, but the reality is that such items will need to be broken down substantially before work actually begins.

Sprint :- Sprints are short duration milestones that allow team to tackle a manageable chunk of the project. and get it to a ship-ready state.
Sprint generally range from a couple of days to as much as 30 days in length depending on the product's release cycles.


The shorter the release cycles, the shorter each sprint should be.
We can also take out release backlog and split it up into several of these Sprint backlog.
One of the most important things to remember about sprints is that the goal of each sprint is to get a subset of the release backlog to a ship- ready state.
So, at the eand of each sprint, you should have a fully tested product with all the features of the sprint 100% complete.

Brundown Chart :- The burndown chart is the number one reason for scrum's popularity and one of the best project visibility tools to ensure a project is progressing smoothly.
The burn down chart provided a day-by-day measure of the amount of work that remains in a given sprint or release.
Using the burndown chart, the team can quickly calculate this :
The slope of the graph, which is also called the burndown velocity.
This is the average rate of productivity for each day.
The burn down chart provides empirical proof that the project is on track or if it's going to be late.


So let's talk a little about where the data for this incredibly useful burndown chart comes from, As you recall, part of the release planning process was to create an estimate for each user-story in the release backlog.
The collection of these eastimate for a given sprint represents the total amount of work that must be done to complete that sprint.
As each team member goes through and makes progress on one or more of the user-stories, they simply update the amount of time remaining for each of their own items. So, the total amount of time remaining on the group of user-stories that make up a sprint, changes on a day-by-day basis, hopefully going downwards until it hits zero when the sprint is complete.
The burndown chart aggregates the remaining work data and shows it visually. It's brilliant because it communicates a massive amount of information in just a few seconds.

Daily Scrum (15 minutes) :- The daily scrum is an essential tool to having communication flow freely between team members. The idea is to have fast paced stand-up meetings where team members quickly list the work they completed since the last meeting, and any obstacles in thrie way. by meeting daily, it ensures the team is always in-sync, and any major issues are dealt with as soon as they are known.

Sprint Retrospective Meeting :- Where the team can reflect on what went right and areas on improvement. After all, Scrum is a flexible agile development method that needs contant improving and tweaking for every team.

Tool Example:- axosoft.com

<------------------------ Interview Questions -------------------->



Question :- Major disadvantage of Agile?
Answer :- 5 Key Disadvantages of Agile Methodology are :-
Poor resource planning. ...
Limited documentation. ...
Fragmented output. ...
No finite end. ...
Difficult measurement.


Question :- What are the different types of Agile Methodologies?
An agile interview question and answers guide will not complete without this question. There are several types of agile development methodology. Scrum is one of the most popular and widely used agile methods.
Other types of agile development methodology are;
development like Crystal Methodology,
DSDM(Dynamic Software Development Method),
Feature-driven development(FDD),
Lean software development and
Extreme Programming(XP).

What are burndown and burn-up charts in agile methodology?

Answer :-
To track the progress of an ongoing project, these charts are used. Burn-up charts indicate the work that has been completed while Burn-down chart shows the amount of remaining work in a project.

Can you explain pair programming and its benefits?

Answer :-
The combined effort in the team where one programmer writes the code and the other one reviews it is called pair programming. There are several benefits of pair programming, it not only improves the quality of code but also facilitates the knowledge transfer.

Mention the principles of Agile testing.

Answer :-
The principles of Agile testing are:
Continuous testing – This ensures the continuous progress of the product. An interesting aspect of the Agile testing process is that unlike the traditional methodologies where only the testing team is focused on product testing, it requires the entire team to participate equally in the testing process.
Continuous feedback – With every test, the client feedback is encouraged to ensure that the product meets the business requirements of the client.
Simple and clean code – Whatever errors and defects arise during the testing phase are fixed within the same iteration by the Agile team. This allows for simple, concise, and clean code.
Less documentation – Agile teams use a reusable checklist. Here, they are more focused on the testing process rather than the incidental details.

Explain the role of the Scrum Master.

Answer :-
The Scrum Master is the leader and supervisor of the Scrum team. The main job of the Scrum Master is to ensure that the team abides by the Agile values and principles and follows the agreed-upon processes and practices. Some of the most crucial responsibilities of the Scrum Master are:

1).To eliminate all the obstacles that could hamper the productivity of the Scrum team.

2).To establish a productive and collaborative work environment for the Scrum team.

3).To protect the team from the interruptions and distractions of the outside world.

4).To maintain a good relationship between the team, clients, and all the other stakeholders involved in a project.

5).To supervise the operations of the Scrum team and motivating them as and when needed.

Do you know what is the scrum of scrums?

Answer :-
The term “Scrum of Scrums” is used when there are multiple teams involved in a project. It refers to the scaling of the daily Scrum meeting. In this scenario, each team is responsible for conducting and leading its separate scrum meeting. However, to maintain coordination and communication among all the different teams, a separate meeting must be conducted wherein all the teams participate. This is known as the “Scrum of Scrums.”

What is the velocity of a sprint and how it is measured?

Answer :-
Velocity is one of the planning tool used to estimate the speed of the work and time of completion of the project. The calculation of velocity is done by reviewing the work team has successfully completed during earlier sprints; for example, if the team completed 5 stories during a two-week sprint and each story was worth 3 story points, then the team’s velocity is 15 story points per sprint.

Can you list some responsibilities that a scrum team have to undertake?

Answer :-
Major responsibilities that a scrum team has to include:

Breaking down the requirements, creating tasks, estimating and distributing the created tasks. To put simply they are in charge of creating sprint backlogs.

They have to arrange daily sprint meeting.

It is a responsibility of the team to ensure that every functional feature is delivered on time. They have to create a sprint burndown diagram to know to get the exact estimate of work done and the work that needs to be done.

Question :- Differentiate between “Sprint Planning Meeting” and “Sprint Retrospective Meeting.”

Answer :-
A Sprint planning meeting is a meeting in which all the scrum roles have a discussion about the team's priority features and product backlog items.

A sprint retrospective meeting is a meeting in which all the scrum roles have a discussion about the good part of the sprint , the bad part of the sprint and the sprint improvements.



Question :- What is Kanban?

Answer :-
Kanban is a tool which helps the team to keep a close eye the work i.e., to measure its progress. Apart from the progress, the status of a development story can be seamlessly described with the help of ‘kanban board’.
Kanban board aids in writing the whole scenario of a project at a single place to give a perfect picture of the bottleneck, a task done, workflow progress. It helps in the continuous delivery of the product without overburdening the team.


Question :- Next Step after writing user stories in an agile process?
Answer :- Once you have one or more user stories, it’s time to plan a sprint: during sprint planning the Team and the PO work together to decide which / how many stories they’ll commit to deliver for that sprint. If you don’t use sprints, the Team will pick up stories in priority order from the backlog as they come.

Product Owner:

The Product Owner should then prioritize the stories. Maybe group them together into logical sets for a release plan.

The Team:

The development team goes through a process of grooming the stories. The team will ask the Product Owner questions about each story and get more information about what the story is trying to accomplish. The team will refine the acceptance criteria and provide a relative sizing. They may split the stories or break them into smaller stories so they can be done within a sprint. In another session the team may create sub-tasks for each story. At this point a story should be ready to start development

Sprint Planning:

The development team and the PO sit down together for sprint planning. The team figures out how much work they can take on during the sprint. They pull in stories one at a time from the backlog until they have filled their estimated time in the sprint. The team then should take another look at the full sprint plan and decide if it’s realistic and make any final adjustments. They then make a commitment on the work they will deliver for the sprint.

Sprint:

The development team writes the software for each story. They also test each one carefully ensuring it meets the acceptance criteria. They should also create repeatable and automated tests for each story whenever possible. As each story finishes they should notify the Product Owner and quickly review what’s done.

Sprint Review:

At sprint review the development team showcases/demonstrates their completed work to the Product Owner and other product stakeholders. The team also reviews other sprint progress and impediments to tell the story of what occurred over the sprint.

During the sprint the team will take some more time to groom more potential stories for the upcoming sprint. You have to have a pipeline of groomed stories for upcoming sprints so you don’t spend sprint planning time grooming stories.

Release:

The Product Owner will gather enough valuable completed stories after a few sprints and decide it’s time to give it to the world. Time to do a software release. You should do these often. The longer you wait to do a release the more work it tends to be to perform the release tasks.

Rinse and repeat until you have a product everyone loves or decide it’s not worthy and ditch it.

There’s lots more to the process after writing a story, but these are the highlights.

Tags :What is agile ?,what is sprint and scrum?,difference between SDLC and Agile ?







No comments:

Post a Comment