You are on page 1of 42

Created by ejlp12@gmail.

com, 6 Nov 2009

Agile & SCRUM


Why, What & How.
Presented to project team members. Pictures are copied from Internet and not my copyright. Some slides are also taken from Internet.

AGILE METHODOLOGY

Why Agile Software Development?

What is Agile?
The agile process is based on the empirical approach, accepting the complexity of the problem and addressing it through frequent inspection and constant adaptation Ken Schwaber

Agile, basic
Adaptive and responsive to change Increase productivity and identifying and prioritizing high value features Positive emergent culture that allows for continuous improvement Avoid the pitfalls of waterfall

More on characteristics
Empirical (relies on observation and experience) Lightweight Adaptive Fast but never hurried Exposes wastefulness Customer-centric Pushes decision making to lower levels Fosters trust, honesty and courage Encourages self-organization

Agile manifesto
Individuals & Interactions Working Software Customer Collaboration Responding to Change over over over over Process & Tools Comprehensive Documents Contract Negotiation Following a Plan

Things on the right are important. Things on the left are more important!!

Agile methodologies
Feature Driven Development (FDD) Extreme programming (XP) Crystal Lean Development SCRUM Rational Unified Process (RUP) Adaptive Software Development (ASD) Dynamic System Development Method (DSDM)

Agile SW development practices


Essential Practices
Regular refactoring (many times daily)
This produces well-componentized designs, clear APIs and clean code without duplications

Frequent check-ins (many times daily) Unit Testing


Leading to Test Driven Development (TDD)

Continuous Build and Integration


Running automated tests on each build

Just-in-time code reviews (e.g. pair programming)

Example methodologies: XP, Agile Modeling

Agile SW Testing
Early involvement
An Agile project begins when testers convert high-level requirements into testable specifications.

Work as part of the development team


The testers work with the developers to pick unit test and acceptance test frameworks, and to test the software in parallel with development. This requires a shift in thinking.

Automate everything
(wherever possible)

Test early, test often


Never leave the testing until the end

The Agile Customer


Customer is a role, not a person
Also known as Product Manager, Product Owner Proxy for the entire customer group

Responsible for the Release Plan Responsible for managing the Product Backlog Determines business value & priority on a regular basis Provides information to development team for estimation purposes Works with testers to produce clear, testable user stories for each iteration Inspects software regularly (e.g. runs acceptance tests) and provides feedback to the development team

SCRUM

SCRUM is
Scrum is an agile, lightweight process that can be used to manage and control software and product development using iterative, incremental practices Wrapping existing engineering practices, including Extreme Programming and RUP, Scrum generates the benefits of agile development with the advantages of a simple implementation It is adaptive, quick, self-organizing and have few rests

..process framework, not methodology

Why SCRUM

It is HOT!
Its work and simple. More practical (practical process model). A rule of thumb or best practices for process inspection and continue adaptation.

SCRUM Characteristics
Self-organizing teams Product progresses in a series of month-long sprints Requirements are captured in a list of product backlog No specific engineering practices prescribed

SCRUM doesnt tell how to develop Software. Find XP, TDD, etc

Roles and Responsibilities


Product Owner
Defines the features of the product, decides on release date and content Is responsible for the profitability of the product (ROI) Prioritizes features according to market value Can change features and priority every 30 days Accepts or rejects work results

Scrum Master
Ensures that the team is fully functional and productive Enables close cooperation across all roles and functions and removes barriers Shields the team from external interferences Ensures that the process is followed. Invites to daily scrum, iteration review and planning meetings

Team
Cross-functional, seven plus/minus two members Selects the iteration goal and specifies work results Has the right to do everything within the boundaries of the project guidelines to reach the iteration goal Organizes itself and its work Demos work results to the Product Owner

Key Artifacts
Product backlog List of requirements & issues
Owned by Product Owner Anybody can add to it Only Product Owner prioritizes

Sprint Goal
A short theme for the sprint, typically one line summary:
For example, Make the application run on Oracle in addition to SQL Server

Declared by Product Owner Accepted by team

From Sprint Goal to Sprint Backlog


Scrum team takes the Sprint Goal and decides what tasks are necessary Team self organizes around how theyll meet the Sprint Goal Manager doesnt assign tasks to individuals Managers dont make decisions for the team Sprint Backlog is created

Sprint backlog
List of tasks Owned by team Only team modifies it

Blocks list
List of blocks & unmade decisions Owned by Scrum Master Updated daily

Product Backlog

Sprint Backlog

Sprint Backlog (after 5th days)

