Skip to content

Commit

Permalink
Move from sprints to kanban
Browse files Browse the repository at this point in the history
We've decided to stop working in sprints and simply schedule our work
weekly on monday meetings using a kanban board with no retrospective meetings.

Ref: teamniteo/operations#2091 (comment)
  • Loading branch information
myrheimb committed Jan 11, 2024
1 parent 000f503 commit d301d7b
Show file tree
Hide file tree
Showing 11 changed files with 79 additions and 149 deletions.
31 changes: 8 additions & 23 deletions 2_Operations/apps.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,26 +8,14 @@ We found that a lot of discussions, even work-related, naturally flow into priva

If you are on the receiving end of a question or message that should really be posted on a public channel, reply with the following: `Hey! Let's take this to one of our public channels so that others can learn or chip in. I'll re-post and reply there.`.

Here is how we set reminders for daily standups in Slack:
Here is how we set reminders for meetings in Slack:

```
Set up reminders on the week they should be posted before reminder post time.
Sprint planning / sprint retro week:
/remind #operations every two weeks on Tuesday at 8:00 UTC "@here Reminder that stories need to be closed an hour before retro starts."
/remind #operations every two weeks on Tuesday at 11:50 UTC "Sprint retrospective in 10 minutes!"
/remind #operations every two weeks on Tuesday at 11:59 UTC "@here Sprint retrospective starting now!"
/remind #operations every two weeks on Wednesday at 10:50 UTC "@here Add your stories to the To Do pipeline."
/remind #operations every two weeks on Wednesday at 11:50 UTC "Sprint planning in 10 minutes!"
/remind #operations every two weeks on Wednesday at 11:59 UTC "@here Sprint planning starting now!"
Second week of the sprint:
/remind #operations every two weeks on Thursday at 11:50 UTC “Standup in 10 minutes! Join the appropriate Zoom room or write an #out-of-office message if not attending”
/remind #operations every two weeks on Thursday at 11:59 UTC “@here Standup starting now!”
Weekly:
/remind #operations every Monday at 11:50 UTC “Standup in 10 minutes! Join the appropriate Zoom room or write an #out-of-office message if not attending”
/remind #operations every Monday at 11:59 UTC “@here Standup starting now!”
/remind #operations every Monday at 11:50 UTC “Meeting in 10 minutes! Join the appropriate Zoom room or write an #out-of-office message if not attending”
/remind #operations every Monday at 11:59 UTC “@here Meeting starting now!”
```

#### Channels
Expand All @@ -40,14 +28,14 @@ How to know which channel to write to? Write to the most specific channel. If yo

#### Decreasing Distractions

