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

Add initiatives and delivery board description #821

Merged
merged 4 commits into from
Mar 25, 2024
Merged
Show file tree
Hide file tree
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
21 changes: 21 additions & 0 deletions cross-functional/images/boards.excalidraw.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
121 changes: 104 additions & 17 deletions cross-functional/workflow.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,121 @@
(leads:workflow)=
# Workflow

(slack:team-updates)=
## The `#team-updates` Slack channel
## Levels of work within 2i2c

The [`#team-updates` Slack channel](https://2i2c.slack.com/archives/C01GLCC1VCN) is for organization-wide announcements and team discussion.
It is a place for the whole organization to talk to one another, share status and life updates, etc.
There's not a strict limit to topics for discussion, but if your conversation fits within the scope of another Slack channel it's better to discuss there.
There are roughly three levels of work at play in 2i2c's team[^flight-levels]:

(slack:solution-forum)=
## The `#solution-forum` Slack channel
[^flight-levels]: These are heavily inspired [by the Flight Levels framework](https://www.flightlevels.io/).
choldgraf marked this conversation as resolved.
Show resolved Hide resolved

**Level 3: Strategy**. 2i2c's overall strategic goals and the initiatives that make progress towards them. [Defined as items in the initiatives board](#board:initiatives).

**Level 2: Coordination**. The sequence of actions that is carried out in order to complete an initiative, and the cross-team coordination needed to accomplish them. Defined as tasklists within initiatives [on the initiatives board](#board:initiatives).

**Level 1: Operations**. The work that a team intends to deliver now and next. This is a combination of strategic work that drives an initiative forward, as well as reactive work that is driven by external processes. [Defined as items on team delivery boards](#board:delivery).

In short, our strategic goals are 2i2c's overall measure of success. Initiatives are concrete efforts in a **strategy** to make progress towards those goals. Initiatives require **coordination** across our team to plan the proper sequence of actions. These plans are then **operationalized** by being pulled into the delivery processes of each team.

```{figure} images/boards.excalidraw.svg
An overview of our boards and how they relate to one another.
Initiatives (blue) are defined to make progress towards goals (red).
Initiatives have sequences of actions to move them forward defined in Initiatives Planning sessions (yellow).
Teams pull work from these sequences and complete them in their daily workflow (green).
```

(board:initiatives)=
## Initiatives board

The [**Initiatives board**](https://github.com/orgs/2i2c-org/projects/46) is where we define our team's strategic priorities, and coordinate across the team to ensure that each one has a clear plan of action.

There are three types of items on the initiatives board:

- **Strategic goals**: A high-level goal that defines success for 2i2c. This should be outcome-based, measurable, and directional in nature. All strategic initiatives should be linked to a goal.
- **Initiatives**: An effort that makes progress towards our goals, and usually requires coordination from multiple people or many actions over time. All non-reactive work should be tied to an initiative.

- Strategic initiatives represent progress made towards a strategic goal or a major project. These should all result in value delivered to communities.
- Investment initiatives are an investment in our team, technology, etc that does not immediately deliver value to communities, but helps us build a better foundation to do so.
- **Lists of Tasks and Epics**: Are the sequence of steps or deliverables that are taken to complete an initiative. These are defined as `[tasklist]` objects in each initiative, and are the main units of work that drive our actions.

`````{admonition} Example structure of an initiative
:class: dropdown
Here's the rough structure of an initiative, use this to guide the creation of new initiatives.

````markdown
title: Initiative name in GitHub issue

### Description

A short description of the initiative, with enough context so that people can understand
what kind of work it will entail, and why it is important to 2i2c's overall goals.

### Why is this important?

- This will allow us to XXX
- Link to a strategic goal or a project (2i2c-based, upstream, etc)

### Measures and definition of done

The [`#solution-forum` Slack channel](https://2i2c.slack.com/archives/C06G5FAAT63) is a space for cross-organization initiatives and strategic conversation.
- We expect to see XXX
- This will be complete when YYY

- It is meant for discussing organization-wide practices, policies, and planning.
- It will have a combination of strategic- and tactical-level discussion. (in the future we may split this into two channels if it's too much)
- It will initially focus its discussion around our "cross-functional initiatives" board and the items in it.
- Anyone that participates in conversations in this channel should dedicate the attention to understand the context for discussion and participate until topics are resolved.
- Area leads are expected to monitor this channel and participate in cross-team conversations as they arise.
- All 2i2c staff have visibility into the channel and may participate in conversations, but are not expected to do so as part of their daily responsibilities.
```[tasklist]
- [ ] A growing list of tasks and actions used to coordinate work around this initiative.
- [ ] Each should be an actionable issue that we track independently.
- [ ] This may be empty when the initiative is created! The initiative's goals should be used to decide what action issues to create next.
```
````
`````

### Team members expected to monitor this channel
### Bi-weekly initiatives meetings

Below is a list of the team members that we **expect** to participate in this channel on a regular basis:
There are two bi-weekly meetings with the initiatives team.

- **Initiative planning and refinement**: A combination of **coordination** and **prioritization**. We first walk the board and ensure each initiative has clear next steps, assigned people, and that any coordination between teams is clear. We next zoom out and discuss our overall portfolio of initiatives to ensure we're sequencing them properly. This should inform priorities for sprint planning and delivery.
- **Initiative retrospectives**: The Initiatives team follows the same retrospective structure we follow for any team. This should consider the results generated from sprint delivery and team retrospectives.

(slack:solution-forum)=
### The `#initiatives` slack channel

The [`#initiatives` Slack channel](https://2i2c.slack.com/archives/C06G5FAAT63) is a space for cross-organization initiatives and strategic conversation.

### Initiatives team

- @choldgraf : To represent 2i2c's overall strategy and policies
- @colliand: To represent our overall partnerships strategy and team
- @jmunroe: To represent our community success efforts
- @Gman0909 : To represent our product operations and strategy
- @damianavila : To represent our engineering team's needs
- @yuvipanda : To represent our technical and open source strategy
- @choldgraf : To represent 2i2c's overall strategy and policies
- @haroldcampbell : To represent 2i2c's overall system of work and operations
- @aprilmj : To represent 2i2c's People Operations and team support

(board:delivery)=
## Delivery boards

Our delivery boards are where we organize the tasks, deliverables and stories that drive our daily actions and our bi-weekly planning cycles.
All items on the delivery board should be linked to an `In progress` initiative, or be related to reactive work.

There are two delivery boards:

### Operations board

The [**Operations board**](https://github.com/orgs/2i2c-org/projects/47) is a team-wide board focused around delivery. Includes all organizational tasks/actions except for Engineering.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Includes all organizational tasks/actions except for Engineering.

So, we are expecting Product to use this board as well, am I correct?
I am "worried" that a definition of "everything except Eng" is actually hidding the complexities for each area inside that "bucket".

I just want to make sure people realize we are purposelly "hidding" complexity (which might the the right path!)

Btw, this is not a blocker IMHO, just some thoughts I had when I reviewed this PR.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, the idea is that we all use it to track issues that are focused on delivery and tactical-level things.

I am "worried" that a definition of "everything except Eng" is actually hidding the complexities for each area inside that "bucket".

Could you go into more detail on this? What kind of hidden complexity are you talking about?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As things specializes (ie. in different areas), it is easier to find differences in definitions, policies, etc.
Even cadences could be different.
With this proposal we are symplifiying pieces, assuming those differences do not exist or are just minimal ones.
We know in advance this is not true, but we can choose to model it like that if we abstract pieces enough high (the current approach). This is what I describe as "hidding"complexity, the fact we know things might be quite different but we are trying to model them with the same common abtraction. And that's a decision we are making and it is totally OK as long as we realize we are taking that decision (and understand their limitations).

Btw, re-reading this above paragraph I notice I am going maybe too meta 😉

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gotcha - thanks for this nuance. I think you have a valid concern, and it's something that we should keep in mind once we start following the retrospective process for these boards. That way we can learn and iterate


- [**Board link**](https://github.com/orgs/2i2c-org/projects/47)
- [**`#initiatives`**](https://2i2c.slack.com/archives/C06G5FAAT63) is the Slack channel for this board.
- **Meetings**: Bi-weekly organization-wide sprint planning meetings (except for engineering).

### Engineering board

The [**Engineering board**](https://github.com/orgs/2i2c-org/projects/49): A "special case" of the Operations board. It is functionally the same but focused on tech development cycles and largely attended to by the engineering team.

- [**Board link**](https://github.com/orgs/2i2c-org/projects/47)
- [**`#engineering`**](https://2i2c.slack.com/archives/C055A1J1DRP) is the Slack channel for this board.
- **Meetings**: Bi-weekly Engineering sprint planning meetings.

(slack:team-updates)=
## The `#team-updates` Slack channel

The [`#team-updates` Slack channel](https://2i2c.slack.com/archives/C01GLCC1VCN) is for organization-wide announcements and team discussion.
It is a place for the whole organization to talk to one another, share status and life updates, etc.
There's not a strict limit to topics for discussion, but if your conversation fits within the scope of another Slack channel it's better to discuss there.
30 changes: 0 additions & 30 deletions operations/meetings.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,36 +82,6 @@ Define a meeting recorder at the beginning of each meeting.

## Types of meetings

(meetings:content-meetings)=
### Content meetings

Meetings for discussion to help us resolve uncertainty and make decisions more quickly.

**What these meetings are for**:

- Discuss questions that arise when we review one another's work
- Refine work items in backlogs
- Prioritize work items in backlogs
- Discuss complex or sensitive topics that require high-bandwidth conversation

**What these meetings are not for**:

- Status updates about what we've been up to
- Short-term coordination and planning

### Coordination meetings

Short, focused meetings to align team members on a short-term plan of action.

**What these meetings are for**:

- Short-term planning given our priorities and any new work items
- Assign backlog items to team members to finish within a specific time window

**What these meetings are not for**:

- Discussing new ideas and proposals

(coordination:team-syncs)=
### Asynchronous team syncs

Expand Down
19 changes: 1 addition & 18 deletions organization/structure.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ They are led by the {role}`Executive Director` and responsibility is delegated t
- **[People operations](../people/index.md)**: Policies and practices for personnel, hiring, salaries, benefits, and time off.
- **[Open Source](../open-source/index.md)**: Our upstream and open source engagement strategy to ensure we have healthy relationships with communities we rely on.
- **[Finance](../finance/index.md)**: Our accounting and financial systems and strategy.
- **[Product](../product/index.md)**: Understand the perspective of our partner communities and guide the evolution of our infrastructure and services, in order to ensure they have a positive impact.
- **[Communication](../communication/index.md)**: Strategy and practices for communicating 2i2c's impact and operations with external communities.
- **[Administration](../administration/index.md)**: Carry out ongoing organizational tasks that are needed to keep 2i2c running on a daily basis.

Expand All @@ -35,25 +34,9 @@ They have dedicated leads that are defined in the **Structure and roles** sectio

Reporting lines are within a functional area, meaning that team members should report to somebody that has held a similar job in the past.


- **[Engineering](../engineering/structure.md)**: Develop and operate our technical and cloud infrastructure, to ensure that it is reliable and scalable.
- **[Partnerships](../partnerships/structure.md)**: Identify opportunities for impact, cultivate new relationships, and oversee our sustainability plan to ensure that we have sustainable and scalable impact.

## Cross-functional teams

Cross-functional teams consist of team members from various functional areas, and are organized around a specific _goal, service, or product_.
Teams should generally have members with the right skills and authority to accomplish the entirety of the team's goal.
They might be temporary or semi-permanent.

Teams often **share a backlog** that describes their goals and work items, and may also **share a project manager** that oversees coordination and execution of work.

They also often **have team meetings** to facilitate discussion and information flow across functional areas.

There are two main teams within 2i2c, both revolving around major aspects of our Managed Hubs Service:

- **Cross-team leadership**: Goal is to align on our major goals, strategy, and operations across the leaders of each functional area.
- **Product and Engineering**: Goal is to design, develop, and improve the Managed JupyterHub Service technology and end-user experience.
- **Community and Partnerships**: Goal is to cultivate relationships with new partnership communities, support and engage with our active partnerships, and use these relationships to feed into 2i2c's sustainability model.
- **[Product](../product/index.md)**: Understand the perspective of our partner communities and guide the evolution of our infrastructure and services, in order to ensure they have a positive impact.

(structure:steerco)=
(Steering Council)=
Expand Down