Agile Scrum
Agile Scrum
planning 1 2 3 4 5 6 might be 4
weeks
Integration
daily unit testing Product
Server
2. Welcome changing 6. The most efficient and effective 10. Simplicity--the art of
requirements, even late in method of conveying information maximizing the amount of work
development. Agile processes to and within a development team not done--is essential.
harness change for the customer's is face-to-face conversation.
competitive advantage.
3. Deliver working software 7. Working software is the primary 11. The best architectures,
frequently, from a couple of measure of progress. requirements, and designs emerge
weeks to a couple of months, from self-organizing teams.
with a preference to the shorter
timescale.
4. Business people and 8. Agile processes promote 12. At regular intervals, the team
developers must work together sustainable development. The reflects on how to become more
daily throughout the project. sponsors, developers, and users effective, then tunes and adjusts
should be able to maintain a its behavior accordingly.
constant pace indefinitely.
Agile – Questions and Challenges?
Documentation – it is still important in an Agile project.
If it is the only kind of communication in your project, it isn’t good
Real working code is more valuable than documents – less ambiguous
Documents – easy to leave something out, easy to misinterpret
Development plans – also important in an Agile project
the format of an Agile development schedule is a bit different from a conventional
project plan.
Development plan includes “iterations”
Each iteration gives the team has a chance to incorporate what they learn, rather
than just following a non-adaptive plan
Contracts – we expect to have contracts, but we need to talk with the customers as
well.
Customer collaboration is one way to reduce development costs
Do you want to deliver “everything” the customer asked for in the original
contract? No – if the customer no longer needs it, the extra code will increase
maintenance costs
Always ask: Who needs this feature and how does it contribute to the value of
the product?
Why is Agile Development
important?
The world is a lot different today. A large feature set
might only increase costs for the customer.
There is a constant introduction of new technology
New players enter the market,
New requirements are added
“Small is Beautiful”
If we are listening to the customer, we will reduce our chances of
being “blindsided” by a smaller, more flexible competitor
Anything that helps reduce maintenance costs will contribute to
the bottom line
How hard is it to be Agile?
“Don’t do Agile, be Agile”
Just doing “development in iterations” isn’t enough
Agile Development is about:
Keeping the process lightweight
Making real progress in each iteration
Communicating – face-to-face when possible
Actively gathering customer input – early and often
Being willing to make minor changes to your process
Agile Methods: Scrum
History of Scrum
1995:
analysis of common software development processes not suitable for empirical,
unpredictable and non-repeatable processes
Design of a new method: Scrum by Jeff Sutherland & Ken Schwaber
Enhancement of Scrum by Mike Beedle & combination of Scrum with Extreme
Programming
1996:
introduction of Scrum at OOPSLA conference
2001:
publication “Agile Software Development with Scrum” by
Ken Schwaber & Mike Beedle
THREE Meetings
Planning (Release & Sprint)
Daily Scrum
Sprint Review
THREE Lists
Product Backlog
Spring Backlog
Impediments List
http://www.youtube.com/watch?v=vmGMpME_phg
a 2 to 4 week iteration
2 to 4
weeks
Product Backlog
What does a Product Backlog look like?
It is a simple spreadsheet
All “Product Backlog Items (PBIs)” are in priority order
Some PBIs are the names of “customer features”
Could be a user screen, an interaction scenario or use case, a new report, a
new algorithm
Much, much smaller than a telecom system feature
Some PBIs are internal tasks that contribute to the value of the product
Can a design document be a PBI? Maybe.
If it is a document that nobody reads, leave it out (because you are Agile)
Can an early GUI prototype be a PBI? Certainly.
Effort estimates – each PBI should have an “estimated effort” that is assigned
by the team
Should managers do the estimation of Product Backlog Items? No, never.
Estimates must come from the team – and they should be realistic
Sample Product Backlog
Roles on a Scrum team
Product Owner
Responsible for the ROI
Available for the Team during the whole
product development period
Gets answers to all requirements questions
Talks with customers and understands their
priorities
Keeps the Product Backlog current
Scrum Master
Scrum rules guardian
Coach the team
Removes impediments
Prevents outside interference during an
iteration
Scrum Master is both a teacher and a
referee
Daily Scrum Meeting
The Scrum Team has two kinds of “once-per-iteration” meetings:
An Iteration Planning meeting at the beginning of each Sprint
A Sprint Review meeting at the end of each Sprint
In addition, the Scrum Team has one daily meeting: the Daily Scrum
Daily Scrum is 15 minutes – no longer
Everyone is supposed to speak:
“This is what I did yesterday.”
“Here is what I am planning to do today.”
“These are the obstacles in my way.”
No problem solving in the meeting – everything is taken offline later.
What is the purpose of the Daily Scrum? To make sure that
problems and obstacles are visible to the team
Obstacles are valuable input for managers
Retrospectives
One important idea in Agile Development: take time to
reflect and learn
Iteration is good, because you have a natural breakpoint to
apply some of what you have learned
effort remaining
Within a Sprint, the progress is tracked
100
using a burndown chart
Product Owner determines the priorities in 80
the Product Backlog (list of things to build) 60
Scrum Master helps enforce the rules of
40
Scrum
There is a 15-minute daily meeting to report 20
what was done and identify obstacles 0
Burndown chart #1
time (days)
Scrum Adoption
This high-level presentation of Scrum has focused
on the simple Scrum structure and rules.
Butrunning Scrum and getting the core benefits
from it is HARD
Cross-functionality and self-organization
Transparency, Inspect and Adapt
Continuous improvement