Mattermost Handbook
Need help?How to spend company moneyHow to update the HandbookRelease overview
0.2.1
0.2.1
  • Mattermost Handbook
  • Company
    • About Mattermost
      • List of terms
      • Business model
      • Mindsets
    • "How to" guides for staff
      • How to set up a 1-1 channel
      • How to update the handbook
      • How to manage Handbook notifications
      • How to change mobile device
        • How to handle a lost mobile device
      • How to do a mini-retrospective
      • How to autolink keywords in Mattermost
  • Operations
    • Company operations
      • Areas of Responsibility
      • Mattermost Leadership Team (MLT)
        • MLT cadence
      • Company measures
        • Metrics definitions
        • FY23 goals board
        • MLT metrics
      • Company cadence
      • Company policies
        • Community response policy
        • Security policy
      • Company processes
        • Issue/solution process
        • Company agreements
        • Publishing
          • Public web properties
          • Publishing guidelines
            • Brand and visual design guidelines
            • Voice, tone, and writing style guidelines
              • Contribute to documentation
            • Confidentiality guidelines
          • Post-publication quality control process
      • Handbook processes and policies
        • Handbook onboarding
      • Fiscal year planning
    • Research and Development
      • Organization
        • Tech Writing
        • Data engineering
        • Delivery
        • Cloud Platform
        • Site Reliability Engineering
        • GRC
        • Product Security
        • Security Operations
      • Processes
        • Feature Labels
      • Product
        • Product planning
          • Product philosophy and principles
          • Prioritization process
          • Release planning process
          • Roadmap views
          • Release plan
          • Launch plan
          • Feature requests
        • Development process
          • Mobile feature guidelines
          • Deprecation policy
          • Mattermost software requirements process
          • Jira ticket lifecycle
          • Creating new Jira bug tickets
            • Priority levels for tickets
            • Jira fix versions
        • Release process
          • Release overview
          • Feature release process
          • Dot release process
          • Security release process
          • Mobile app release process
          • Desktop app release process
          • Release tips
          • Release scorecard definitions
        • How-to guides for Product
          • How to use productboard
          • How to record a roadmap video
          • How to update integrations directory
          • How to write a feature release announcement
        • Product Management team handbook
          • Product Management Areas of Ownership
          • Product Manager onboarding
          • Product Manager levels
          • Professional development
        • Product Design team handbook
          • Product Design levels
        • Technical Writing team handbook
          • Work with us
          • User interface text guidelines
          • Documentation style guide
          • Our terminology
          • Guidelines for PMs and developers
          • Guidelines for community contributions
          • Technical Writer levels
          • Docathon 2021
            • Getting started with contributing
        • Growth
          • A/B testing methodology
          • PQL definition
        • Analytics
          • Product Analyst Engineer levels
          • Looker
            • Dashboards
            • Explores
          • Telemetry
        • Developer relations
        • Product team hangouts
      • Engineering
        • Infrastructure engineering
          • Cloud infrastructure cost KPIs
          • Cloud data export process
          • Cloud churn process
          • Reliability Manifesto
          • Production Readiness Review
          • Infrastructure Library
        • Integrations team processes
        • Plugin release process
        • Data Engineering
        • Sustained Engineering
          • On call
        • How to go to a conference
        • Public speaking
        • Core contributor expanded access policy
      • Quality Assurance
        • QA workflow
        • QA testing tips and tools
        • Rainforest process
    • Messaging and Math
      • How-to guides for M&M
        • How to create release announcements
        • How to create screenshots and GIFs
        • How to write Mattermost case studies
        • How to write guest blog posts for Mattermost apps and services
        • How to write Mattermost recipes
        • How to compose tweets
        • How to create a split test for web page
        • How to run meetups
        • How to run executive dinners
      • Checklists for M&M
        • Blog post checklist
        • Bio checklist
      • Mattermost websites
      • Demand generation reporting
      • M&M Asana guidelines
      • Content marketing
        • How to use the editorial calendar
        • Content development and distribution
        • Video content guidelines
        • How to contribute content
    • Sales
      • Deal Desk
      • Partner programs
      • Lead management
    • Deployment Engineering
      • Overview
      • Workflows
      • Frequently Asked Questions
      • Playbook for MME Sev 1 Outages
      • Status Update Template
    • Program Management
    • Customer Success
      • Customer Support
    • Legal
      • Contracts
      • Ironclad Basics
        • Company-Wide Workflows
        • Sales Contracts and Workflows
        • Signing a Contract and Contract Repository
    • Finance
      • Budget
      • How to use Airbase
        • Access Airbase
        • Navigate Airbase
        • How to submit a purchase request
        • How to submit a reimbursement request
        • How to review a reimbursement request
        • Vendor portal guide
        • Frequently asked questions
      • Onboarding
        • Vendor onboarding
        • ROW staff onboarding
      • Staff member expenses
        • How to spend company money
        • How to spend company money: Internships
        • Corporate credit card policy
        • How to access Airbase
        • Gifting policy
        • How to book airfare and travel
        • How to reimburse the company
        • How to convert currencies
        • How to get paid
      • Arrange a Bounty Program
      • Naming files and agreements
      • Risk management
        • Mattermost U.S. consulting agreements
      • Operations playbook
    • Security
      • Policies
      • Privacy
        • Data deletion requests
        • Data subject access requests
      • Product Security
        • Product Vulnerability Process
        • Working on security-sensitive pull requests
        • Secure Software Development guide
      • Security Operations
        • User guides
    • Workplace
      • PeopleOps
        • HR cadences
        • HR systems
        • HR Processes
        • Working at Mattermost
          • Onboarding
            • Things everyone must know
            • Staff onboarding
            • Engineer onboarding timeline and expectations
            • Manager onboarding
            • Frequently asked questions
          • Learning and development
          • Mattermost communication best practices
          • Paid time off
            • Out of office email example
          • Travel
            • Business travel insurance
          • Leaves of absence
            • Pregnancy leave
            • Baby bonding parental leave
            • Jury duty
          • Workplace program
          • Relocation
          • Total rewards
        • Performance reviews
          • Formal review process
          • New staff performance review
          • Informal review process
        • Transfers and promotions
        • Offboarding instructions for managers
        • People compliance
      • People policies
      • Groups
        • Staff Resource Groups
      • Approvals and iteration
      • IT
        • IT helpdesk
        • Hardware and software purchases
        • Hardware buy back policy
        • Software systems
  • Contributors
    • Contributors
      • Equity, diversity, and inclusion
      • How to contribute to Mattermost
        • Community Content program
        • Documentation contributions
        • Help Wanted tickets
        • Localization
        • Contribution events
      • Mattermost community
      • Contributor kindness
      • Community systems
      • Guidelines and playbooks
        • Social engagement guidelines
        • Contribution guidelines and code of conduct
        • Mattermost Community playbook
        • How to run a Hackathon
        • Hacktoberfest event organizer guide for Mattermost
    • MatterCon
      • Staff information privacy management
      • Mattermost events code of conduct
      • MatterCon2021
    • Join us
      • Ice-breakers
      • Help Wanted tickets
      • Localization
      • Mattermost GitHub sponsorship
      • Things candidates should know
      • Staff recruiting
      • Recruiting cadences
        • Product Manager hiring process
      • Exec recruiting
        • EA logistics
  • Help and support
    • Contact us
