Agile vs Scrum vs Kanban in SQA
01. Agile Methodologies
What is Agile Methodology?
Agile is a way of working on projects where tasks are done in small steps, allowing for changes and improvements.
- Agile methodologies are a way of managing projects that emphasizes flexibility, collaboration, and customer feedback.
- They are based on breaking the project down into small, iterative increments and delivering working software at the end of each increment.
- This allows teams to respond to change more quickly and effectively and to deliver value to the customer sooner.
Why do we use Agile Methodology?
- Customer Satisfaction: Regular updates and feedback keep customers happy.
- Flexibility: Easily adapt to changes in the project.
- Better Quality: Continuous testing and improvements lead to better outcomes.
- Team Collaboration: Encourages teamwork and communication.
- Faster Delivery: Quick and frequent product releases.
Advantages:
- Requirement changes are allowed in any stage of development.
- The release will be speedy
- Customers do need to wait for a long
- Good communication between team
- It is a straightforward model to adopt
Disadvantages:
There needs to be more focus on design and documentation since products are delivered quickly.
Principle of Agile:
- Satisfy Customer
- Welcome Changing Requirements
- Deliver Working Software Frequently
- Frequent Interaction with Stakeholders
- Motivated Individuals
- Face-to-face Communication
- Measure by working software
- Keep it simple
- Reflect and Adjust continuously
02. Scrum
What is Scrum?
Scrum is a popular project management framework for software development, through which we develop products by following agile principles. It can be used for any project. It is a lightweight framework that is easy to learn and implement, and it can be scaled to fit the needs of any team.
Why do we use Scrum?
- Organized Work: Breaks projects into small, manageable pieces.
- Flexibility: Adapts readily to changes and new ideas.
- Faster Results: Delivers parts of the project quickly.
- Team Collaboration: Improves teamwork and communication.
- Customer Feedback: Regular updates help meet customer needs.
Scrum includes a group of people called the Scrum team.
- Product Owner
- Scrum Master
- Dev Team
- SQA Team
Role of the Product Owner in Scrum:
Product owner:
- Define the feature of the product (Always contact the customer and get input requirements)
- Prioritize features according to market value (Collect features from the customer and prioritize them)
- Adjust features and prioritize every iteration as needed
- Accepts or rejects work results.
Scrum Master:
The main role is to facilitate and drive the agile process.
Dev Team & QA Team:
Develop and test the software.
Fundamental Differences between Agile and Scrum:
Agile | Scrum |
Agile is a process model. | Scrum is a framework through which we develop and test the software and release it to the customer. |
Agile defines the principles of how the process should be | Scrum helps to follow those principles of Agile (it says How to follow those principles). |
Scrum Terminology
- User Story: A feature/Module in software (Smaller requirements and derived from Epic)
- Epic: An epic is a significant user story that is too big to be completed in a single sprint. Epics are broken down into smaller user stories that can be completed in one sprint.
- Product backlog: The product backlog is a list of all the user stories and epics that must be completed to deliver the product. The product backlog is prioritized by the product owner, who is responsible for ensuring that the product meets the users’ needs.
- Sprint/Iteration: A sprint is a short period of time (typically two weeks) during which the development team works on completing a set of user stories from the product backlog.
- Sprint planning meeting: The sprint planning meeting is at the beginning of each sprint, where the development team and product owner plan the work done during the sprint. The team estimates the effort required for each user story and determines which user stories will be completed in the sprint.
- Sprint backlog: The sprint backlog is a list of the user stories that will be completed in the current sprint. The sprint backlog is created during the sprint planning meeting and is updated as the sprint progresses.
- Scrum meeting: A scrum meeting is a daily meeting where the development team discusses the Progress of the sprint and any blockers they face. Scrum meetings are typically 15 minutes long and are held every day at the same time.
- Sprint Retrospective meeting: Conducts meeting after completion of sprint. The entire team, including both the Scrum Master and the product owner, should participate.
- Story points: Dev and QA will roughly estimate user stories as a Fibonacci series.
0 1 1 2 3 5 8
1 Story point = 1 hour/1day(6 hours)
Login – – – – – > Dev-5 QA-3 =8 hours/1 day
- Burndown chart: shows how much work is remaining in the sprint.Maintained by the scrum master daily
What are the roles of the agile process: Product owner, Scrum Master, Team
Artifacts: Product backlog, Sprint backlog, Burndown chart
Ceremonies: Sprint Planning, Daily Scrum, Sprint review
Definition of Ready:
- A user story is clear
- User Story is testable
- A user story is feasible
- A user story is defined
- User story Acceptance Criteria defined
- User Dependencies identified
- User story sized by the development team
- Scrum Team accepts User Experience artefacts
- Performance criteria identified, where appropriate
- The team has a good idea of what it will mean to Demo the user story
If the user story fulfils these criteria, it is ready for development and testing.
Definition of Done:
- Code produced
- code commented, checked in and ran against the current version in the source control
- peer-reviewed and meeting development standards
- builds without errors
- Unit tests are written and passing
- Deployed to the system test environment and passed system tests.
- Passed UAT and signed off as meeting requirements.
- Any build/deployment/communicated/implemented/documented
- Relevant documentation/diagram produced
- Remaining hours for task set to zero and task closed
Product backlog demo
Sprint backlog
Tasks
After completion, A demo is created.
03. Kanban
What is Kanban?
Kanban is a lean project management methodology that helps teams visualize their work, limit work-in-progress, and optimize their workflow. It is based on continuous improvement and flow and can be used to manage any work, from software development to customer service.
Why do we use Kanban?
- Visualize Work: Shows all tasks clearly on a board.
- Manage Flow: Helps control the flow of work and prevent bottlenecks.
- Flexible: Easily adjusts to changes and new priorities.
- Improve Efficiency: Focuses on completing tasks before starting new ones.
- Continuous Improvement: Encourages ongoing enhancements to processes.
Overview of the Kanban Board and Its Columns:
Kanban uses a Kanban board to visualize work and track its Progress. It typically has three columns:
- To Do: This column represents work that still needs to be started.
- In Progress: This column represents work that is in Progress.
- Done: This column represents complete work.
This visualization helps teams see what work is currently in Progress, what is waiting to be started, and what has been completed.
Here is a simple example of Kanban:
A software development team uses a Kanban board to track the Progress of their work. The board has three columns: To Do, In Progress, and Done.
- When a new feature is assigned to the team, it is added to the To Do column.
- When the team starts working on the feature, it is moved to the In Progress column.
- When the feature is completed, it is moved to the Done column.
- The team limits the number of items in the In Progress column to ensure that they stay calm.
- The team uses metrics such as lead time and cycle time to measure their Progress and identify areas for improvement.
- The team experiments with different ways of working to find the best for them.
- The team solicits feedback from customers and stakeholders to ensure they meet their needs.
Kanban is a powerful tool that can help teams improve their workflow, deliver customer value faster, and become more agile.
Advantages:
- Visualization: Kanban uses a Kanban board to visualize work and track its Progress. This helps teams see what work is currently in Progress, what is waiting to be started, and what has been completed.
- Limiting WIP: Kanban limits work-in-progress (WIP). This means that teams only work on a certain number of items simultaneously. This helps prevent teams from becoming overwhelmed and ensures that work is completed on time.
- Continuous improvement: Kanban is a continuous improvement methodology. This means that teams constantly look for ways to improve their workflow and deliver value to their customers faster. Kanban teams use a variety of techniques to improve their workflow, such as:
- Metrics: Teams track lead time, cycle time, and throughput metrics to measure their Progress and identify areas for improvement.
- Experimentation: Teams experiment with different working methods to find what works best for them.
- Feedback: Teams solicit feedback from customers and stakeholders to ensure they meet their needs.
Disadvantages:
- Can be complex to implement: Kanban can be complex to implement, especially for large teams or teams that need to become more familiar with agile methodologies.
- Requires discipline: Kanban requires discipline from teams to adhere to the principles of the methodology. This can be difficult for teams that are used to working in a more traditional waterfall methodology.
- Not suitable for all projects: Kanban is only suitable for some projects. It is best suited for complex or unpredictable projects where delivering value to customers quickly is essential.