Agile, Scrum, and Version Control System
You Already Know
Course(s):
1. Agile Scrum Foundation
1. Git Training Course
▪ Describe Agile manifesto
- Principles of Agile
▪ Distinguish between the Waterfall and Agile approaches
- Focus on consumers
- Customer involvement
- Multidisciplinary teams
▪ Describe Scrum and Scrum roles
- Scrum teams
- Sprints
- Events of a sprint
▪ Explain the events of the Sprint
- Stand-up meeting
- Sprint backlog
- Time-boxing
▪ Explain the fundamentals of Git
- Basic setup and configurations
▪ Explain the creation of a Git repository
- Git add
- Git commit
- Git push
A Day in the Life of a Test Engineer
Joe is hired as a Test Engineer in Abq Inc. They have decided to
restructure their website similar to Netflix’s so that the requests from the
clients to their servers can be minimized. Experts suggested that Angular
framework would be the best-fit to build such sites. Abq Inc. adopted
Scrum methodology to develop their product and release it
incrementally.
Joe has been assigned a few tasks during the sprint planning. Pushing
the Angular application to the GitHub repository is one of the tasks
assigned to him. At the daily stand-up meeting, he is asked to complete
this task with certain conditions so that the storage can be used
effectively.
In this lesson, we will learn how to solve this real-world scenario to help
Joe complete his task effectively and quickly.
Learning Objectives
By the end of this lesson, you will be able to:
Enumerate the scrum practices
Explain the workflow of agile and scrum practices
Structure your GitHub repositories
Interact with your GitHub via Git
Scrum Practices
Product Backlog
Product backlog is an ordered list of tasks to be done in the product.
{
Product
backlog
• It is a single source of requirements to be added to a product
• It is a living document
• Tasks are prioritized and ordered accordingly Sprint
• The product owner is responsible for the backlog
1……..n
User Stories
The purpose of a user story is to describe the task which will deliver a particular value to the customer.
User stories should include:
• An identifier and a name
• A description
• An estimated value
• An estimated effort
• Associated risks, dependencies, and
acceptance tests
Sprint Backlog
The sprint backlog is a list of tasks identified by the scrum team which has to be completed within the
estimated time, also know as a sprint. It is maintained by the development team.
Name of the
sprint
Duration of the
sprint
Start date of the
sprint
Estimated end date of
the
sprint
Sprint Backlog
Sprint
backlog
Product
backlog
Timeboxing
The goal of timeboxing is to define and limit the amount of time dedicated to a task.
Benefits:
Efficient development Less overheads High velocity for teams
process
Importance of Timeboxing
Establishes work-in-progress limit
Prioritizes the tasks
Tracks the progress
Improves predictability
Improves time management
Definition of Done
A checklist of things that must be verified before an item or a story is marked as completed. It evolves as
the scrum team matures. It can applied to:
• A user story
• A sprint
• A release
• A project
Task is
“Done”
Scrum Planning
Planning Layers and Product Roadmaps
Strategy Portfolio Produc
t
Executives define and The product offerings are Each scrum team sets a
govern the execution of established considering product vision and
the strategic goals. the vision of the outlines the roadmap for
executives. the projects.
Daily Sprin Releas
t e
The scrum team meets The scrum team The scrum teams group
every day for a status determines the user product backlog items into
update and makes a plan- stories that can be smaller releases.
of-action for the next completed within the
twenty-four hours. sprint.
Releases Supporting Product Roadmaps
A prioritized backlog of product features must match the product roadmap.
Release roadmap: Example:
Release 2.0v
• First version is available to all the
registered members
Release 1.6v
• Second version is available to
premium members only
• Third version is available to all the
members
Release 1.0v
V 🡪 version
Releases Supporting Product Roadmaps
Release 1.0v Release 1.6v Release 2.0v
Sprint 2
Sprint 1
Story 1 Story 2 Story 3
Task 1 Task 2 Task 3 Task 4
Sprint Planning and Objectives
Scrum projects can be accomplished through: Small Projects Large Projects
• Themes and epics
• Releases
Three to six sprints More than six sprints
• Sprints
• User stories
Six to twelve weeks More than six months
Sprint planning meeting is attended by the scrum
Single team Multiple teams
team which consists of:
• Scrum Master
• Product Owner Story level: Story level:
• Development team • Business area
• Release
• Theme or Epic
• End users and executives (Optional) • Sprint
• Features
Sprint Planning and Objectives
Each sprint planning is scheduled to last two hours for each week of the sprint’s duration.
2 Weeks
2 Weeks
Sprint 1
2 Weeks
Sprint 2
Product Backlog
Sprint 1
Sprint Planning Meeting
Inputs from Product owner Release plan followed by
stakeholders prioritizes the Sprint planning
product backlog
Scrum of Scrums
• Scrum of scrums is a scaling mechanism
Scrum of Scrums
• The scrum masters and developers need to
deliver the scrum of scrums collaborative
which is the Definition of Done. They meet
Scrum Master
and communicate to discuss: S
o The impediments
o Progress Scrum Master
o Cross-team coordination Developers Scrum Master
Agile Approach for QA
Agile in Software Testing
Agile testing is a software testing practice that follows the principles of agile software development. Agile
begins at the start of the project with continuous integration of testing and development.
Advantages
• Less documentation
• Regular feedback from the end user
• Daily meetings help determine the issues in
advance
Agile testing is continuous, not sequential.
Agile Testing
Sprint 1
Product
Sprint Backlog Test
Backlog Test Design Regression
Execution
Test Automation
User Stories
Sprint 2
Test Plan Sprint Backlog Test
Test Design Regression
Execution
Defects
Test Automation
…
Sprint n
Sprint Backlog Test
Test Design Regression
Execution
Defects
Test Automation
Agile Testing Quadrants
Agile testing quadrants separate testing processes and provide clarity on how agile testing is performed.
Automated and
Business Facing Manual testing
manual testing
Functional tests Explanatory
Story tests Usability
Support Programming Simulations UAT
Critique Product
Prototypes A/B testing
Q2 Q3
Q1 Q4
Unit tests Performance and
Component tests load testing
Automation Testing using
testing Technology Facing tools
Agile Testing Principles
Testing is not a phase, but a continuous process
Project is test-driven
Tests are performed by the whole team
Clean and simplified code
Reduce feedback response time
Reduce test documentation
QA: Things to Remember
Understand the agile QA process
Know the audience
Test early and test often
Document test cases
Attend daily stand-ups
Attend sprint planning sessions
Automate when feasible
Testing Lifecycle in Agile Projects
Designing user
stories
Automation testing Release planning
Test result reporting Sprint planning
Regression testing Continuous testing
upon sprint during sprint
completion execution
Agile Testing Strategy
Construction Release
Iteration
2 3
Iteration 0 1 4 Production
Perform initial setup tasks, including testing
1 tools installation and scheduling usability 3
testing Deploy the system into production
Carry out a set of iterations and build solutions
2 in increments; most tests are implemented in 4
this phase System goes live
Agile Test Plan
A test plan is written for each release in an agile model and is revised at every sprint planning.
Agile test plan includes:
• Scope
• New functionalities being tested
• Deliverables
• Types of testing based on the complexity of
features
• Load and performance testing
• Infrastructure consideration
• Risk or mitigation plan
• Resources
Testing and Agile Methodology
In agile methodology, tests are implemented in two ways: along with the development or with a lag of one
sprint.
Models Agile in testing
• Create parallel backlogs with the • Test fixed number of features in a sprint
development team • Push any additional features to backlog
• Integrate development and testing backlogs • In the succeeding sprint, along with the
• Launch tests during the backlog features to be tested for the sprint, test the
prioritization and project review phases features in the backlog as additional
features
Adopting agile in a testing environment introduces shift left approach to testing.
Overview of Git and Git Rebase
Popular Terminologies
Bare repository, tag, and
tree
Push and pull Status, add, and rebase
Git
Branch Terminologie Merge, master
s
Checkout Head, hook, and index
Commit, commit object
Git Workflow
1 3 5
git git push origin master
status
git git add <files> git rebase <parameters>
init git commit <files> git checkout <references>
git merge <references>
4
Git Rebase
Git rebase is one of the ways to integrate changes from one branch to another. It transfers the completed
task from one branch to another.
Before:
E—F feature
Commands used to achieve the result: A—B—C—D master
git rebase master
git rebase master feature After:
E’—F’ feature
A—B—C—D master
Set up and Create a Git Repository
Duration: 20 min.
Problem Statement:
You are given a project to demonstrate the initial set up and the uses of Git.
Assisted Practice: Guidelines
Steps to set up and create Git repository:
1. Download Git from the official site.
2. Install Git in the system.
3. Confirm the installation, and check the version installed.
4. Execute the basic commands to familiarize yourself with the use of terminal.
5. Generate random files and initialize the .git file.
6. Commit the files.
CRUD Operations in Git
Duration: 40 min.
Problem Statement:
You are given a project to demonstrate the following:
1. Reverting the earlier commits
2. Deleting and ignoring files in Git
3. Pulling the commits and collaborating between the local and remote repositories
Assisted Practice: Guidelines
Steps to perform CRUD operations in Git:
1. Navigate to the folder of early commits.
2. Execute the command to revert the commits.
3. Generate random files and add to the initialized Git repository.
4. Ignore few of the files while adding the rest to the .git file.
5. Delete the files added to the .git file.
Overview of GitHub
GitHub and Its Features
GitHub is a web-based hosting service for a version control system using Git.
Features: Developed Projects:
• Access Control • Atom: A free and open-source text and source code
• Bug Tracking editor
• Feature Requests • Electron: An open-source framework to use JavaScript-
• Task Management based websites as desktop applications
Set up and Configure GitHub Account
Duration: 40 min.
Problem Statement:
You are given a project to demonstrate the following:
1. Create your GitHub account
2. Connect from local Git repository to remote GitHub via SSH
3. Initiate the first push
Assisted Practice: Guidelines
Steps to set up and configure GitHub account:
1. Create an account with GitHub.
2. Set up an SSH connection with your GitHub account.
3. Navigate to the folder where the initial commits are made.
4. Add the remote origin.
5. Push the files to the GitHub account.
Key Takeaways
Scrum is an agile process that encourages us to deliver the highest business
values
Definition of Done (DoD) is a comprehensive collection of mandatory
value-added deliverables that focuses on quality of the product and
not the functionality of the product
Git is an open source version control system that supports
branching, merging, and rewriting repository history
GitHub is a web-based hosting service for a version control
system using Git
Create and Deploy Files to GitHub via Git
Duration: 30 min.
Problem Statement:
Create a directory which includes multiple files: index.js, index.html,
inherit.java, angularcli.json, and component.ts. Perform the following:
▪ Initialize the Git repository
▪ Commit the files: index.js, index.html, and inhert.java
▪ Ignore the files: angularcli.json and component.ts
▪ Create a folder in your GitHub account
▪ Push the committed files to the repository
Before the Next Class
Course: Core Java
You should be able to:
▪ Explain the fundamentals of Java language
▪ Set up Java and Eclipse on your machine
▪ Demonstrate initialization of a variable
▪ Explain data types and their declarations
▪ Demonstrate operators in Java
▪ Use conditional statements, loops, break statements, and
continue statements
▪ Explain classes and objects
▪ Demonstrate the uses of final, static, and this core keywords in Java