Lab 10: Project Requirements
Overview
In this lab, we will be learning some basics of agile project management that will help you lay out the plan for your projects. In this lab you will be working in your project teams to creating project boards to track your progress in the development cycle.
Learning Objectives
All of these tie in closely with the group project.
Learning Objectives
L01. Demonstrate proficiency with GitHub Projects by setting up a collaborative project board, creating epics, issues, and user stories within a team environment, and effectively using project board functionalities for team collaboration.L02. Apply Agile methodologies by creating and organizing epics, user stories, and assigning story points through the Planning Poker technique, fostering a practical understanding of agile practices in project planning.
L03. Facilitate team collaboration on GitHub by managing access permissions, assigning responsibilities, and using GitHub’s issue tracking and project management tools to monitor and execute tasks within a shared project repository.
L04. Use Acceptance Criteria in Agile by defining and integrating acceptance criteria for user stories, ensuring clear and actionable definitions of completion for each task in alignment with agile principles.
Part A
Pre-Lab Quiz
Ensure you thoroughly review the lab document prior to attempting the quiz, as it may include relevant questions.
Complete Pre-Lab quiz on Canvas before your section's lab time.
Part B
Today's lab should be done with your project group using your project repository.
Please ensure all members of the group have read/write access to the repository and that it is public (part of last week's lab).
GitHub Projects
Projects on GitHub help you organize and prioritize your work. You can create projects for specific feature work, comprehensive roadmaps, or even release checklists. With project boards, you have the flexibility to create customized workflows that suit your needs.
Create Project Board
Following is just an example organization and repository. Do not worry about having an organization, or having a similar name. Just make sure to use your group's repository.
1. Navigate to your repoitory
Navigate to the repository in your browser. It is easiest to host the project and repository under the same account. The owner is shown in the top left next to the repository name. Here the owner is 'CUBoulder-CSCI3308'.
2. Create Project Board
The owner can now navigate to the projects tab by clicking on the user icon (a small circle that shows your avatar/profile picture) that is located on the top right of your webpage and selec the "Your Projects" option.
Click on “New Project” -> Select “Board” -> Click on “Create”
Now, change the name of your board to the name of your repository from lab 9. The name does not need to match exactly, but it should be similar or match your team name.
Navigate to your repository and click on the “Projects” tab -> Click on “Add project”.
You should be able to see your team board in the dropdown. Select the project you just added:
Select the project
You should now have the project board added:
3. Add Members
Before you move on, make sure to add all group members to the project board so they can contribute.
Navigate to the project board. On the top right of the board, click on the three-dots icon -> Click on "Settings", then on the left sidebar, click "Manage access" and add each group member.
Project Planning
1. Create an Epic
An agile epic is a body of work that can be broken down into specific tasks (called user stories) based on the needs/requests of customers or end-users. Epics are an important practice for agile and DevOps teams. When adopting agile and DevOps, an epic serves to manage tasks.
Here we will be creating a property Epic on the board. This would mean while creating user stories we would be assigning them to an Epic.
Navigate to the project board. On the top right of the board, click on the three-dots icon -> Click on “Settings”
Then go ahead and click on +New Field in the left panel.
Once you save the changes go back to the board and click on the down arrow icon next to View 1 as shown, then go ahead and click on fields under configuration:
Click on the checkboxes as shown (this is a filter for what we can view on the board):
2. Create Issues/User Stories
A user story is the smallest unit of work in an agile framework. It's an end goal, not a feature, expressed from the software user's perspective.
In this lab we will be referring to Github issues as User Stories. Click on the + icon at the bottom of the Todo column and add the User Story summary
Click on Enter once you finish typing.
Once the Draft is created, click on the three-dot icon and Convert to issue. Now go ahead and assign it to the repository you just created as a team.
Now click on the issue and add the complete user story in the description. Assign the story to the respective team member and then add the Epic name.
3. Planning Poker
As a team, you will decide how difficult it will be to implement a given User Story/Issue in terms of Story Points. Story Points are an abstract measure of the effort required to implement a User Story. In this step, you will assign Story Points to your user story using a process called 'Planning Poker'. Note that it is accessible for story point allocation to simply reflect your opinion of the amount of time required to implement the story.
Planning Poker: Planning poker is a game wherein each individual team member proposes Story Points for a given User Story, the team discusses each other’s proposals, and collaborativality assigns story points to a given User Story. You can watch a short video on how to play Planning Poker here.
i. Create your cards
Each individual team member should create a set of cards numbered 1, 2, 3, 5, 8, and 13. These are your set of possible points to allocate to user stories. You can use sticky notes or pieces of paper. Set these cards in front of you.
If you and your team members do not wish to make the physical cards, you can use this resource.
ii. Discuss the User Story difficulty
As a team, discuss how difficult you think the User Story will be to implement. How much time do you think it will take to code? Do you anticipate any challenges with APIs or libraries?
iii. Choose the number of Story Points
In secret, each individual will choose a Story Point to assign to the given Story. It is important that each team member chooses in secret so that they do not influence another team member's choice. On the count of 3, each team member will hold up the Story Point that they think is most appropriate given how difficult they think the User Story is to implement.
Please note, if the Story Points exceed 13 points then you must break the story down further and assign appropriate Story Points to them.
iv. Come to a consensus
- Did everyone choose the same value or close to the same value? Great, you all agree and you can assign the chosen value to the User Story.
- Did some individuals pick significantly higher values than others? Why? Are there anticipated challenges? Discuss your differences in opinion and come to a consensus. You may have to convince someone to change their rating.
4. Assign Story Points
In your GitHub projects, just like you created a property for Epics, we will now create a property for Story Points. Refer to the following screenshots that guide you through it.
5. Adding User Acceptance Criteria
In Agile, acceptance criteria refer to a set of predefined requirements that must be met to mark a user story complete. Acceptance criteria are also sometimes called the “definition of done” because they determine the scope and requirements that must be executed by developers to consider the user story finished.
6. Ice-box
Ice box contains the set of stories that are not picked up in the current sprint. These are potential stories for the project to work on in the future sprints.
On your board, click on the + icon on the right of the columns and add the name “Ice-box”.
Drag and drop the column to the left most of the board as shown in the images below.
Part C
1. Decide on an Epic as a team
After you have completed Part A, have a quick discussion with your team to come up with an Epic as a team.
2. Add 2 User Stories
Once you are done with the Epic decision, each member must add two user stories to the board for the new epic.
Keep in mind that you are also expected to add the appropriate story points and assign it to yourself.
Submission Guidelines
All work for this lab should be done in your group's repository and project board. Please submit the link to your repository on Canvas.
To get credit for this lab, make sure the project board is properly linked to the repository and do not delete any of the epics, user stories, or issues you created as part of the lab.
You should still move them on the project board as you make progress and close the issues as you work on your project but do NOT delete them.
Regrade Requests
Please use this link to raise a regrade request if you think you didn't receive a correct grade. If you received a lower than expected grade because of missing/not updated files, please do not submit a regrade request as they will not be considered for reevaluation.
Rubric
Description | Points | |
---|---|---|
Part A: Pre-Lab Quiz | Complete the Pre-Lab Quiz before your lab | 20 |
Part B | As a team - create the project board, 1 epic, 1 issue along with story points and assignees | 20 |
Part C | As a team - create another epic. Individual work - 2 user stories each along with story points and add yourself as the assignee | 40 |
In class check-in | You showed your work to the TA. | 20 |
100 |
Please refer to the lab README.md or individual sections for information on file names.