You are on page 1of 43

An Introduction to AGILE

By
Sunil Phaltankar
Before we start …
• One good news
– More and more projects are moving to AGILE.
• Why ?
• One not-so good news
– Many AGILE projects do not end up in getting the
benefits, that is expected by following AGILE
• Why ?
• One question
– What makes AGILE project success?
Agenda
• Why AGILE
• What is AGILE Duration : ~ 2 hours

• Phases of AGILE
• AGILE Methods
• AGILE Scrum
• Scalability
Why AGILE ?
• 80%* of all software projects fail to deliver
working software on time and within budget
• Top 5 Reasons: * IEEE estimate

– Lack of customer involvement


– Poor or vague requirements
– Unrealistic schedules
– Lack of change management
– Lack of sufficient testing
– Inflexible processes
What is AGILE?
Agile: Dictionary meaning
adj.
• Characterized by quickness, lightness, and ease of
movement; nimble.
• Mentally quick or alert: an agile mind.

[French, from Latin agilis, from agere, to drive, do.]


• agilely ag'ile·ly adv.
• agileness ag'ile·ness n.

Agile is a light-weight methodology that allows teams to develop


software in the face of vague and rapidly changing requirements
How AGILE addresses top 5 reasons?
• Lack of customer involvement
– Agile made customer a member of the team.
• Poor or vague requirements
– Requirements are written as acceptance tests (user stories) just
before any code is written.
• Unrealistic schedules
– Agile make estimating & scheduling a collaborative process
between customer & development team.
• Lack of change management
– Change is crux of Agile. Anything can change except delivery
date. Everyone has to be realistic about change.
• Lack of testing
– Agile involves continuous build and testing of the code.
• Inflexible processes
– Agile integrates project management into the process.
What is AGILE Methodology?
• Software development is
– Incremental & Iterative
• small software releases, with rapid cycles
– Co-operative
• Customers and developers working constantly together with
close communication
– Straightforward
• the method itself is easy to learn and to modify, well
documented
– Adaptive
• able to make last moment changes

Iterative and incremental development, where requirements


and solutions evolve through collaboration between self-
organizing, cross-functional teams
Agile Manifesto
A statement of values
Individuals &
over Processes & Tools
interactions

Comprehensive
Working Software over
Documentation

Customer Contract
over
Collaboration Negotiation

Responding to
over Following a Plan
Change
Source: www.agilemanifesto.org
AGILE Characteristics
• Break task into small increments with minimal planning
• Iterations are short time-frames (time-boxes)
• Each iteration involves: Planning, Requirement
Analysis, Design, Coding, Unit Testing, and Acceptance
Testing (full SDLC)
• Multiple iterations may be required to release new
features
• Minimizes overall risk
• Allows the project to adopt to changes quickly
• Cross-functional and Self-organizing teams
• Team members take responsibility for tasks that
delivers the functionality
AGILE Characteristics – cont.
• Emphasizes face-to-face communication (co-location)
• Typically small (5-9) team to simplify communication
and team collaboration
• Larger projects delivered by multiple teams working
towards common goal
• Emphasizes working software as the primary measure
of progress
• Specific tools and techniques used to improve quality:
– Continuous integration & Automated testing,
– Test Driven Development, Pair programming
– Design patterns, Domain driven designs
– Code refactoring
Phases of AGILE
• AGILE Planning
• AGILE Design
• AGILE Development
AGILE Planning
• Project Scope:
– Customer Requirements may change frequently
– No focus on clear cut project scope
– Project scope is frozen only for current iteration
• Estimation:
– limited for particular feature in particular iteration
– Done by the team, collaboratively with customer
– More realistic
– Previous experiences may be utilized
• Project Duration:
– Fixed by customer and deadline is sacred
– Features may be added, removed or scaled down to
adhere to deadline.
AGILE Planning – cont.
Agile Plan:
• Created & owned by Agile Team
• In consultation with all stakeholders
• High Level Plan
– Overall Objectives & Goals of product/project
– Schedule for the same
– In consultation with team
– Feature based
• Comprehensive Plan
– Detailed plan
– By team, during periodic team meeting
– Complements high level plan
• Plans are updated once tasks are completed by team
AGILE Design
• Software architecture & design that provide room for
future additions & enhancements
– Modularize
– Keep Clean & simple
• UML used to define and represent system architecture
& workflow
• Logically dividing complex tasks into smaller sub-tasks
• Focus on code structures than design diagrams
• Object oriented design strategy
– Code Abstraction
– Inheritance
– Week coupling
– High Cohesion
AGILE Development
• Iterative & incremental development
• Each iteration involves full SDLC:
– Planning:
• Scope (features) identification
• Requirement Analysis
• Designing
– Coding:
• Coding and unit testing
• Continuous integration & Acceptance Testing
• Refactoring
– Review:
• Presentation & Review of completed work
• Feedback from customer
• Acceptance / Rejection of work by customer
AGILE methods
Well-known agile software development methods:
– Agile Modeling
– Agile Unified Process (AUP)
– Dynamic Systems Development Method (DSDM)
– Essential Unified Process (EssUP)
– Extreme Programming (XP)
– Feature Driven Development (FDD)
– Open Unified Process (OpenUP)
– Scrum
– Velocity tracking
AGILE Development Method