Powered by GitBook
On this page
  • Team members
  • Roles
  • Priority of work
  • Sources of escalations
  • SET weekly cycle
  • Workflow

Was this helpful?

Edit on Git
Export as PDF
  1. Operations
  2. Research and Development
  3. Engineering

Sustained Engineering

PreviousData EngineeringNextOn call

Last updated 3 years ago

Was this helpful?

The Sustained Engineering Team (SET) is responsible for improving and maintaining quality of Mattermost products, as well as helping support with any issues they require engineering support with. Often, people in SET primarily play the role of first responders, then handing off to whichever engineering team best equipped to resolve an issue.

Team members

SET is a rotating team that is comprised of engineers from the different engineering teams. The rotation is on a two-week cycle. For engineers one of those weeks is as back-up, another is as primary.

Who is currently on SET can be seen in the header of the channel.

Engineering teams will commit a total of 4 engineers (a primary and a backup for each of the two shifts) plus a lead to SET for each rotation. While on SET, an engineer still attends their team's meetings, but it should be taken into account that any SET-related issue may take them out of the regular day-to-day planned work. How this is managed is up to the engineering lead from the engineer's team, e.g.: some work on regular sprint work and accept the interruptions, others focus on fixing bugs to reduce the cost of context switching.

Roles

The SET Lead is one of the engineering team's Engineering Leads. The SET lead, leads the SET team during its rotation. In practice this means the SET Lead:

  1. Ensures that raised issues are being addressed.

  2. Communicates the status of ongoing issues appropriately to stakeholders.

  3. Is a point of escalation in case stakeholders do not know who else to escalate to.

The SET Lead is also on call (via OpsGenie), and is escalated to whenever neither the SET primary nor SET backup acknowledge an issue in the appropriate time.

