abc of agile (scrum & extreme programming)

46

Upload: amardeep-vishwakarma

Post on 13-Jan-2015

1.039 views

Category:

Technology


0 download

DESCRIPTION

What is Agile Agile Principles Agile Myths Scrum - Scrum Roles - Sprint Planning - Sprint - Sprint Cycle - Daily Standup - Sprint Review - Sprint Retrospective - User Story - Velocity - Estimation - Story Points Extreme Programming - Pair Prograaming - Unit Testing - Coding Standards - Continous Integration

TRANSCRIPT

Page 1: ABC of Agile (Scrum & Extreme Programming)
Page 2: ABC of Agile (Scrum & Extreme Programming)
Page 3: ABC of Agile (Scrum & Extreme Programming)
Page 4: ABC of Agile (Scrum & Extreme Programming)

From Wikipedia:

Its a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams........

Page 5: ABC of Agile (Scrum & Extreme Programming)

Manifesto for Agile Software Development

`We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions - over processes and toolsWorking software - over comprehensive documentation

Customer collaboration - over contract negotiationResponding to change - over following a plan

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

Page 6: ABC of Agile (Scrum & Extreme Programming)
Page 7: ABC of Agile (Scrum & Extreme Programming)
Page 8: ABC of Agile (Scrum & Extreme Programming)

Traditional “Waterfall” Approach

DetailedDesign

DetailedDesign

Concept Concept

Build Build

Page 9: ABC of Agile (Scrum & Extreme Programming)

Agile Process

Concept

DetailedDesign

DetailedDesign

Build Build

DetailedDesign

DetailedDesign

Build Build

SprintReview

SprintReview

SprintReview

SprintReview

Agile processes are based on a contionous process of Design it, Build it, Test it, Ship it.

Page 10: ABC of Agile (Scrum & Extreme Programming)

Being Agile – What's involved ?

Goal

Deliver high value, high quality working s/w quickly & frequently

Ceremonies

Training

Release Planning

Iteration Planning

Daily Stan-up

Review / demo

Retrospective

Techniques

Iterations

User stories

Co-location

Task board

Burn chart

Planning Poker

Done-done-done

Pairing

Unit Test

Continous integration

Participate

Fundamentals

Short feedback

loops

Inspect & adapt

Collaboration & teamwork

Page 11: ABC of Agile (Scrum & Extreme Programming)

Agile Myths

- No documentation

- No scope management

- No design

- 100% automation

- Only iterative development

- No architecture

- No strick deadline (I can change my mind whenever I want to)

Page 12: ABC of Agile (Scrum & Extreme Programming)

Scrum&

Extreme Programming

Page 13: ABC of Agile (Scrum & Extreme Programming)

Scrum Principles✔ Time-boxes

✔ Cross-functional teams

✔ Open communications

– Within team– With stakeholders

✔ Priorities set by Product Owner

✔ Demonstrable results

✔ Responsive to change

Page 14: ABC of Agile (Scrum & Extreme Programming)
Page 15: ABC of Agile (Scrum & Extreme Programming)

ScrumRoles

- Scrum Master- Scrum Team- Product Owner- Stakeholders

Sprint

Artifacts- Product Backlog- Sprint Backlog- Burn down / up charts

Meetings- Sprint Planning- Daily Stand-up- Sprint Review- Sprint Retrospective

Page 16: ABC of Agile (Scrum & Extreme Programming)

Roles* Scrum Master

Not “command & control” project managerProcess coach and team facilitatorRemover of roadblocks

* Scrum TeamIndividuals responsible for the Sprint resultsMix of skills representing multiple disciplinesUsually 6-8 individuals

* Product OwnerIndividual responsible for productResponsible for product profitability (ROI)Adjusts feature list and priorities for each SprintAccepts or rejects work results

* Users & StakeholdersInterested in results but not responsible for deliverables

Page 17: ABC of Agile (Scrum & Extreme Programming)

The Sprint

* Time boxed effortUsually 2 weeks to 1 monthCan be longer or shorter

* Defined workloadNo changes once Sprint is begun

* Begins with Planning Meeting

* Ends with demonstrable Release

Page 18: ABC of Agile (Scrum & Extreme Programming)
Page 19: ABC of Agile (Scrum & Extreme Programming)

Product Backlog

Page 20: ABC of Agile (Scrum & Extreme Programming)

Product Backlog

* All features and functions for final product

* May be subdivided into releases

* Prioritized by Product Owner

* Initial backlog is established and releases are defined prior to start of Sprints

* Product backlog is reviewed and updated throughout the project

* Time must be allotted during Sprints to allow for this activity

Page 21: ABC of Agile (Scrum & Extreme Programming)

Sprint Backlog

* Features and functions targeted for a single Sprint- Frequently broken down into User Stories; Especially if function is complex

* May include technical requirements or objectives- e.g.; database design, UI standards, architecture documentation

Page 22: ABC of Agile (Scrum & Extreme Programming)

Burnup Charts

Page 23: ABC of Agile (Scrum & Extreme Programming)

Sprint Planning

* Product Owner and Team

* Review of Product Backlog

* Product Owner provides definition and details of features and functions

* Negotiation of what will be in Sprint

* May identify new Product Backlog needs

* Results in Sprint Goals

Page 24: ABC of Agile (Scrum & Extreme Programming)

Daily Stand-up

Page 25: ABC of Agile (Scrum & Extreme Programming)

Daily Stand-up

* Standup 15 minute meeting

* Each team member answers 3 questions:- What have you done since the last meeting?- What will you do before the next meeting?- What is preventing you from accomplishing your tasks?

* For benefit of other team members

* Not a “status report” to the ScrumMaster

Page 26: ABC of Agile (Scrum & Extreme Programming)

Sprint Review

* Results of Sprint are demonstrated to Product Owner

* Owner accepts or rejects results

* Results are input to:- Next Sprint Planning meeting- Sprint Retrospective

Page 27: ABC of Agile (Scrum & Extreme Programming)

Sprint Retrospective

* Meeting with Sprint Team- May include Product Owner

* Process review and modification

* Lessons learned applied in following Sprints

* Techniques– Mute Mapping– Brainstorming

Page 28: ABC of Agile (Scrum & Extreme Programming)

Mute – Mapping Technique

Page 29: ABC of Agile (Scrum & Extreme Programming)

INDEX CARD 4”X6”

Three Parts (3 Cs)

Card

Conversation

Confirmation

User Story

I N V E S T

The acronym INVEST stands for,

I – Independent, N – Negotiable, V – Valuable, E – Estimable, S – Small, T - Testable

Page 30: ABC of Agile (Scrum & Extreme Programming)

User Story

Provides a simple medium for

– Gathering basic information about stories,

– Recording high-level requirements,

– Developing work estimates, and

– Defining acceptance tests

Acts as agreements between customers and team members to discuss detail requirements during an iteration

Page 31: ABC of Agile (Scrum & Extreme Programming)

Example : User Story Card (Formal)

As a <role>,

I want <goal/desire>

so that <benefit>

As a

Who wants this piece of functionality

I want

What the user wants

So that

Why the user wants it

As an employee, I want to purchase a parking pass so that I can park my car safely in the basement and save money.

Priority : 8

Estimate : 4

Page 32: ABC of Agile (Scrum & Extreme Programming)

Theme and Epic

Theme is a set of related user stories that may be combined together and treated as a single entity for either estimating or release planning

Epics are large user stories with

lower priority. They are too big to implement in a single iteration and therefore they need to be disaggregated into smaller user stories at some point

Page 33: ABC of Agile (Scrum & Extreme Programming)

Velocity

* Velocity is a measure of a team’s rate of progress per iteration.

* It is calculated by summing the number of story points assigned to each user story that the team completed during the iteration

Question :

The project team completes four stories in one iteration,

Story A – 5, Story B – 3, Story C – 7, Story D – 5. Calculate the Velocity?

Answer :

Summing up the story points assigned to each user story gives the velocity.

Hence velocity = 5+3+7+5 = 20

Page 34: ABC of Agile (Scrum & Extreme Programming)

Prioritizing Requirements - MoSCoW

Page 35: ABC of Agile (Scrum & Extreme Programming)

Agile Estimation

Agile Estimation

Page 36: ABC of Agile (Scrum & Extreme Programming)

Estimating Size with Story Points

Story Points are the unit of measurement for expressing the overall size of a user story, feature, or other piece of work.

Page 37: ABC of Agile (Scrum & Extreme Programming)

Story Points

The “bigness” of a task is influenced by,• How hard it is (complexity)• How much of it there is (effort involved)• How risky it is

Relative values are what is important:• A login screen is a 2, A search feature is an 8.

Estimate using the relative values• Select the smallest story and estimate as 1 story point• Select a medium-sized story and estimate it as 5 story points

Page 38: ABC of Agile (Scrum & Extreme Programming)

Planning Poker

An iterative approach to estimating Steps

- Each estimator is given a deck of cards, each card has a valid

estimate written on it - Customer/product owner reads

a story and it’s discussed briefly - Each estimator selects a card

that’s his or her estimate - Cards are turned over so all can

see them - Discuss differences (especially

outliers)- Re-estimate until estimates

converge

Page 39: ABC of Agile (Scrum & Extreme Programming)

Extreme programming

Page 40: ABC of Agile (Scrum & Extreme Programming)

Extreme programming has been described as following practices

Fine scale feedback - Pair programming - Test-driven development

Continuous process - Continuous integration - Refactoring or design improvement - Small releases

Shared understanding - Coding standards - Collective code ownership - Simple design

Testing - All code must have Unit tests - All code must pass all Unit tests before it can be released. - When a Bug is found tests are created before the bug is addressed

XP

Page 41: ABC of Agile (Scrum & Extreme Programming)

Pair Programming

* Better Code* Collective Code Ownership* Mentoring* Increased discipline* Improved morale* Team cohesion

Page 42: ABC of Agile (Scrum & Extreme Programming)

Unit Testing

* Unit Testing reduces the level of bugs in production code.* Unit Testing saves you development time.* Automated tests can be run as frequently as required.* Unit Testing makes it easier to change and refactor code.* Unit Testing can improve the design of code especially with

TDD.* Unit Tests are a form of documentation.* Unit Testing inspires confidence!* Unit Tests are a measure of completion.* Unit Testing is FUN!

Page 43: ABC of Agile (Scrum & Extreme Programming)

Coding Standards

• Code Integration

• Team Member Integration

• Maintenance

• Uniform Problem Solving

• Minimizes Communication

• Minimizes Performance Pitfalls

• Saves Money Due to Less Man Hours

Page 44: ABC of Agile (Scrum & Extreme Programming)

CI * Say goodbye to long and tense integrations

* Increase visibility which enables greater communication

* Catch issues fast and nip them in the bud

* Spend less time debugging and more time adding features

* Proceed in the confidence you’re building on a solid foundation

* Stop waiting to find out if your code’s going to work

* Reduce integration problems allowing you to deliver software more rapidly

Page 45: ABC of Agile (Scrum & Extreme Programming)

CI – Reminder / Rules

* Check in frequently* Don’t check in broken code* Don’t check in untested code* Don’t check in when the build is broken* Don’t go home after checking in until the system builds-----* Maintain a Single Source Repository* Make Your Build Self-Testable* Every Commit Should Build the Mainline on an Integration Machine* Keep the Build Fast* Everyone can see what's happening* Automate Deployment-----* Detect integration errors as quickly as possible * Assumes a high degree of tests * Always have a deployable build* Generate metrics to guide project management* Continuous Integration is Vital for Agile Development

Page 46: ABC of Agile (Scrum & Extreme Programming)

Q & A