Digital Experience Handbook
Overview
🙌 Purpose
Why we exist
We take a customer-centric approach to educating prospects on how GitLab enables them to deliver software faster and more securely.
Team Members
Role | Name |
---|---|
Senior Product Designer | Tina Lise Ng |
Senior Product Designer | Trevor Storey |
Product Design | Carrie Tsang |
Senior Frontend Engineer | Megan Filo |
Frontend Engineer | Javi Garcia |
Senior Frontend Engineer | Laura Duggan |
Senior Frontend Engineer | Marg Mañunga |
Frontend Engineer | Miguel Duque |
Senior Frontend Engineer | Nathan Dubord |
Fullstack Engineer | Miracle Banks |
Senior Fullstack Engineer | John Arias |
Senior Fullstack Engineer | Mateo Penagos |
Senior Product Manager | Filza Qureshi |
Engineering Manager | Lauren Barker |
Scope
Our team leads the GitLab’s digital marketing platform, or simply the “Marketing Site" refers to https://about.gitlab.com
.
We own the following repositories:
Our team strengths & core capabilities:
- Engineering and UX desing for about.gitlab.com
- Cross collaboration
- Speed and delivery
- Customer journey maps
Our team supports:
- HTML email templates
- PathFactory
- Marketo
- learn.gitlab.com
- www-gitlab-com
- Globalization
We do not support:
- Handbook
- Internal handbook
- Content copwriting or edits
- Cloudflare server infrastructure
Teams we work closely with:
- SEO
- Analytics
- Product Marketing
- Content Moarketing
- Brand Strategy
- Marketing Ops
- Blog
- Globalization
- Events
- Competitve Intelligence
OKRs
We collaboratively define OKRs as a team with cross functional partners in advance of each quarter. Once OKR candidates are complete we review, size/scope them and align on which best help achieve our business objectives.
Current Quarterly Plan
FY25Q1 Digital Experience Quarterly Plan & OKRs
Iteration Process
We release every 2 weeks, always on a Wednesday. We can push MRs at any time but for collaborative work initiatives, we plan a package for delivery to ensure we’re consistently improving our prospective customer’s experience.
We start iteration a Monday. The following Wednesday is async release day, although we are releasing throughout the iteration. On the thursday a week after our Monday iteration planning, we come together for a syncrornous meeting to share what we’ve released. This meetings are recorded and can be viewed in our #digita-experience YouTube playlist.
Issue Board
Labels and Workflow Boards
We use issue boards to track issue progress throughout a iteration. Issue boards should be viewed at the highest group level for visibility into all nested projects in a group.
The Digital Experience team uses the following issue labels for distinguishing ownership of issues between specialities:
Who | Title |
---|---|
User Experience | ~dex::ux |
Engineering | ~dex::engineering |
The Digital Experience team uses the following labels for tracking merge request rate and ownership of issues and merge requests.
What & Current Issues | Label |
---|---|
Work to be triaged | ~"dex-status::traige" |
Refinement on issue is needed | ~"dex-status::refinement" |
Issues in the backlog | ~"dex-status::backlog" |
Issues to be worked on | ~"dex-status::to-do" |
Currently being actioned | ~"dex-status::doing" |
Work in review | ~"dex-status::review" |
Unplanned work | ~"dex-unplanned" |
Issue for Conversion team to complete | ~"dex-group::conversion" |
Issue for Optmization team to complete | ~"dex-group::optimization" |
Issue for product designer to complete | ~"dex::ux" |
Issue for engineer to complete | ~"dex::engineering" |
Digital Experience teams work across the GitLab codebase on multiple groups and projects including:
- The gitlab.com/gitlab-org group
- gitlab
- customers-gitlab-com
- The gitlab.com/gitlab-com group
- www-gitlab-com
- Buyer Experience
- GitLab Blog
- Slippers Design System
- Marketing Site Navigation Package
Estimation
Before work can begin on an issue, we should estimate it first after a preliminary investigation. This is normally done in the iteration planning meeting.
Weight | Description (Engineering) |
---|---|
1 | The simplest possible change. We are confident there will be no side effects. |
2 | A simple change (minimal code changes), where we understand all of the requirements. |
3 | A simple change, but the code footprint is bigger (e.g. lots of different files, or tests effected). The requirements are clear. |
5 | A more complex change that will impact multiple areas of the codebase, there may also be some refactoring involved. Requirements are understood but you feel there are likely to be some gaps along the way. |
8 | A complex change, that will involve much of the codebase or will require lots of input from others to determine the requirements. |
13 | A significant change that may have dependencies (other teams or third-parties) and we likely still don’t understand all of the requirements. It’s unlikely we would commit to this in a milestone, and the preference would be to further clarify requirements and/or break in to smaller Issues. |
In planning and estimation, we value velocity over predictability. The main goal of our planning and estimation is to focus on the MVC, uncover blind spots, and help us achieve a baseline level of predictability without over optimizing. We aim for 70% predictability instead of 90%. We believe that optimizing for velocity (merge request rate) enables our Growth teams to achieve a weekly experimentation cadence.
- If an issue has many unknowns where it’s unclear if it’s a 1 or a 5, we will be cautious and estimate high (5).
- If an issue has many unknowns, we can break it into two issues. The first issue is for research, also referred to as a Spike, where we de-risk the unknowns and explore potential solutions. The second issue is for the implementation.
- If an initial estimate is incorrect and needs to be adjusted, we revise the estimate immediately and inform the Product Manager. The Product Manager and team will decide if a milestone commitment needs to be adjusted.
Triage
The purpose of the traiage meeting is to create a list of refined issues that meet our current goals. This list will include a combination of bugs, features, and optimizations. These issues are manually added to the next iteration until the desired weight point limit is reached. Refinement is completed async by before to ensure issues are prepared for upcoming iterations. This involves deleting obsolete/duplicate issues, adding missing context/labels, and moving issues to either the backlog, or further refinement. Keeping the backlog organized is a must, it eliminates clutter and creates cohesion between issues. Enabling the team to navigate and contribute more efficiently.
Cadence: 25min, bi-weekly (zoom)
Who: Engineering representative, Product management. Triage Agenda. What:
- Review backlog for iteration candidates.
- Populate the next iteration with prioritized issues.
- Move issues to refinement/backlog.
- Close obsolete/duplicate issues.
- Assign labels:
- dex-status
- dex-group
- dex-engineering/dex-design
- Assign weight points.
Planning (Iteration Plan Sync)
Iteration planning is an event that kicks off the start of an iteration. The purpose of the meeting is to collaboratively spread the prioritized list of issues amongst the team. These meetings are recorded and uploaded to our Digital Experience playlist on GitLab Unfiltered.
Cadence: 25min, bi-weekly (zoom)
What:
- The team distributes the prioritized list of issues.
- Communicate timelines, dependencies, etc.
Release
An event to showcase what the team has accomplished over the past iteration. These meetings are recorded and uploaded to our Digital Experience playlist on GitLab Unfiltered.
When: Thursdays, 25min, bi-weekly (zoom)
What:
- Showcase what has been released in the past iteration.
Retrospective
The retrospective is an event held at the end of an iteration, used to discuss what went well, and what can be improved on. An ongoing agenda can be found here. This meeting is recorded and uploaded to our Digital Experience playlist on GitLab Unfiltered.
When: Thursdays, 40min, bi-weekly (zoom)
What:
- Discuss what went well and what can be improved on.
- Communicate any process changes, etc. This is the only meeting where the whole team is present.
Iteration Changelogs
At the end of every iteration we run a scheduled pipeline job that generates a changelog for the Buyer Expeirence repository. It shows all the chnages made to the project with semanitc commits.
FAQ:
Iteration boards
How long is an iteration?
An iteration is 2 weeks, running from Monday to the following Thursday.
Where can I find the iteration boards?
Iteration boards are created at the team level, and the individual level:
Digital Experience > Issues - Boards > Then selecting an individual’s name or group from the dropdown.
What are the iteration boards used for?
Iteration boards are meant to give an overview of what the team is working on, and to provide a rough idea on what the team is capable of producing in an iteration.
How do I move issues from start to finish?
At the start of an iteration, all issues will have the dex-status::todo label. As issues are worked on, the dex-status label will need to be updated. This can be done by dragging (on your individual board) between columns, or manually changing the dex-status label on the issue.
What if I wasn’t able to complete my iteration board?
Don’t stress, weight points are estimates, unforeseen events happen. Any carryover can be added to the next iteration.
What if I complete my iteration board early?
A few options for when an an individual’s iteration board is complete:
- Offer assistance to other team members.
- Pull a new issue from the backlog into the current iteration.
- Sharpen skills/tools.
- General housekeeping.
Weight points
What is a weight point?
A weight point is a unit of measurement that’s used to develop a rough estimate of the work required to complete an issue. 1 weight point is measured as .5 days.
How many weight points should an issue be?
The suggested task duration is between 2-4 weight points (1-2 days). There will be exceptions, but it’s recommended to break issues into smaller units of work. Small units of work allow for quicker review cycles, and facilitates collaboration.
Issues
What should I do if I’m assigned new issues mid-iteration?
Generally if an issue is added mid-iteration, it’s high priority. It’s recommended to work with your team to remove the same amount of weight points from your iteration to make room. These removed issues should go back in the backlog.
Apply the dex-unplanned
label.
Do I need to add any labels?
Before entering an iteration, an issue should already be refined with the proper labels. The only label that changes is the dex-status label (as the issue moves from start to finish).
What if I’m assigned an issue that I can’t close due to content/data gathering?
Unfortunately there will always be edge case issues that cannot be resolved in an iteration To mitigate the amount of carryover, it’s recommended to break the issue into smaller chunks
Example A: If an issue is open while waiting on content/assets, it’s best to create a content/asset gathering issue and close the original issue.
Example B: An issue is open while gathering data from an AB test, it may be best to create an issue to start the information gathering, and an issue to analyze the data at the end.
Weekly Check In
We use Geekbot to conduct asynchronous, weekly check-ins on iteration progress.
Each member of the Digital Experience team should be listed as a participant in the weekly check ins, and everyone should have permissions to manage the application for our team. The app can be configured through the Geekbot Dashboard, which you can visit directly, or find by clicking the Geekbot Slack conversation, navigating to the About tab, and clicking App Homepage.
Production Change Lock (PCL)
Similar to the engineering department, we sometimes temporarily halt production changes to the Buyer Experience repository when team availability is reduced, or we expect atypical user behavior (such as during high-visibility public events).
Risks of making a production environment change during these periods includes immediate customer impact and/or reduced engineering team availability in case an incident occurs. Therefore, we have introduced a mechanism called Production Change Lock (PCL). We are listing the events here so that teams are aware of the PCL periods.
The following dates are currently scheduled PCLs. Times for the dates below begin at 09:00 UTC and end the next day at 09:00 UTC.
Dates | Reason |
---|---|
2023-12-22 to 2024-01-02 | End of 2023, limited coverage |
During PCL periods, merge requests and deployments can only be made by senior team members, managers, and levels of management above our team.
Figma Process
GitLab Product Process
From time to time, our team has objectives that require us to collaborate on the GitLab product. Read more about the process for our engineers to onboard
Special cases during release post schedule: we hold off on making changes to the www-gitlab-com
repository during release post days. The release post process is handled by a different team, and it can be disruptive to their work when we release changes to dependencies, CI/CD, or other major changes around their monthly release cadence.
Repository Health Contributions
At the end of every sprint cycle, Digital Experience team members can spend 10% or one day to work on issues related to improving the health of about.gitlab.com, the developer experience, tackle tech debt, or improve our documentation.
The structure of Repository Health Day is as follows:
- Team members will choose what they wish to work on for this day.
- Each team member will submit a single merge request to the Slippers Design System, Navigation, or Buyer Experience repository by the end of repository health day.
- This merge request will be related to an issue from any partner or group within GitLab.
By allowing our team members to contribute to the health of our repositories for a day, we can contribute low-effort, high-impact solutions that will drive results for our team, partners, and the entire marketing site. This will enable Digital Experience team members to use their strengths to efficiently drive results for https://about.gitlab.com/. We’re all good at different things and come from different backgrounds. Let’s use that to our advantage to build a better tech stack that is inclusive of the team members that use it everyday.
Analytics
For any Digital Experience analytics request, please create an issue within the Marketing Strategy and Analytics project using the dex_analytics_request
template to outline specific requirements. To ensure a smooth milestone planning, please assign the issue to @dennischarukulvanich ideally a week or more in advance.
Sales Shadows
How to set up a Sales Shadow
SMB
- Contact a Sales Development Manager (Josh Downey) or Director, Sales Development (Brian Tabbert).
- Let them know what team you’re from and that you’d like to shadow a few sales calls to observe real GitLab prospects talking to our Sales team to learn [insert what you’re trying to learn here. Example: what the common topics potential customers want to discuss with our Sales team are.]
- Inform the Sales Development Manager or Director, Sales Development how many shadows you’d like to do and a rough timeline for when you’d like to do them.
- The Sales Development Manager or Director, Sales Development will inform their Sales Development Reps (SDRs), and they will add you to relevant, upcoming Discovery calls with an Account Executive (AE).
- Accept the invite and review any supplied material when you add it to your calendar.
- When joining the call, remember:
- You’re there to observe. If asked to introduce yourself, come off mute and do so, then go back on mute and let the Sales team do what they do.
- Keep your camera on.
- Have a notes doc prepared and take notes on your observations and insights.
- After the call, review your notes, and synthesize and create action items.
- Send a thank you message to the Sales team members who hosted you.
- Once all shadows are completed, share your notes and insights with the team.
Team Shadow Expectations
Whoever gets closest to the customer wins. With this in mind, the Digital Experience team is expected to shadow Sales calls regularly.
Contact Us
Slack Group
@digital-experience use this handle in any channel to mention every member of our team.
Slack Channels
Slack Application
We have created a Slack application called Dex Bot to notify our team about important CMS changes, read more about it here
GitLab Unfiltered Playlist
Watch our team in action on YouTube!
Requesting Support
Things we don’t do
- Content changes. You can do these yourself using our CMS, Contentful:
- Here’s a quick video on how to search for and edit existing content for the marketing site. For completely new pages, please fill out an issue
- Want to learn more about our Contentful CMS? Here’s the documentation
- Create content. You can collaborate with our excellent Global Content team for these needs.
- Create branded assets, custom graphics, illustrations. Our Brand design team is so good at this, you definitely want their expertise.
Issue template to submit an idea to drive our business goals
We love collaborating on work that drives our North Star and supporting metrics. If you have an idea, a strategic initiative, or an OKR that we requires our support here’s how you can kick off our collaboration:
- Review the FAQ section related to pre-work that will increase the chances your issue is prioritized.
- Create an issue using this template
DEX team members with platform access
LaunchDarkly
Digital Experience FAQ
Previous Quarterly Plans & OKRs
Content Wireframe Instructions
The Digital Experience team is primarily responsible for facilitating content, not creating it. Please prepare a content plan:- You can use the Blocks section in Slippers to "shop" for blocks and plan your content to work with designs that already exist.
- This youtube video shows how to navigate the Slippers Figma file and how a content doc can work with the blocks.
- Not sure what a "block" is? You can read about that and more on our Digital Definitions handbook page.
- Use this Content + DSN Block Template as a base. This template allows you to input existing block designs mentioned above.
- This Content Wireframe Template is based on the current about.gitlab.com/enterprise page
Image Requirements
- See image guidelines for specs
SEO Requirements
- SEO and keyword analysis from the Search Team Issue Templates is recommended.
- See naming conventions
Buyer Experience Repository
CMS Support Plan
CMS Troubleshooting Playbook
Contentful CMS
Core Marketing Site Architecture Plan
Data Dictionary
Dex Bot
Digital definitions
Digital Experience: Foundations Agenda
Engineering A/B tests
Engineering GitLab Product
Engineering Marketo
Figma Process
Image Guidelines
Major League Hacking Fellows
Marketing Cookies
Marketing Site Approval Process
Marketing Site Handbook
Marketo page template
Navigation Repository
OneTrust
OneTrust Cookie Consent Implementation
7bdcff59
)