What is Agile Methodology?
- It is an Iterative and Incremental Approach.
- Iterative means same process repeating again and again.(The process keeps on repeating).
- Incremental means, modules/features keep on adding on top of existing software.
- Agile is Iterative and Incremental model where requirements keeps on changing.
- As a company we should be flexible to accept requirements change, develop, test and finally release a peace of working software within short span of time.
- There will be good communication between Customer, Business Analyst, Developers & Testers.
- The Goal of the agile model is the customer satisfaction by delivering the piece of the software to the customer within short span of time.
- Agile Testing is type of testing where we follow the agile principles.
Advantages:
- Requirement changes are allowed in any stage of development (or) We can accommodate Requirement changes in the middle of development.
- Releases will be very fast( Weekly)
- Customer no need to wait for long time.
- Good communication between team.
- It is very easy model to adopt.
Disadvantage:
- Less focus on design and documentation since we deliver software very faster.
What is Scrum?
Scrum is a framework through which we build software product by following Agile Principles.
Scrum includes group of people called as Scrum team.
- Product Owner
- Scrum Master
- Dev Team
- QA Team
Product Owner :
- Define the features of the product
- Prioritize features according to market value
- Adjust features and priority every iteration, as needed
- Accept or reject work results.
Scrum Master:
- The main role is facilitating and driving the agile process.
Developers and QA:
- Develop and Test the software.
Agile Vs Scrum
Agile:
Focus: Agile is an approach to project management and product development that emphasizes flexibility and customer satisfaction.Key Principles: It values collaboration, adaptability, and delivering small, functional pieces of a project regularly.Benefits: Allows for changes in project requirements, encourages customer feedback, and promotes a collaborative team environment.
Scrum:
Type of Agile Framework: Scrum is one of the specific frameworks within the broader Agile methodology.Roles: In Scrum, there are defined roles - Scrum Master, Product Owner, and Development Team.Artifacts: It uses specific artifacts like the Product Backlog, Sprint Backlog, and Increment to manage and deliver work.Events: Scrum includes specific events or ceremonies like Sprint Planning, Daily Standup, Sprint Review, and Sprint Retrospective.
Scrum Terminology
User Story : A Feature/module in a software
Epic : Collection of user stories.
Product backlog : Contains list of user stories. Prepared by product owner.
Sprint : Period of time to complete the user stories, decided by the product owner and team, usually 2-4 weeks of time.
Sprint planning meeting: Meating conducts with the team to define what can be delivered in the sprint and duration.
Sprint backlog : List of committed stories by Dev/QA for specific sprint.
Scrum meeting : Meating conducted by Scrum Master everyday 15 mins. Called as Standup meeting.
- What did you do yesterday?
- What will you do today?
- Are there any impediments in your way?
Sprint retrospective meeting : Review meeting after completion of sprint. The entire team, including both the ScrumMaster and the product owner should participate.
Story point : Rough estimation of user stories, will be given by Dev & QA in the form of Fibonacci series.
Burndown chart : Shows how much work remining in the sprint. Maintained by the scrum master daily.
DoR & DoD
- Definition of Ready (DoR):
- Preparation: Ensures tasks are well-prepared before starting work.
- Clarity: Describes what needs to be done, making sure everyone understands the plan.
- Timing: Decided before starting a task or user story during planning.
- Owner: Managed by the task planner or team lead.
- Adjustable: Can be tweaked as needed during planning.
- Definition of Done (DoD):
- Completion: Declares when a task or user story is considered finished.
- Criteria: Lists specific standards that must be met for completion.
- Timing: Decided at the beginning of the project or sprint.
- Shared Responsibility: Owned by the entire team, including developers and testers.
- Consistency: Should remain constant during the sprint; changes considered for future sprints.
Agile Meetings
1) Sprint Planning:
- Attendees: Entire team (developers, testers, product owner).
- When: At the beginning of each sprint.
- Duration: Typically 1-2 hours.
- Purpose: Plan and prioritize tasks for the upcoming sprint.
2) Daily Standup (Daily Scrum):
- Attendees: Entire team.
- When: Daily, preferably in the morning.
- Duration: 15 minutes or less.
- Purpose: Share updates on work, discuss challenges, and align for the day.
3) Sprint Review:
- Attendees: Team, stakeholders, product owner.
- When: At the end of each sprint.
- Duration: 2-4 hours.
- Purpose: Showcase completed work, gather feedback, and discuss what's next.
4) Sprint Retrospective:
- Attendees: Team members.
- When: At the end of each sprint, after the sprint review.
- Duration: 1-2 hours.
- Purpose: Reflect on the sprint, discuss what went well and what could be improved, and plan for adjustments.
5) Backlog Grooming (Refinement):
- Attendees: Product owner, Scrum Master, development team.
- When: As needed between sprints.
- Duration: Typically 1-2 hours.
- Purpose: Review and refine the product backlog, ensuring items are well-defined and ready for upcoming sprints.
Story point
A story point is a unit of measure used to estimate the difficulty or complexity of a task or user story.
Estimating a user story in Agile involves assigning it a story point value, and teams often use the Fibonacci sequence (1, 2, 3, 5, 8, 13, etc.)
Estimating a story using story point
User Story: "As a user, I want to be able to log in to the application using my email and password."
Estimation Process:
- Understand the User Story:
- The team discusses the user story to ensure everyone understands what's required. Logging in with email and password seems straightforward.
- Compare Complexity:
- The team compares this user story to a reference story. Let's say the reference story is a simple one-point story, like "displaying a welcome message."
- Use Relative Sizing:
- Team members discuss and agree that logging in is a bit more complex than displaying a welcome message but not significantly more complex. They decide to assign it a story point value of 2.
- Fibonacci Sequence:
- The team considers whether the complexity is closer to 2 or 3 in the Fibonacci sequence. After discussion, they agree that 2 is a more accurate representation.
- Team Consensus:
- The team discusses any differing opinions. If someone initially suggested 3, they might discuss why they thought it was more complex. After a brief discussion, the team reaches a consensus, and everyone agrees on 2 story points.
- Record the Estimate:
- The team records the estimate of 2 story points for the "log in" user story. This estimate will be used for planning and prioritizing in the upcoming sprint.
1 Story Point: Typically takes a few hours to complete (half a day).
2 Story Points: Could take a day to a day and a half.
3 Story Points: Might take two days.
5 Story Points: Could take around three days.
8 Story Points: A larger task, likely taking a week.
13 Story Points: A significant effort, possibly spanning multiple weeks.
Burn-Down Charts
There are four popularly used burn down charts in Agile.
- 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.