Agile Workshop
Agile Workshop
Maisara Khedr
● Over 10 years experience in software industry
● Over 5 years as a Scrum Master in more than
15 teams.
● Certified Professional Scrum Master from
Scrum.org
● Certified Agile Coach from ICAgile
●
●
Certified Agile Professional from ICAgile
Certified Agile Team Facilitation from ICAgile
Maisara Khedr
Agenda ?
1970
Waterfall
History Timeline
Waterfall
● Originated in manufacturing and construction industries
● 1970, Cited by Winston W.Royce.
● 1976, Bell & Thayer firstly used the term.
Royce’s Paper
“I believe in this concept but the implementation
described above is risky and invites failure.”
W.Royce
1976
Waterfall
1991
Rapid Application
Development
History Timeline
Rapid Application Development
● 1986, Barry Boehm developed the Spiral model.
Rapid Application Development
● 1991, James Martin published RAD Book.
1976 1995
Waterfall Scrum
1991
Rapid Application
Development
History Timeline
Scrum
Scrum
● 1986, Hirotaka Takeuchi and Ikujiro Nonaka introduced the term scrum.
● 1990s, Ken Schwaber used what would become Scrum at his company.
● 1990s, Jeff Sutherland, John Scumniotales and Jeff McKenna, developed a
similar approach at Easel Corporation, referring to it as Scrum.
● 1995, Sutherland and Schwaber jointly presented a paper describing the
Scrum framework.
● 2002, Schwaber, Sutherland, Mike Cohn and others founded the Scrum
Alliance.
1976 1995
Waterfall Scrum
1991 1996
Rapid Application Extreme
Development Programming
History Timeline
Extreme Programming
● 1993, The C3 project started in Chrysler.
● 1996, Kent Beck & Ron Jeffries was hired to get the thing working.
● System is delivered in 14 months. the development team adopted a way
of working which is now formalized as Extreme Programming
methodology.
● Extreme Programming Team
○ The Customer
○ The Developer
○ The Tracker
○ The Coach
Extreme Programming - Practices
● Every contributor to the project is an
integral part of the “Whole Team”
● Extreme programming teams use a
simple form of planning and tracking
to decide what should be done next
and to predict when the project will
be done. Focused on business value,
the team produces the software in a
series of small fully-integrated
releases that pass all the tests the
Customer has defined.
What is Extreme Programming? Ron Jeffries
Extreme Programming - Practices
● The Extreme Programming team
keeps the system integrated and
running all the time.
● The programmers code in a consistent
style so that everyone can understand
and improve all the code as needed.
● Extreme Programming is about team
responsibility for all code, for coding
in a consistent pattern so that
everyone can read everyone’s code.
● The Extreme Programming team
works at a pace that can be sustained What is Extreme Programming? Ron Jeffries
indefinitely.
Extreme Programming - Practices
● Extreme Programmers work
together in pairs and as a
group, with simple design and
obsessively tested code,
improving the design
continually to keep it always
just right for the current needs.
1991 1996
Rapid Application Extreme
Development Programming
History Timeline
Feature Driven Development
● 1997, initially devised by Jeff De Luca to meet the specific needs of a
15-month, 50-person software development project at a large Singapore
bank.
● FDD is a model-driven short-iteration process that consists of five basic
activities.
○ Develop overall model
○ Build feature list
○ Plan by feature
○ Design by feature
○ Build by feature
1997
1976 1995 Feature Driven
Waterfall Scrum Development
History Timeline
Exercise 1: Build Table and Chairs with Popsicle Sticks
Exercise 1: Build Table and Chairs with Popsicle Sticks
Exercise 1: Build Table and Chairs with Popsicle Sticks
What is Agility?
● Flexibility
● The power of moving quickly and easily;
● Being able to navigate through constraints!!
Software Development is a Knowledge Work
1. Exact outcome is not knowable in advance (IKIWISI)
2. Outcome based on intangible thoughts and knowledge
3. Empirical process to realize the outcome
Product Development is a Knowledge Work!
● Outcome based on intangible thoughts and knowledge
● Exact outcome is not knowable in advance (IKIWISI)
● Empirical process to realize the outcome
Shu (Follow the rule) Ha (Break the rule) Ri (Be the Rule)
The student follows the teachings the student begins to branch out. Now the student isn't learning from
of one master precisely. He With the basic practices working he other people, but from his own
concentrates on how to do the task, now starts to learn the underlying practice. He creates his own
without worrying too much about principles and theory behind the approaches and adapts what he's
the underlying theory. technique. He also starts learning learned to his own particular
from other masters and integrates circumstances.
that learning into his practice.
On February 11-13, 2001 , at The Lodge at Snowbird ski resort
Representatives from Extreme Programming, SCRUM, DSDM, Adaptive Software Development, Crystal,
Feature-Driven Development, Pragmatic Programming, and others sympathetic to the need for an
alternative to documentation driven, heavyweight software development processes convened.
?? ??
Mindset
Most people avoid responsibility and need People enjoy taking ownership of their
constant direction. work.
People are motivated by money and fears People are motivated when they find value
about their job security. in their contributions and see an opportunity
to realize their own potential.
The Agile Mindset By Ahmed Sidky
Culture
Culture (N) the ideas and social behaviour of a particular people or society.
Culture (N) Set of beliefs and values shared by members of a group that
leads to certain patterns of behavior.
Organizational
Agile Mindset
Agility
Rubber Band Model By Ahmed Sidky
1997
1976 1995 Feature Driven 2003
Waterfall Scrum Development Lean
History Timeline
2. The Lean Mindset
Toyota Production System
● Henry Ford was the first to truly integrate a production system called
‘mass-production’, which manufactures large quantities of standardized
products
● After studying Ford’s production system, Eiji Toyoda understood that the
mass production system employed by Ford cannot be used by Toyota.
The Japanese market was too small and diverse for mass production.
● 1930s, Kiichiro Toyoda, Taiichi Ohno, and others at Toyota revisited Ford’s
original thinking, and invented the Toyota Production System.
what is needed,
Automation with
when it is needed,
a human touch
and in the amount
needed
Continuous
Production
Improvement
Leveling
Extra-Processing Relearning
Transportation Handoffs
Waiting Delays
Defects Defects
Lean Software Development - Principles
● Amplify learning
○ Improve software development by learning continuously.
History Timeline
3. DevOps Culture
DevOps
● DevOps is a set of practices intended to reduce the time between
committing a change to a system and the change being placed into
normal production, while ensuring high quality
DevOps Culture
● DevOps is a culture, a movement, a philosophy.
● DevOps is the combination of cultural philosophies, practices, and tools
that increases an organization’s ability to deliver applications and services
at high velocity.
● Transitioning to DevOps requires a change in culture and mindset. At its
simplest, DevOps is about removing the barriers between two
traditionally siloed teams, development and operations.
DevOps
DevOps
Shared Development & Operations duties
● Software deployments
● Application support
Operations responsibilities
● IT buying
● Installation of server hardware and OS
● Configuration of servers, networks, storage, etc…
● Monitoring of servers
● Respond to outages
● IT security
● Backup and disaster recovery planning
So what part of the “Ops” duties should developers
be responsible for?
● Be involved in selecting the application stack
● Configure and deploy virtual or cloud servers (potentially)
● Deploy their applications
● Monitor application and system health
● Respond to applications problems as they arise.
So what does the operations team do then?
● Manage the hardware infrastructure
● Configure and monitor networking
● Enforce policies around backup, DR, security, compliance, change control,
etc
● Assist in monitoring the systems
DevOps Organizations
● First, Ops is focused on enabling people to reach goals by applying
strategic and tactical use of process and technological tools.
● Second, good DevOps organizations have learned to negotiate the
balance of velocity with stability in order to protect organizational values
without sacrificing flexibility or the ability to innovate.
● Third, they automate where possible, enable where necessary, but avoid
premature optimization.
Unless you currently do both Development AND
Operations separately, and do them well, AND
you’re now trying to synthesise a better, more
agile, more cloud-oriented way of working that
takes the best part of both disciplines … you
aren’t doing DevOps!
DevOps Practices
● Continuous Integration
● Continuous Delivery
● Microservices
● Infrastructure as Code
● Monitoring and Logging
● Communication and Collaboration
1997
1976 1995 Feature Driven 2003 2009
Waterfall Scrum Development Lean Scrum Guide
History Timeline
1. Introduction
2. Scrum Team
Scrum 3.
4.
Scrum Artifacts
Scrum Sprint
5. Scrum Events
6. Flaccid Scrum
Module 1
Introduction
Module 1
● Lightweight
● Simple to understand
● Difficult to master
3. Everyone focuses on the work of the Sprint and the goals of the Scrum
Team. The Scrum Team and its stakeholders agree to be open about all
the work and the challenges with performing the work.
4. Scrum Team members respect each other to be capable, independent
people.
Module 1
Scrum Team
Module 2
The Scrum Master is a servant-leader for the Scrum Team. The Scrum Master
helps those outside the Scrum Team understand which of their interactions
with the Scrum Team are helpful and which aren’t. The Scrum Master helps
everyone change these interactions to maximize the value created by the
Scrum Team.
Scrum Master Service to the Product Owner
● Ensuring that goals, scope, and product domain are understood by
everyone on the Scrum Team as well as possible;
● Finding techniques for effective Product Backlog management;
● Helping the Scrum Team understand the need for clear and concise
Product Backlog items;
● Understanding product planning in an empirical environment;
● Ensuring the Product Owner knows how to arrange the Product Backlog
to maximize value;
● Understanding and practicing agility; and,
● Facilitating Scrum events as requested or needed.
Scrum Master Service to the Development Team
● Coaching the Development Team in self-organization and
cross-functionality;
● Helping the Development Team to create high-value products;
● Removing impediments to the Development Team’s progress;
● Facilitating Scrum events as requested or needed; and,
● Coaching the Development Team in organizational environments in which
Scrum is not yet fully adopted and understood.
Scrum Master Service to the Organization
● Leading and coaching the organization in its Scrum adoption;
● Planning Scrum implementations within the organization;
● Helping employees and stakeholders understand and enact Scrum and
empirical product development;
● Causing change that increases the productivity of the Scrum Team; and,
● Working with other Scrum Masters to increase the effectiveness of the
application of Scrum in the organization.
Module 3
Scrum Artifacts
Module 3
Path
Interface
Data
Rule
Amount of details - Levels of Maturity
● Maturity 1 (Future Releases)
Reviewed & understood by PO, initial priority, high level acceptance criteria
Scrum Sprint
Module 4
4.1 Kanban for Scrum
Scrum Sprint Teams
1997
1976 1995 Feature Driven 2003 2009
Waterfall Scrum Development Lean Scrum Guide
History Timeline
Kanban Board
Kanban
● Kanban is Japanese for “visual signal” or “card.”
● 1940s, Toyota developed Kanban.
● Kanban Principles
○ Visualize work - Kanban Board
○ Limit work in progress (WIP)
○ Focus on flow
○ Continuous Improvement
Kanban
● Scrum vs Kanban
Scrum Kanban
Pre-defined roles of Scrum master, Product owner No prescribed roles
and team member
At the end of each sprint if approved by the PO Continuous delivery or at the team's discretion
Teams should strive to not make changes to the sprint Change can happen at any time
forecast during the sprint.
1997 2018
1976 1995 Feature Driven 2003 2009 Kanban for
Waterfall Scrum Development Lean Scrum Guide Scrum
History Timeline
Kanban in Scrum
Kanban (n): a strategy for optimizing the flow of stakeholder value through a
process that uses a visual, work-in-progress limited pull system.
Scrum Events
Module 5
○ What can be delivered in the Increment resulting from the upcoming Sprint?
○ How will the work needed to deliver the Increment be achieved
What can be done this Sprint?
The Development Team works to forecast the functionality that will be
developed during the Sprint.
The Product Owner discusses the objective that the Sprint should achieve and
the Product Backlog items that, if completed in the Sprint, would achieve the
Sprint Goal.
The entire Scrum Team collaborates on understanding the work of the Sprint.
Only the Development Team can assess what it can accomplish over the
upcoming Sprint.
What can be done this Sprint?
During Sprint Planning the Scrum Team also crafts a Sprint Goal.
The Sprint Goal is an objective that will be met within the Sprint through the
implementation of the Product Backlog, and it provides guidance to the
Development Team on why it is building the Increment.
Velocity Driven Planning
● Determine the team’s historical average velocity.
● Select a number of product backlog items equal to that velocity.
● Identify the tasks involved in the selected user stories and see if it feels
like the right amount of work.
Sprint Velocity
1 12
2 10
3 12
4 15
5 11
Capacity Driven Planning
● Team members discuss the work involved, and identify the tasks that will
be necessary to deliver the product backlog item.
● Teams roughly estimate the hours to do each task.
● Stopping when they feel the sprint is full.
How will the chosen work get done?
The Development Team decides how it will build this functionality into a
"Done" product Increment during the Sprint.
However, enough work is planned during Sprint Planning for the Development
Team to forecast what it believes it can do in the upcoming Sprint
By the end of the Sprint Planning, the Development Team should be able to
explain to the Product Owner and Scrum Master how it intends to work as a
self-organizing team to accomplish the Sprint Goal and create the anticipated
Increment.
Module 5
Team is inspecting the work since the last Daily Scrum and forecasting
upcoming Sprint work.
The Development Team or team members often meet immediately after the
Daily Scrum for detailed discussions, or to adapt, or replan, the rest of the
Sprint’s work.
Daily Scrum
The Scrum Master ensures that the Development Team has the meeting,
but the Development Team is responsible for conducting the Daily Scrum.
The Scrum Master teaches the Development Team to keep the Daily Scrum
within the 15-minute time-box.
Module 5
The result of the Sprint Review is a revised Product Backlog that defines the
probable Product Backlog items for the next Sprint.
Module 5
○ Inspect how the last Sprint went with regards to people, relationships, process, and tools;
○ Identify and order the major items that went well and potential improvements; and,
○ Create a plan for implementing improvements to the way the Scrum Team does its work.
Module 6
Scrum in Action
Project: Souq
● Sellers add items for selling
● Users browse marketplace, and buy items
● Buyers review items
Module 6
Story map structure is Activities > Tasks > Stories, and it may look like the
following board.
Activities should show from left to right a complete user journey, Stories
should be ordered top-down by priority. each horizontal swim lane shows a
release.
User Stories Mapping
Exercise: Building a Backlog
Module 6
Flaccid Scrum
Module 6
● Frequent releases
● Get critical fixes or restore service quickly
● Validate if the feature is valuable
Why Continuous Delivery?
● Make releases painless
● Reduce time to market
● Increase software quality and stability
● Reduce cost of ongoing software development
● Increase customer and team satisfaction
Continuous Delivery Principles
● Build Quality in
● Work in small batches
● Computers Perform Repetitive Tasks, People Solve Problems
● Everyone is Responsible
Continuous Delivery Foundations
Continuous delivery is following the first principle in Agile Manifesto
Our highest priority is to satisfy the customer through early and continuous
delivery of valuable software.
Configuration Management
Automate build, deploy and infrastructure provisioning
Version control should contain source code, deployment scripts, system and
infrastructure configuration
Configuration Management Goals
Reproducibility
○ We should be able to provision any environment in a fully automated fashion, and know
that any new environment reproduced from the same configuration is identical.
Traceability
○ We should be able to pick any environment and be able to determine quickly and
precisely the versions of every dependency used to create it.
○ We want to to be able to compare previous versions of an environment and see what has
changed between them.
Continuous Integration
CI follows the XP principle that
"if something is painful, we should do it more often, and bring the pain
forward".
So what is painful?
And
Technology Facing
UAT
Exploratory Testing
Support development Critique the Product
to build the right thing
(Find Defects)
(Prevent Defects)
Technology Facing
Technology Facing
Component Test
Technology Facing
Component Test
Technology Facing
Component Test
Technology Facing
Separate stories
or
Technology Facing
● Fast
● Reliable
● Isolate failures
High benefit - Low cost High benefit - High cost
Benefit
Low benefit - Low cost Low benefit - High cost
Cost of Automation
What to automate?!
Automation Strategy - Regression Packs
Smoke Regression Pack