The SET Primary is an engineer from one of the engineering teams. The SET Primary is the first person to respond to any issues escalated. Escalation primarily happens through the channel or OpsGenie in cases of time urgency (refer to section for more details).

The SET Backup is an engineer from one of the engineering teams. In the case that the SET Primary is not available or unresponsive, the SET backup temporarily takes over. In certain situations it may also be required for the primary to ask for help to the backup.

Priority of work

Below is how SET prioritizes what is worked on.

  1. Quality issues affecting community.mattermost.com or community-daily.mattermost.com

    • When a high impact issue affects the community server, SET responds and is responsible to coordinate fixing.

    • The primary goal is to restore stability, whether this is achieved by fixing the issue or reverting code.

  2. Handles customer support escalation

    • The primary goal is to help with issues that require code changes or in-depth knowledge of the code internals.

    • Be helpful with training/knowledge sharing for the support team.

    • Identify customer support requests that are features and route to PM as necessary.

  3. General bug fixes

    • Pick up any bugs in triage.

    • Work on bugs in this order: hotfix, release, customer reported, other.

Sources of escalations

Work for SET comes from various sources:

  1. OpsGenie: Support has an e-mail address they will send urgent escalations to. These result in pages in OpsGenie, first sent to the SET Primary, then to SET Back-up and ultimately to the SET Lead when not timely acknowledged. Note: using this channel of escalation is exceedingly rare, and only happens in extremely time sensitive cases.

SET weekly cycle

  1. Start: Review all ongoing issues and make sure they have appropriate owners in the current SET team.

  2. Monitor: Monitor the sources of SET escalations (previous section) and act accordingly (see next section).

  3. Hand-over: By Friday end of day, the SET leads ensures that the next week's SET team (especially the SET Lead) is aware of ongoing issues and have sufficient context to continue the work. Specifically:

    • Ensure that the incoming SET team is in the right incident channels (if anybody).

    • SET Jira tickets find new assignees in the incoming SET team.

    • Any additional knowledge (beside what's in the Jira tickets and channels) that the incoming SET team will need to continue the work is transferred.

Workflow

  1. Create a Jira ticket for the issue, initially connected to the "Sustained Engineering" team, and assigned to the SET Primary and moved to In Progress. Ensure the ticket describes the problem clearly and is as specific as possible. For example, if Mattermost is slow specify what is slow: the server, the client, a particular request.

  2. Investigate the source of the issue, update the Jira ticket accordingly. Ensure the following things are clearly listed in the ticket (where appropriate):

    • Mattermost version

    • Database type and version

    • Configuration used

    • Relevant logs

    • A CPU profile (in case of high-CPU usage issue)

    • A heap profile (in case of memory use)

    • Stack trace (in case a service gets stuck)

  3. Hand-over (optional): once the issue is sufficiently narrowed down and there is a more appropriate owner than SET, hand the issue over as follows:

    • If a Mattermost Support Incident playbook was run, invite the new owning team to the incident channel.

    • Reassign the Jira ticket to the new owning team.

Important: Even if an issue has been handed over, it remains SET responsibility to ensure good communication between engineering and other stakeholders.

channel — this channel should be monitored, but checking it once or twice per day is sufficient.

The channel. Support may use this channel to ask questions or raise urgent issues.

The SET . Tickets in the TO DO column should be organized from highest priority to lowest priority, based on the section. The SET lead should make sure that the tickets are priority ordered but team members can move tickets around to meet the correct priorities as necessary. If tickets get stuck in a certain state, it's also the SET responsibility to push them to completion, either by nudging people or taking them over.

The channel. This is the place where support and community can ask any type of R&D related questions.

We use a Mattermost playbook to run the SET cycle. For this, the SET Lead creates a new run of the playbook and follows the steps as codified by the playbook. Overall a SET cycles consists of three phases:

Support may ask questions in the channel. If these can be answered without significant time investment (up to about an hour), just answer them. If they require deeper analysis, investigation, or potential hand-off to other people or teams, follow the following steps:

Understand the customer impact and priority of the issue together with support. Determine the priority of the issue following , clearly mark this priority in the ticket. If the issue is really a feature request or low-urgency bug, change the ticket type and reassign it to the appropriate team. In that case, the SET responsibilities end.

If the issue is of L1 (critical) or L2 (major) support playbook running that SET will be invited to. Make sure that updates (using the Playbooks "Post update" feature) are posted at least daily.

~Ask R&D
~Sustained Engineering
~Ask R&D
SET Cycle
~Sustained Engineering
the levels specified here
will have a run of the Mattermost Support Incident
~Sustained Engineering
~Sustained Engineering
Sources of escalations
Kanban Jira board
Priority of Work