As your Codecool Journey comes closer to its conclusion, the time has come for a final Teamwork Project that will put to test all of the programming skills you've obtained so far (and some new ones you will learn on the way)!
You have the freedom of choosing your teammates (assemble a team of 3-4 students) and the project's topic this time. Think of an app that you would find useful in your daily activities, a tool that an employee of a certain industry might crave, a fun game or something completely out of the box.
This project is meant for 4 sprints at least, but it may keep you company until the end of the course, or even much longer. Who knows? Although we will not give you any direct tasks to fulfill, there will be some technical requirements for each sprint. You are expected to make incremental changes in a Scrum way, developing the project further and further, adding new features, technologies, etc.
¡Comience El Proyecte Grande!
- Work in a Scrum team on a real project.
- Grow your project iteratively.
- Deliver increments each sprint.
-
Create a Product backlog (on Github) with user stories that cover at least the feature set you aim to complete next. Break down the user stories into smaller tasks, prioritize them, estimate them, and taking your capacities into account, determine how far you'll be able to get during this sprint.
- There is a Product backlog for the project.
- The backlog items are broken down into smaller tasks or subtasks.
- The backlog items are in prioritiy order in the backlog.
- Each backlog item (at least those that are relevant for the actual sprint) has an estimation value.
- The top priority part of the backlog is marked as the Sprint backlog, in accordance with the estimation values and the foreseeable team resources.
- The backlog and the project plan has been checked and accepted by a mentor on the first day of the sprint (before any implementation).
- By the end of the sprint, there is less than 30% deviation from the plan (70% - 130% is completed according to the original plan)
-
You need to use technologies which help achieving agile workflow, defined below.
- Every item in the backlog should appear as an
Issue
on GitHub. - The repository has a
Project
defined on GitHub for every sprint. Theproject board
shall contain every issue related to the sprint. - With every feature branch, a
Pull request
shall be opened and maintained. ThePull request
shall contain theIssue
linked with it. ThePull request
shall contain the assignee, who is responsible for the givenIssue
. ThePull request
shall contain at least oneReviewer
, who is responsible for checking on their peers' work.
- Every item in the backlog should appear as an
-
You need to fulfill a couple of technical requirements defined below.
- The project has a backend part with at least 5 API endpoint patterns providing data in JSON format.
- The project has a frontend part written in React which consumes at least 5 different API endpoint patterns from the backend.
-
Implement the features and tasks from the sprint backlog.
- By the end of the sprint, at least 50% of the sprint plan is completed (measured in estimation points)
- By the end of the sprint, at least 60% of the sprint plan is completed (measured in estimation points)
- By the end of the sprint, at least 70% of the sprint plan is completed (measured in estimation points)
- By the end of the sprint, at least 80% of the sprint plan is completed (measured in estimation points)
- By the end of the sprint, at least 90% of the sprint plan is completed (measured in estimation points)
- By the end of the sprint, 100% of the sprint plan is completed
-
Use Scrum with your team throughout your project
- A Daily Scrum was organized by the Scrum Master (no longer than 15 minutes).
- Any necessary corrections in the sprint plan have been introduced to the backlog and validated by a mentor.
- After the demo, the Scrum Master organized a Sprint Review meeting, during which the team investigates how much of the planned Sprint Backlog was fulfilled - and whether it well thought out and balanced for the team to handle.
- Each Sprint Review produces an Increment Document - a changelog of sorts, listing out all the changes to the product that are a result of this sprint.
- After the Sprint Review, the Scrum Master organizes a Sprint Retrospective meeting, during which the team recalls on how the work went during this sprint, which practices were good, which should be improved and which should be stopped (and also what to introduce).
None