Flow structure

  1. A (process) problem comes up, frequently in an issue or chat.
  2. A proposal is made in a merge request to the handbook.
  3. Once merged, the change is announced by linking to the diff in the MR or commit. Changes are announced in the #it-handbook channel for visibility, with a one line summary of the change. If there was an issue, close it out with a link to the diff. Sometimes you want to have real time editing of a proposal during a meeting and you need to use a Google Doc for that. When doing so the first item should be the URL of the handbook page this content will be moved to when the meeting is over.

Handbook guidelines

Please follow these guidelines and remind others of them.

How to use the guide every day

  1. Most guidelines in this handbook are meant to help, and unless otherwise stated, are meant to help more than being absolute rules. Don’t be afraid to do something because you don’t know the entire handbook, nobody does. Be gentle when reminding people about these guidelines. For example say, “It is not a problem, but next time please consider the following guideline from the handbook.”
  2. If you ask a question and someone answers with a link to the handbook, they do this because they want to help by providing more information. They may also be proud that we have the answer documented. It doesn’t mean that you should have read the entire handbook, nobody knows the entire handbook.
  3. If you need to ask a team member for help, please realize that there is a good chance the majority of the community also doesn’t know the answer. Be sure to document the answer to radiate this information to the whole community. After the question is answered, discuss where it should be documented and who will do it. You can remind other people of this request by asking “Who will document this?”
  4. When you discuss something in chat always try to link to a URL where relevant. For example, the documentation you have a question about or the page that answered your question. You can remind other people of this by asking “Can you please link?”
  5. Remember, the handbook is not what we hope to do, what we should formally do, or what we did months ago. It is what we do right now. Make sure you change the handbook in order to truly change a process. To propose a change to a process, make a merge request to change the handbook. Don’t use another channel to propose a handbook change (email, O Doc, etc.).
  6. The handbook is the process. Any sections with names like ‘process’, ‘policies’, ‘best practices’, or ‘standard operating procedures’ are an indication of a deeper problem. This may indicate a duplication between a prose description of a process and a numbered list description of the same process that should be combined in one description of the process.
  7. When communicating something always include a link to the relevant (and up-to-date) part of the handbook instead of including the text in the email/chat/etc. You can remind other people of this by asking “Can you please link to the relevant part of the handbook?”
  8. Everyone should subscribe to the #it-handbook channel to stay up-to-date with changes to the handbook

How to change or define a process

  1. To change a guideline or process, suggest an edit in the form of a merge request.
  2. When working to get your change merged quickly, make sure you are asking the appropriate team members with merge rights. Not sure who is responsible? Consult (and add to) the CODEOWNERS repository.
  3. After it is merged you can post this in the #it-changes slack channel if applicable. You can remind other people of this by asking “Can you please send a merge request for the handbook?”
  4. When substantially changing handbook layout, please leave a link to the specific page of the review app that is directly affected by this MR. Along with the link, include as much info as possible in the MR description. This will allow everyone to understand what is the purpose of the MR without looking at diffs.
  5. Keeping up with changes to the Handbook can be difficult, please follow good commit subject guidelines with a particular focus on your merge request’s title, to ensure someone reading the Handbook Release Log can quickly understand the MR’s content.
  6. Communicate process changes by linking to the merged diff (a commit that shows the changes before and after). If you are communicating a change for the purpose of discussion and feedback, it is ok to link to an unmerged diff. Do not change the process first, and then view the documentation as a lower priority task. Planning to do the documentation later inevitably leads to duplicate work communicating the change and it leads to outdated documentation. You can remind other people of this by asking “Can you please update the handbook first?”
  7. When feasible, introduce process changes iteratively. It is important that you contribute to the handbook by making small merge requests. This will help gain adoption among the process’s intended audience. We want to avoid significant process changes that are unnecessarily large, top-down, and disruptive. These types of process changes can disempower DRIs and cause people to focus on process rather than results.
  8. Like everything else, our processes are always in flux. Everything is always in draft, and the initial version should be in the handbook, too. If you are proposing a change to the handbook, whenever possible, skip the issue and submit a merge request. (Proposing a change via a merge request is preferred over an issue description). Mention the people that are affected by the change in the merge request. In many cases, merge requests are easier to collaborate on since you can see the proposed changes.
  9. If something is a limited test to a group of users, add it to the handbook and note as such. Then remove the note once the test is over and every case should use the new process.
  10. If someone inside or outside Roivant IT makes a good suggestion invite them to add it to the handbook. Send the person the URL of the relevant page and section and offer to do it for them if they can’t. Having them make and send the suggestion will make the change and will reflect their knowledge.
  11. When you submit a merge request, make sure that it gets merged quickly. Making single, small changes quickly will ensure your branch doesn’t fall far behind master, creating merge conflicts. Aim to make and merge your update on the same day. Mention people in the merge request or reach them via Slack. If you get a suggestion for a large improvement on top of the existing one consider doing that separately. Create an issue, get the existing MR merged, then create a new merge request.
  12. If you have to move content have a merge request that moves it and does nothing else. If you want to clean it up, summarize it, or expand on it do that after the moving MR is merged. This is much easier to review.
  13. Try to add the why of a handbook process, what is the business goal, what is the inspiration for this section. Adding the why makes processes easier to change in the future since you can evaluate if the why changed.

