Agile training workshop

92
Boutique product development company It is amazing what you can accomplish when you have a client-centric team to deliver outstanding products. Syed Salman Ahmed, ACP | APM – Confiz Limited 1

Transcript of Agile training workshop

Page 1: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 1

Boutique product development companyIt is amazing what you can accomplish when you have a client-centric team to deliver outstanding products.

Page 2: Agile training workshop

Agile Training WorkshopSyed Salman Ahmed, ACP | Associate Project Manager

Page 3: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 3

Workshop Agenda

• What is Agile• Concepts of Agile:

– Iteration– Daily Stand up– User Stories– Definition of Done– Planning– Review– Retrospective– Backlog Grooming

• Scrum• XP• Kanban• Brief overview on use of JIRA

Page 4: Agile training workshop

What is Agile

Page 5: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 5

What is Agile?

• What do you think is the purpose of this workshop?• Difference between how to agile and being agile?• What advantages can you state of Agile?

Page 6: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 6

TRADITIONAL

Waterfall Approach

Need more time to market

Not all of the features are used by consumers:

Often/Always: 20% Sometimes: 16% Rarely/Never: 64%

AGILE

Iterative & Incremental

Time boxed

Focuses on Minimum Marketable Features

Continuous involvement of Customer

Open to change requests at all stages of life cycle

Traditional vs. Agile Approach

Page 7: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 7

Agile Software Development

What is Agile Software Development?

Iterative and incremental development Requirements and solutions evolve through collaboration Teams are potentially self-organizing and cross-functional

Page 8: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 8

That is, while there is value in the items on the right, we value the items on the left more.

Process and toolsIndividuals and interactions over

Following a planResponding to change over

Comprehensive documentation

Working software over

Contract negotiationCustomer collaboration over

Agile Manifesto

Page 9: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 9

Agile Manifesto

Individuals & Interactions over Processes & Tools Each person can contribute unique value Communication is clear, effective, quick and efficient Stronger team work Development teams can self-organize, be more innovative and customize the

processes as required Team members take personal ownership of the project Team members can have better job satisfaction

Page 10: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 10

Agile Manifesto

Working Software over Comprehensive Documentation Meeting done criteria – a measure of completion Bare minimum documentation

Page 11: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 11

Agile Manifesto

Customer Collaboration over Contract Negotiation Make the customer part of the project on an ongoing basis Develops a partnership between customer and development team Customer gets the increment at the end of each iteration Customer feedback is incorporated in regular intervals

Page 12: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 12

Agile Manifesto

Responding to Change over Following a Plan Responding quickly to customers, product users and market helps in developing

relevant and helpful products

Page 13: Agile training workshop

Concepts of Agile

Page 14: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 14

Concepts of Agile

• Iteration• Daily Standup• User Stories• Definition of Done• Planning• Review• Retrospective• Backlog Grooming & Estimation

Page 15: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 15

Iteration

Page 16: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 16

Iteration

• Iterations are short time frames• Duration of an iteration is 1 – 4 weeks• Preference is 2 weeks• Potentially shippable product is ready at the end of an

iteration• There can be more than one releases in an iteration, but not desirable• There cannot be a release at the end of an iteration, again not desirable

Page 17: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 17

Iteration (contd..)

• Most common misconception:• All sprints are iterations, but all iterations are not sprints

• Ideal iteration ending date:• An iteration should not end on a Friday

Page 18: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 18

Daily Stand-up

• Daily Standup• Questions of Daily Stand-up

Page 19: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 19

Daily Stand-up

A maximum of 15 minute meeting of team members Helps synchronize effort Status is shared Dependencies are resolved Commitments are made Problems are identified but NOT resolved

Page 20: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 20

Questions of Daily Stand-up

What has been done? What will be done before next meeting? What are any obstacles?

Page 21: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 21

Punishments for non-attendees/late comers

• Push-ups• Sit-ups• Hang a board the whole day “I came late”• Monitory fine

• Whatever team decides

Page 22: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 22

User Stories

• Traditional Requirements• User Story• Epic and Theme

Page 23: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 23

Traditional Requirements

Criteria to which the system or business should adhere Generated before the coding begins Often considered as constraints, conditions or capabilities of

the system Rarely contain acceptance criteria Contract between business and development

Page 24: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 24

User Story