AGILE SCRUM
AGILE Scrum
Scrum is an iterative, incremental methodology
for project management.
AGILE Scrum - Characteristics
• Iteration: 2-4 weeks ‘sprint’
• Incremental: Product progresses in a series of
‘sprints’
• Self-organizing teams, team collaboration
through daily scrum meetings
• Constant Customer involvement from
requirement definition till acceptance
• Requirements are captured as items in a list of
‘product backlog’
• No specific engineering practices prescribed
(Team can use any or none)
Sprints
• Scrum iteration
• 2–4 weeks or a calendar month at most
• A constant duration leads to a better rhythm
• Product is designed, coded, and tested during
the sprint
AGILE Scrum - Development
Requirements Design Code Test

Rather than doing all of


one thing at a time...
...Scrum teams do a little
of everything all the time

Source: “The New Product Development Game” by Takeuchi and Nonaka. Harvard Business Review, January 1986.
Scrum Framework
Roles
•Product owner
•Team
•Scrum Master
Meetings
•Sprint Planning
•Daily Scrum Meeting
•Sprint Review
•Sprint Retrospective
Artifacts
•Product Backlog
•Sprint Backlog
•Burn down
Scrum Framework
Roles
•Product owner
•Team
•Scrum Master Meetings
•Daily Scrum Meeting
•Sprint Planning
•Sprint Review
•Sprint Retrospective
Artifacts
•Product Backlog
•Sprint Backlog
•Burn down
Product Owner
• Voice of the customer
• Decide on release date and content
• Defines sprint goals
• Defines the features (user stories) of the product
• Prioritize features according to market value
• Adjust features and priority every iteration, as
needed
• Accept or reject work results
• Be responsible for the profitability of the product
(ROI)
The Team
• Responsibility to deliver product
• Typically 5-9 people
• Cross-functional:
– Programmers, testers, user experience designers,
etc.
• Members should be full-time
– May be exceptions (e.g., database administrator)
• Teams are self-organizing
• Membership should change only between
sprints
The Scrum Master
• Removes impediments
• Shield the team from external interferences
• Enable close cooperation across all roles and
functions
• Responsible for enacting Scrum values and
practices
• Ensure that the team is fully functional and
productive
• Represents management to the project
(though not a leader of the team)
Scrum Framework
Roles
•Scrum Master
•Product owner
•Team
Meetings
•Sprint Planning
•Daily Scrum Meeting
•Sprint Review
•Sprint Retrospective
Artifacts
•Product Backlog
•Sprint Backlog
•Burn down
Sprint Planning Meeting
• Team selects items from the product backlog they
can commit to completing
• Sprint backlog is created
– Tasks are identified and each is estimated (1-16 hours)
– Collaboratively, not done alone by the Scrum Master
• High-level design is considered

As a vacation 1. Code the middle tier (8)


