-
-
Notifications
You must be signed in to change notification settings - Fork 3.8k
Leading Oppia Teams
This page is not comprehensive. Rather, it collects a few of the lessons we've learned about effective teams.
Many teams have one team lead who supports the team's members. Individual members may also develop areas of expertise
Many Oppia teams meet weekly. Here is one way to think about leading a team week-by-week. Here a "week" begins on one team meeting and ends on the next meeting.
During each meeting, plan for the week ahead. This plan should be documented somewhere accessible to all members, for example in the team meeting minutes.
- List goals for the week. Draw goals from (a) next steps for any members' ongoing projects and (b) steps that advance the team's mission. To the extent possible, keep each goal independent of the other goals so that team members don't block each other's work.
- Break goals down into sub-goals. Each sub-goal should represent a step of a few of days so that the team can tell if it is on track during the week.
- Team members volunteer to work on various goals. Which member works on which goal may be guided by each member's interests, expertise, or expected workload for the upcoming week. The team lead should take on goals too!
- The team lead might ask members if they can work on any unclaimed goals. Especially if members expect to have limited time during the upcoming week, the team might also push goals to the next week.
- Each member sets estimated completion dates for each of their sub-goals. These dates should be guided predominantly by what the member thinks they can realistically achieve. If a sub-goal is estimated to be completed after the task needs to be completed, the goal should be transferred to someone with more time to work on it.
Between meetings, the team lead tracks each member's progress on their goals. To do so, the team lead probably needs to communicate with members every couple of days. If members are running into trouble, the team lead can support them by removing roadblocks or troubleshooting problems.
In the next meeting, evaluate the team's progress on each goal. Some teams do this by highlighting each goal in green if the goal was achieved, yellow if progress was made on it, and red if the member wasn't able to start on it. You'll know you are setting reasonably-sized goals when you're consistently highlighting them green. Unexpected problems crop up all the time, though, so a few yellow tasks here and there is to be expected.
This evaluation period is also a good time to reflect on the week's work in the broader context of the team's mission. Are you fulfilling that mission? Bear the answer in mind when setting next week's goals.
Have an idea for how to improve the wiki? Please help make our documentation better by following our instructions for contributing to the wiki.
Core documentation
Developing Oppia
- FAQs
- Installing Oppia
- Getting started with the codebase
- Making your first PR
- Learning resources for developers
- Codebase Overview
- Coding Guidelines
- Coding style guide
- Guidelines for creating new files
- How to add a new page
- How to write frontend type definitions
- How to write design docs
- Revert and Regression Policy
- Server errors and solutions
-
Debugging
- If your presubmit checks fail
- If CI checks fail on your PR
- Finding the commit that introduced a bug
- Interpreting GitHub Actions Results
- Debugging Docs
- Debugging datastore locally
- Debugging end-to-end tests
- Debugging backend tests
- Debugging frontend tests
- Debug frontend code
- Debugging custom ESLint check tests
- Debugging custom Pylint check tests
- Debugging Stories
- Guidelines for launching new features
- Guidelines for making an urgent fix (hotfix)
- Lint Checks
- Oppia's code owners and checks to be carried out by developers
- Privacy aware programming
- Backend Type Annotations
- Bytes and string handling in Python 3
- Guidelines for Developers with Write Access to oppia/oppia
- Testing
- Release Process
Developer Reference
- Oppiabot
- Frontend
- Backend
- Translations
- Webpack
- Third-party libraries
- Extension frameworks
- Oppia-ml Extension
- Mobile development
- Mobile device testing
- Performance testing
- Build process
- Team structure
- Triaging Process
- Playbooks
- Wiki
- Past Events