Agile Development with ScrumApril 2011
Introduction to AgileManifesto for Agile Software DevelopmentTwelve Principles of Agile SoftwareWhy Transition to Agile?Types of Agile ProcessesScrum – HistoryScrum Process OverviewScrum ArtifactsScrum RolesScrum – Pigs and ChickensAgenda2Scrum - Timeboxes
Scrum - Burndown
Scrum - Velocity
What About Requirements?
What About QA?
What About Offshore Development?
Adopting Agile / Scrum
Risks and Concerns
In Summary
ReferencesWhat is Agile development?Agile development is a relatively new way of approaching the software development lifecycleIt is an alternative to documentation-driven, heavyweight software development processesAgile stresses iterative development over the linear waterfall methodologyIntroduction to Agile3
 “We are uncovering better ways of developingsoftware by doing it and helping others do it.Through this work we have come to value:Individuals and interactions over processes and toolsWorking softwareover comprehensive documentationCustomer collaborationover contract negotiationResponding to changeover following a plan That is, while there is value in the items onthe right, we value the items on the left more.”Manifesto for Agile Software Development (2001)4
	1)  Our highest priority is to satisfy the customerthrough early and continuous deliveryof valuable software.  	2)  Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. 	3)  Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. 4)  Business people and developers must work together daily throughout the project.Twelve Principles of Agile Software5
5)  Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. 6)	The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. 7)  Working software is the primary measure of progress. 8)  Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Twelve Principles of Agile Software6
Twelve Principles of Agile Software9) Continuous attention to technical excellence and good design enhances agility. 10) Simplicity--the art of maximizing the amount of work not done--is essential.11) The best architectures, requirements, and designs emerge from self-organizing teams. 12)  At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.7
Why Transition to Agile?8Agile development is not a “silver bullet” that solves all development problems.  If waterfall methodologies work well for an organization, it should consider sticking with them.  However, there are many advantages to agile development:Accelerate Time to Market – Deliver product features in weeks instead of months or longer.
Enhance Ability to Manage Changing Priorities – Business owners set priorities for each release.
Increase Productivity – Collaboration is improved between business owners and developers through frequent communication.
Manage Outsourced Agile Projects – Many external vendors have made the move to Agile or are claiming to.  Managing them is difficult without competency in Agile.Types of Agile Processes9Scrum - An iterative, incremental methodology for project management.  Scrum is a process skeleton that contains sets of practices and predefined roles such as Product Owner and Scrum Master.
Extreme Programming (XP) - Advocates frequent "releases" in short development cycles (timeboxing), which is intended to improve productivity and introduce checkpoints where new customer requirements can be adopted. Other elements include programming in pairs or doing extensive code review, unit testing of all code.Scrum - History10The word “Scrum” comes from a Rugby term for a huddle.  In Scrum practice, the development team meets in a daily huddle to set priorities and raise issues.
Scrum was invented by Jeff Sutherland and Ken Schwaber in 1995, and has been adopted by leading companies such as Microsoft, Fidelity, and GE.Scrum Process Overview11Product requirements are collected in a backlog.
A subset of those requirements is developed into a release called a Sprint that is shipped every two to four weeks.
A daily meeting is used to keep the whole process on track.Scrum Artifacts12Product Backlog - is a prioritized list of everything that might be needed in the product. Sprint Backlog - is a list of tasks to turn the Product Backlog for one Sprint into an increment of potentially shippable product. A burndown is a measure of remaining backlog over time. Release Burndown - measures remaining Product Backlog across the time of a release plan. Sprint Burndown - measures remaining Sprint Backlog items across the time of a Sprint.
Scrum Roles13Product Owner – A representative from the business who owns the requirements for the product and sets priorities for the development team.   The product owner dictates the contents of each sprint and represents the interests of business stakeholders.Scrum Master – Replacing the traditional role of the project manager, the Scrum Master is the coach of the development team.  Primary responsibility is to manage the scrum process and remove impediments to success.  Team - Teams of developers turn Product Backlog into increments of potentially shippable functionality every Sprint. Teams are also self-organizing. The optimal size for a Team is seven people, plus or minus two.   The team should include QA, BA, and even architects.
Scrum – Pigs and Chickens14Scrum Team members are called “pigs.” The Product Owner is the “pig” of the Product Backlog. The Team is the “pig” of the Sprint work. The Scrum Master is the “pig” of the Scrum process.
Everyone else is a “chicken.” Chickens cannot tell “pigs” how to do their work. Chickens and pigs come from the story: Scrum - Timeboxes15Release Planning Meeting - The purpose of release planning is to establish a plan and goals that the Scrum Teams and the rest of the organizations can understand and communicate. Release planning answers the questions, “How can we turn the vision into a winning product in best possible way? Sprint - A Sprint is an iteration. Sprints are time-boxed. A timebox is a fixed unit of development capacity.  Cost and time are fixed for an iteration.  During the Sprint, the Scrum Master ensures that no changes are made that would affect the Sprint Goal. Sprint Planning Meeting - The Sprint Planning meeting is when the iteration is planned. It is time-boxed to eight hours for a one month Sprint.
Scrum - Timeboxes16Sprint Review - At the end of the Sprint, a Sprint Review meeting is held. During the Sprint Review, the Scrum Team and stakeholders collaborate about what was just done. Sprint Retrospective - After the Sprint Review and prior to the next Sprint Planning meeting, the Scrum Team has a Sprint Retrospective meeting. At this meeting, the Scrum Master encourages the Scrum Team to revise, within the Scrum process framework and practices, its development process to make it more effective and enjoyable for the next Sprint.