A product feature description written by Customer/Proxy from the perspective of the end user.

It helps team understand what work is to be done Customer/Proxy prioritizes and team estimates them It usually follows the format:

▪ As a : <Role>▪ I want to : <Function>▪ So that : <Desired Goal>

Page 25: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 25

User Story (contd.)

Shifts the focus from writing about requirements to talking about them

Not a highly detailed document, rather a reminder for further collaboration

Atomic in nature Just-In-Time Tool A User Story should be End to End

Page 26: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 26

User Story (contd.)

Follows the INVEST model:▪ Independent

▪Reduced dependencies, easy planning▪ Negotiable

▪Details are added via collaboration and not a contract▪ Valuable

▪Provides value to the customer▪ Estimable

▪Should not be big and vague/Team should be able to estimate▪ Small

▪Can be done in less than a week by the team▪ Testable

▪Has acceptance criteria

Page 27: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 27

Epic and Theme

Theme is a collection of related stories Epic is a large story that can be further divided into multiple

stories

For example, “A user can search for job” can be split into multiple stories:▪ Search by Location, Salary Range, etc.▪ View Job Detail▪ View Company Profile

Page 28: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 28

Definition of Done Common Issues

Definition of Done

Page 29: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 29

Definition of Done

Done criteria Functional Testing by development team Customer specified scenarios Single User Story can have multiple acceptance tests Also used during regression testing DOD may not be added when an issue/task/story is created

Page 30: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 30

Common Issues

Start from requirements documents in narrative format Too much information• Missing information

• Team must understand the done criteria before committing to story

• Acceptance Criteria is confused with Test Cases Acceptance Criteria: “How will I know when I am done with the story?”

Test Case: “How do I test and what are the test steps?”

Page 31: Agile training workshop

Activity # 1• Create Stories• Create DOD

Page 32: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 32

Planning

Sprint Goal Planning Meeting Estimation Technique – Planning Poker

Page 33: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 33

Sprint Goal

A short statement of what the work will be focused on during the sprint

Page 34: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 34

planning meeting

prioritization

• Analyze and evaluate product backlog

• Select sprint goal

planning

• Decide how to achieve sprint goal (design)

• Create sprint backlog (tasks) from product backlog items (user stories / features)

• Estimate sprint backlog in hours

Sprintgoal

Sprintbacklog

Business condition

s

Team capacity

Product backlog

Technology

Current product

Page 35: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 35

Estimation Technique - Planning Poker

The size assigned is based on a fixed pool of numbers

Based on Fibonacci numbers 0 1 1 2 3 5 8 13 21 34 55 98

Adjusted sequence is: 0 ½ 1 2 3 5 8 13 20 40 100 α

Pre-requisite: A standard story must be taken with size pre-allocated

Page 36: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 36

Rules

Feature is read to the team with explanation by Product owner Item is discussed Each member rates it and places his vote face down All cards are turned over at same time If estimates are different, outliers are discussed Repeat until consensus is reached or group can “live with” a

selected size Use Kitchen time to limit discussions

Page 37: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 37

5 finger rule

After round of discussion, if consensus is not reached at all, use this to move forward

1. I am against this2. I object and want to discuss3. I have concerns but can live with it4. I support with some reservations5. I totally support it

Note: 1 or 2 require discussion and re-vote

Page 38: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 38

Estimating at Start of Project

Lesser clarity of the entire project Try to get into as much detail as possible But not all details!! Plan for immediate release in complete detail only Rest of the details can be established as we go

Page 39: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 39

Re-estimation

1. For tasks that were identified at high level at project commencement Create epics

Create multiple stories

2. Re-estimate story due to previous finding Change only old story points

Change only new story points

Relatively change both old and new

Page 40: Agile training workshop

Activity # 2

• Lets estimate some stories!

Page 41: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 41

Review

Page 42: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 42

Review

Team presents what it accomplished during the sprint Typically takes the form of a demo of new features or underlying

architecture Informal

2-hour prep time rule

No slides Whole team participates Invite the world

Page 43: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 43

Retrospective

Page 44: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 44

Retrospective

Periodically take a look at what is and is not working• Preferable to assign responsibility at the end of retrospective• Typically 30 minutes to an hour• Done after every sprint• Team/customer can participate

Page 45: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 45

Backlog

