- Agile framework
- challenges traditional sequential development (waterfall model)
- divided in time-boxed iterations called sprints
- advantages: faster release of usable product and flexibility (quickly adapt to feedback and changes)
- disadvantages: scalability (scrum is suited for small teams) and incompatibility with team whose members are geographically dispersed or part-time
- small team, usually between 5 to 9 members
- represents the interests of the business and customers
- prioritizes by directing the team towards the most valuable work and away from less valuable work
- controls the order of the items in the product backlog
- make sure that the team fully understands the requirements
- isn't the boss, being a scrum master is about knowledge and responsibilities not rank
- scrum expert, coach and advisor
- facilitator, plan meetings and constantly available to remove any impediments
- highly collaborative, self-organizing and independent
- decide which tools and techniques will be used and who will do which job
- create estimates
- should possess all of the skills required to create the product
- is the list of desired deliverables (features, bug fixes, documentation...) and its requirements
- is ordered by importance
- who (user) is the feature for
- description
- reason that this is valuable
- estimate as to how much work will be needed to implementation
- requirements
- backlog items usually are in the user stories format
- e.g.: "As a <role>, I want <this feature >, so that I can <accomplish this>."
- to do list for a specific sprint
- includes all the stories that the scrum team has committed to deliver in this sprint
- specify
- each story is divided in tasks and each task is delegated to a specific developer
- sum of all the product backlog items completed during sprint plus the work done in all the previous sprints
- potentially releasable product
- entire scrum team
- schedule: start of the first day of a new sprint
- select which product backlog items (stories) will be done in this sprint
- chose which developer will do each story
- identify tasks for each story
- new sprint backlog is created
- technique for estimating relative size of development goals
- estimating sequential numbers is confusing (because they're too close) and simply double the previous number in the sequence is too limiting
- use instead the Fibonacci sequence (0, 1, 2, 3, 5, 8, 13...)
- stand-up meeting to make it brief (max 15 minutes)
- usually at the start of the work day
- each member shares:
- tasks completed since the last daily scrum
- what is expected to be completed by the next daily scrum
- what obstacles is slowing down the work
- any problem is identified and a member(s) is chosen to address it
- public with all stakeholders (scrum team, business people...)
- schedule from half hour to one hour for every week of development
- demonstrate the completed stories
- if a planned story was not completed, share the information with the stakeholders
- gather feedback
- reserved only for the scrum team
- schedule is one or two hours for every week of development
- mark the end of the sprint
- focus on what was learned and how this can be applied to improve
- identify one or two strategic changes to make in the next sprint