Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: update pm handbook #1307

Merged
merged 1 commit into from
Jan 3, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 21 additions & 13 deletions docs/docs/handbook/product.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,41 +6,49 @@ We use the [Jan Monorepo Project](https://github.com/orgs/janhq/projects/5) in G

As much as possible, everyone owns their respective `epics` and `tasks`.

> We aim for a `loosely coupled, but tightly aligned` autonomous culture.
:::tip
We aim for a `loosely coupled, but tightly aligned` autonomous culture.
:::

## Quicklinks

- [High-level roadmap](https://github.com/orgs/janhq/projects/5/views/16): view used at at strategic level, for team wide alignment. Start & end dates reflect engineering implementation cycles. Typically product & design work preceeds these timelines.
- [Standup Kanban](https://github.com/orgs/janhq/projects/5/views/25): view used during daily standup. Sprints should be up to date.

## Organization

[`Project Labels`](https://github.com/janhq/jan/issues/labels)
[`Roadmap Labels`](https://github.com/janhq/jan/labels?q=roadmap)

- `Project Labels` tag large, long-term, & strategic projects that can span multiple teams and multiple sprints
- Example label: `project: Jan has Mobile`
- `Projects` contain `epics`
- `Roadmap Labels` tag large, long-term, & strategic projects that can span multiple teams and multiple sprints
- Example label: `roadmap: Jan has Mobile`
- `Roadmaps` contain `epics`

[`Epics`](https://github.com/janhq/jan/issues?q=is%3Aissue+is%3Aopen+label%3A%22type%3A+epic%22)

- `Epics` track large stories that span 1-2 weeks, and it outlines specs, architecture decisions, designs
- Each `epic` corresponds with a `milestone`
- `Epics` contain `tasks`
- `Epics` should always have 1 owner

[`Milestones`](https://github.com/janhq/jan/milestones)

- `Milestones` correspond 1:1 to `epics` and are used to filter [Roadmap Views](https://github.com/orgs/janhq/projects/5/views/16)
- `Milestones` span 1-2 weeks and have deadlines
- `Milestones` track release versions. We use [semantic versioning](https://semver.org/)
- `Milestones` span ~2 weeks and have deadlines
- `Milestones` usually fit within 2 week sprint cycles

[`Tasks`](https://github.com/janhq/jan/issues)

- Tasks are individual issues (feats, bugs, chores) that can be completed within a few days
- Tasks under `In-progress` and `Todo` should always belong to a `milestone`
- Tasks, except for critical bugs, should always belong to an `epic` (and thus fit into our roadmap)
- Tasks are usually named per [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#summary)
- Tasks should always have 1 owner

We aim to always work on `tasks` that belong to a `milestones`.
We aim to always sprint on `tasks` that are a part of the [current roadmap](https://github.com/orgs/janhq/projects/5/views/16).

## Task Status
## Kanban

- `triaged`: issues that have been assigned
- `todo`: issues you plan to tackle within this week
- `no status`: issues that need to be triaged (needs an owner, ETA)
- `icebox`: issues you don't plan to tackle yet
- `planned`: issues you plan to tackle this week
- `in-progress`: in progress
- `in-review`: pending PR or blocked by something
- `done`: done
Loading