On Github cmerkley / demonstration
Agile is a collection of general values and principles about software production.
Agile practices aim to create adaptive environments & self-organizing teams.
Scrum is one formal implementation of Agile principles (there are others).
Sequential, phased approach to production.
Assumes all requirements are known upfront.
Emulates a manufacturing assembly line.
Prescriptive production process.
Iterative, incremental approach to production.
Assumes requirements will continously change.
Creates an environment for adaptive, local processes to emerge.
Empirical approach to production
Agile derives from adaptive systems theory.
In complex systems, adaptive patterns emerge through simple interactions & iteration.
Teams, clients and changing needs represent unique, complex ecosystems.
Self-organizing teams.
Inspection & adaptation.
Transparency.
Deliver early, deliver often.
Scrum environments contain three distinct roles:
The Product Owner.
The Scrum Master.
The Scrum Team.
The single owner of the product.
Solely responsible for managing and prioritizing the product backlog.
In project environments, this role is usually filled client-side.
The servant-leader role.
Facilitates and teaches Scrum practices.
Protects the team from external distractions.
Self-organizing.
Inspects, adapts and improves through regular review of progress.
Determines how and when to transform user stories into finished features.
Fully committed to a single project.
The tools used to manage and represent work.
All artifacts are transparent & public.
Master list of requirements ordered by priority.
Living artifact, changes as product evolves.
Items can be added or re-prioritized at any time.
Regularly groomed by entire Scrum team.
Fixed set of items the team commits to finish during the sprint.
Items selected based on highest priority in product backlog.
Does not change during sprint for any reason.
Visual representation of work plotted against time remaining in sprint.
Burn-down chart tracks remaining work.
Burn-up chart tracks completed work.
Scrum is defined by regular, formal opportunities for inspection and adaptation.
All events are designed to maximize critical transparency.
All events are time-boxed to prevent waste.
Container for all Scrum events and work.
Begins with sprint planning and ends with sprint retrospective.
Time-boxed (usually 1-4 weeks).
Dedicated to a set of fixed goals.
Team selects highest priority items from product backlog to complete during sprint.
Decomposes each item into tasks & assigns hour estimates using estimation exercises.
Items selected are put into sprint backlog.
Timeboxed daily meeting for all team members.
Meeting consists of three questions:
What was accomplished yesterday? What will be done before tomorrow? Any blockers preventing progress?Review at the end of every sprint with stakeholders.
Demonstrate completed work & gather feedback.
Peform any adjustments to product backlog.
Forensic review of the completed sprint.
Inspect team dynamics, process & tools to reveal inefficiences.
Identify what did and didn't work during the sprint.
Make adjustments for next sprint.
Team creates shared definition of "done"
Used to assess when work is complete.
Example: design complete, unit tested, code checked in, etc.