Lab 2: Issues
- Due Oct 13, 2020 by 5:30pm
- Points 2
- Submitting a text entry box
Managing tasks (5 min)
In Discord > Everyone
Teamwork requires careful task management, which includes:
-
- Writing down everything you need to do in a shared place, so everyone can collaborate on those shared to do items.
- Assigning ownership to tasks, so everyone is clear who is responsible for completing the task.
- Assigning deadlines to tasks, so everyone can coordinate their time and responsibilities.
- Communicating about tasks, so everyone has what they need to get their tasks done.
Tools can help with task management, but they only work if you follow the practices above. Common tools in software engineering include issue trackers (like GitHub issues) and shared task trackers (like Trello Links to an external site., Asana Links to an external site., or other more advanced project management tools).
Your team isn't big enough to need really advanced task management tools. In this class, I'll recommend you use GitHub issues to manage your project.
PMs: your job is to manage the content of your team's issue tracker. Make sure it reflects the work being done, that everything on it is up to date, and that everyone has a task.
Let's walk through Facebook's React GitHub issues Links to an external site. as an example:
-
- The issues tab shows all of the open issues by default
- Issues describe a feature, problem, or task
- Issues need descriptive, clear titles and descriptions so that everyone understands them.
- Issues have an assignee; it's their job to get the work done
- Issues have labels, which help organize, search, and filter categories of issues.
- Issues have milestones, which are groups of issues with a shared due date.
- Issues have comments, which help you discuss the issue.
- Issues are closed when the work is done, usually culminating in a patch to files in the repository.
With your team, convert homework 2 into issues (15 minutes)
In Discord > Teams
Join your Discord team channel. PMs, lead the conversion of your work into issues.
- Create a milestone for homework 2 with it's deadline
- As a team, scan homework 2 for work and convert them into small, actionable issues. For each issue:
- Decide who is doing the work and assign it to them
- Assign the issue the homework 2 milestone
- As you work, you'll identify more tasks; when you do, add them as issues, as you did above.
- It's everyone's job to make sure issues reflect the current status of the work.
- When you've made progress on an issue, write a comment.
- When an issue is done, comment on and close the issue, linking to the commit that resolved it. (When you make a commit message, if you include in the commit message "Fixed #X", issue #X will be automatically closed and linked to the commit.)
- The project manager's job is to make sure that everyone is getting their assigned issues done.
Compare your decompositions (15 minutes)
In Discord > Random Groups
Everyone will have decomposed homework 2 into different subtasks. Go see how others divided theirs to see if you can get better ideas:
- Join one of the "Random Groups" channels
- Introduce yourselves to each other and declare your roles
- Take turns screen sharing or describing your team's decomposition
Improve your decompositions (5 minutes)
In Discord > Team Channels
Return to your team channel and share what you learned from other teams. Can you see any ways to improve your task decomposition?
For credit (5 minutes)
Submit to Canvas an individual reflection: what was most challenging about decomposing your tasks in to issues?