fix and finish scrum lectures

main
borb 2 weeks ago
parent 7be3710733
commit c1b18adfd4

File diff suppressed because one or more lines are too long

@ -10,6 +10,15 @@ theme: buutti
# Project management 4. Scrum
## Contents
- [What is Scrum?](#what-is-scrum)
- [Scrum roles](#scrum-roles)
- [Project timeline](#project-timeline)
- [Events](#events)
- [Scrum Master tasks](#scrum-master-tasks)
## What is Scrum?
* [Scrum](https://en.wikipedia.org/wiki/Scrum_(software_development)) is a framework for delivering products (usually software)
@ -21,22 +30,23 @@ theme: buutti
* Sprints are most commonly two weeks long (for us, shorter)
* Progress is tracked and re-planned in ***Dailies***, 15-minute time-boxed meetings
## Why Scrum for game development?
### Why Scrum?
* Through its practices and principles, Scrum creates ***conditions*** to achieve good results
* Scrum gives ***agency*** to team members: meeting the goal is a team effort
* Scrum creates ***transparency***: problems get addressed early
* Scrum isn't magic: you need to continuously enforce its practices in action
* Scrum facilitates communication, but doesn't solve any problems for you!
* Scrum facilitates communication, but doesn't solve any problems for you — you have to actively enforce its usage!
---
<!--
---
* ***Cross-discipline teams***: Enables teams to deliver features and mechanics that have clear value
* ***Self-management***: Enables teams to select the amount of work they can commit to every sprint and complete that work through whatever means they find appropriate
* ***Self-organization***: Enables teams to have a degree of authority and responsibility to select their membership
* ***True leadership***: Provides leadership focused on mentoring and facilitation to free the best performance possible from the team -->
<!--
* ***True leadership***: Provides leadership focused on mentoring and facilitation to free the best performance possible from the team
## Cross-discipline teams
* Team members share the same goal and therefore the same priorities
* To make sure ***no work goes to waste***, synchronization of the disciplines happens every sprint.
@ -58,12 +68,13 @@ theme: buutti
* Some sprints, like before release, might require a complete reorganization
-->
# Scrum basics
## Scrum people
## Scrum roles
![](imgs/scrum-people.png)
Scrum Team consists of three roles: Product Owner, Scrum Master and the Dev team.
### Dev team
* Small team that aims to deliver a product
@ -71,48 +82,54 @@ theme: buutti
* Collaborates with Product owner
* Creates product increments in a series of sprints
### Scrum master
### Scrum Master
* Helps to facilitate usage of Scrum to the team
* Helps to facilitate usage of Scrum for the team
* Ensures the Scrum framework is followed
* Aims to improve team's workflow
* Basically an acting producer!
* Can be a part of the dev team (a "peer leader")
* ...but should not be the product owner
* ...but should not be the Product Owner
* Can be a different person every Sprint
* [Scrum.org](https://www.scrum.org/professional-scrum-certifications/professional-scrum-master-assessments) gives courses where you can get a Professional Scrum Master™ certification ($200)
### Product owner
### Product Owner
* Accountable for profit & loss
* Listens to the client's wishes
* Listens to the customer's wishes
* Manages the Product Backlog
* Representation of stakeholders and clients to the Dev Team
* Chooses what to release - and when
* Representation of stakeholders and customers to the Dev Team
* Chooses what to release and when
<!-- _footer: "In this course, the teacher will act as this." -->
### Other Scrum-adjacent roles
### The rest
* These aren't part of the Scrum team, but can be important personnel in the product lifecycle:
* Stakeholders
* People outside the Scrum team who have an interest in the product
* Sales, marketing, end customers, etc
* Customers
* Communicates their needs and wishes to the Product Owner
* Is often more interested in the end result than technicalities
* Stakeholders (not actually part of the team)
* People outside the Scrum team who have an interest in the product
* Sales, marketing, end customers, etc
* Client
* Monitors product backlog
* Is responsible for the upkeep of the product backlog
## Project timeline
<!-- _footer: "In this course, the teacher will act as these." -->
### Starting a new project
* When a new project is started, a ***Product backlog*** is created based on the customer's needs and the available time
* The project timeline is split into *Sprints*, around which the whole Scrum process revolves around
* Sprints are usually from one week to a few weeks long
* New Sprint menas new tasks to the Dev Team.
## Backlogs
### Product backlog
* Holds the requirements for the product
* Managed by the Product Owner
* Composed of ***tasks***
* unit of deliverable work
* well-defined completeness
* completable during a single Sprint
* Features, Bugfixes, Content...
* Unit of deliverable work
* Well-defined completeness
* Ideally completable during a single Sprint
* Features, Bugfixes, etc...
---
![](https://i.pinimg.com/originals/f8/6c/f4/f86cf4e5a8e7b0ab905ed53e8786aa28.png)
@ -121,59 +138,65 @@ theme: buutti
* A list of tasks to be completed during the Sprint
* Selected from the Product backlog
* A *forecast* of what is aimed to be done during the Sprint, not a promise!!!
* A *forecast* of what is aimed to be done during the Sprint, not a promise!!
* Often visualized as a [Kanban board](https://en.wikipedia.org/wiki/Kanban_board) in Trello, GitHub, GitLab, etc.
* In GitLab, Sprint backlogs can be created in the *Milestones* tab
---
![bg width: 80%](imgs/sprint-backlog.png)
### Definition of Done
### Definition of Done (DoD)
* When is a task considered done?
* This is decided by the Dev team in Sprint ***Retrospective*** ("Retro")
* Can change as project progresses
* This is decided by the Dev team in a Sprint Retrospective (more about it [soon](#sprint-retrospective-retro))
* DoD can change as project progresses
* "It works" -> "It passes tests"
<!-- * "Fully completed" should refer to ***completely releasable*** -->
## Sprint Events
## Events
### Sprint events
* First day: Sprint Planning
* Every day: Daily Scrum
* Last day: Sprint Review & Sprint Retrospective
* In Scrum, Sprints are paced by ***events***, also known as [Scrum "ceremonies"](https://www.atlassian.com/agile/scrum/ceremonies)
* First day: *Sprint Planning*
* Every day: *Daily Scrum*
* Last day: *Sprint Review* & *Sprint Retrospective*
### Sprint planning
### Sprint Planning
* Starts a new Sprint
* *Sprint Planning* starts a new Sprint
* The whole Scrum team attends
* inspects the whole Product Backlog
* The whole Product Backlog is inspected
* A Sprint Goal is created and dissected into a new Sprint Backlog
* The Sprint Goal is ***immutable***
* The exact implementations are not discussed
* those are rather left for the Dev Team to decide
* Those are rather left for the Dev Team to decide!
* New tasks are given to the Dev Team
### Daily Scrum ("Daily")
* Only Dev Team attends, with these goals:
* Only the Dev Team attends the *Daily*, with these goals in mind:
* Inspect the progression towards the Sprint Goal
* Inspect how the Sprint Backlog is clearing out
* Create a plan for the next 24 hours
* Max. 15 min long!
* Keeps everyone on the same page
* $\Rightarrow$ Optimizes collaboration and performance of the Dev Team
* Sometimes held as a [stand-up meeting](https://en.wikipedia.org/wiki/Stand-up_meeting): Nobody sits down to enforce the sense of urgency and minimize time-wasting chit-chat
---
* Example topics to address in a Daily:
* Example topics to address in a *Daily*:
* What have you achieved since the last Daily?
* What problems have you faced?
* How does the team address problems?
* Is there need for (re)allocation of tasks?
### Sprint review
### Sprint Review
* Attended by the Scrum team and stakeholders
* The *Sprint Review* is attended by the Scrum team and stakeholders
* Goal: Offer feedback and open up discussions about the Sprint
* Starts off with a feature demonstration
* Product Owner presents the state of the Product Backlog
@ -185,25 +208,28 @@ theme: buutti
### Sprint retrospective ("Retro")
* After every Sprint Review
* Only the Scrum team attends
* worries and thoughts are brought up
* A *Retro* is held after every Sprint Review
* Only the Scrum Team attends
* Worries and thoughts are brought up
* Possible discussion topics
* What went right?
* What should be improved?
* Tools needed and used?
* The suitability of the Scrum process.
* The suitability of the Scrum process?
* What does Done mean, and should it be redefined?
## Scrum master tasks
## Scrum Master tasks
### Continuous tasks
* Continuously:
1. Make sure the task board on GitHub is up to date.
2. Make sure everyone is able to attend the dailies.
3. Make sure everyone is heard and contributes at dailies.
4. If someone needs help, you help them find assistance or assist them yourself.
* Before the dev meeting:
1. Make sure the task board on GitHub is up to date.
### Before the dev meeting
1. Make sure the task board on GitLab is up to date.
2. Make sure someone is ready to present the newest working version of the program, with all the new changes pushed
3. Write down the state of tasks listed in the Sprint backlog
4. Discuss what problems were encountered during the last Sprint, and how were they addressed.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Loading…
Cancel
Save