Tasks during iterations

While we have a guide specific to doing iterations, the work during the iteration and the workflows or processes we follow are more extensive and warrant a separate guide.

Assigning issues

All todo items related to an iteration are put as issues on the board during the planning stage and many will be unassigned. Throughout the iteration, individual team members self-assign the unassigned issues that they would like to work on. Here are some guidelines for self-assignment:

  • Only one person (in general) should be assigned per issue, so that the project board can be kept organized and so that each issue has someone who is responsible for it. However, anyone can help with the issue.
    • If a given issue might need input or help from another team member, coordinate with them if need be by @ mentioning them in the issue instead of assigning them.
  • When assigning yourself issues, keep in mind your own availability and time constraints, including days/hours required for other projects or events and any upcoming days off.
  • Issues are given priority labels and, in general, try to self-assign higher priority tasks first.

Aside from assigning yourself to issues, if you see that something needs to be done, create issues as needed.

  • If the issue is relevant to the current iteration, then add it to the current iteration project board and others can self-assign as desired.
  • If the issue isn’t relevant to the current iteration, don’t add it to the current iteration project board but instead to the issue list board, and we will save it for future iterations to work on.

Task priority order

While issues themselves are given a priority, our individual and team priorities for tasks are to, in order:

  • Respond to reviewer comments on our own pull requests.
  • Respond to issues where we are tagged/mentioned (@).
  • Review pull requests from others.
  • Work on the assigned highest priority issues.
  • Respond to comments and questions in issues, unless it is a discussion issue, where the assigned team member will seek out and request our comments.

Tasks unrelated to the iteration’s aim

In general, tasks we work on during the iteration should support the overall iteration goal. However, there are several cases when we should work on tasks unrelated to the goal of the current iteration. Specifically:

  • Whenever a decision is made, create a decision post about it as near to the time of decision as possible (or before making the decision).
  • Whenever a team member learns something and feels like it would be useful to share with the team, create a learning post about it as near to the time of learning as possible.
  • If tasks from the previous iteration are “In Progress” or “In Review” at the beginning of a new iteration and it makes sense to finish it during the next iteration.

Meetings

In general, we limit meetings as much as possible, however some can be very helpful. Here are some guidelines for meetings during the iteration:

  • Have our update meetings to discuss progress, next steps, and any struggles or barriers (with the work or the iteration/process), as well as to present a demo of the progress made within the iteration.
  • Schedule multi-person impromptu meetings as necessary and as relevant for a given task or issue, for instance a code review meeting or a discussion meeting.
  • Plan meetings on knowledge sharing or for code reviewing when, for instance, a new and more technically complicated feature is added or a new tool is used in a pull request. For the author of the pull request, they will need to do a bit of preparation beforehand for the meeting so that it runs smoothly and is an effective use of time.