Product Backlog Sprint Backlog

Page 46: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 46

Product Backlog

The requirements A list of all desired work on the project Ideally expressed such that each item has value to the users or

customers of the product Prioritized by the product owner Reprioritized at the start of each sprint

Page 47: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 47

Sprint Backlog

Sprint Backlog is the identified list of items that the team will work on in the current sprint/iteration

Features in the Sprint Backlog will be exploded into User Stories

User Stories will be decomposed to individual tasks

Page 48: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 48

Planning in general An Agile Plan Task Prioritization Estimating Tasks

Backlog Grooming & Estimation

Page 49: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 49

What is a good plan? A plan helps answer questions

Planning in general

Page 50: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 50

What is a good plan?

Reduce risk Reduce uncertainty Identify dependency Support better decision making Establish trust

Page 51: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 51

A plan helps answer questions

When can I get feature “X” When will the project be completed

Page 52: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 52

An Agile Plan

Work as one team Work in short iterations Deliver something each iteration Focus on business priorities Inspect and adapt

Page 53: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 53

Page 54: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 54

Levels of Planning

Page 55: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 55

Factors in Prioritization

Financial value of a feature Cost of development Learning curve Risk removed by developing a feature

Schedule Risk

Cost Risk

Functionality Risk

Page 56: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 56

Task Prioritization

High RiskLow Value

High RiskHigh Value

Low RiskLow Value

Low RiskHigh Value

Risk

Value

Page 57: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 57

Prioritizing Desirability

Must Haves The more the better Exciters

Techniques: Kano model

Uses functional and dysfunctional questions

Relative weighing

Page 58: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 58

Estimating Tasks

Estimating tasks Paint Problem Size of Story Ideal days vs Actual days Estimation Technique: Planning poker Estimating at start of project Re-estimation

Page 59: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 59

Estimating Tasks

Unlike traditional project estimation First estimate the size of a story

Then convert it into an estimate

List of desired Features

Estimate Size

Derive Duration Schedule

Page 60: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 60

Estimate the time required to paint this map

Page 61: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 61

Problems

Don’t know the size of rooms Don’t know details of the room Don’t know which paint to use Time to paint one room is unknown

Page 62: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 62

Extending the problem

Based on the floor plan, you are supposed to determine how long will it take you to paint a building that has a single floor 4 times the size of given building and has 15 stories?

Page 63: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 63

Determine the size of a story with respect to other stories E.g. story A is twice the size of story b

This classification is normally termed as Story Points

Sizing a Story

Page 64: Agile training workshop

Scrum

Page 65: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 65

Overview of Scrum What is Scrum? Pillars of Scrum Roles Ceremonies/Events Artifacts Scrum of Scrums

Basic Concepts of Scrum

Page 66: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 66

An Overview of Scrum Product Catalog Sprint Backlog Sprint Daily Standup Scrum Master Potentially shippable to

the customer Sprint Review Retrospective meeting

Page 67: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 67

An Overview of Scrum

A Product Owner creates a prioritized wish list called Product Catalog

During Sprint Planning, the Scrum Team identifies and pulls a small number of items from the Product Catalog, creating a Sprint Backlog

The Scrum Team then decides how to implement the items The team has a timebox, called a Sprint, to complete its work The team meets each day to assess the progress, Daily Standup Scrum Master keeps the team focused on its goals At the end of the sprint the work should be potentially

shippable to the customer The sprint ends with a Sprint Review and Retrospective meeting

Page 68: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 68

An Overview of Scrum

Page 69: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 69

What is Scrum?

Scrum is an Agile Framework structured to support product development

Scrum consists of Scrum Teams and their associated: Roles

Events

Artifacts

Rules

Page 70: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 70

Transparency: Share common standards and nomenclatures in Scrum Team

Inspection: Detect undesirable variances through Scrum Events

Adaptation: Make adjustments to the process and artifacts to minimize further deviation

Page 71: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 71

Scrum Team

Product Owner Development Team Scrum Master

Page 72: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 72

Product Owner

Customer/Proxy representing the stakeholders Responsible for maximizing the value of the product and the work of

Development Team Writes User Stories Sole person responsible to manage the Product Backlog

Clearly express the Product Backlog Items

Prioritize the items to achieve best goals and missions

Ensure the Product Backlog is transparent and visible to all

