Consolidate "Tools we use" plus some todos and other improvmenets (#9877)

. . .
This commit is contained in:
Mike McNeil 2023-02-16 07:50:17 -06:00 committed by GitHub
parent 50b9b43e31
commit 477d753af5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 133 additions and 87 deletions

View File

@ -9,7 +9,7 @@ Fleet is currently hiring for the following positions:
- 🫧 [Revenue Operations Manager](https://fleet-device-management.breezy.hr/p/c28cce9abf5e-revenue-ops)
- 🫧 [Field Marketer](https://fleet-device-management.breezy.hr/p/3bd97ce5f54a-field-marketing-manager-enterprise)
> Interested in joining the team at Fleet, or know someone who might be? The [company handbook page](https://fleetdm.com/handbook/company) is public, and a short read with more information about the company, including our vision, values, and history.
> Interested in joining the team at Fleet, or know someone who might be? The [company handbook page](https://fleetdm.com/handbook/company) is a short read with more information about the company, including our vision, values, and history.
## Meetings
* At Fleet, meetings start whether you're there or not. Nevertheless, being even a few minutes late can make a big difference and slow your meeting counterparts down. When in doubt, show up a couple of minutes early.
@ -165,30 +165,48 @@ During their first week at Fleet, new team members are asked to schedule a contr
### Directly responsible individuals
At Fleet, we use the concept of Directly Responsible Individuals (**DRI**s). This person is singularly responsible for a given aspect of the open source project, the product, or the company.
This person is accountable for accomplishing goals and making decisions about a particular element of Fleet.
DRIs help us collaborate efficiently by knowing exactly who is responsible and can make decisions about the work they're doing and are available to view in the [codeowners file](https://github.com/fleetdm/fleet/blob/main/CODEOWNERS).
>You can read more about directly responsible individuals in [GitLab's handbook](https://about.gitlab.com/handbook/people-group/directly-responsible-individuals/)
Please read ["Why direct responsibility?"](https://fleetdm.com/handbook/company/why-this-way#why-direct-responsibility) to learn more about DRIs.
> TODO: How's about we move this "Directly responsible individuals paragraph" to the ["Why this way?"](https://fleetdm.com/handbook/company/why-this-way) page instead, to deduplicate? (mikermcneil, 2023-02-16)
### Levels of confidentiality
- *Public* _(share with anyone, anywhere in the world)_
- *Confidential* _(share only with team members who've signed an NDA, consulting agreement, or employment agreement)_
- *Classified* _(share only with founders of Fleet, peepops, and/or the people involved. e.g., US social security numbers during hiring)_
### Email relays
There are several special email addresses that automatically relay messages to the appropriate people at Fleet. Each email address meets a minimum response time ("Min RT"), expressed in business hours/days, and has a dedicated, directly responsible individual (DRI) who is responsible for reading and replying to emails sent to that address. You can see a list of those email addresses in ["Contacting Fleet" (private Google doc)](https://docs.google.com/document/d/1tE-NpNfw1icmU2MjYuBRib0VWBPVAdmq4NiCrpuI0F0/edit#).
### GitHub labels
We use special characters to define different types of GitHub labels. By combining labels, we
organize and categorize GitHub issues. This reduces the total number of labels required while
maintaining an expressive labeling system. For example, instead of a label called
`platform-dev-backend`, we use `#platform :dev ~backend`.
| Special character | Label type | Examples |
|:------------------|:------------|:------------------------------------|
| `#` | Noun | `#platform`, `#interface`, `#agent`
| `:` | Verb | `:dev`, `:research`, `:design`
| `~` | Adjective | `~blocked`, `~frontend`, `~backend`
| `!` | OKR | `!vuln`, `!desktop`, `!upgrade`
## Tools we use
## Zoom
We use [Zoom](https://zoom.us) for virtual meetings at Fleet, and it is important that every team member feels comfortable hosting, joining, and scheduling Zoom meetings.
By default, Zoom settings are the same for all Fleet team members, but you can change your personal settings on your [profile settings](https://zoom.us/profile/setting) page.
Settings that have a lock icon next to them have been locked by an administrator and cannot be changed. Zoom administrators can change settings for all team members on the [account settings page](https://zoom.us/account/setting) or for individual accounts on the [user management page](https://zoom.us/account/user#/).
There are a number of tools that are used throughout Fleet. Some of these tools are used company-wide, while others are department-specific. You can see a list of those tools in ["Tools we use" (private Google doc)](https://docs.google.com/spreadsheets/d/170qjzvyGjmbFhwS4Mucotxnw_JvyAjYv4qpwBrS6Gl8/edit?usp=sharing).
Here is an overview of a few of the most important and generally-applicable tools we use at Fleet:
## Slack
### Slack
At Fleet, we do not send internal emails to each other. Instead, we prefer to use Slack to communicate with other folks who work at Fleet.
We use threads in Slack as much as possible. Threads help limit noise for other people following the channel and reduce notification overload.
We configure our [working hours in Slack](https://slack.com/help/articles/360025054173-Set-up-Slack-for-work-hours-) to make sure everyone knows when they can get in touch with others.
### Slack channel prefixes
#### Slack channel prefixes
We have specific channels for various topics, but we also have more general channels for the teams at Fleet.
We use these prefixes to organize the Fleet Slack:
* ***g-***: for team/group channels *(Note: "g-" is short for "grupo")*.
@ -196,13 +214,19 @@ We use these prefixes to organize the Fleet Slack:
* ***help-***: for asking for help on specific topics.
* ***at*** or ***fleet-at***: for customer channels.
### Slack communications and best practices
#### Slack communications and best practices
In consideration of our team, Fleet avoids using global tags in channels (i.e. @here, @channel, etc).
1. What about polls? Good question, Fleeties are asked to post their poll in the channel and @mention the teammates they would like to hear from.
2. Why does this matter? Great question! The Fleet [culture](https://fleetdm.com/handbook/company#culture) is pretty simple: think of others, and remember the company [Values](https://fleetdm.com/handbook/company#values).
## Salesforce
### Zoom
We use [Zoom](https://zoom.us) for virtual meetings at Fleet, and it is important that every team member feels comfortable hosting, joining, and scheduling Zoom meetings.
By default, Zoom settings are the same for all Fleet team members, but you can change your personal settings on your [profile settings](https://zoom.us/profile/setting) page.
Settings that have a lock icon next to them have been locked by an administrator and cannot be changed. Zoom administrators can change settings for all team members on the [account settings page](https://zoom.us/account/setting) or for individual accounts on the [user management page](https://zoom.us/account/user#/).
### Salesforce
We consider Salesforce to be our Rolodex for customer information. During the onboarding process, you may need to add a license for the new hire. Here are the steps we take:
1. Go to “Your account.”
2. View contracts -> pick current contract.
@ -210,7 +234,7 @@ We consider Salesforce to be our Rolodex for customer information. During the on
4. Sign DocuSign sent to the email.
5. The order will be processed in ~30m.
## Gong
### Gong
Capturing video from meetings with customers, prospects, and community members outside the company is an important part of building world-class sales and customer success teams and is a widespread practice across the industry. At Fleet, we use Gong to capture Zoom meetings and share them company-wide. If a team member with a Gong license attends certain meetings, generally those with at least one person from outside of Fleet in attendance.
- While some Fleeties may have a Gong seat that is necessary in their work, the typical use case at Fleet is for employees on the company's sales, customer success, or customer support teams.
- You should be notified anytime you join a recorded call with an audio message announcing "this meeting is being recorded" or "recording in progress." To stop a recording, the host of the call can press "Stop."
@ -509,10 +533,11 @@ For more information, check out [Fleet - who does what](https://docs.google.com/
## Rituals
The following table lists the People group's rituals, frequency, and Directly Responsible Individual (DRI).
| Ritual | Frequency | Description | DRI |
| Ritual | Frequency | Description | [DRI](https://fleetdm.com/handbook/company/why-this-way#why-group-slack-channels) |
|:-----------------------------|:-----------------------------|:----------------------------------------------------|-------------------|
| AP invoice monitoring | Daily | Look for new accounts payable invoices and make sure that Fleet's suppliers are paid. | Nathanael Holliday |
| Weekly update | Weekly | Updates from managers on what their departments accomplished for the week are logged in the cloud and disseminated in Slack. Update the ops KPIs in the ["🌈 Weekly updates" spreadsheet](https://docs.google.com/spreadsheets/d/1Hso0LxqwrRVINCyW_n436bNHmoqhoLhC8bcbvLPOs9A/edit#gid=0).| Charlie Chance |
| Weekly update reminder | Weekly | On Thursday, Charlie starts a thread in the `#help-manage` channel and asks managers to reply to the thread with a summary of what their team did in the past week. | Charlie Chance |
| Weekly update | Weekly | On Friday, Charlie updates the KPIs in the ["🌈 Weekly updates" spreadsheet](https://docs.google.com/spreadsheets/d/1Hso0LxqwrRVINCyW_n436bNHmoqhoLhC8bcbvLPOs9A/edit#gid=0) and posts a single message recognizing each of the week's on-duty people for each of the on-call rotations, along with any hiring and departure announcements. Charlie posts the company update in the `#general` channel. | Charlie Chance |
| AP invoice monitoring | Daily | Look for new accounts payable invoices and make sure that Fleet's suppliers are paid. | Nathanael Holliday |
| Hours update | Weekly | Screenshots of contractor hours as shown in Gusto are sent via Slack to each contractor's manager with no further action necessary if everything appears normal. | Charlie Chance |
| Prepare Mike and Sid's 1:1 doc | Bi-weekly | Run through the document preparation GitHub issue for Mike's call with Sid. | Nathanael Holliday |
| Brex reconciliation | Monthly | Make sure all company-issued credit card transactions include memos. | Nathanael Holliday |
@ -539,24 +564,27 @@ The following table lists the People group's rituals, frequency, and Directly Re
| Changeset for onboarding issue template | Quarterly | pull up the changeset in the onboarding issue template and send out a link to the diff to all team members by posting in Slack's `#general` channel. | Charlie Chance |
## Roadmap
https://github.com/orgs/fleetdm/projects/51/views/1
## Slack channels
These groups maintain the following [Slack channels](https://fleetdm.com/handbook/company#group-slack-channels):
These groups maintain the following [Slack channels](https://fleetdm.com/handbook/company/why-this-way#why-group-slack-channels):
| Slack channel | [DRI](https://fleetdm.com/handbook/company#group-slack-channels) |
| Slack channel | [DRI](https://fleetdm.com/handbook/company/why-this-way#why-group-slack-channels) |
|:----------------------------------------|:--------------------------------------------------------------------|
| `#g-business-operations` | Nathan Holliday
| `#help-onboarding` | Charlie Chance
| `#help-brex` | Nathan Holliday
| `#g-people` _(¶¶)_ | Charlie Chance
| `#help-mission-control` _(¶¶)_ | Charlie Chance
| `#help-ceo` | Charlie Chance
| `#help-login` | Nathan Holliday
| `#help-manage` | Charlie Chance
| `#help-brex` | Nathan Holliday
| `#help-ceo` | Charlie Chance
| `#help-mission-control` _(¶¶)_ | Charlie Chance
| `#g-people` _(¶¶)_ | Charlie Chance
| `#help-open-core-ventures` _(¶¶)_ | Mike McNeil
<meta name="maintainedBy" value="hollidayn">

View File

@ -4,31 +4,42 @@
Fleet Device Management Inc is an [open core company](https://www.heavybit.com/library/video/commercial-open-source-business-strategies/) that sells subscriptions that offer [more features and support](https://fleetdm.com/pricing) for Fleet and [osquery](https://osquery.io), the leading open source endpoint agent.
We are dedicated to
We are dedicated to:
- 🧑‍🚀 automating IT and security.
- 🧑‍🚀 automating IT and security with a living, breathing API.
- 🪟 privacy, transparency, and trust through open source software.
- 💻 a better way to manage computers.
## About the handbook
The Fleet handbook is inspired by the [GitLab team handbook](https://about.gitlab.com/handbook/about/). It shares the same [advantages](https://about.gitlab.com/handbook/about/#advantages) and will probably undergo a similar [evolution](https://about.gitlab.com/handbook/ceo/#evolution-of-the-handbook).
While [GitLab's handbook](https://about.gitlab.com/handbook/) inspires this handbook, it is nowhere near as complete (yet!) We will continue adding and updating this handbook and gradually migrating information from [Fleet's shared Google Drive folder](https://drive.google.com/drive/folders/1lA38aTxsl4_qDtHCrYHcAaadES5ws0yJ) as time allows.
### Contributing to the handbook
You can review more information about contributing to Fleet's handbook on this page [Contributing to the handbook](handbook/company/handbook.md)
## Culture
### All remote
Fleet Device Management Inc. is an all-remote company with team members spread across four continents and eight time zones. The broader team of contributors [worldwide](https://github.com/fleetdm/fleet/graphs/contributors) submits patches, bug reports, troubleshooting tips, improvements, and real-world insights to Fleet's open source code base, documentation, website, and company handbook.
Fleet Device Management Inc. is an all-remote company with team members spread across four continents and eight time zones. The broader team of contributors [worldwide](https://github.com/fleetdm/fleet/graphs/contributors) submits patches, bug reports, troubleshooting tips, improvements, and real-world insights to Fleet's open source code base, documentation, website, and [company handbook](#about-the-handbook).
### Open source
The majority of the code, documentation, and content we [create](https://twitter.com/mikermcneil/status/1476799587423772674) at Fleet is public and source-available. We strive to be open and transparent in the way we run the business, as much as confidentiality agreements (and time) allow. We perform better with an audience, and our audience performs better with us. Learn more about [why we use open source](https://fleetdm.com/handbook/company/why-this-way#why-open-source).
## Open positions
Please see [handbook/business-operations#open-positions](https://fleetdm.com/handbook/business-operations#open-positions) for a list of open job postings at Fleet.
## Org chart
Fleet's organizational chart is accessible as a sub-tab in ["🧑‍🚀 Fleeties" (private google doc)](https://docs.google.com/spreadsheets/d/1OSLn-ZCbGSjPusHPiR5dwQhheH1K8-xqyZdsOe9y7qc/edit#gid=0). On the other sub-tabs, you can also check out a world map of where everyone is located, hiring stats, and fun facts about each team member.
### Product groups
Fleet organizes cross-functional groups focused on particular business goals. These include members from Design, Engineering, Quality, and Product. For more information, check out this page [Product groups](./development-groups.md).
## Why this way?
At Fleet, we err on the side of being opinionated about conventions and processes we believe in, but we always keep in mind the possibility that we could be wrong. In other words: strong opinions, loosely held. And everything is in draft.
You can read more about the background behind why Fleet does things the way we do in ["Why this way?"](./why-this-way.md)
## 🌈 Values
Fleet's values are a set of five ideals adopted by everyone on the team. They describe the culture we are working together to deliver, inside and outside the company:
@ -81,6 +92,22 @@ Openness leads to better products and stronger partnerships. Being open about yo
- **Write everything down.** Let people learn about your work. Use simple language. Avoid acronyms and idioms that might not translate.
- **Be transparent.** We build in the open. Everything we do is public by default. Declassify confidential information with care.
## About the handbook
The Fleet handbook is inspired by the [GitLab team handbook](https://about.gitlab.com/handbook/about/). It shares the same [advantages](https://about.gitlab.com/handbook/about/#advantages) and will probably undergo a similar [evolution](https://about.gitlab.com/handbook/ceo/#evolution-of-the-handbook).
While [GitLab's handbook](https://about.gitlab.com/handbook/) inspires this handbook, it is nowhere near as complete (yet!) We will continue adding and updating this handbook and gradually migrating information from [Fleet's shared Google Drive folder](https://drive.google.com/drive/folders/1lA38aTxsl4_qDtHCrYHcAaadES5ws0yJ) as time allows.
### Contributing to the handbook
You can review more information about contributing to Fleet's handbook on this page [Contributing to the handbook](handbook/company/handbook.md)
### Handbook first
At Fleet, we make changes to the [handbook](#about-the-handbook) first. That means before a change to how we run the business is "live" or "live" or "official", it is first updated (with changes merged) in the relevant handbook pages and issue templates.
This keeps everyone in sync across the all-remote team in different timezones, avoids miscommunications, and ensures the right people have reviewed every change.
## History
### 2014: Origins of osquery
@ -95,64 +122,41 @@ When Kolide's attention shifted away from Fleet, and towards their separate, use
### 2020: Fleet was incorporated
Zach partnered with our CEO, Mike McNeil, to found a new, independent company: Fleet Device Management Inc. In November 2020, we [announced](https://medium.com/fleetdm/a-new-fleet-d4096c7de978) the transition and kicked off the logistics of moving the GitHub repository.
## Why this way?
Fleet has a unique way of organizing work. For more information, check out this page [Why this way](./why-this-way.md).
## Development groups
Fleet organizes cross-functional groups focused on particular business goals. These include members from Design, Engineering, Quality, and Product. For more information, check out this page [Development groups](./development-groups.md).
## Levels of confidentiality
- *Public* _(share with anyone, anywhere in the world)_
- *Confidential* _(share only with team members who've signed an NDA, consulting agreement, or employment agreement)_
- *Classified* _(share only with founders of Fleet, peepops, and/or the people involved. e.g., US social security numbers during hiring)_
## Email relays
There are several special email addresses that automatically relay messages to the appropriate people at Fleet. Each email address meets a minimum response time ("Min RT"), expressed in business hours/days, and has a dedicated, directly responsible individual (DRI) who is responsible for reading and replying to emails sent to that address. You can see a list of those email addresses in ["Contacting Fleet" (private Google doc)](https://docs.google.com/document/d/1tE-NpNfw1icmU2MjYuBRib0VWBPVAdmq4NiCrpuI0F0/edit#).
## Tools we use
There are a number of tools that are used throughout Fleet. Some of these tools are used company-wide, while others are department-specific. You can see a list of those tools in ["Tools we use" (private Google doc)](https://docs.google.com/spreadsheets/d/170qjzvyGjmbFhwS4Mucotxnw_JvyAjYv4qpwBrS6Gl8/edit?usp=sharing).
## GitHub labels
We use special characters to define different types of GitHub labels. By combining labels, we
organize and categorize GitHub issues. This reduces the total number of labels required while
maintaining an expressive labeling system. For example, instead of a label called
`platform-dev-backend`, we use `#platform :dev ~backend`.
| Special character | Label type | Examples |
|:------------------|:------------|:------------------------------------|
| `#` | Noun | `#platform`, `#interface`, `#agent`
| `:` | Verb | `:dev`, `:research`, `:design`
| `~` | Adjective | `~blocked`, `~frontend`, `~backend`
| `!` | OKR | `!vuln`, `!desktop`, `!upgrade`
## Rituals
|Ritual |Frequency | Description | DRI|
|-------|:---------|:------------|:---|
| Weekly update reminder | Weekly | On Thursday, Charlie starts a thread in the `#help-manage` channel and asks managers to reply to the thread with a summary of what their team did in the past week. | Charlie Chance |
| Weekly update | Weekly | On Friday, Charlie updates the KPIs in the ["🌈 Weekly updates" spreadsheet](https://docs.google.com/spreadsheets/d/1Hso0LxqwrRVINCyW_n436bNHmoqhoLhC8bcbvLPOs9A/edit#gid=0), combines the updates from managers into a single message and adds any hiring announcements. Charlie posts the company update in the `#general` channel. | Charlie Chance |
## Slack channels
The following Slack channels are maintained by Fleet's founders and executive collaborators:
The following Slack channels are maintained by Fleet's founders:
| Slack channel | [DRI](https://fleetdm.com/handbook/company#why-group-slack-channels)|
| Slack channel | [DRI](https://fleetdm.com/handbook/company/why-this-way#why-group-slack-channels)|
|:----------------------------|:--------------------------------------------------------------------|
| `#help-mission-control` | Charlie Chance
| `#help-okrs` | Charlie Chance
| `#help-manage` | Charlie Chance
| `#news-fundraising` | Mike McNeil
| `#help-open-core-ventures` | Mike McNeil
| `#general` | N/A _(announce something company-wide)_
| `#thanks` | N/A _(say thank you)_
| `#random` | N/A _(be random)_
#### Stubs
The following stubs are included only to make links backward compatible.
##### Levels of confidentiality
Please see [handbook/business-operations#levels-of-confidentiality](https://fleetdm.com/handbook/business-operations#levels-of-confidentiality).
##### Email relays
Please see [handbook/business-operations#email-relays](https://fleetdm.com/handbook/business-operations#email-relays).
##### Tools we use
Please see [handbook/business-operations#tools-we-use](https://fleetdm.com/handbook/business-operations#tools-we-use).
<meta name="maintainedBy" value="mikermcneil">
<meta name="title" value="🔭 Company">

View File

@ -85,7 +85,21 @@ The Fleet handbook provides team members with up-to-date information about how t
This strategy was inspired by GitLab, which uses it with great effect. Check out this [short three-minute video](https://www.youtube.com/watch?v=aZrK8AQM8Ro) about their take on the handbook-first approach.
## Why direct responsibility?
We use the concept of [directly responsible individuals](https://fleetdm.com/handbook/people#directly-responsible-individuals) (DRIs) to know who is responsible for what. For example, every department maintains its own dedicated [handbook page](https://fleetdm.com/handbook), with a single DRI, and which is kept up to date with accurate, current information, including the group's [kanban board](https://github.com/orgs/fleetdm/projects?type=beta), Slack channels, and recurring tasks ("rituals").
Like Apple and GitLab, Fleet uses the concept of [directly responsible individuals (DRIs)](https://about.gitlab.com/handbook/people-group/directly-responsible-individuals/) to know who is responsible for what.
A DRI is a person who is singularly responsble for a given aspect of the open-source project, the product, or the company. A DRI is responsible for making decisions, accomplishing goals, and getting any resources necessary to make a given area of Fleet successful.
For example, every department maintains its own dedicated [handbook page](https://fleetdm.com/handbook), with a single DRI, and which is kept up to date with accurate, current information, including the group's [kanban board](https://github.com/orgs/fleetdm/projects?type=beta), Slack channels, and recurring tasks ("rituals").
DRIs help us collaborate efficiently by knowing exactly who is responsible and can make decisions about the work they're doing. This saves time by eliminating a requirement for consensus decisions or political presenteeism, enables faster decision-making, and ensures a single individual is aware of what to do next.
You can view DRIs in:
1. The [CODEOWNERS files](https://github.com/fleetdm/fleet/blob/main/CODEOWNERS) of the fleetdm/fleet and fleetdm/confidential repositories.
2. The `name="maintainedBy"` tags at the very bottom of the raw markdown source for [every handbook page](https://github.com/fleetdm/fleet/tree/main/handbook) and [individual article](https://github.com/fleetdm/fleet/tree/main/articles).
3. The job titles and reporting structure indicated by the [company's organizational chart](https://fleetdm.com/handbook/company#org-chart) and the roles in our [cross-functional product groups](https://fleetdm.com/handbook/company#product-groups).
> In some cases, multiple subject-matter experts can merge changes to files even though there is a dedicated DRI configured as the "CODEOWNER". For examples of this, see the auto-approval flows configured as `sails.config.custom.githubRepoDRIByPath` and `sails.config.custom.confidentialGithubRepoDRIByPath` in [`website/config/custom.js`](https://github.com/fleetdm/fleet/blob/main/website/config/custom.js).
## Why group Slack channels?
Groups (`g-*`) are organized around goals. Connecting people with the same goals helps them produce better results by fostering freer communication. Some groups align with teams in the org chart. Other groups, such as [product groups](https://fleetdm.com/handbook/company/development-groups), are cross-functional, with some group members who do not report to the same manager.