Agile
Agile
DOMAIN I
What is Agile?
Developed for Software projects, but it is a methodology that can be used on all Project types.
Agile is an umbrella term that is used to refer to different types of iterative development.
Scrum is the most common method of agile, there are others such as extreme programming (XP), lean
development, and Kanban.
Agile Benefits
Customer involved throughout the life cycle.
Greater Customer Interaction with all stakeholders
Constant Feedback is required to stay current and successful.
Greater Value up front
Change is welcomed by all stakeholders.
Agile and adaptive approaches for linking people, projects, and value.
We are a community of project leaders that are highly successful at delivering. results. To achieve these
results:
We increase return on investment by making continuous flow of value our focus.
We deliver reliable results by engaging customers in frequent interactions and shared ownership.
We expect uncertainty and manage it through iterations, anticipation, and adaptation.
We unleash creativity and innovation by recognizing that individuals are the ultimate source of value,
and creating an environment where they can make a difference.
We boost performance through group accountability for results and shared responsibility for team
effectiveness.
We improve effectiveness and reliability through situationally specific strategies, processes, and
practices.
Agile Mindset
Welcoming change
Working in small value increments
Using build and feedback loops
Learning through discovery
Value -driven development
Failing fast with learning
Continuous delivery
Continuous improvement
Inverting the Triangle
Agile Manifesto
Create in 2001
Contains:
4 values
12 guiding principles
https://agilemanifesto.org/
Agile Methods
Over 12 agile methodologies
Scrum
Extreme Programming (XP)
Kanban Development
Lean Software Development
Agile Terms
Product Owner - Designated person that represents the customer on the project.
Agile Project Manager/Scrum Master – Manages the agile project.
Product Backlog - Project requirements from the stakeholders
Sprint Planning Meeting- Meeting done by the agile team to determine what features will be done in the next
sprint.
Sprint Backlog – Work the team selects to get done in the next sprint.
Sprint - A short iteration where the project teams work to complete the work in the sprint backlog, (1-4 weeks
typical)
Daily Stand-Up Meeting - A quick meeting each day to discuss project statuses, led by the Scrum Master.
Usually, 15 minutes
Sprint Review – An inspection done at the end of the sprint by the customers.
Retrospective – Meeting done to determine what went wrong during the sprint and what when right. Lesson
learned for the sprint.
Partial Completed Product - Customers Demo the product and provide feedback. This feedback adjusts the next
Sprint priorities.
Release - Several Sprints worth of work directed to operations for possible rollout and testing.
Sprint = Iteration
Agile Process
Scrum
Transparency
Visibility to those responsible for the outcome
Inspection
Timely checks on how well a project is progressing toward goals.
Looks for problematic deviations or differences from goals.
Adaptation
Adjusting a process to minimize further issues if an inspection shows a problem or undesirable trend
Scrum Roles & Responsibilities
Product Owner
Owns Product vision.
Defines features, decides on release date and content.
Responsible for market success
Prioritizes features according to market value.
Can change features and priorities every Sprint.
Scrum Master
Responsible for facilitating process.
Focuses Team and protects them from external Interruption.
Looks for ways to enhance productivity.
Assists Product Owner in leveraging Scrum.
Development Team
Small group containing all necessary project skills.
Focuses on steady delivery of high-quality features.
Generates options for delivery.
Manages own work within Sprints.
Scrum Activities
Sprints
A sprint is a timeboxed (time-limited) iteration of
1-4 weeks to build a potentially releasable product.
Each sprint includes a sprint planning meeting,
daily Scrum, the actual work, a sprint review
meeting, and the sprint retrospective
During the sprint, no changes are made that.
would affect the sprint.
The development team members are kept the
same throughout the sprint
Sprint Review
Takes place at the end of the Sprint
Designed to gather feedback from stakeholders on what the Team has completed in the sprint
Team demonstrates work that was completed during the sprint
To create a conversation between the Team and the stakeholders about how to make the product
better.
should be time boxed to no more than an hour per week of Sprint.
Sprint Retrospective
Opportunity for the Team to inspect and create a plan for improvements to be done during the next
Sprint.
Team discusses:
What went well.
What went wrong.
What to do more of
What to do less of
Scrum Artifacts
Product increment
Part of the product that is complete after each sprint.
Product Backlog
Prioritized list of valuable items to deliver.
Sprint Backlog
List of committed items to be addressed within Sprint.
Product Backlog
Prioritized list of all work that needs to be done to complete the product
List is dynamics, it evolves as the more work is added and prioritized
Items in it is prioritized by the product owner and is sorted by value
Most valuable items are listed first.
Constantly being refined as more work is added to it.
Team and product owner will “groom the backlog”.
Product Increment
Part of the product that is done after each sprint.
Done to get feedback after each sprint.
The product owner and team need to agree upon the “definition of done” before the team starts
working on the product.
Sprint Backlog
The sprint backlog is the set of items from the product backlog that were selected for a specific sprint.
The sprint backlog is accompanied by a plan of how to achieve the sprint goal, so it serves as the
development team's forecast for the functionality that will be part of the sprint.
It is a highly visible view of the work being undertaken and may only be updated by the development
team.
Definition of Done (DoD)
Definition of Done (DoD) is a shared understanding of what it means when work is considered done, it should
be defined at the beginning of the project, and it applies globally to the project. Definition of Done (DoD) is a
crucial element. of a successful scrum software development Might include things such as:
DoD for Unit & functional tests.
DoD Documentation.
DoD for a Writing code.
Extreme Programming (XP)
Communication
Team members know what is expected of them and what other people are working on
Daily stand-up meeting is key communication component.
Feedback
Courage
Respect
People work together as a team, and everyone is accountable for the success or failure of the project
Recognize people work differently and respect those Differences.
XP Roles
Coach:
Acts as a mentor, guiding the process and helping the team stays on track. Is a facilitator helping the
team become effective.
Customer:
Business representative who provides the requirements, priorities, and drives the business direction for
the project.
Programmers:
Developers who build the product. Writes the codes.
Testers:
Helps the customer define and write the acceptance tests. for the user stories.
Product Owner and Customer are equivalent.
ScrumMaster and Coach are equivalent.
XP Practices
Planning Activities (Games):
Release Planning:
Push of new functionality all the way to the production user
Customer outlines the functionality required.
Developers estimate difficult build.
Iteration Planning:
Short development cycles within a release (Scrum calls "sprints”)
Conducted at the start of every iteration, or every two weeks.
Customer explains functionality they would like in iteration.
Developers break functionality into tasks and estimate work.
Based on estimates and amount of work accomplished in previous iteration,
Small Releases:
Frequent, small releases to test environments
Demonstrate progress and increase visibility for the customer.
Quality is maintained: Rigorous testing or Continuous integration Customer Tests:
Customer describes one or more tests to show software is working.
Team builds automated tests to prove software is working. Collective Code Ownership:
Any pair of developers can improve or amend any code.
Multiple people work on all code, which results in increased visibility and knowledge of code base
Leads to a higher level of quality; with more people looking at the code, there is a greater chance
defects will be discovered.
Less risk if programmer leaves, since knowledge is shared.
Code Standards:
Follow consistent coding standard.
Code looks as if it has been written by a single, knowledgeable programmer Sustainable Pace:
While periods of overtime might be necessary, repeated long hours of work are unsustainable and
counterproductive.
The practice of maintaining a sustainable pace of development optimizes the delivery of long-term
value.
Metaphor:
XP uses metaphors and similes to explain designs and create a shared technical vision.
These descriptions establish comparisons that all the stakeholders can understand to help explain how
the system should work.
For example, “The invoicing module is like an Accounts receivable personnel who makes sure money
collected from our customers”.
Continuous Integration:
Integration involves bringing the code together and making sure it all compiles and works together.
This practice is critical, because it brings problems to the surface before more code is built on top of
faulty or incompatible designs.
Test -Driven Development (TDD):
The team writes tests prior to developing the new code.
If the tests are working correctly, the initial code that is entered will fail the tests
The code will pass the test once it is written correctly.
Pair Programming:
In XP, production code is written by two developers working as a pair to write and provide real-time
reviews of the software as it emerges.
Working in pairs also helps spread knowledge about the system through the team.
Simple Design:
Code is always testable, browsable, understandable, and explainable.
Do the simplest thing that could possibly work next. Complex design is replaced with simpler design.
The best architecture, requirements, and designs emerge from self-organizing teams.
Refactoring:
Remove redundancy, eliminate unused functionality, and rejuvenate obsolete designs.
Refactoring throughout the entire project life cycle saves time and increases quality.
Code is kept clean and concise, so it is easier to understand, modify, and extend.
Principles:
Using visual management tools
Identifying customer-defined value
Building in learning and continuous improvement
https://herdingcats.typepad.com/my_weblog/2014/08/theuse-and-misuse-of-littles-law.html
Leading Effectively
Servant Leadership
Leader provides what the team needs.
1. Shield team from interruptions
2. Remove impediments to progress
3. (Re)Communicate project vision
4. Carry food and water
Twelve Principles for Leading Agile Projects
1. Learn the team members needs
2. Learn the project requirements
3. Act for the simultaneous welfare of the team and the project
4. Create an environment of functional accountability
5. Have a vision of the completed project
6. Use the project vision to drive your own behavior
7. Serve as the central figure in successful project team development
8. Recognize team conflict as a positive step
9. Manage with an eye toward ethics
10. Remember that ethics is not an afterthought, but an integral part of our thinking
11. Take time to reflect on the project
12. Develop the trick of thinking backwards
Value-Driven Delivery
Value-Driven Delivery
o Simple Scheme
o MoSCoW prioritization
o Monopoly Money
o 100-point method
o Dot Voting or Multi-voting
o Kano Analysis
o Requirements Prioritization Model
o
Prioritization Techniques
Simple Scheme:
o Priority 1, Priority 2, Priority 3, etc.
o Could be problematic as many items might become the first priority.
MoSCoW prioritization:
o Must have
o Should have.
o Could have
o Would like to have, but not this time.
Prioritization Techniques
Dot Voting or Multi-voting
o Each person gets a certain number of dots to distribute to the requirements.
Monopoly Money
o Give everyone equal monopoly money.
o They then distribute the funds to what they value the most.
100-point method
o Each person is given 100 points.
o They then use that to distribute to individual requirements.
Prioritization Techniques
Kano Analysis
o Helps to understand the customers’ satisfaction.
o Delighters/Exciters
o Satisfiers
o Dissatisfiers
o Indifferent
https://foldingburritos.com/kano-model/
http://www.agilemodeling.com/essays/costOfChange.htm
Refers to a set of functionalities that is complete to be useful, but small enough not to be an entire
project.
Usually, a module in a software.
Tools for Agile Projects
Includes work that has been started but not completed yet.
Represents money spent with no return.
Hides process bottlenecks that slow the processes.
Represents risk in form of potential risk.
Agile processes aim to Limit and optimize WIP.
Optimal WIP makes processes efficient.
Cumulative Flow Diagrams (CFD’s)
Stack graphs that show how work is Progressing.
Agile attempts to fix resources and time (cost) and vary functionality.
What one person describes is often different from how another interprets
Stakeholder Stewardship
Looking after everyone involved in the project.
Ensuring everyone has everything they need to complete the project successfully.
Starts with identifying the stakeholders.
Important to ensure customers and agile project team has the same vision.
Methods include:
o Agile Charter
o Definition of “Done”
o Agile Modeling
o Use case diagram.
o Data models
o Screen design
o Wireframes
o Personas
Agile Chartering
High-level (uses the W5H)
Agreement
Authority to proceed.
Focuses on how project will be conducted.
o Allows for flexibility and ability to deal with change.
Project specific processes outlined.
May use project Tweet – Describes project goal in 140 Characters or less.
Definition of “Done”
Creating a shared vision of what done looks like
Should be done for:
o User stories
o Releases
o Final project deliverables
Agile Modeling
Different modeling techniques that are used to help establish the shared vision
Should be lightweight or “barely sufficient.”
o Use case diagrams Visually shows how users would use an application.
https://en.wikipedia.org/wiki/Use_case_diagram
Data models
o How the data are structured in tables and their Relationships
http://www.agiledata.org/essays/dataModeling101.html
Screen designs
o Simple screen shots
http://agilemodeling.com/artifacts/uiPrototype.htm
Wireframes
Wireframes:
Personas
Personas:
Quick guides or reminders of key stakeholders and interests
o Provide description of users
o Be grounded in reality.
o Be goal-oriented, specific, and relevant.
o Be tangible and actionable.
o Generate focus.
Help team focus on valuable features to users.
Communicating with Stakeholders
Face to face communication
Two-way communication
Knowledge sharing
Information Radiators
Social Media
Face-to-face Communication
Face to face communication
http://www.agilemodeling.com/essays/communication.htm
Communicating with Stakeholders
Two-way communication
o Just don’t ask for confirmation or concerns, but actually listen to what they have to say
Knowledge sharing
o Agile teams work closely with each other such.as with pair-programming.
o Using Kanban boards or wireframes are ways to share information
o Use of low-tech tools like a whiteboard will allow all to see the work and understand it
o We must encourage it.
Information Radiators
o Things that are highly visible
o Used to display information.
o Usually includes charts, graphs and boards.
Social Media
o Use to communicate.
o Can include twitter or Instagram.
Green Zone:
o Take responsibility.
o Seeks to respond nondefensively.
o Is not easily threatened psychologically.
o Attempts to build success.
o Uses persuasion rather than force.
o Thinks both short and long term.
o Welcomes feedback.
o Sees conflict as a natural part of life.
o Seeks excellence rather than victory.
o Listen well.
Using Workshops
Meeting when work gets done.
Retrospectives are a type of workshop.
Ways to make them more effective:
o Diverse groups has a larger perspective
o Use methods such as round-robin to ensure no one dominates.
o Try to get everyone to participate in the first few minutes.
Quite Writing
o Give people about 5 minutes to write down their ideas.
Round-Robin
o Pass a token around to ensure everyone will speak.
Free-for-all
o People shout out their thoughts. May only work in a supportive environment.
Collaboration Games
Remember the future.
Prune the product tree.
Speedboat (Sailboat)
Remember the future.
Ask stakeholders to imagine that an upcoming release was successfully and to look back.
Gets a better understanding of how a stakeholder would define success.
Outlines how we can accomplish that success for Them.
Our skill to identify, assess, and influence the emotions of ourselves and others around us
We need to recognize our own feelings.
Then we can learn how to response to others and how they feel
Understanding how we take care of ourselves will impact other around us.
As an agile PM we have to know when team members are stuck, angry, or frustrated.
Negotiation
This happens all throughout the project.
Good negotiation will allow everyone to investigate the options and trade-offs.
Most effective when interactions between people are positive and there are room for give and take.
Active Listening
All projects will have conflicts, While some level of conflicts are good, we need to
ensure they don’t become a “world war” where people are trying to destroy each other
o Levels of conflict (1-5):
o Level 1: Problem to solve – sharing info
o Level 2: Disagreement – Personal Protection
o Level 3: Contest – Must win
o Level 4: Crusade – Protecting one’s group
o Level 5: World War – Must destroy the other
o
Participatory Decision Models
Engage stakeholder in decision making process
Simple voting:
o Vote “for” or “against” it
Thumps up/down/sideways:
o People hold their thumps in a way of if the support it or not. Sideway is if they cannot make up their
mind
Fist of five:
o People how up finger based on they support the idea
o 1 finger: total support – 5 finger: Stop against it
Team Performance
People Over Processes
Projects are done by people, not tools.
o Agile manifesto: “Individuals and Interactions over processes and tools”
Focus on the people side of the project.
Projects are more about people management than tools management.
People Over Processes
COCOMO
o Constructive Cost Model
o To determine correlation between project input variables and final cost to use to estimate future
projects.
o People factors has a score of 33…11 times more significant than tools and processes.
COCOMO II
Development/Delivery Team
Product Owner/Customer
o Prioritizing the product features
o Manage the product backlog ensuring its accurate and up to date.
o Ensures the team has a shared understanding of the backlog items.
o Defines the acceptance criteria.
o Provides the due dates for the releases.
o Attends planning meeting, reviews, and the retrospective.
Generalizing Specialists
Help the team stay on track, overcome issues, and continually improve skills.
Individual level
Whole-team level
Team Spaces
Co-located Teams
Team Spaces
Osmotic Communication
Global and Cultural Diversity
Distributed teams
Co-Located Teams
Burndown Chart
Velocity Charts
Velocity Charts
If a team has completed 3 iterations with the average velocity of 18 points per iteration, how many iterations
would it take to complete 250 points of work?
=250/18 = About 14 more iterations.
Adaptive Planning
Adaptive Planning
o Planning is an ongoing process.
o Multiple mechanisms to proactively update plan.
o Focus on value delivery and minimize nonvalue adding work.
o Uncertainty drives need to be replanted.
o Frequently discover issues and experience high rates of change
Agile Plans
Agile planning varies from traditional planning.
1. Trial and demonstration uncover true requirements, which then require planning
2. Agile planning is less of an upfront effort, and instead is done more throughout the project
3. Midcourse adjustments are the norm
Progressive Elaboration
Assessing and prioritizing the business value of work items, and then plan accordingly.
Consider payback frequency and dependencies.
Value -Based Decomposition
o Breaks down requirements and prioritizes them.
o Design the product box.
Design the Product Box
“Coarse-Grained” Requirements
Agile Estimation
Knowledge of agile estimation theory & ability to perform simple agile estimating
techniques.
Why do we estimate?
o Determining which pieces of work can be done within a release or iteration.
How are estimates created?
o By progressing through the stages planning.
How should estimates be stated?
o Should be started in ranges.
When do we estimate?
o Throughout the project. More detail in the later parts of the project
Who estimates?
o Team members will do their own estimates.
Ideal Time
Refers to the time it would take to complete a given task assuming zero interruptions or unplanned
problems.
Decomposing Requirements
User Stories
User Stories / Backlogs
• Business functionality within a feature that involves1-3 days of work.
• Acts as agreement between customers and development team
• Every requirement is user story
• Every story, including technical stories, has value
• Common structure of a user story
“As a payroll clerk, I want to be able to view a report of all payroll taxes, so that I can pay them on
time”.
“As a sales person, I want to be able to see a current list of leads, so that I can call them back quickly”
“As student of this course, I want to be able to understand the requirements of the exam, so that I
know if I qualify for it or not.”
Three C’s of Stories
Have users write the stories on index cards.
No details, it’s used to help conversate.
3 Cs:
o Card
o Conversation
o Confirmation
User Stories – INVEST
Fibonacci Sequence
https://en.wikipedia.org/wiki/Fibonacci_number
Fibonacci Sequence: 1, 2, 3, 5, 8, 13, 21
Guidelines for Using Story Points
Team should own the definition of their story points.
Story point estimates should be all-inclusive.
Point sizes should be relative.
Complexity, work effort, and risk should all be included in the estimate.
Affinity Estimating and T-Shirt Sizing
Affinity Estimating
o Group estimates into categories or collections
T-Shirt Sizing
o Place stories in sizes of t-shirts
Wideband Delphi
Wideband Delphi
o Group-based estimation approach
o Panel of experts, anonymously
It’s used to prevent:
o Bandwagon effect
o HIPPO decision making (HIghest-Paid Person's Opinion)
o Groupthink
Planning Poker
Advantages of Wideband Delphi Fast, collaborative process Uses cards with Fibonacci sequence.
Story Maps
High-level planning tool
Stakeholders map out what the project priorities are early in the planning.
Serves as the “product roadmap”.
Shows when features will be delivered and what is included in each release.
Product Roadmap
Shows when features will be delivered and what is included in each release.
Can convert the story map into a product roadmap.
Types of Iterations
Iteration 0
o Set the stage for development efforts.
o Doesn’t build anything.
Development Iteration
o Build the product increment. Iteration H (hardening sprint or release)
o Done at the end to clean up codes or producing documentation.
Spikes
Architectural spike
o Period of time dedicated to proof of concept.
Risk-Based Spike
o Team investigates to reduce or eliminate risk.
o
Iteration Planning
Meeting run by the delivery team.
Discuss the user stories in the backlog.
Select the user stories for the iteration.
Define the acceptance criteria.
Break down the user stories into tasks.
Estimate the task.
Release Planning
Meeting with all stakeholders to determine which stories will be done in which iterations for the
upcoming release.
Selecting the user stories for the release
o Using Velocity – points per iteration
Slicing the stories
o Breaking down stories that are too large to be completed in 1 iteration.
Problem Detection and Resolution
Cost of Change
Technical Debt.
Process Analysis
Review and diagnose issues.
Look for tailoring possibilities.
Process Tailoring
Amend methodology to better fit project environment.
Change things for good reason, not just for sake of change.
Develop a hybrid.
Value Stream Map
Optimize the flow of information or materials to complete a process.
Reduce waste (waiting times) or unnecessary work.
Steps to creating:
o Identify the product or service.
o Create a value stream map.
o Review to find waste.
o Create a new map with the desire improvement.
o Develop a roadmap to implement the fixes.
o Plan to revisit it again.
Value Stream Map Example
Pre-Mortems
Team meeting that looks at possible things that can cause failure during a project before they take
place.
Steps include:
Think what the failures might be.
Create a list of reasons that can cause the failures.
Review the project plan to determine what can be done to reduce or remove the reasons for failure.
Retrospectives
Special meeting that takes place after each iteration
Inspect and improve methods and teamwork.
Offers immediate value.
Should have a 2-hour time limit.
Retrospectives Stages
3. Generate Insights
Analyze the data.
Helps to understand what was found.
Activities Include:
o Brainstorming
o Five Whys: asking why five times
o Fishbone analysis
o Prioritize with dots: use a dot voting technique.
o
Fishbone Analysis