planner, I want 2.
3.
Code the user interface (4)
Write test fixtures (4)
to see photos of 4. Code the foo class (6)
the hotels. 5. Update performance tests (4)

Product Backlog Sprint Backlog


Sprint Planning Meeting – cont.
Team Sprint planning meeting
Capacity
Sprint prioritization
Product • Analyze and evaluate product Sprint
Backlog backlog Goal
• Select sprint goal
Business
Conditions Sprint planning
• Decide how to achieve sprint goal
Current (design) Sprint
Product • Create sprint backlog (tasks) from
product backlog items (user stories Backlog
/ features)
Technology • Estimate sprint backlog in hours
The Daily Scrum Meeting
• Called a ‘daily scrum’ or ‘daily stand-up’ meeting
• Parameters
– Daily at same time, same location
– 15-minutes max.
– Stand-up
• Not for problem solving
• Whole world is invited
• Only team members, Scrum Master, product
owner, can talk
• Helps avoid other unnecessary meetings
The Daily Scrum Meeting – cont.
• Everyone answers 3 questions :
1
What did you do yesterday?
2
What will you do today?
3
Is anything in your way?
• These are not status for the Scrum Master
• They are commitments in front of peers
Sprint Review Meeting
• Review the completed & non-completed work
• Present completed work during the sprint
– A demo of new features or underlying architecture
• In-complete work may or may not be carried over
to next sprint
• Informal
– Max 4 hour
– 2-hour prep time
– No slides
• Whole team participates
• Invite the world
Sprint Retrospective Meeting
• Done after every sprint (after sprint review
meeting)
• All team members reflect on past sprint
• Make continuous process improvements
• Whole team, Scrum Master, Product Owner
participates
• Other stakeholders may attend
• Two questions asked:
– What went well during sprint?
– What can be improved in the next sprint?
• Max 3 hours
Scrum Framework
Roles
•Scrum Master
•Product owner
•Team Meetings
•Daily Scrum Meeting
•Sprint Planning
•Sprint Review
•Sprint Retrospective
Artifacts
•Product Backlog
•Sprint Backlog
•Burn down
Product Backlog
• The Requirements
• A list of all desired work / features on the
project
• Ideally expressed such that each item has
value to the users or customers of the product
(in the form of user stories)
• Prioritized by the product owner
• Reprioritized at the start of each sprint
Sample Product Backlog
Backlog Items Estimate
Allow a guest to make a reservation 3
As a guest, I want to cancel a reservation. 5
As a guest, I want to change the dates of a reservation. 3
As a hotel employee, I can run RevPAR reports 8
(revenue-per-available-room)
Improve exception handling 8
… 30
… 30
Sprint Backlog
• Product backlog items selected for the sprint
• Tasks & subtasks created for sprint backlog items
• Individuals take up tasks – never assigned
• Team estimates each task and updates sprint
backlog
• Estimated work remaining is updated daily
• Any team member can add, delete or change any
task of sprint backlog
• If not clear, assign max time to backlog item, then
later break it down to tasks & subtasks and
update the estimate
Sample Sprint Backlog
Task Mon Tue Wed Thu Fri
Code the user interface 8 4 8
Code the middle tier 16 12 10 4
Test the middle tier 8 16 16 11 8
Write online help 12
Write the foo class 8 8 8 8 8
Add error logging 8 4 4

Sprint Burn-down chart
60
52
50
40 42
40

30 27
Hours

20 16

10

0
Mon Tue Wed Thu Fri
Estimated Work Remaining
Scalability
• Called Scrum of Scrums
• Individual team is 7 ± 2 people
– Scalability comes from team of teams
• Factors in scaling:
– Type of application
– Team size
– Team dispersion
– Project duration
• Scrum has been used on multiple 500+ person
projects
Questions?
• What makes AGILE project Success ?
Attribution
Some portions of this presentation are from:

A presentation by: Mike Cohn


Mountain Goat Software, LLC
www.mountaingoatsoftware.com
(720) 890-6110
Thank You

Sunil Phaltankar
Sunil.Phaltankar@mastek.com

You might also like