Slack can be a [big distraction](https://m.signalvnoise.com/is-group-chat-making-you-sweat-744659addf7d), especially if you're constantly receiving notifications or checking for replies.
Slack can be a [big distraction](https://m.signalvnoise.com/is-group-chat-making-you-sweat-744659addf7d), especially if you're constantly receiving notifications or checking for replies.

There are settings you can change to decrease distractions. In the Slack app, click on Niteo on top and go to Preferences. Notifications settings will open, and these are the recommended settings:

- **Notify me about**: choose `Direct messages, mentions & keywords`. Uncheck `Notify me about replies to threads I'm following`. If you still get too many pings, try using `Nothing`.
- **Sound & appearance**: check `Mute all sounds from Slack`, audio pings are extremely distracting. Uncheck `Bounce Slack's icon when receiving a notification`, another really annoying distraction. Unchecking `Include a preview of the message in each notification` will help you keep focus by notifying you of the message but not what it's about (where your brain automatically starts thinking about it). If you always need Slack empty of the red icon and click through everything to "clean it", uncheck `Show a badge on Mac on Slack's icon to indicate new activity`.
- **Notify me about**: choose `Direct messages, mentions & keywords`. Uncheck `Notify me about replies to threads I'm following`. If you still get too many pings, try using `Nothing`.
- **Sound & appearance**: check `Mute all sounds from Slack`, audio pings are extremely distracting. Uncheck `Bounce Slack's icon when receiving a notification`, another really annoying distraction. Unchecking `Include a preview of the message in each notification` will help you keep focus by notifying you of the message but not what it's about (where your brain automatically starts thinking about it). If you always need Slack empty of the red icon and click through everything to "clean it", uncheck `Show a badge on Mac on Slack's icon to indicate new activity`.

We encourage you to **quit Slack** when you need time for undistracted work. Make sure that other Niteans that depend on your feedback know that you're away. But unless there's a fire, a few hours of uninterrupted work will only benefit everyone.
We encourage you to **quit Slack** when you need time for undistracted work. Make sure that other Niteans that depend on your feedback know that you're away. But unless there's a fire, a few hours of uninterrupted work will only benefit everyone.

You can also use the **bell icon** (Notifications) to disable all notifications for a specific time period. However, this still shows the number of received messages in the Slack app icon (which is a distraction in itself).

Expand Down Expand Up @@ -98,9 +86,6 @@ Nitean:

Dropbox is one of the best file sharing services out there. We have a Business account that gives us terabytes of data.

On top of Dropbox we use Boxcryptor, to give us end-to-end encryption of our files.

For nicer search experience using Alfred on macOS:
* Add `~/Library/CloudStorage/Boxcryptor-Dropbox/Niteans` to `Search Scope` under `Default Results` configuration pane.
* Add `~/Library/CloudStorage/Boxcryptor-Dropbox/Niteans` to `Search Scope` under `Default Results` configuration pane.
* Add `~/home/<user>/Niteo Dropbox/Niteans` to `Prevent Spotlight from searching these locations:`.

2 changes: 1 addition & 1 deletion 2_Operations/how-we-work.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ In addition there are ad-hoc in-person meetups that happen about once or twice a

## Project And Company Management

We work in 2-week Scrum Sprints described in detail in the [work process](work-process.md) document.
We organize our work using a Kanban board which is described in detail in the [work process](work-process.md) and [kanban](kanban.md) documents.

Project and task management is currently done with [GitHub and ZenHub](/2_Operations/apps.md). Support handles tickets through Help Scout.

Expand Down
37 changes: 37 additions & 0 deletions 2_Operations/kanban.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Kanban

Our work process is based on [Kanban](https://en.wikipedia.org/wiki/Kanban) with some elements from [Scrum](https://en.wikipedia.org/wiki/Scrum_(software_development)):

* We are our own *product owners*, as we have no customer projects.
* We work asynchronously, so keep scheduled meetings to a bare minimum.
* We organize our work using a Kanban board.

Read about [writing User Stories and issues](user-stories.md).

User Stories that are dependent on each other should be merged into one bigger user story. This kind of User Stories can have 2 assignees.

## Monday Meetings

Each Monday we have a meeting to review the Kanban board and check in with our [OKR's](https://en.wikipedia.org/wiki/Objectives_and_key_results). We typically have one meeting per project starting with Operations.

Turn on your camera during the meeting. Try to refrain from doing other things (browsing, doing support, etc.) during the meeting -- we only have this meeting and it doesn't take a lot of time so we should all pay attention to everyone else for this period.

## Urgent Production Fixes

If we need to fix an urgent bug, we use the Scrum *priority lane* approach: the user story gets written and then if the product owner decides it really is urgent, the user story is added to the 'In Progress' pipeline and labeled with Priority Lane so that everyone knows it is an exceptional and urgent issue and the whole team needs to focus on getting it completed as soon as possible.

## Recurring Tasks

There are a bunch of tasks we have to do every month/quarter/year. To make sure they get assigned enough time for proper execution, we include them in the Kanban board as user stories. The only difference is, they don't need user story demo recordings since they happen so often and are repetitive.

For every month/quarter that a recurring task is required we (re)open the issue and create a comment for the new month/quarter.

## On-Calls

Sometimes, things break in the middle of the night or on weekends. The great thing about being a remote-first team is that we cover different time zones so there is almost always someone available. The solution for the weekend is to have Niteans on-call.

Being on-call means being available for any critical, urgent issues that may arise. Some examples of this are servers offline or the product app is down. Each on-call day (Saturday and Sunday) counts as a 2-hour workday, even if there were no emergencies. Any work more than two hours counts as regular work.

Niteans can be on-call only if they already pass basic support training or has already reported for [Everyone on Support](https://github.com/teamniteo/handbook/blob/master/4_Marketing-Support/everyone-on-support.md).

Every [Monday Meeting](https://github.com/teamniteo/handbook/blob/master/2_Operations/kanban.md#monday-meetings), we assign who will be on-call for the next weekend and note it in the [Monday Meeting issue](https://github.com/teamniteo/operations/blob/master/.github/ISSUE_TEMPLATE/monday_meeting.md).
5 changes: 2 additions & 3 deletions 2_Operations/next-task.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
# Find Your Next Task

We do most of our work through sprints so if you are in one, make sure you are completing those tasks first since they are our current focus. If for some reason you are not in the sprint, because of onboarding or finished your tasks, follow the steps below.
Make sure you are completing your assigned tasks first since they are our current focus. If for some reason you don't have any assigned tasks, because of onboarding or you've finished them, follow the steps below.

If all else is completed, you can always read a book, take an online course or just think about how we could make the company better.

## Developers

- Go through issues in our [backlog]. Choose a task that you like and if is not on a sprint then ask the Scrum master if you can start working on it.
- Go through issues in our [backlog]. Choose a task that you like and start working on it.
- Search the codebase and documentation for "TODO", "XXX" and similar strings. Try to understand why it's there and create an issue for it. If you like the task, you can start working on it immediately.

## DevOps and Support

- First focus on whether our systems are running smoothly and that all our customers' issues have been resolved and answered.
- Review our [handbook] documents, updating as necessary.
- If you are DevOps and have had no tasks for some time, you can join the next sprint.
- If you are support and have had a slow few days, start reading on how we could improve our support. This may include improving our processes or rewriting our responses.

## Marketing
Expand Down
66 changes: 0 additions & 66 deletions 2_Operations/scrum.md

This file was deleted.

Loading

0 comments on commit d301d7b

Please sign in to comment.