Style guide and information architecture

Single Source of Truth

Think about the information architecture to eliminate repetition and have a Single Source of Truth (SSoT). Instead of repeating content cross-link it (each text has a hyperlink to the other piece). If you copy content please remove it at the origin place and replace it with a link to the new content. Duplicate content leads to more work by having to update the content in multiple places as well as the need to remember where all of the out of date content lives. When you have a single source of truth it’s only stored in a single system. Make sure to always cross-link items if there are related items (elsewhere in the handbook, in docs, or in issues).

System of Record

A system of record (SoR) is the authoritative data source for a given data element or piece of information. It’s worth noting that while it is possible to have a system of record that is also a single source of truth, simply just being a system of record doesn’t directly imply it is the single source of truth.

Use headings liberally

Headings should have normal capitalization: don’t use ALL CAPS or TitleCase). After a heading, leave one blank line; this is not required in the standard, but it is our convention.

Editing the handbook

Strongly consider learning how to edit the handbook using git and/or via the web IDE. Please read through the Writing Style Guidelines before contributing.

Fine points

  • Keep your handbook pages short and succinct. Eliminate fluff and get right to the point with the shortest possible wording. Keep in mind that the biggest challenge cited by new employees is the vast amount of information to take in during on-boarding.
  • We don’t need .gitkeep files in our handbook, they make it harder to quickly open a file in editors. Don’t add them, and delete them when you see them.
  • When mentioning currency amounts that team members may need to convert to their local currency (e.g. benefits, expenses, or bonuses), link those amounts to our Exchange Rates section (e.g. 500 USD).

Scope of this handbook

  • The handbook is for things concerning current and future Roivant IT team-members only. If something concerns teammates from Roivant general or the Vant Federation, content about it should go in the Support Knowledgebase, or on the Roivant Intranet.

Handbook First Competency

In an distributed, global organization, each team member should practice handbook first. For more information on what it means to be handbook first, please refer to the why handbook first section of this page.

Skills and behaviors of handbook first as a Team Member:

  • Actively contributes to the handbook.
  • Handbook changes start with a merge request
  • Provides links information from the handbook when answering questions and if the information doesn’t exist in the handbook, then the team member adds it.

Skills and behaviors of handbook first as a People Leader:

  • Holds their team and others accountable for being handbook first
  • Enables new team members and managers on how to leverage the handbook as a resource.
  • Serves as a role model for what it means to be handbook first.

Management

It is each department and team member’s responsibility to ensure the handbooks (public handbook, internal handbook, and staging handbook) stay current. The content in the handbook should be accurate and follow the same format as outlined in the Guidelines. For questions on who to submit a merge request to, or assistance with the handbook, please reach out on the #it-handbook Slack channel. Any changes to the handbook as part of this review will be shared in the #it-handbook channel in Slack.

Screenshot the handbook instead of creating a presentation

Presentations are great for ephemeral content like all-hands and board presentations. Evergreen content like a leadership training should be based on the handbook. This is an important element of working handbook-first. In the creation of presentations for evergreen content, please screenshot the handbook and provide links to displayed pages rather than copy and pasting content (or formatting a slide specifically to mirror handbook information). This approach shows a bias towards asynchronous communication, and rationale for this is below. 1. It saves you the effort of needing to both update the handbook and create content for a presentation; the handbook is checked and improved as part of the preparation instead of extra work

  1. The handbook will stay up to date so people don’t look at an outdated information in a presentation
  2. Seeing screenshots will confirm to people the content is in the handbook and it is up to date there
  3. People get used to the structure of the handbook and can more easily find the relevant handbook section later on
  4. The content is open for everyone to contribute to when it is in the handbook
  5. The content is integrated with the rest of our processes and shown in context
  6. Many more people will consume the content on a webpage more than a presentation because it is easier to search and link
  7. You’re helping other organizations and students around the work by giving them an example how we do it
  8. Also see some of the advantages of using our handbook

The presentation will look less polished, but the advantages outweigh that concern. If a synchronous presentation is required, default to sharing your screen and viewing live handbook pages over a slide presentation.