Ensures the Development Team understands the items in the Product Backlog

Page 73: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 73

Self-organizing team of size between 3 to 9 Normally developers who turn Product Backlog into increments of

potentially shippable product based on “definition of done” Less than 3 members

Decrease the interaction

Result in smaller productivity

May encounter skill issues More than 9 members

Require too much co-ordination

Team

Page 74: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 74

Team

Cross-functional team with all the skills necessary to create the product increment as a team

No titles for the team members other than “Developer” Each team member chips in and applies his/her expertise to all

the problems

Page 75: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 75

Scrum Master

Ensures that Scrum rules are understood Ensures that Scrum rules are followed Resolves impediments Protects team from external interferences Removes the barriers between development and Product

Owner so that Product Owner derives the development Empowers the development team Improves engineering practices and tools so that each

increment is potentially shippable Keeps information on team’s progress up to date and ensures

its visibility

Page 76: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 76

Servant Leadership

This kind of leadership includes: Creating environment of personal safety where team members may both innovate

and come to friendly disagreements

Mentoring team members

Facilitating (not controlling) meetings

Guiding the team

Removing obstacles

Page 77: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 77

Scrum Events

Sprint Sprint Planning Meeting Daily Scrum Sprint Review Sprint Retrospective

Page 78: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 78

Scrum Artifacts

Product Backlog Sprint Backlog Increment – not that one!

Page 79: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 79

Scrum of Scrums (SOS)

For large project teams One person per team attends Frequency depends on need Time of meeting depends on need

Pre-requisite: All teams must be synchronized at a product or portfolio level

A backlog must be maintained Must use a no name policy, instead use team name Like daily scrum problem resolution should be done after the meeting

Page 80: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 80

Agenda of SOS

What has your team done since last meeting? What will your team do before next meeting? Is there any impediment for you? Will you be creating an impediment for others?

Page 81: Agile training workshop

XP (Extreme Programming)

Page 82: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 82

Roles in XP 12 Practices of XP

XP

Page 83: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 83

Roles in XP

• Customer: • Create and prioritizes stories. • Can change release date by adding/ removing stories.

• Programmer: • Estimates stories, usually works in pairs, and writes codes and tests.

• Coach: • Is preferred but optional. • Monitors processes and mentors and helps team.

• Tracker: • Is preferred but optional. • Monitors progress. • A programmer can be a tracker in the same or in a different pair.

Page 84: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 84

1. Planning Games2. Small Releases3. Metaphor4. Simple Design5. Test-driven development6. Refactoring7. Pair Programming8. Collective Ownership9. Continuous Integration10.40-Hours a Week11.On-Site Customer12.Coding Standards

12 Practices of XP

Page 85: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 85

12 Practices of XP (contd…)

1. Planning games: To elicit requirements + to estimate

2. Small Releases:Begin with smallest useful feature set

3. Metaphor/Product theme: Provides easy to remember naming conventions

4. Simple design:Just enough to get the job done

5. Test-driven development (TDD):Write test before adding feature. If test runs, the job is done

6. Refactoring: Rewrite code to improve internal design

Page 86: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 86

12 Practices of XP (contd…)

7. Pair programming: Work on same computer. “Driver” writes code and “observer” or “navigator” reviews each line

8. Collective code ownership: Anyone can change anywhere

9. Continuous integration: At least once per day

10.Forty hour work week: Overtime of more than a week is considered as a serious process failure

11.On site customer: Continuous access is available

12.Coding standard: Everyone follows them

Page 87: Agile training workshop

Kanban

Page 88: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 88

Kanban Board

Feature to develop Tasks in

queue

Tasks in progress

Tasks complete

Feature complete

Page 89: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 89

Page 90: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 90

Using JIRA Project Dashboard / System dashboard Project Roadmap Project Issues Summarization Administration

Versions Issue Types Workflows Components (default assignees) Roles

Filters Scrum Board

Plan Work Report Filters on board

Issue Reporting

Page 91: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 91

• Questions?

Thank you!

Page 92: Agile training workshop

Syed Salman Ahmed, ACP | APM – Confiz Limited 92

References

• www.mountaingoatsoftware.com• http://ketiljensen.files.wordpress.com/2009/10/kanban_board_1.png• http://en.wikipedia.org/wiki/Agile_software_development