Key Meetings
Sprint Planning Meeting
Hosted by Scrum Master; -1 day In: Product Backlog, existing product, business & technology conditions
Select highest priority items in Product Backlog; declare Sprint Goal Team turns selected items into Sprint Backlog

Output Sprint Goal, Sprint Backlog

Sprint Planning Meeting

Product Backlog Team Capabilities Business Conditions Technology Current Product Sprint Goal

Sprint Planning Meeting

Sprint Backlog

Key Meetings (Contd)


Daily Scrum
Hosted by Scrum Master 15 30 minutes stand-up meeting Attended by all: pigs (scrum team) and chickens (others), but only pigs can talk Same time every day; three questions:
What did you do yesterday? What will you do today? What obstacles are in your way?

Team updates Sprint Backlog; Scrum Master updates Blocks List

The team should reflect on how to make them most effective. Sit or stand, up to you!

SCRUM Process
Daily Scrum Meeting 24 hours

Burndown Chart

Sprint Sprint Backlog Backlog tasks expanded by team 30 days

Product Backlog As prioritized by Product Owner

Potentially Shippable Product Increment

Key Meetings (contd)


Sprint Review Meeting
Hosted by Scrum Master, attended by
Customers Management Product Owner Team

Team presents what it accomplished during the sprint Team demos Increment 2-hour Hold retrospective Announce next Sprint Planning Meeting

Tools: Burn-down chart


For monitoring progress during a sprint. Remaining work is plotted on the Y axis, Time proceeds along the X axis. As tasks are completed, the line slopes down.
Burndown Chartthe velocity of turning requirements into potentially shippable increments of functionality.

Remaining Effort in Hours

5/
900 800 700 752 762 664 619 600 500 400 300 200 100 0

Burndown chart
Progress

Date

304 264 180

3/ 2 5/ 00 5/ 2 2 5/ 002 7/ 2 5/ 00 9/ 2 5/ 200 11 2 5 / /2 0 13 02 / 5/ 200 15 2 / 5/ 200 17 2 5 / /2 0 19 02 / 5/ 200 21 2 5 / /2 0 23 02 / 5/ 200 25 2 / 5/ 20 27 02 / 5/ 200 29 2 5 / /2 0 31 02 /2 00 2


104 20

Scrum of Scrum

Summary
Roles : Product Owner, ScrumMaster, Team Artifacts : Product Backlog, Sprint Backlog, Block List and Burndown Chart Ceremonies : Sprint Planning, Sprint Review, Sprint Retrospective, & Daily Scrum Meeting

Concept & Process (PM & SM)


Project Managers say Schedule Scope Work Breakdown Structure Productivity Estimate to Complete
Project Managers say Plan Execute Monitor & Control Close

Scrum Masters say Sprint Sprint Backlog Task Breakdown Velocity Burndown Chart
Scrum Masters say Define Backlog, Plan Sprint Develop and Test Move Stickies, have Daily Scrums Demo, Release, have Retrospective

Risks & Challenges


Educating the team Dev, QA, Business Estimations to get work done not just engineering Changing the mindset of all stakeholders PM, team, management, client and users

Reduced importance to signoffs and approvals, increased value to collaboration and transparency
Either budget or scope should be flexible

SCRUM IN MY PROJECT

Case study: Our project


We havent done a SCRUM yet We planning it We need to adapt not adopt No big bang adoption

Start by a simple but working, NOT complete but not working

The Goal is Success


Success factor as seen by customer On time No bugs, right features, good performance Successful deployment/release Success factor as seen by my employer On time to get money Maximum revenue The client is happy

The Challenges are


Its kind like SCM rather than PM Developer tends to Hard to estimate working effort (time) Dont want to commit to timeline Complaining Our work culture: I only doing as you requested I dont care about documentation As long as it is run (passed the test), its done Working time is not effective The CR is not iterative as seen by customer

How?
We will commit to any task that we can do We will use tools that works for us We will share each other Document first & document as simple as possible We start development early It seems scrum of scrum will work rather than scrum Minimize testing iteration whenever possible Characterize each CR then reduce work if possible We will not do scrum for small (effort) CR (team less than 3) Detail plan will be discussed after this presentation!

What you should keep in mind

SCRUM TEAM MEMBER?


SCRUM team, keep asking these questions: What is the simplest thing that can move the project forward? Does what I am doing right now move the project forward at all? Are there any impediments that are preventing progress?

Escalate impediment even thought they dont really care about it. Sprint is belong to the team and is a teams goal

Dont procrastinate, do something, no matter how small Ken Schwaber, Vienna, April 2004

END

You might also like