Use Kanban board for the working workflow

Topic

Enhance Core Contributor Onboarding
Improve Collaboration, Communication & Reporting
Improve Fulfilling Commitments and Planning Processes
Improve Review Processes

Overview

Knowing what people are or have been working on in the current workflow takes time and effort. The proposal is to create automated Kanban boards at the organization level (openedx) using Github, with the necessary filters, so that we can see the work of the Core Contributors in a general way. This proposal can go hand in hand with our current flow of reports every two weeks.

Solution

  1. Create projects on GitHub as a Kanban board at the openedx organization level, with which we can track all the necessary repositories of the organization. We could group related repositories; like the Slack channels: cc-edx-platform, cc-frontend-apps, cc-core-applications, cc-openedx-utils, cc-xblocks. The different filters show all Core Contributor's tasks and the assigned repository.

  2. Issues to which a Core Contributor is assigned and Pull Requests to which a Core Contributor is assigned as a reviewer will be added to the boards. From now on they will be called tickets. Additionally, it would be possible to create tickets not related to development, so that other areas (such as design and product) can also have their tasks on the boards.

  3. The boards will have the following columns:

    1. Backlog: This column will contain all the tickets created and assigned. The automation will place the tickets first in this column.

    2. Next sprint/iteration: Here are the tentative tickets to be done in the next sprint.

    3. For the current sprint/iteration: Here are the tickets that are going to be done or are being done in the current sprint. It is everyone's responsibility to move their tickets to this column. It will serve to give us a general idea of ​​what is being worked on in the current sprint.

    4. In review: Here are the tickets that are currently under review. It is everyone's responsibility to move their tickets to this column.

    5. Blocked: Tickets that are blocked for some reason are listed here. It is everyone's responsibility to move their tickets to this column. It will serve to give us a general idea of ​​the tasks that are blocked and need help.

    6. Done: Here are the tickets that have been completed.

  4. Create a bot that can perform the different automation of the boards:

    1. When an issue is assigned to a Core Contributor, add it to the respective board, in the Backlog column.

    2. When a Core Contributor is assigned as a reviewer on a PR, add it to the respective board, in the Backlog column.

    3. Use labels to differentiate the work done by a person as a Core Contributor from any other work done by the same person outside the program.

Impact

There is more visibility into the work of Core Contributors, and the ability to generate statistics and reports, such as the percentage of tasks completed in the sprint, the average time to complete tasks or reviews, etc.

Timeline

This will take some time:

  1. Technical design of the proposal. To verify the complexity of bot implementation and automation (3 hours)

  2. Implement and configure test boards in the organization (4 hours). I can take it on.

  3. Test boards: Encourage Core Contributors to use boards (20 hours). I can take it on.

  4. Develop a prototype of the bot for basic automatizations (20 hours). Open for contributions.

  5. Test the bot on test boards (20 hours). Open for contributions

  6. Develop reports and stats automatizations of the bot (40 hours). Open for contributions