3-Tier Support Model
Based on industry standards, the Co-op's principle services center around technical support.
See the Multi-tiered technical support article on Wikipedia for a general discussion on how multi-tier support is structured.
At every level of support it is crucial to:
- Familiarize yourself with the history of the ticket (if any), to avoid duiplication of efforts.
- Document all work undertaken and relevant findings in the associated ticket.
Troubleshooting guides, Documentation, FAQs, in-app help, Q&A sites, community support (IRC, etc.)
Role: Support Technician
Goal: Resolve 70%+ of tickets before escalation.
- Validate that the client:
- has a validate support contract with the co-op
- is an authorized contact for their organization
- Identify what the client is trying to accomplish, so that we can address the problem (and not just a symptom.)
- Gather sufficient information to reproduce (or at least observe) the issue.
- Ensure the client is aware of the available resources (docs, etc.) related to the tasks they're seeking to accomplish.
- Work through relevant documentation, troubleshooting guides, FAQs, etc.
- Update or expand documentation if required for clarity.
Role: Support Specialist
Goal: Resolve 80%+ of escalated tickets.
- Assist support technicians (Tier 1) in resolving basic tickets.
- Reproduce (or at least observe) the issue.
- Validate that escalated issue is within Aegir's realm (and not higher or lower in the stack.)
- Ensure backups are made prior to any changes in configurations.
- Begin detailed troubleshooting, including:
- Validating configuration.
- Reviewing logs.
- Ensuring proper file ownership and permissions.
- Searching issue queues.
- Test possible fixes, including:
- Making configuration changes.
- Documented work-arounds.
- Applying patches.
- Fixing file ownership or permissions.
- Restarting services.
- Update related documentation, issues, bug reports, pull requests, etc.
Role: Support Engineer
Goal: Resolve any remaining escalated tickets.
- Assist support specialists (Tier 2) in resolving complex tickets.
- Reproduce the issue in an isolated test environment.
- Document the issue with the appropriate project by posting a bug report.
- Document any possible work-arounds, pending development and testing of a patch that resolves the issue.
- Communicate any such work-arounds to the client via the ticket.
- Write a (failing) test for the issue (if possible).
- Develop a patch/PR, and post it to the bug report.
- Present the client with options to:
- Apply the patch to the client's system(s), taking all due precautions, and highlighting any attendant risks.
- Use any work-around techniques devised to address the issue, pending further testing of the patch by the community, and its eventual inclusion in core.
- If (8.1) is chosen, report the result of the production use of the patch in the bug report.