The Scrum framework provides a set of methods and events that enable teams to collaborate effectively and deliver high-quality software. It also defines a set of roles with corresponding properties and types to carry out the work of the project.
The following post is an attempt to simplify the explanation of the framework in a documentation style.
Methods:
- Sprint(planning: SprintPlanning): Promise<SprintResult>: A time-boxed iteration during which the team works to deliver a potentially shippable product increment.
- SprintPlanning(backlog: ProductBacklog, sprintGoal: string): Promise<SprintPlan>: A collaborative meeting during which the team plans the work to be done during the upcoming sprint.
- DailyScrum(yesterdayProgress: string[], todayPlan: string[]): Promise<void>: A daily meeting in which the team synchronizes their work and identifies any impediments that are blocking progress.
- SprintReview(increment: ProductIncrement, feedback: StakeholderFeedback[]): Promise<void>: A meeting at the end of the sprint during which the team demonstrates the product increment and receives feedback from stakeholders.
- SprintRetrospective(outcomes: SprintOutcomes): Promise<void>: A meeting at the end of the sprint during which the team reflects on their process and identifies areas for improvement.
Events:
- onSprintStarted: EventEmitter<Sprint>: Event emitted when a new sprint is started.
- onSprintEnded: EventEmitter<SprintResult>: Event emitted when a sprint is completed.
- onProductBacklogChanged: EventEmitter<ProductBacklog>: Event emitted when the product backlog is updated.
- onIncrementUpdated: EventEmitter<ProductIncrement>: Event emitted when a product increment is updated.
- onSprintOutcomesUpdated: EventEmitter<SprintOutcomes>: Event emitted when sprint outcomes are updated.
Roles:
- ProductOwner { name: string, role: ‘productOwner’ }: The person responsible for maximizing the value of the product and for ensuring that the team is building the right thing.
- ScrumMaster { name: string, role: ‘scrumMaster’ }: The person responsible for ensuring that the team is following the Scrum framework and for facilitating the Scrum events.
- DevelopmentTeam { members: Employee[], role: ‘developmentTeam’ }: The group of people responsible for developing the product increment.
References:
To read more articles written by me: anton-m.dev