Agile Overview

  • 1.
    Agile Development withScrumApril 2011
  • 2.
    Introduction to AgileManifestofor Agile Software DevelopmentTwelve Principles of Agile SoftwareWhy Transition to Agile?Types of Agile ProcessesScrum – HistoryScrum Process OverviewScrum ArtifactsScrum RolesScrum – Pigs and ChickensAgenda2Scrum - Timeboxes
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
    ReferencesWhat is Agiledevelopment?Agile development is a relatively new way of approaching the software development lifecycleIt is an alternative to documentation-driven, heavyweight software development processesAgile stresses iterative development over the linear waterfall methodologyIntroduction to Agile3
  • 12.
    “We areuncovering better ways of developingsoftware by doing it and helping others do it.Through this work we have come to value:Individuals and interactions over processes and toolsWorking softwareover comprehensive documentationCustomer collaborationover contract negotiationResponding to changeover following a plan That is, while there is value in the items onthe right, we value the items on the left more.”Manifesto for Agile Software Development (2001)4
  • 13.
    1) Ourhighest priority is to satisfy the customerthrough early and continuous deliveryof valuable software. 2) Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. 3) Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. 4) Business people and developers must work together daily throughout the project.Twelve Principles of Agile Software5
  • 14.
    5) Buildprojects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. 6) The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. 7) Working software is the primary measure of progress. 8) Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Twelve Principles of Agile Software6
  • 15.
    Twelve Principles ofAgile Software9) Continuous attention to technical excellence and good design enhances agility. 10) Simplicity--the art of maximizing the amount of work not done--is essential.11) The best architectures, requirements, and designs emerge from self-organizing teams. 12) At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.7
  • 16.
    Why Transition toAgile?8Agile development is not a “silver bullet” that solves all development problems. If waterfall methodologies work well for an organization, it should consider sticking with them. However, there are many advantages to agile development:Accelerate Time to Market – Deliver product features in weeks instead of months or longer.
  • 17.
    Enhance Ability toManage Changing Priorities – Business owners set priorities for each release.
  • 18.
    Increase Productivity –Collaboration is improved between business owners and developers through frequent communication.
  • 19.
    Manage Outsourced AgileProjects – Many external vendors have made the move to Agile or are claiming to. Managing them is difficult without competency in Agile.Types of Agile Processes9Scrum - An iterative, incremental methodology for project management. Scrum is a process skeleton that contains sets of practices and predefined roles such as Product Owner and Scrum Master.
  • 20.
    Extreme Programming (XP)- Advocates frequent "releases" in short development cycles (timeboxing), which is intended to improve productivity and introduce checkpoints where new customer requirements can be adopted. Other elements include programming in pairs or doing extensive code review, unit testing of all code.Scrum - History10The word “Scrum” comes from a Rugby term for a huddle. In Scrum practice, the development team meets in a daily huddle to set priorities and raise issues.
  • 21.
    Scrum was inventedby Jeff Sutherland and Ken Schwaber in 1995, and has been adopted by leading companies such as Microsoft, Fidelity, and GE.Scrum Process Overview11Product requirements are collected in a backlog.
  • 22.
    A subset ofthose requirements is developed into a release called a Sprint that is shipped every two to four weeks.
  • 23.
    A daily meetingis used to keep the whole process on track.Scrum Artifacts12Product Backlog - is a prioritized list of everything that might be needed in the product. Sprint Backlog - is a list of tasks to turn the Product Backlog for one Sprint into an increment of potentially shippable product. A burndown is a measure of remaining backlog over time. Release Burndown - measures remaining Product Backlog across the time of a release plan. Sprint Burndown - measures remaining Sprint Backlog items across the time of a Sprint.
  • 24.
    Scrum Roles13Product Owner– A representative from the business who owns the requirements for the product and sets priorities for the development team. The product owner dictates the contents of each sprint and represents the interests of business stakeholders.Scrum Master – Replacing the traditional role of the project manager, the Scrum Master is the coach of the development team. Primary responsibility is to manage the scrum process and remove impediments to success. Team - Teams of developers turn Product Backlog into increments of potentially shippable functionality every Sprint. Teams are also self-organizing. The optimal size for a Team is seven people, plus or minus two. The team should include QA, BA, and even architects.
  • 25.
    Scrum – Pigsand Chickens14Scrum Team members are called “pigs.” The Product Owner is the “pig” of the Product Backlog. The Team is the “pig” of the Sprint work. The Scrum Master is the “pig” of the Scrum process.
  • 26.
    Everyone else isa “chicken.” Chickens cannot tell “pigs” how to do their work. Chickens and pigs come from the story: Scrum - Timeboxes15Release Planning Meeting - The purpose of release planning is to establish a plan and goals that the Scrum Teams and the rest of the organizations can understand and communicate. Release planning answers the questions, “How can we turn the vision into a winning product in best possible way? Sprint - A Sprint is an iteration. Sprints are time-boxed. A timebox is a fixed unit of development capacity. Cost and time are fixed for an iteration. During the Sprint, the Scrum Master ensures that no changes are made that would affect the Sprint Goal. Sprint Planning Meeting - The Sprint Planning meeting is when the iteration is planned. It is time-boxed to eight hours for a one month Sprint.
  • 27.
    Scrum - Timeboxes16SprintReview - At the end of the Sprint, a Sprint Review meeting is held. During the Sprint Review, the Scrum Team and stakeholders collaborate about what was just done. Sprint Retrospective - After the Sprint Review and prior to the next Sprint Planning meeting, the Scrum Team has a Sprint Retrospective meeting. At this meeting, the Scrum Master encourages the Scrum Team to revise, within the Scrum process framework and practices, its development process to make it more effective and enjoyable for the next Sprint.