Software Design and Development
Components of Development
Key Features of Agile Development
o User stories to drive design
o Lightweight, evolving design as code is written and features are added
o Continuous unit testing
o Pair programming
o Continuous refactoring
o A scrum team works on month-long sprints
In each sprint, the team implements a subset of features selected from a product backlog
o We like to think of development as predictable ... but it’s not.
o The customer can change his or her mind.
o Unexpected challenges will arise.
o Some tasks will be easier or harder than anticipated.
o Scrum is designed to make the team deliver quickly and respond flexibly to challenges.
Product owner: voice of the customer
ScrumMaster: primary job is to remove impediments to the ability of the team to deliver the goal
Team: has the responsibility to deliver the product
Users: the people who use the software you'll build
Stakeholders: people that will enable the project; not directly involved except every now and then
Managers: people that will set up the environment for the product development organization
The product owner produces the first version of the product backlog -- a list of features to implement.
Each cycle, the team chooses which items from the product backlog to move to the sprint backlog. Time estimates are attached to each item.
During the sprint: daily team meetings (seriously)
At end of sprint, new features are complete: documented and tested and ready for release.
Product increment: something shippable.
o Gathering Requirements: User Stories
A collection of stories can define what the program is supposed to do.
See Chapter 11 of text and