Saturday, October 29, 2011

Scrum vs Kanban

Similarities
  • Both are Lean and Agile
  • Both use pull scheduling
  • Both limit WIP
  • Both use transparency to drive process improvement
  • Both focus on delivering releasable software early and often
  • Both are based on self-organizing teams
  • Both require breaking the work into pieces
  • In both cases the release plan is continuously optimized based on empirical data (velocity / lead time)
Differences
ScrumKanban
Timeboxed iterations prescribed.Timeboxed iterations optional. Can have separate cadences for planning, release, and process improvement. Can be event-driven instead of timeboxed.
Team commits to a specific amount of work for this iteration.Commitment optional.
Uses Velocity as default metric for planning and process improvement.Uses Lead time as default metric for planning and process improvement.
Cross-functional teams prescribed.Cross-functional teams optional. Specialist teams allowed.
Items must be broken down so they can be completed within 1 sprint.No particular item size is prescribed.
Burndown chart prescribedNo particular type of diagram is prescribed
WIP limited indirectly (per sprint)WIP limited directly (per workflow state)
Estimation prescribedEstimation optional
Cannot add items to ongoing iterationCan add new items whenever capacity is available
A sprint backlog is owned by one specific teamA kanban board may be shared by multiple teams or individuals
Prescribes 3 roles (PO/SM/Team)Doesn’t prescribe any roles
A Scrum board is reset between each sprintA kanban board is persistent
Prescribes a prioritized product backlogPrioritization is optional

Thursday, October 27, 2011

Agile Manifesto

4 Values
  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan
Twelve Principles of Agile Software
  • Early and continuous delivery of valuable software.
  • Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
  • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  • Business people and developers must work together daily throughout the project.
  • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  • Working software is the primary measure of progress.
  • Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  • Continuous attention to technical excellence and good design enhances agility.
  • Simplicity--the art of maximizing the amount of work not done--is essential.
  • The best architectures, requirements, and designs emerge from self-organizing teams.
  • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Wednesday, October 26, 2011

Scrum Roles

Product Owner
  • Customer representative
  • Prioritize Product requirements
  • Responsible for preparing Product Backlog

Team
  • Self managed
  • Responsible for developing product
  • Responsible for the success of each iteration and of the project as a whole

Scrum Master
  • Teaches and implements scrum
  • Ensuring that everyone follows Scrum rules and practices properly
  • Protect the team from impediments during the Sprint