Make it worthwhile

Another company asked how we managed to work with the handbook because at their company it wasn’t working: “There are many occasions where something is documented in the knowledge base, but people don’t know about it because they never bothered to read or search. Some people have a strong aversion against what they perceive as a ‘wall of text’.”

We attempt to cover this in our guide to embracing a handbook-first approach to documentation. To ensure that people’s time is well spent looking at the handbook we should follow the ‘handbook guidelines’ above, and also:

  1. Follow the writing style guide
  2. Have a great search function (we use Algolia), plus make it public so you can Google search
  3. Test people on their knowledge during onboarding
  4. Give real examples
  5. Avoid corporate speak, describe things like you’re talking to a friend. For more, see our communications guide on Simple Language.

Wiki handbooks don’t scale

Company handbooks frequently start as wikis. This format is more comfortable for people to work in than a static website with GitLab Merge Requests and GitLab Pages. However wikis tend to go stale over time, where they are badly organized and get out of date. In wikis it is impossible to make proposals that touch multiple parts of a page and/or multiple pages. Therefore it is hard to reorganize the handbook. Because GitLab Merge Requests and GitLab Pages are based on distributed version control you can split the role of submitter and approver. This allows for a division of work that keeps the handbook up to date:

  • Anyone who can read the handbook can make a proposal
  • Leaders (who tend to be short on time) only have to approve such a proposal

Wikis also do not encourage collaboration on changes, because there is no way to discuss a proposed change like there is with merge requests. Some wikis make it hard to view and/or link to diffs of changes, which is needed to communicate decisions.

Merge Rights Guidelines

You need maintainer access to the roivant-it-handbook project to be able to merge MRs for the handbook. If you want merge access, contact Mike Culbertson.

Merge with confidence

Even if you are not a developer, you should feel confident merging any changes that pass the pipeline without worrying that you will break the handbook. The tests in the pipeline are designed to catch any major problems. The roivant-it-handbook project is configured so that changes cannot be merged unless the pipeline passes. When in doubt, feel free to loop in a technical reviewer. You can ask for help in the #it-handbook slack channel.

Do not use merge immediately

Do not use the merge immediately feature! Even if your MR is important and time-sensitive, using this feature will create a lot of pain for everyone else. This feature should only be used when critical public information needs to be sent live as quickly as possible and should be approved by the CIO. If you don’t have CIO approval, don’t use this feature. More context on the technical reasons behind this:

  • We want to have a fast pipeline for the master branch, which minimizes the time needed for changes to be deployed and appear live on the production site.
  • In order to achieve this, we do not run any tests or linters on the master branch, because these are long-running jobs which would block a fast deployment.
  • Instead, we rely on the Merge Train to ensure that all Merge Request changes have successfully passed all necessary test/lint jobs before being allowed to merge.
  • So, if you use “merge immediately”, none of the test/lint jobs will be run, which will result in a broken master branch if problems were introduced.
  • This means that everyone who creates new MRs off of master after this point will experience confusing pipeline failures which are not their fault, and this will continue until this situation is discovered and a fix is merged to master.

When to get approval

Getting pinged to approve every small change to your page can be annoying, but someone changing a policy or procedure in the handbook without proper approval and have strong negative consequences. Use your best judgement on when to ask for approvals. Whenever reasonable, practice responsibility over rigidity. When you expect a page owner will appreciate your changes, go ahead and merge them without approval. Always ping the code owners with an @mention comment to inform them of the changes. They will be happy their page was made better and they didn’t need to waste time reviewing and approving the change. In the event that something isn’t an improvement, we practice clean up over sign off

Whenever appropriate, get approval from the code owner using the approval feature before merging changes. Each page in the handbook shows who the code owner listed under “Maintained by”. This information is pulled from the codeowners file. The page’s code owner is the DRI for the page and has the final say for what appears in the handbook. When in doubt, get the DRI’s permission before changing their page. Don’t worry if the DRI is a C-level person. You can still assign your MRs to them, even if you are an individual contributor. This is because we prefer to communicate directly.

Have a peer review your changes

Unless it’s a small change like a typo, always have another team member review your changes before you merge them.

Broad Permissions

Being a maintainer gives you access to much more than just the ability to merge. You can see a full list of permissions in the docs. Keep in mind that you’ll have access to a broad set of settings and configuration for the project. Don’t adjust any settings or make any structural changes without approval from the system DRIs (director-level leadership).

Granting others maintain access

Do not grant people the Maintainer role without approval. As a maintainer you have the ability to grant others the Maintainer role. Don’t do so without following the Access Request process to garner the appropriate approvals and create the necessary documentation.