Purpose
This project represents a library of tips, tricks, and best practices to gain efficiencies, using repeatable practices, artifacts, and tooling.
By leveraging these resources, project managers can streamline their workflows, reduce redundant efforts, and deliver consistent results across projects.
All of this information is backed by a comprehensive GitLab PMO Delivery Kit Project.
Directory Structure
The repository follows standard and GitLab project management phases, with each directory containing specific documentation and resources:
Project Start (first 2 weeks)/: Project charter, stakeholder identification, scope definitionPlanning/: Project plans, resource allocation, risk assessmentProject Delivery/: Task management, status reporting, change controlEscalations/: Performance tracking, issue management, stakeholder communicationProject Launch/: Launch, support, and transiction activiitesClosure/: Deliverable finalization, lessons learned, knowledge transferExamples/: Sample documents from past projectsResources/: Additional tools, checklists, and reference materialsTemplates/: Reusable document templates for each project phaseUsing AI/: Some example prompts and knowledge base artifacts
Special Notes
- Each directory contains specific instructions for its respective project phase
- Some directories may link to other relevant project resources
- Always check with the respective DRIs before making significant changes to any section
- Use the examples as reference, but customize templates to fit your specific project needs
Overview
The Pre-Sales phase for our PS PMO team includes the SOW validation and information gathering steps before the contract is signed. During this phase we work to get ahead of risk as well as get a kick start into our Project Start and Planning phases. It is encouraged to work closely with the PS Engagement Manager and Technical Architect during this phase.
Pre-Sales
- Identify assumptions, risks, and areas needing clarification
- Review Standard Risk List
- Ensure realistic timelines, deliverables, and acceptance criteria
- build out intitial resource allocation (by role type) and associated budgets with PS Ops team
- Review and provide feedback on SOWs to the EM, before finalizing (when possible)
- Customer Homework (via Customer Epic, scoping issue, transition issue, Account & EM team context)
- Provide project specific artifacts for the customer to familiarize themselves with established processes and required items on their side.
- If agreed by the Customer, work through the WaR (work at risk) to begin Project Setup & Planning so we can effectively bill to the Project.
Overview
The Initiation phase is the foundation of successful project management. This critical first stage establishes the project's purpose, direction, and boundaries while securing stakeholder alignment and commitment.
A well-executed initiation phase significantly increases the likelihood of project success by ensuring clear understanding and agreement on fundamentals before resources are committed.
Project Start (first 2 weeks) - Iteration 0
This page will outline steps to complete all of the following project tasks.
- Set up project financials and resource scheduling
- Conduct stakeholder planning, kickoffs, dependency mapping, risk mapping, timeline planning
- Establish working agreements, deliverable acceptance criteria
Resource Allocation planning
- If not yet done, review associated Kantata Project, SOW, and scoping issue attached to the Customer Epic -note the scoping issue helpss formulate baseline project understanding needed to formulate project plannning, resource scheduling, and risk
- For Consulting Block SKUs: Review the DoW (should be attached to Customer Epic)
- Work with Resource Scheduling team to align the appropriate resources
- Use Burndown templates to build the intial resource/plan schedule
Conduct Sales > Delivery Transition
- Invite Engagement Manager, Technical Architect, Professional Services Engineer, Account Managers, and Customer Success Managers (if assigned)
- Use Sales to Delivery Transition Issue (attached to Customer Epic) to guide your meeting, update in real time. Focus the meeting on:
- Business drivers and context
- Timelines
- SOW validation and clarification
- Technical requirements overview
- Schedule planning for Stakeholder Planning and Kickoff
- Review initial resource plan/schedule
- Risks and dependencies
- Review Working Agreements and determine needs for a SteerCo
- Review the need for a RACI
Project Setup Step
Before diving into the formal project initiation activities, follow these practical setup steps to establish the project infrastructure:
- Review the Customer Epic and Child Stories
- Thoroughly review all customer requirements
- Identify key deliverables and expectations
- Note any questions or clarifications needed
- Understand dependencies and constraints
- Create the initial Collaboration Project
- Use Claude to assist in setting up the GitLab project structure
- Set up appropriate project visibility and access permissions
- Import Project Issues into the CP
- Update the initial Project Charter within the CP
- Create an Internal Project Slack Channel
- Establish a dedicated communication channel for the project team
- Invite all relevant team members
- Pin important documents and links
- Create a Slack Project Charter Canvas (Optional)
- Create a Project Canvas
- Use Claude to help develop a comprehensive project canvas
- Include project vision, objectives, key stakeholders, and constraints
- Outline high-level timeline and milestones
Stakeholder Planning Meeting
Leverage this meeting to identify and address any expectation misalignment between GitLab and the Customer team before the broader kickoff meeting
Schedule a dedicated meeting with Customer PM & key stakeholders from both GitLab and Customer teams. Use the Stakeholder Planning Template to guide the discussion Focus on mutual understanding of project parameters
-
Confirm Project Stakeholders
- Identify all key participants and their roles
- Confirm availability and communication channels
- Project Objectives
-
Validate business drivers and success criteria
- Align on use cases and expected outcomes
- Project Velocity and Timeline
-
Set expectations on pace and milestone dates
- Discuss sprint/iteration cadence preferences
- Project Prerequisites
-
Review technical and organizational readiness
- Identify any blockers to starting work
- Kickoff Preparation
-
Determine agenda and participants for the full kickoff
- Set expectations for the kickoff meeting
- Onboarding Validations
-
Ensure all access and permissions are in place
- Verify environments and tooling availability
-
Next Steps
- Document action items with owners and deadlines
- Plan for Customer Kickoff and Discovery sessions
-
Key Outputs
- Validated stakeholder list and roles
- Aligned expectations on timeline and velocity
- Documented prerequisites and dependencies
- Prepared agenda for Customer Kickoff
- Action items with clear ownership
- Create Customer Slack channel and invite Customer & Internal Project team members. You can you use this AR as template
- Create a Support Ticket to be reviewed at kickoff
Customer Kickoff
- Consolidate insights from EM>PS Transition and Stakeholder Planning
- Prepare the presentation using the Kickoff deck template
- For projects where we recommend a steering committee meeting, also prepare the SteerCO template
- Ensure all key (driving and leading) stakeholders are invited
Present a comprehensive overview of:
- Project objectives and success criteria
- Team structure and roles
- Project approach and methodology
- Timeline and milestone plan
- Communication and reporting cadence
- Next steps and immediate actions
Key Outputs:
- Confirmed understanding of project objectives, approach, and dependancies that will drive progress
- Scheduled Discovery & Planning sessions
- Confirmed Iteration Cadences
- Confirmed SteerCO needs
- Confirmed RACI needs
- Create Customer Slack Channel and invite Customer Project team members. You can you use this AR issue as a template within the access-reuests Project
- Documented action items with clear ownership
- CSAT shared
- Support ticket created & shared with the Customer
Subject: [Your Company] Professional Services - [Project Name] Introduction
Hello [Customer Contact],
Thank you for [EM for the context/introduction]. I look forward to working with you on the [Project Name].
In terms of next steps, I would like to set up two meetings with you and your team:
Meeting 1 - Stakeholder Introduction Call (30 minutes)
I consider this a virtual handshake and project planning call in which we will align on the services included, proposed schedule, any onboarding requirements you may have for us, and how we will communicate during the engagement (meetings, chat platform, etc.).
May I ask for your availability for the week of [Date Range]? Requested attendees: Project Lead/Project Manager.
Meeting 2 - Kick off meeting (1 hour)
During this meeting, we will officially kick off our project together. The typical agenda includes introductions, project scope, schedule and timeline expectations, communication plan, meeting cadence, access requests, project closure, and a review of action items. Time permitting, we will begin the initial discovery conversations during this call.
Requested attendees: Project Lead/Project Manager/Full Project team.
Please let me know if you have any questions.
Regards,
[Your Name] [Your Title] [Your Contact Information]
With this meeting, I hope to kick off our partnership by learning a little about our mutual ways of working.
- Document team composition.
- Discuss customer availability requirements.
- Agree to communication approach, overall project plan, and overall goals.
Outcome of Project Planning Meeting: We are aligned on scope and ways of working, allowing us to move forward for a full project kickoff.
[Customer Name] Project Kickoff Meeting
Purpose: To formally bring project teams together and kick off the [Project Name].
Outcomes: All team members are:
- Aligned on scope and expectations
- Clear on their roles and responsibilities
- Prepared to move forward effectively
Agenda
Part 1: Project Management Overview (~30 minutes)
- Introductions
- Project scope review
- Timeline and milestones
- Communication plan
- Working agreements
Part 2: Technical Discovery (~30 minutes)
- Current state assessment
- Technical requirements discussion
- Next steps and action items
- Open Q&A
Managing a Project in GitLab
GitLab serves as both a project management and collaboration platform for all Professional Services engagements. We utilize the following features/terminology within GitLab for project management:
Please reference the GitLab best practices when navigating GitLab.
NOTE: Any issues marked as "internal" are still visible to anyone who has "developer" access into the GitLab Collaboration project. This includes people outside of GitLab. It is recommended to use the Project's "Internal Epic" for confidential communications.
What is CP?
The CP or "Collaboration Proejct" is the framework for how we would like to manage delivering engagements in a standardized, repeatable manner all within GitLab. Each customer will have their own group in GitLab and that group will contain a project for each SOW we deliver for that customer. These groups and projects will house all the information around the project delivery to easily track the progress and health of a project as well as provide a paper trail for all the work we have done during the project.
A list of our Projects can be found here: GitLab Professional Services Group if staffed internally or GitLab Partner Collaboration Group if staffed fully or partially with partners.
Project Management Mapping in GitLab
| PM Term | GitLab Definition |
|---|---|
| Group | This is the landing page for the Customer project and serves as the single source of truth for Project Governance. |
| Projects | If an engagement has more than one Workstream (or SOW), we will track these using multiple Projects. Change Order activities will be tracked against the original project (SOW). |
| Boards | Typically organized by labels or scoped labels to keep the team on track together. In some cases, the GitLab/Customer team may utilize multiple Boards across Projects. |
| Epics | Generally derived from Workstreams or "Activities" outlined in the SOW. |
| Issues | These are the atomic units of work that roll up into an Epic. |
| Iterations | Time-boxed (generally two-week) events that are reviewed during Agile ceremonies. |
| Milestones | Used to track progress against Project Phases |
| Labels | Used in various ways, with the most important applications being:
|
| Weight | Indicates the size or level of effort of an issue. See Good Estimation Techniques for guidance on assigning weight |
For additional clarity on mapping Agile terminology to GitLab, reference this guide.
How does an SOW flow into CP?
A PSQuote quote contains one to many quote lines. Those quote lines map 1:1 to epics within a customer group on gitlab.com and each epic is then treated as a workstream. That customer group will contain one to many projects depending on how many SOWs we deliver for that customer. For each epic, the PM will create various issues tracking specific work towards the completion of each workstream.
What are the common components?
- A customer group: This group will house all the work we do for a specific customer.
- An SOW/PO project: These projects will reside within the customer group and house all the work we do within that specific SOW or PO.
- Workstream epics at the customer group label: These are what tie directly to the activities in the SOW.
- A standard library of issue templates.
- A standard library of comment templates.
- A standard series of boards covering the status of each task/issue per workstream.
- Any specific documentation from our delivery kits.
How will all this get created?
We have a project called CPR_GitOps that handles the process of automatically creating the foundation of groups, projects, epics, etc per Customer Project. This automation is triggered by our Quilt API through PSQuote. We are currently using a merge request as the staging area to provide all the necessary details CPR_GitOps needs to properly scaffold out a project to deliver.
Converting a Statement of Work to TOML for GitLab Collaboration Projects
Overview
This guide provides instructions for converting an uploaded Statement of Work (SOW) document into a properly formatted TOML file for use with the GitLab Collaboration Project template.
Step-by-Step Process
Step 1: Upload Your SOW Document
- Tell Claude that you will upload an example TOML file for a collaboration project, then upload the exmple teamplate found here: Collaboration Project Template
- Upload your Statement of Work document to a Claude chat.
- Ask Claude to convert the SOW into a TOML file using a request like:
Please convert this Statement of Work into a TOML file for a GitLab Collaboration Project. The customer name is [CUSTOMER NAME], the Kantata workspace URL is [URL], the epic ID is [ID NUMBER], and the project manager username is [USERNAME].
Step 2: Provide Required Metadata
Ensure you include these key pieces of information in your request:
- Customer name (exact legal name of the organization)
- Kantata workspace URL (formerly Mavenlink URL)
- Epic ID (numerical ID for the project epic)
- Project manager's GitLab username
Step 3: Review and Save the TOML File
-
Claude will analyze the SOW document and generate a structured TOML file containing:
- Project metadata (customer name, URLs, IDs, etc.)
- Default labels
- Formatted activities with titles, descriptions, actions, assumptions, and deliverables
-
Copy the complete TOML output from Claude's response
-
Follow the steps within the CPR_GitOps to create the new Collaboration Project
Example Request
I've uploaded our Statement of Work for Acme Corporation. Please convert this SOW into
a TOML file for a GitLab Collaboration Project. The customer name is "Acme Corporation",
the Kantata workspace URL is "https://gitlab.mavenlink.com/workspaces/12345678",
the epic ID is 5678, and the project manager username is "jsmith".
Expected Output Structure
The generated TOML file will follow this structure:
customer_name = "Customer Name"
kantata_url = "https://gitlab.mavenlink.com/workspaces/XXXXXXXX"
epic_id = XXXX
project_manager = "gitlab_username"
project_members = []
labels = [
"PSD Workflow::Not Started"
]
[[activities]]
title = "Activity 1: Activity Title"
description = """
Activity description.
**Actions**
- Action item 1
- Action item 2
- Action item 3
**Assumptions**
- Assumption 1
- Assumption 2
- Assumption 3
**Deliverables**
- Deliverable 1
- Deliverable 2
- Deliverable 3
"""
# Additional activities will follow the same format
Tips for Optimal Results
-
Review the generated TOML: Verify that all activities have been correctly extracted and formatted. Pay special attention to:
- Activity titles and numbering
- Complete extraction of all actions, assumptions, and deliverables
- Proper Markdown formatting in descriptions
-
Make minor adjustments if needed: You may need to make small formatting adjustments to the TOML file if your SOW has unusual formatting or structure.
-
Special formatting requirements: If your SOW has specific formatting requirements that weren't captured correctly, you can request adjustments in a follow-up message to Claude.
Label Guidelines
Labels are the most effective way to generate reports around Projects and organize information according to the Project team's needs. While teams have flexibility to create labels that meet their specific project reporting requirements, there are established guidelines for label generation for internal use.
Our [CP (Customer Project) automation includes the following default labels:
- SOW-# or PO# - helps the GitLab team search for Projects within the Professional service Group
- PM name - helps the GitLab team sort by PM name
- PSD workflow (for issue board management)
CP assistance/help
Send a note within the #cx-engineering slack channel for assitance
Creating a Project Canvas for Slack Using Claude
Overview
This guide will help you use Claude to create a formatted Project Canvas based on your Statement of Work (SOW) and project information. The resulting content can be pasted into a Slack Canvas for your project team.
Some may find a project Canvas to be repetetive, and by no means is this an edict to create one for every project. Creating a project Canvas is another way to gather all relevant information in tooling that is used on a daily basis. The time to set it up is worth the time saved when I quickly need to reference project information.
Note - A project Canvas is subject to the same Slack retention policies, so if not updated within a rolling 90 day window, it will be deleted
Step-by-Step Instructions
Step 1: Prepare Your Materials
Before starting with Claude, gather:
- Your customer's Statement of Work (SOW)
- Any additional project information you want to include
- Upload the Project Canvas template to the Claude project knowledgebase
Step 2: Start a Conversation with Claude
- Open Claude through your preferred method (web browser at claude.ai or application)
- Start a new conversation
Step 3: Upload Your Statement of Work
- Click the attachment/upload icon in the Claude interface
- Select and upload your customer's SOW document
- Wait for the upload to complete
Step 4: Request Canvas Creation
Ask Claude to create a Canvas using language similar to:
Can you create a Canvas using the Canvas template and information I am going to provide?
I've uploaded our customer's Statement of Work.
Please extract the following from the SOW:
- Project scope for the overview section
- Activities and deliverables for the goals section
- Professional Services hours allocation
Format the output with appropriate emoji headers (π― for Goals, π₯ for Teams, π for Resources, etc.)
and ensure it follows standard markdown formatting that will work in Slack Canvas.
Step 5: Provide Additional Context (If Needed)
If Claude needs more information, provide it:
- Team member details
- Specific milestones or target dates
- Any customizations you want for the Canvas
- All Key Resource urls
For example:
Here are the GitLab team members to include:
- Jane Smith, Program Manager, EST
- John Doe, Technical Architect, PST
- Amy Johnson, PSE, CST
The customer team includes:
- Michael Brown, Project Sponsor, EST
- Sarah Wilson, Technical Lead, EST
Step 6: Review and Refine
- Review the Canvas content Claude generates
- Ask for specific changes if needed
- Continue refining until you're satisfied with the output
Example refinement request:
The Canvas looks good, but could you:
1. Update the hours section to match the SOW more precisely
2. Add more bullet points under Activity 2 based on page 3 of the SOW
3. Format the Team section to include timezone abbreviations
Step 7: Copy the Final Canvas Content
- Once you're satisfied with the Canvas, select all the content in Claude's response
- Copy it to your clipboard (Ctrl+C or Cmd+C)
Step 8: Create a Slack Canvas
- Go to your project's Slack channel
- Create a new Canvas:
- Click the + icon next to the message field
- Select "Canvas" from the options (or use the /canvas command)
- A new Canvas editor will open
Step 9: Paste and Format in Slack
- Paste the copied content into the Slack Canvas (Ctrl+V or Cmd+V)
- Give your Canvas a title (e.g., "[Customer Name] Project Canvas")
- Make any final formatting adjustments if needed
- Click "Create" or "Save" to publish the Canvas
Step 10: Share and Update
- Share the Canvas with your team by pointing them to it in the Slack channel
- Pin the Canvas for easy access if desired
- Update the Canvas as the project progresses
Example Prompt for Claude
Here's a complete example of how to request a Canvas from Claude:
Can you create a Canvas using the Canvas template and information I am going to provide?
I've uploaded our customer's Statement of Work for Acme Corporation. Please extract:
- Project scope for the overview section
- All activities and deliverables for the goals section
- Professional Services hours allocation (found on page 7)
Please include these team members:
- GitLab Team:
- Cale Dancho, Sr. Program Manager, MST
- Chris Childers, Technical Architect, EST
- Mark Foster, Engagement Manager, CST
- Acme Corporation Team:
- John Smith, Project Sponsor, PST
- Jane Doe, Technical Lead, PST
- Bob Johnson, DevOps Engineer, CST
Format the output with appropriate emoji headers (π― for Goals, π₯ for Teams, π for Resources, etc.)
and ensure it follows standard markdown formatting that will work in Slack Canvas.
Include sections for:
- Project Overview
- Goals (with activities from SOW)
- Team Members
- Key Resources
- Hours
- Target Dates
- Working Agreements
Project Planning Phase
The Planning Phase confirms and validates how the project will be executed, monitored, controlled, and closed. While it begins once you're engaged with your Project, it is generally validated within the first 2 weeks and through the initial Discovery Sessions. Planning is when we re-iterate the impact of known risks to the Project scope and/or timeline as well as ensure our communication plans are effective.
1. Develop or Validate Project Management Plan
While we at GitLab have a preference to perform all planning within GitLab, we must adjust to customers needs. Delivery of a Plan can come in the form of a fleshed out timeline using GitLab Epics and Issues, it can be a Work Breakdown Structure based backlog, or it can be housed within a customer project management tool.
- Review and incorporate impact of potential risks
- Update comprehensive project plan according to new findings
- Recommunicate scope, schedule, and cost baselines
inputs:
2. Validate & Agree on Scope Management
- Communicate any changes to scope control & change management procedures
- Confirm scope statement with acceptance criteria
- Iterate WBS with work packages
3. Confirm Schedule Alignment
- Reference Date Management Guidance for Kantata
- Validate required activities (Definition of Done)
- Establish activity relationships & owners
- Iterate on schedule as critical paths evolve
- Review Project Launch Plan strategy (timing, risks, etc.)
- Update Milestone dates as needed
4. Iterate the Resource Plan & Management
- Update roles and responsibilities as you learn more about the project
- Iterate & Communicate RACI matrix
- Determine if there are any new resource requirements
5. Evolve the Communications Management as Needed
A customer communication plan is to be developed and shared along with the Project Charter. The linked Communication Plan Template provides a starting point to create a communication plan that works for your stakeholders.
- Update stakeholder communication needs as changes arise
- Update communication matrix (ReadMe)
- Confirm stakeholder management approach is visible
- Ensure Communicate plan & schedule is updated and always visible
6. Risk Management
Mitigating Risk via RAID Board
- The RAID, Risks, Actions, Issues, and Decisions dashboard is our way to ensure a single source of truth for project risk & resolution
- It is where our internal project stakeholders and leadership can reference the latest project information when the project is trending or sitting in a Y/R health status
- The RAID is automatically created when the PM creates the CP template. First step is to rename template βRAID - Customer - SOW/PO#
- While the RAID is created, managed, and reported by the PM,Β the internal & Customer team is encouraged to update the RAID as we work through Project challenges and mitigations.
- The Risk Management Process can be found here.
During Project Delivery
The following framework outlines key activities for successful project delivery. Not all projects will require every element listed here; the scope, size, and nature of each project will determine which activities are essential. Project managers should use this as a flexible guideline rather than a rigid checklist, adapting the approach to meet specific project needs while maintaining best practices for delivery excellence.
Be sure to refer to the following to ensure understanding thoughout the Delivery lifecycle:
- MVP PM activities and PM Time Tracking for MVP PM delivery & PM time tracking by Project size
- PS Reporting schedule to understand when to complete the following items
- Resources and templates to make our lives easier
-
Manage Project Financials & Reporting
- Track actual vs. budgeted hours weekly
- Forecast remaining costs and potential overruns
- Prepare financial status/burndown reports for stakeholders
- Produce weekly status reports for stakeholders
- Update executive dashboards with key metrics
- Document and distribute meeting minutes
- Create ad-hoc reports as requested by stakeholders
Resources:
-
Oversee Backlog Management & Team Reviews
- Facilitate backlog refinement sessions
- Ensure proper prioritization of work items
- Maintain alignment between backlog and project objectives
- Track backlog health metrics (size, aging, clarity)
- Facilitate sprint/iteration reviews
Resources:
-
Conduct/Document Retrospectives
- Lead team retrospectives to identify improvements
- Document lessons learned throughout the project
- Implement process improvements based on feedback
Resources:
-
Manage Customer Communication
- Maintain regular cadence of customer updates
- Document and track customer feedback
- Manage customer expectations proactively
- Prepare and deliver customer presentations
-
Facilitate Team Ceremonies
- Lead daily standups to maintain alignment
- Conduct effective sprint planning sessions
- Facilitate issue refinement to ensure readiness
- Manage demos and review sessions
Resources:
-
Coordinate Resource Updates
- Monitor resource utilization and performance
- Adjust resource allocations as needed
- Onboard new team members effectively
- Manage resource conflicts with other projects
- Review and approve/deny team time entries
- Reconcile time records with project activities & predicted forecast
- Address time tracking discrepancies with team member before approving
Resources:
-
Execute Risk Mitigation
- Monitor identified risks regularly
- Implement mitigation strategies as needed
- Identify and document new risks as they emerge
- Escalate high-impact risks appropriately
Resources:
-
Handle Scope Management
- Document and evaluate all change requests
- Assess impact of proposed changes on schedule and budget
- Maintain the change control log
- Secure appropriate approvals for scope changes
- Change Orders
- WaR (Work at Risk) - beginning a project prior to SOW signature
- WE (Work Exceptions) - accounting for project overages
Resources:
-
Monitor Team Velocity
- Track and report team velocity metrics
- Identify trends in productivity and quality
- Address impediments affecting velocity
- Forecast completion dates based on actual velocity
Resources:
-
Nurture Customer Relationship
- Build trust through transparent communication
- Address customer concerns promptly
- Identify opportunities to exceed expectations
- Manage difficult conversations professionally
-
Coordinate & Report Across Departments
- Facilitate cross-functional collaboration (PS Ops, CS, Sales, Support, etc)
- Ensure alignment on shared objectives
- Communicate project needs to supporting departments
Resources:
- Leveraging Slack(Canvas) to surface statuses across departments
- Initiate Launch Planning
- Begin early launch planning discussions
- Identify launch prerequisites and dependencies
- Document initial launch strategy
- Engage stakeholders in launch readiness assessment
[TOC]
PM Escalation Tracking Process
ESCALATION TRIGGERS
When a program reaches Red status, the type and severity of escalation should be clearly identified to ensure appropriate response and documentation.
π¨ SEV 1 - CUSTOMER ESCALATION PATH
This enhanced tracking process must be initiated when ANY of the following occurs:
- Customer formally escalates to account manager, CSM, and/or PS leadership regarding performance of the PS engagement
- Customer expresses dissatisfaction with project progress, quality, or communication
- Customer threatens contract cancellation or withholding payment
- Customer requests executive-level involvement
- Leadership escalates a Sev 2 to Sev 1 for heightened visibility
Definition: Issues that directly impact customers or have the potential to affect customer experience, revenue, or satisfaction.
PHASE 1: ESCALATION INITIATION (Complete within 24 hours)
Step 1: Create Escalation Framework
- Create dedicated escalation tracking issue on the customer's collaboration project
- Assign escalation severity level (Critical, High, Medium) and follow the reporting expectations covered in the TRACKING REQUIREMENTS BY ESCALATION TYPE section below.
- Document escalation timeline and key milestones
- Identify DRI (Directly Responsible Individual) for escalation communication
- If escalation is outside PS scope: Coordinate with account CSM or work with AE to determine CSM
Step 2: Establish Communication Channels
- Begin escalation thread in #ps-project-leadership and pin to channel
- Ensure progress is also tracked within the internal project & Customer slack channels
- Include AE, CSM, Direct Manager and Director PS in communication loop
- Attach escalation tracking document/issue to channel
- Provide links to all relevant tracking documents and dashboards
Step 3: Set Up Monitoring and Reporting
- Update portfolio status in Kantata with "path to green"
- Schedule daily internal escalation check-ins with stakeholders
- Set escalation review for next Y/R Portfolio call (or arrange immediate sync if critical)
- Create RACI matrix for escalation resolution activities
PHASE 2: ACTIVE ESCALATION MANAGEMENT (Daily activities)
Step 4: Implement Daily Tracking (Every Day)
- Morning: Review overnight developments and update status
- Midday: Conduct internal stakeholder check-in
- Evening: Update escalation thread in #ps-project-leadership, internal, and Customer Slack channels
- Document progress in centralized escalation tracking document
Step 5: Manage Requirements and Changes (As needed)
- Record detailed escalation requirements in centralized location
- Create requirement validation checklist with sign-off tracking
- Log any requirement changes with date stamps and approvers
- Create formal change order and execute the documented approval process
- Update project artifacts with version control and change history
Step 6: Monitor Resources and Impact (Daily)
- Track resource assignments and availability in Kantata
- Monitor individual workload impacts and notify resourcing channel and and PMs if other projects will be impacted
- Assess budget and timeline impacts from changes
- Update financial forecasts and communicate impacts to PMO Manager
- Maintain risk register (RAID) with escalation-related entries
PHASE 3: RESOLUTION TRACKING (Until closure)
Step 7: Track Resolution Progress
- Create detailed resolution action plan with measurable milestones
- Define success criteria with completion status tracking
- Monitor progress against milestones
(percentage complete)- For example, if it's resource availibility, then the milestone would be "new team member added to project," with composite tasks of:
- Meet with resourcing team and engineering leader, due tomorrow
- Identify and assign new team member, due tomorrow
- Complete internal meeting to detail project scope and escalation scenario, due tomorrow +1
- Introduce new team member to customer team, due tomorrow +1
- For example, if it's resource availibility, then the milestone would be "new team member added to project," with composite tasks of:
- Log blockers and dependencies preventing progress
- Document and maintain alternative approaches to resolving the escalated issue, including pros, cons, and additional risks that may be introduced with alternate approaches
Step 8: Escalation Closure and Lessons Learned
- Document final resolution and obtain customer sign-off
- Complete lessons learned capture in internal retrospective issue
- Implement and document process improvements
- Share learnings with PMO team
- Update all project artifacts with final changes
- Complete financial impact reconciliation
- Remove pin from #ps-project-leadership channel
β οΈ SEV 2 - INTERNAL PROJECT HEALTH PATH
This monitoring process is initiated when ANY of the following occurs:
Project Performance Issues
- Timeline: Project is >2 weeks behind critical milestones without approved change request
- Budget: Project is >10% over budget or trending toward significant overrun
- Scope: Major scope changes that impact timeline/budget by >15%
- Quality: Deliverables fail acceptance criteria multiple times or have critical defects
Resource/Operational Issues
- Key team member unavailability threatens project delivery
- Technical blockers that cannot be resolved within 5 business days
- Vendor/third-party dependencies causing critical delays
- Resource conflicts preventing adequate staffing
Communication/Relationship Issues
- Breakdown in stakeholder communication or decision-making
- Conflicting requirements from multiple customer stakeholders
- Legal, compliance, or security issues arise
- Customer requests escalation due to perceived lack of responsiveness
SEV 2 WORKFLOW
Step 1: Update Project Health in Kantata
- Update portfolio status to Red with detailed "path to green" explanation
- Document specific issues, risks, and proposed mitigation strategies
- Include timeline estimates for resolution
- Identify resource needs or blockers
Step 2: Attend Y/R/Blocked Portfolio Review Call
- Present project's current state to PS leadership
- Discuss mitigation strategies and resource requirements
- Receive guidance on course correction approaches
- Leadership Decision Point:
- Escalate to Sev 1: If customer impact is imminent or significant
- Remain in Monitoring: Continue Sev 2 process with leadership awareness
Step 3A: If Remaining in Sev 2 Monitoring
- Continue weekly updates in Kantata with progress toward green
- Implement agreed-upon course correction strategies
- Attend subsequent Y/R calls until status improves to Green/Yellow
- Escalate to Sev 1 if customer impact occurs or situation deteriorates
Step 3B: If Escalated to Sev 1
- Follow complete Sev 1 Customer Escalation Path process above
- Maintain all Sev 1 documentation and communication requirements
TRACKING REQUIREMENTS BY ESCALATION TYPE
SEV 1 - DAILY REQUIREMENTS
- Escalation status update in Slack
- Progress assessment against milestones
- Blocker identification and resolution tracking
- Customer communication (daily or every other day)
SEV 1 - WEEKLY REQUIREMENTS
- Stakeholder communication summary
- Budget and timeline impact assessment
- Resource allocation review in Kantata
- Risk register (RAID) updates
- PMO Manager briefing with updated forecasts
SEV 2 - WEEKLY REQUIREMENTS
- Kantata status update with path to green
- Y/R Portfolio call attendance and reporting
- Internal mitigation strategy implementation
- Resource needs assessment
Project Launch
Ensure a successful transition to production through these structured launch activities:
-
Develop Customer Success Plan
- Create detailed customer roadmap for adoption
- Document success metrics and measurement approach
- Establish ongoing support model
- Define knowledge transfer requirements
-
Create Remediation Plan
- Identify known issues and limitations
- Develop remediation timeline for outstanding items
- Document workarounds for unresolved issues
- Secure customer agreement on remediation approach
-
Define Hypercare Expectations
- Document hypercare duration and coverage
- Establish hypercare team composition
- Create escalation paths during hypercare
- Set response time expectations
-
Prepare Testing Documentation
- Develop comprehensive test plans
- Create test scripts and scenarios
- Document test data requirements
- Establish defect tracking and resolution process
-
Create Go-Live Documentation
- Develop detailed go-live checklist
- Document go/no-go criteria
- Create deployment sequence
- Establish communication plan for go-live
-
Develop Rollback Plan
- Document detailed rollback procedures
- Establish rollback triggers and decision points
- Assign rollback responsibilities
- Test rollback procedures prior to launch
-
Secure Final Customer Acceptance
- Conduct formal acceptance review meetings
- Document acceptance of deliverables
- Address any conditional acceptance items
- Obtain signed acceptance documentation
-
Manage Technical Launch via RACI
- Define detailed RACI for launch activities
- Conduct pre-launch readiness reviews
- Coordinate launch day activities
- Facilitate post-launch verification
-
Conduct Launch Retrospective
- Facilitate launch retrospective session
- Document what went well and improvement areas
- Identify lessons for future launches
- Share retrospective findings with leadership
Project Close
Formally conclude the project with these closing activities:
-
Conduct Project Retrospective with the Customer
- Begin summary of project to prepare for Project Close and Retro meetings
- Document project successes and challenges
- Identify process improvement opportunities
- Facilitate Customer Retrospective sessions
- Distribute CSAT survey to stakeholders
-
Conduct Executive Close-out
- Update/send executive summary of project and obtain signoff of completion by the Customer
- Document final results within internal retro issue
- Be sure to include:
- Strategic outcomes achieved
- Opportunities for future business
-
Conduct Internal Retrospective Meeting
- Review summary of the project and add details to the Internal retro issue
- Conduct Internal Retro meeting
- Update delivery kits with new templates
- Transfer Organize all project documentation within the Customer Folder
-
Close Out Project Systems
- Within Kantata:
- For Fixed Fee Proejcts and all respective Milestone tasks, complete the following:
- Sign-Off Sent: Update this custom field when the acceptance request email is sent.
- Sign-Off Received: Update this custom field when customer acceptance is received or passive acceptance is achieved. Attach the acceptance email (in PDF form) to the milestone.
- Passive Acceptance Utilized: If passive acceptance is used, update this field accordingly
- For both FF & T&M scenarios, attach the acceptance email or milestone document to the milestone
- Update actual start/kickoff/end dates
- Once the internal retro documentation and meeting is complete, set the Project to "Completed"
- For Fixed Fee Proejcts and all respective Milestone tasks, complete the following:
Note: Only top-level milestone fields should be updated. Sub-activities within the milestone remain unchanged.
- Slack
- Archive Customer and internal Slack channels
- Within Kantata:
-
Notes on Revenue Sign Off
Revenue Release T&M Projects
- Revenue is recognized and released at the end of each month.
- Project hours must be logged weekly via the time sheet function in Kantata. Professional Services Engineers (PSEs) or Project Managers (PMs) log time against the project, and the Project Lead or PM approves these entries weekly.
- At the end of each month, the Project Coordinator (PC) compiles all approved timesheets and submits the consolidated report to Finance for review and revenue release.
Revenue Release FP Projects
- Revenue is recognized upon receipt of customer milestone acceptance or upon the completion of passive acceptance (according to the SOW terms).
- The PM updates set the Milestone in Kantata to "complete" when the Customer signs off on the closure document
- If passive acceptance is applicable per the SOW, the Customer has 5 business days to approve or deny before we can set the milestone to "complete". Day 1 is counted as the day the notification is sent.
Using Claude to Generate Project Closure Documents
This guide will walk you through using Claude to create comprehensive project closure documents by leveraging your project status history and the Project Closure Template.
Purpose
- Create a formal project closure artifact for documentation
- Refresh team members on the project's timeline and accomplishments
- Synthesize project information from multiple status reports into a cohesive summary
- Save time by automating the compilation of project history
Prerequisites
- Project Closure Template (uploaded to Claude)
- Core Project Documentation
- Status Reports: Collect all periodic status reports (weekly/bi-weekly updates)
- Meeting Recordings: Compile links to all session recordings with passcodes
- Session Notes: Obtain links to detailed documentation (like the Google Doc with session notes)
- Risk Registers: Include any formal risk documentation with dates, mitigation plans, and outcomes
- Final Project Burn Down Report: Include the actual hours, estimated hours, and total hours.
Step-by-Step Process
Step 1: Gather Project Status Reports from GitLab
-
Log in to GitLab and navigate to your project
-
Use the search feature to find all status reports:
- Click on "Issues" in the left sidebar
- In the search bar, enter:
label:status(or your project's specific status label) - Alternatively, search for:
"Status Report"in the title - Ensure the search scope is set to your project or group
-
Export the search results to CSV:
- From the issues list view, look for the "Export as CSV" option (usually an icon or in a dropdown menu)
- Click to download the CSV file
-
Review the CSV file to ensure it contains:
- Status report titles with dates
- Status content or descriptions
Step 2: Upload Materials to Claude
-
Start a new conversation in Claude or use your existing project conversation
-
Upload the Project Closure Template:
- Click the upload/paperclip icon
- Select your Project Closure Template file
- Add a brief description: "This is our Project Closure Template that we use for formally closing projects"
-
Upload the CSV file containing status reports:
- Click the upload/paperclip icon again
- Select the CSV file with your exported status reports
- Add context: "This CSV contains all status reports from our project, exported from GitLab issues"
Step 3: Ask Claude to Generate the Closure Document
Use this prompt template to ask Claude to create your project closure document:
Using the Project Closure Template I've uploaded and the status reports in the CSV file, please create a comprehensive project closure document for [Project Name].
Please include:
1. A concise executive summary of the project (1-2 paragraphs)
2. Project background and initial objectives
3. A detailed timeline of key milestones and events, synthesized from the status reports
4. Major accomplishments and deliverables completed
5. Challenges encountered and how they were overcome
6. Budget summary (final vs. planned if available in the status reports)
7. Lessons learned and best practices identified
8. Any outstanding items or follow-up actions
Format the document according to our Project Closure Template structure while incorporating the historical information from the status reports.
The primary audience for this document is [internal team/customer/stakeholders] and it will be used for [formal sign-off/knowledge transfer/archive purposes].
Step 4: Review and Refine the Output
-
Review the generated document for:
- Accuracy of timeline and events
- Completeness of major milestones
- Proper formatting according to the template
- Any gaps or inconsistencies in the narrative
-
If needed, ask Claude to make specific revisions:
Please make the following adjustments to the project closure document: 1. Expand the section on [specific area] 2. Add more detail about [particular milestone or challenge] 3. Reformat the timeline section to be more [chronological/concise/detailed] 4. Include information about [any missing element] -
You can also ask Claude to focus on specific aspects:
Based on the status reports, please provide a more detailed analysis of the challenges we faced during [specific time period] and how they impacted our timeline and budget.
Step 5: Finalize and Format the Document
-
Once you're satisfied with the content, ask Claude to format it for your intended use:
Please format this document for [presentation to stakeholders/internal documentation/customer handoff]. Make sure all sections are properly structured and the document follows our organizational styling. -
For formal documents, consider asking Claude to add:
- Table of contents
- Executive summary at the beginning
- Signature/approval sections if needed
- Appropriate appendices for detailed information
-
Save the final document from Claude:
- Copy the formatted content
- Paste into your preferred document editor
- Save with an appropriate filename: "[Project Name] - Closure Document - [Date]"
Tips for Getting the Best Results
Improving Status Report Analysis
-
If status reports are lengthy, consider asking Claude to focus on specific aspects first:
First, please extract just the major milestones and their dates from the status reports to create a timeline. -
For complex projects, break down the analysis:
Before creating the full document, please identify the key phases of this project based on the status reports, and summarize each phase separately.
Handling Incomplete Information
If your status reports lack certain information needed for the closure document:
-
Ask Claude to identify gaps:
After reviewing the status reports, what information appears to be missing that would be important for a comprehensive closure document? -
Provide additional context where needed:
The status reports don't contain detailed budget information. Please use this summary instead: [provide budget summary]
Creating Different Versions for Different Audiences
You can ask Claude to create multiple versions of the closure document:
-
Executive summary for leadership:
Using the full closure document you created, please generate a 1-page executive summary highlighting only the most critical information for senior leadership. -
Technical summary for team members:
Please create a technical version of this closure document that includes more details about the implementation challenges and solutions for our development team. -
Customer-facing version:
Please adapt this closure document to be appropriate for customer delivery, focusing on value delivered and removing internal details.
Example: Project Closure for a GitLab Migration Project
Here's an example prompt for a GitLab migration project:
Using the Project Closure Template I've uploaded and the status reports in the CSV file, please create a comprehensive project closure document for "Acme Corp GitLab Migration Project."
Please include:
1. A concise executive summary of the migration project
2. Initial project scope and goals (from early status reports)
3. A detailed timeline showing the progression through different migration waves
4. Technical challenges encountered during the migration and how they were resolved
5. Statistics on number of repositories migrated, users onboarded, etc.
6. Budget summary showing planned vs actual hours used
7. Lessons learned that could benefit future migration projects
8. Any post-migration support arrangements or outstanding items
Format the document according to our Project Closure Template while incorporating the detailed history from our weekly status reports.
The primary audience is both our internal delivery team and the customer's IT leadership.
By following this process, you'll be able to quickly generate comprehensive project closure documents that accurately reflect the project history while saving significant time compared to manual compilation.
CSAT Survey
Resources
Overview
This section contains a comprehensive collection of templates, guides, and tools designed to support project delivery throughout the entire project lifecycle. These resources have been developed and refined through practical application across multiple professional services engagements.
Each resource is designed to be adaptable to different project types, client environments, and delivery methodologies. While organized by project phase for easy reference, many of these resources can be utilized across multiple phases as needed.
Pre-Sales
| Resource Name | Description | Link |
|---|---|---|
| Common Risks | Standard risk checklist covering typical project risks and mitigation strategies | View Template |
| Project Charter Template | Template for defining project scope, objectives, and success criteria during pre-sales | Download Template |
Project Start - First 2 Weeks
| Resource Name | Description | Link |
|---|---|---|
| Canvas Creation Guide | Step-by-step guide for creating project canvases to visualize scope, stakeholders, and key project elements | View Guide |
| Create Collaboration Project | Instructions for setting up collaborative workspaces and project structures in GitLab | View Guide |
| Communication Plan Template | Template for establishing project communication protocols, stakeholder matrix, and meeting cadence | Download Template |
| Pre-Planning Agenda | Standard agenda template for initial project planning meetings and stakeholder alignment sessions | Download Template |
| Project Kickoff Agenda | Comprehensive agenda template for project kickoff meetings with stakeholders | Download Template |
| Welcome Email | Template for initial client welcome and project introduction communications | Download Template |
Planning
| Resource Name | Description | Link |
|---|---|---|
| Comprehensive Project Artifacts | Complete set of planning documents and templates for project initialization | Download Template |
| Kantata Forecasting Resource Management | Guide for resource planning and forecasting using Kantata platform | View Guide |
Project Delivery
| Resource Name | Description | Link |
|---|---|---|
| Create New Issues From Template | Guide for standardizing issue creation and tracking during delivery | View Guide |
| Weekly Status Template | Template for consistent project status reporting and stakeholder updates | Download Template |
| Managing Dependencies | Framework for identifying, tracking, and managing project dependencies | View Guide |
| Managing Risk | Ongoing risk management processes and escalation procedures | View Guide |
| MVP PM Activities | Guide for minimum viable product project management activities | View Guide |
| PS Customer Journey | Documentation of the professional services customer experience journey | View Guide |
| PS Reporting Schedule | Standard reporting cadence and deliverables for professional services projects | View Guide |
| Billable Non-billable Time Tracking | Guide for accurate time tracking and billing classification | View Guide |
Escalations
| Resource Name | Description | Link |
|---|---|---|
| Escalation Template | Standard template for documenting and managing project escalations | Download Template |
| Creating Support Ticket | Guide for creating effective support tickets during escalations | View Guide |
Project Launch
| Resource Name | Description | Link |
|---|---|---|
| Navigating PS Plan GitLab and CO-WE-WaR | Guide for navigating professional services planning tools and workflows | View Guide |
Closure
| Resource Name | Description | Link |
|---|---|---|
| Project Closure Document | Comprehensive template for project closure documentation and handoff | Download Template |
| Project Closure Retro Template | Template for conducting project closure retrospectives and lessons learned | Download Template |
| Project Closure Summary | Summary template for high-level project closure reporting | View Guide |
| Retrospective Template | General retrospective template for project reviews and continuous improvement | Download Template |
| Customer Retro | Template specifically designed for customer-facing retrospective sessions | View Guide |
| Internal Retro | Internal team retrospective template for process improvement | View Guide |
Cross-Phase Resources
| Resource Name | Description | Link |
|---|---|---|
| Canvas Template | Generic canvas template for various project visualization needs | Download Template |
| Collaboration Project Template | Reusable template for setting up collaborative project structures | Download Template |
| CO-WaR WE | Coordination of Work at Risk and Work Estimation documentation | View Guide |
| CSAT | Customer Satisfaction survey template and process guide | View Guide |
| Generic Working Agreement | Template for establishing team working agreements and norms | View Guide |
| Key PS Delivery Locations GitLab | Reference guide for key professional services delivery locations and contacts | View Guide |
| Reporting Project Status | Framework for consistent project status reporting across all phases | View Guide |
| Useful Kantata Views | Collection of useful Kantata platform views for project management | View Guide |
| Using Kantata Smartuploader | Guide for utilizing Kantata's advanced project management features | View Guide |
| PMO Standard Issue Template | Standardized issue template for consistent project management office processes | Download Template |
Additional Resources
For specialized tools and integrations:
- Using AI Resources - Artificial intelligence tools and templates for project management
- Navigation Salesforce Invoicing - Guide for managing invoicing through Salesforce integration
[TOC]
GitLab Professional Services Products - A Simple Guide
Introduction
GitLab Professional Services help organizations maximize the value of their GitLab investment through expert guidance, targeted solutions, and enhanced user education. As part of GitLab's Customer Success department, these services accelerate adoption and support customers in achieving their business goals more efficiently. This page presents a high level overview of each of our services offerings, for education purposes.
Core Service Categories
1. Implementation Services
What it is: Expert assistance to set up and configure GitLab for your organization's specific needs.
Self-Managed Implementation
What it is: This is when GitLab is installed and hosted on your own infrastructure (servers) that your company manages, rather than using GitLab's cloud service.
In simple terms: Think of this like buying software and installing it on your own computer, rather than using a web-based version. Your company takes full responsibility for maintaining the servers, handling backups, and performing upgrades.
Key benefits:
- Complete control over your GitLab environment
- Ability to customize settings extensively
- Data stays within your own infrastructure (good for strict compliance requirements)
- No dependence on GitLab's cloud availability
Best for: Organizations with regulatory requirements to keep data on-premises, companies with strong IT infrastructure teams, or businesses that need extensive customization.
Single-Node Implementation
What it is: A specific type of self-managed GitLab deployment where all GitLab components run on a single server (or "node").
In simple terms: Imagine having all parts of GitLab running on one computer rather than spreading it across multiple machines. It's the simplest way to deploy GitLab in a self-managed environment.
Key benefits:
- Easier to set up compared to multi-node deployments
- Lower infrastructure costs (just one server)
- Simpler maintenance and troubleshooting
- Good for smaller teams or test environments
Best for: Small to medium-sized teams with moderate workloads, organizations just starting with GitLab, or development environments where high availability isn't critical.
GitLab.com Implementation
What it is: Using GitLab's cloud-hosted service (GitLab.com) rather than installing GitLab on your own infrastructure.
In simple terms: This is like using Gmail instead of setting up your own email server. GitLab handles all the infrastructure, maintenance, backups, and upgrades while you just use the service through your web browser.
Key benefits:
- No infrastructure to maintain
- Automatic updates to the latest GitLab version
- No hardware costs or setup required
- Quick to get started (immediate access)
- GitLab handles all backup and availability concerns
Best for: Teams that want to focus on their work rather than maintaining infrastructure, companies without dedicated server operations staff, or organizations that prefer subscription-based pricing models.
Implementation services for GitLab.com typically involve:
- Setting up organizational structure
- Configuring user permissions and access controls
- Migrating existing projects from other systems
- Integrating with other tools in your workflow
- Training on GitLab.com features and best practices
2. Migration Services
What it is: Expert assistance to move your existing code, workflows, and data to GitLab from other systems.
Below, we present some of the ways in which data can be moved from SCM systems to GitLab.
Direct Transfer
What it is: A newer migration method specifically for GitLab-to-GitLab transfers that moves data directly between instances without requiring file exports.
In simple terms: Think of this like directly transferring files between two computers over a network connection, rather than having to download files from one computer and then upload them to another.
Key benefits:
- No admin token required
- Streamlined process with fewer steps
- Reduces potential for file corruption during transfer
- More efficient for larger projects
Best for: Organizations moving between GitLab instances that want a simpler migration process with less manual intervention.
File-based Export/Import
What it is: The traditional method for migrating projects or groups by exporting data to files and then importing those files into the target GitLab instance.
In simple terms: Similar to downloading all your data as files from one system, then uploading those files to another system. Like backing up your photos to an external drive and then restoring them on a new computer.
Key benefits:
- Works across different versions of GitLab
- Well-established with predictable results
- Still the primary method used by most migration tools
- Provides a backup copy during the migration process
Best for: Cross-version migrations, organizations that want a backup copy of data during migration, or when Direct Transfer isn't available.
GitLab Importers - Internal
What it is: Built-in tools within GitLab designed specifically to import from particular external systems (like GitHub, Bitbucket).
In simple terms: These are like specialized adapters that know exactly how to read data from other systems and properly convert it to GitLab's format.
Key benefits:
- Purpose-built for specific source systems
- Handles the peculiarities of each source system
- Built directly into GitLab's interface
- Often simpler than manual export/import processes
Best for: Organizations migrating from specific supported platforms who want a straightforward migration path with minimal tooling.
Congregate
What it is: A GitLab Professional Services automation tool that wraps around various import methods to enhance their capabilities and address limitations.
In simple terms: Think of this as a Swiss Army knife for migrations. It's a tool that can use multiple migration methods and adds extra features to make migrations smoother.
Key benefits:
- Works with multiple migration methods (File-based, Direct Transfer, GitHub importers, etc.)
- Compensates for limitations in the individual methods
- Provides additional features beyond standard importers
- Offers a consistent interface regardless of source system
Best for: Complex migrations, especially those involving multiple source systems or requiring features not available in standard importers.
GEO
What it is: A GitLab feature that continuously replicates data between GitLab instances, primarily designed for disaster recovery and distributed teams.
In simple terms: Rather than a one-time migration, GEO creates an ongoing mirror of your GitLab data. It's like having a backup server that's always kept in sync with your main server.
Key benefits:
- Continuous replication rather than one-time migration
- Can migrate data while users continue working
- Provides a disaster recovery solution after migration
- Useful for distributed teams after migration
Key limitations:
- Only works for GitLab-to-GitLab under specific conditions
- Not available for GitLab.com (as source or destination)
- Can be complex to set up
Best for: Self-managed GitLab instances that need both migration and ongoing replication, especially for disaster recovery purposes.
Omnibus Backup/Restore
What it is: A complete backup and restore of an entire GitLab instance, including all data, configurations, and settings.
In simple terms: This is like taking a complete snapshot of your entire GitLab systemβnot just projects and data, but all settings and configurations too. Then restoring that complete snapshot to a new system.
Key benefits:
- Most comprehensive migration method
- Includes all instance configurations
- Preserves all relationships between data
- Maintains system settings and customizations
Key limitations:
- Not available for GitLab.com
- Requires compatible GitLab versions
- Currently won't backup remote object storage data
Best for: Complete system migrations between self-managed instances where you want to preserve all aspects of the original system.
Chart Backup/Restore (K8s/Cloud-native Hybrid)
What it is: A backup and restore method specifically designed for GitLab installations running on Kubernetes.
In simple terms: Similar to Omnibus Backup/Restore, but specifically designed for modern cloud environments. It's like taking a snapshot of a cloud-based system that can be restored to another cloud environment.
Key benefits:
- Designed for modern cloud-native architectures
- Works with Kubernetes environments
- Provides complete system migration
- Suitable for containerized GitLab deployments
Key limitations:
- Not for GitLab.com (either side)
- Can have constraints based on Kubernetes limitations
- Requires Kubernetes expertise to implement
Best for: Organizations running GitLab on Kubernetes or cloud-native infrastructure who need to migrate their entire instance to a new environment.
3. Consulting Services
What it is: Strategic advice and guidance to help you optimize your DevOps practices using GitLab.
Examples:
- DevOps Assessment: Evaluate current practices and recommend improvements
- CI/CD Optimization: Design efficient pipelines for faster, more reliable builds and deployments
- Security Integration: Implement DevSecOps practices with GitLab's security features
Real-world scenario: An e-commerce company was experiencing slow release cycles. GitLab consultants analyzed their development workflow, identified bottlenecks, and helped them implement automated testing and deployment pipelines that reduced release time from weeks to days.
4. Education Services
What it is: Training programs to help your team master GitLab capabilities.
Examples:
- GitLab Fundamentals: Basic training on repositories, merge requests, and issues
- CI/CD Mastery: Advanced pipeline configuration, testing, and deployment strategies
- Administrator Training: System maintenance, security, and performance optimization
Real-world scenario: A software development company transitioning from multiple tools to GitLab needed to quickly upskill 200 developers. GitLab provided customized training sessions covering basic Git workflows, CI/CD pipelines, and security scanning, resulting in rapid adoption and productivity gains.
5. Managed Services
What it is: Ongoing operational support and maintenance of your GitLab environment.
Examples:
- Standard Support: Day-to-day management and routine maintenance
- Premium Support: 24/7 monitoring, incident response, and optimization
- Full Managed Service: Complete GitLab infrastructure management in the cloud
Real-world scenario: A manufacturing company with limited DevOps expertise needed to focus on application development rather than platform maintenance. GitLab partners provided fully managed GitLab services, handling upgrades, security patches, backup verification, and performance tuning.
GitLab Professional Services Training Videos
| Topic | Description | Link |
|---|---|---|
| Accelerating time to value with GitLab Professional Services | Overview of GitLab Professional Services offerings | Watch Video |
| Intersection between Congregate and the Import APIs | Explores how Congregate interacts with GitLab's import APIs | Watch Video |
| GET | GitLab Enterprise Transformation training | Watch Video |
| Congregate and Direct Transfer | A comprehensive overview of migration tools | Watch Video |
| β³ What is Direct Transfer? | A newer, faster migration method that creates a direct connection between source and GitLab. Benefits include faster migrations, no file handling, and preservation of user attributions without requiring admin tokens. Public emails and profiles are needed for proper attribution. | |
| β³ What is Congregate? | A tool by GitLab's Professional Services team that orchestrates the entire migration process in three steps: List (snapshot data), Stage (select what to migrate), and Migrate (transfer data and handle additional tasks). The new 7.0 version includes a UI for the entire process, better handling of long-running tasks, and background job processing. | |
| AutoScaling Runners | Information about scaling GitLab CI/CD runners | Watch Video |
| Terraform State | Managing Terraform state with GitLab | Watch Video |
| SAML SSO | Single Sign-On implementation with GitLab | Watch Video |
| Reference Architecture and GEO | GitLab's reference architecture and geographical distribution | Watch Video |
| Security and Compliance demo | Demonstration of GitLab's security and compliance features | Watch Video |
GitLab Tech Stack: Simplified Deep Dive
Ruby on Rails: The Core
What it is: The main framework GitLab is built on.
How it works simply:
- Handles web requests when you click around in GitLab
- Manages the database connections
- Renders the web pages you see
- Processes form submissions
Why it matters: Rails lets GitLab developers build features quickly. It's like LEGO blocks for web apps - pieces fit together in standard ways, making development faster.
Real-world impact: When you create a new issue or merge request, Rails handles the entire process from saving your data to showing you the updated page.
Go (Golang): The Performance Booster
What it is: A faster programming language used for specific parts of GitLab.
How it works simply:
- Handles Git operations (like clones and merges)
- Runs in separate services outside the main Rails app
- Processes the heavy lifting that would slow down Rails
Why it matters: Some operations would make GitLab slow if done in Ruby. Go is like adding a turbocharger to specific parts of the system.
Real-world impact: When you push code or clone a large repository, Go-powered services handle it, making these operations much faster than if they were done in Ruby.
PostgreSQL: The Data Storage
What it is: The database where all GitLab data is permanently stored.
How it works simply:
- Stores all your projects, issues, user accounts, etc.
- Organizes data in tables with relationships
- Handles complex queries efficiently
- Ensures your data stays consistent
Why it matters: Without PostgreSQL, GitLab would lose all your data when servers restart. It's like the filing cabinet that keeps everything organized.
Real-world impact: Every time you search for issues or filter merge requests, PostgreSQL is finding that information for you.
Redis: The Speed Layer
What it is: A super-fast temporary data store.
How it works simply:
- Stores data in memory (much faster than disk)
- Keeps track of background jobs
- Caches frequently accessed information
- Handles real-time features
Why it matters: Redis makes GitLab faster by storing frequently-used data in a format that can be accessed quickly. It's like having important papers on your desk instead of filing them away.
Real-world impact: When you see real-time updates in the UI or when background jobs process (like CI pipelines), Redis is coordinating this behind the scenes.
Sidekiq: The Background Worker
What it is: The system that processes work outside of web requests.
How it works simply:
- Takes jobs that would make the website slow
- Processes them in the background
- Handles retries if something fails
- Manages job priorities
Why it matters: Without Sidekiq, GitLab would feel sluggish because you'd have to wait for everything to finish processing before getting a response. It's like having assistants who handle paperwork while you keep helping customers.
Real-world impact: When you push code and a CI pipeline starts, Sidekiq is managing those jobs. When you get an email notification, Sidekiq sent it.
Vue.js: The Interactive UI
What it is: The JavaScript framework that makes GitLab's interface interactive.
How it works simply:
- Creates responsive UI components
- Updates the page without full reloads
- Manages user interface state
- Handles user interactions
Why it matters: Vue makes GitLab feel like a modern app instead of a series of page loads. It's like the difference between digital controls and manual knobs.
Real-world impact: The merge request interface uses Vue to update in real-time, showing comments and changes without refreshing the page.
NGINX: The Front Door
What it is: The web server that first receives all web traffic to GitLab.
How it works simply:
- Receives all incoming web requests
- Routes them to the right internal service
- Serves static files directly
- Handles SSL encryption
Why it matters: NGINX efficiently manages connections so GitLab can handle many users at once. It's like a receptionist directing visitors to the right department.
Real-world impact: NGINX is why GitLab can serve thousands of users without crashing under the load of connections.
GitLab Workhorse: The Smart Router
What it is: A component that handles certain types of requests more efficiently.
How it works simply:
- Intercepts large file uploads/downloads
- Routes requests to the right backend service
- Bypasses the Rails app when possible
- Handles long-running connections
Why it matters: Workhorse prevents the main application from getting bogged down with certain types of requests. It's like having a shipping department handle packages so the sales team doesn't have to.
Real-world impact: When you upload large files or clone repositories, Workhorse manages these operations efficiently.
Gitaly: The Git Manager
What it is: A specialized service that handles all Git operations.
How it works simply:
- Manages Git repositories on disk
- Processes Git commands (clone, push, pull)
- Optimizes Git operations for performance
- Handles repository access control
Why it matters: Git operations are resource-intensive and would overwhelm the main application. Gitaly is like having a dedicated team just for handling source code.
Real-world impact: Every time you browse code, commit history, or push changes, Gitaly is doing the heavy lifting behind the scenes.
CI/CD Runner: The Pipeline Executor
What it is: The component that runs your continuous integration jobs.
How it works simply:
- Picks up jobs from the queue
- Creates isolated environments for each job
- Runs the commands in your .gitlab-ci.yml file
- Reports results back to GitLab
Why it matters: Runners let GitLab execute code in secure, isolated environments. It's like having testing labs separate from your main facility.
Real-world impact: When your tests run after a commit or your application deploys automatically, Runners are executing those processes.
Each of these components fits together to create a complete system that handles everything from storing your code to testing and deploying your applications. The beauty of GitLab's architecture is how these specialized components work together while each focusing on what they do best.
Simplied Archtecture Diagram
graph TB
%% External access points
HTTP((HTTP/HTTPS<br>Web & API Access))
SSH((SSH<br>Git Access))
%% Front-end components
NGINX[NGINX Web Server<br>Routes all incoming traffic]
GitLabWorkhorse[GitLab Workhorse<br>Smart proxy & file handling]
GitLabShell[GitLab Shell<br>Handles SSH Git operations]
%% Core applications
Puma["Puma (GitLab Rails)<br>Main application server<br>Ruby on Rails"]
Sidekiq["Sidekiq<br>Background job processor<br>CI/CD, emails, hooks"]
%% Data storage
PostgreSQL[(PostgreSQL<br>Main database<br>Users, projects, issues)]
Redis[(Redis<br>Queue & cache service<br>Temporary data store)]
Gitaly[Gitaly<br>Git repository service<br>Written in Go]
%% Extensions
GitLabPages[GitLab Pages<br>Static website hosting]
Registry[Container Registry<br>Docker image storage]
%% Web Request Path
HTTP -- "1. TCP 80/443" --> NGINX
NGINX -- "2." --> GitLabWorkhorse
GitLabWorkhorse -- "3." --> Puma
Puma -- "4." --> PostgreSQL
%% Git SSH Path
SSH -- "1. TCP 22" --> GitLabShell
GitLabShell -- "2." --> Gitaly
%% Background Job Path
Puma -- "1. Queue job" --> Redis
Redis -- "2. Process job" --> Sidekiq
Sidekiq -- "3. Update results" --> PostgreSQL
%% Other connections
NGINX -- "TCP 8090" --> GitLabPages
NGINX --> Registry
GitLabShell --> GitLabWorkhorse
GitLabWorkhorse --> Gitaly
GitLabWorkhorse --> Redis
Puma --> Redis
Puma --> Gitaly
Sidekiq --> Redis
Sidekiq --> Gitaly
%% Legend
LegendBox[Legend:<br>Pink = External Access Points<br>Blue = Frontend Components<br>Green = Core Applications<br>Orange = Data Storage<br>Purple = Extension Services]
%% Styling with improved contrast
classDef external fill:#ff99cc,stroke:#000,stroke-width:3px,color:#000,font-weight:bold
classDef frontend fill:#99ccff,stroke:#000,stroke-width:2px,color:#000,font-weight:bold
classDef core fill:#99ff99,stroke:#000,stroke-width:2px,color:#000,font-weight:bold
classDef storage fill:#ffcc99,stroke:#000,stroke-width:2px,color:#000,font-weight:bold
classDef extension fill:#cc99ff,stroke:#000,stroke-width:2px,color:#000,font-weight:bold
classDef legend fill:#f8f8f8,stroke:#000,stroke-width:2px,color:#000,font-weight:bold
%% Apply styling
class HTTP,SSH external
class NGINX,GitLabWorkhorse,GitLabShell frontend
class Puma,Sidekiq core
class PostgreSQL,Redis,Gitaly storage
class GitLabPages,Registry extension
class LegendBox legend
%% Title as a note at the top
title[GitLab Tech Stack - Component Architecture]
class title legend
Project Templates
The repository includes the following templates:
| Template | Description | How to Use |
|---|---|---|
| Project Charter Template | Defines the project's purpose, objectives, scope, and key stakeholders | Creating Slack Canvas, Update the Collaboration Project |
| Status Report Template | Standardized format for weekly/monthly status updates | Upload to Claude for Status creation, Add to the Collaboration Project |
| Risk Template | For tracking and managing project risks | Add template to the Collaboration Project |
| Change Order Template | For documenting and processing change requests | Add template to the Collaboration Project |
| Project Closure Template | Project closure artifact and timeline for the project | Upload to Claude |
| Collaboration Project Template | Provides example format to create .toml file necessary for Collaboration Project creation | Upload to Claude |
| Create New Issues From Template | Using our PMO_Standard_Issue_Template.csv file to create multiple issues in your GitLab project at once | Within Issue view in the Collaboration Project |
| PMO Standard Issue Template | Downloadable .csv file with standard issues | Within Issue view in the Collaboration Project |
| Canvas Template | Provide Claude with this template along with project information | Create within Slack |
| Pre-Planning Agenda | Add to the pre-planning meeting invite | gCal |
| Project Closure Retro Template | Uploaded to Claude along with project information | Claude, GitLab Statuses |
| Project Kickoff Agenda | Add to Kickoff meeting invite | gCal |
| Retrospective Template | Customer CP | Copied into the automatically created retro issue |
| Welcome Email | Copy of an intro email after the Engagement Manager intro | gMail |
[TOC]
Standard Risks
This purpose of this page is to provide a menu of risks that me be relevant to your project. The structure is less important than the content in helping provide insight into risks.
Instructions for Use
- This risk register contains common risks encountered in GitLab Professional Services engagements
- For each project, review all applicable categories and identify relevant risks
- Copy relevant risks to your project risk register and customize as needed
Risk Rating Matrix
The levels provided below and subsequent risk score calculation help to visualize severity of risks.
Impact Levels
- Critical (5): Major project failure, contractual breach, significant financial/reputational damage
- High (4): Serious delay to critical path, major scope compromise, significant cost overrun
- Medium (3): Moderate delay, noticeable impact to deliverables, budget impact
- Low (2): Minor delay, small adjustments to scope, minimal budget impact
- Negligible (1): Barely noticeable impact to timeline, scope, or budget
Probability Levels
- Very Likely (5): 80-100% chance of occurrence
- Likely (4): 60-80% chance of occurrence
- Possible (3): 40-60% chance of occurrence
- Unlikely (2): 20-40% chance of occurrence
- Rare (1): 0-20% chance of occurrence
Risk Score Calculation
- Risk Score = Impact Γ Probability
- High Risk: 15-25
- Medium Risk: 8-14
- Low Risk: 1-7
1. Product-Specific Risks
1.1 GitLab Migration Projects
| Risk ID | Risk Description | Impact | Probability | Common Mitigation Strategies |
|---|---|---|---|---|
| MIG-001 | Source system data quality issues causing migration failures | 4 | 4 | β’ Conduct thorough data assessment before migration β’ Implement data cleansing procedures β’ Run test migrations with representative data samples |
| MIG-002 | Complex custom workflows in source system requiring special handling | 4 | 3 | β’ Early discovery of custom workflows β’ Develop custom migration scripts for edge cases β’ Document required workflow changes |
| MIG-003 | Incomplete or inaccurate mapping between source and target systems | 5 | 3 | β’ Involve SMEs from both systems in mapping β’ Validate mapping with stakeholders β’ Iterative approach to refine mapping |
| MIG-004 | Data volume exceeds expected migration window | 4 | 3 | β’ Accurate sizing assessment β’ Implement migration in batches β’ Test with representative volume |
| MIG-005 | Integration dependencies with other systems not identified | 4 | 3 | β’ Comprehensive system integration discovery β’ Map all integrations and APIs β’ Develop integration test plan |
| MIG-006 | Source system API limitations or rate limiting impacting migration | 3 | 4 | β’ Early API testing β’ Request temporary rate limit increases β’ Design migration to work within limitations |
| MIG-007 | Inadequate downtime window for cutover | 5 | 3 | β’ Accurate estimation of cutover time β’ Practice runs to validate timing β’ Phased approach if possible |
| MIG-008 | Historical data loss or corruption during migration | 5 | 2 | β’ Complete backup before migration β’ Validation scripts to verify data integrity β’ Rollback capability |
| MIG-009 | User acceptance issues with workflow changes | 3 | 4 | β’ Early user involvement β’ Change management program β’ Training on new workflows |
| MIG-010 | Security or compliance requirements not met in target system | 5 | 2 | β’ Early security/compliance assessment β’ Involve security team in planning β’ Formal sign-off on compliance requirements |
| MIG-011 | POC phase reveals unexpected environment-specific challenges | 4 | 4 | β’ Set clear expectations about POC purpose β’ Buffer time in schedule for issue resolution β’ Document and prioritize findings for resolution |
1.2 GitLab Geo Implementation
| Risk ID | Risk Description | Impact | Probability | Common Mitigation Strategies |
|---|---|---|---|---|
| GEO-001 | Network bandwidth limitations between sites affecting replication | 4 | 4 | β’ Network assessment before implementation β’ Bandwidth optimization strategies β’ Initial seeding via physical media if necessary |
| GEO-002 | Complex firewall rules or network configurations blocking replication | 4 | 3 | β’ Early involvement of network team β’ Documented network requirements β’ Test environment to validate configurations |
| GEO-003 | Storage capacity underestimated for repository data | 3 | 3 | β’ Accurate sizing assessment β’ Growth projections β’ Storage monitoring and alerts |
| GEO-004 | Database replication lag impacting failover capabilities | 4 | 3 | β’ Performance testing under load β’ Monitoring for replication lag β’ Optimize database configuration |
| GEO-005 | Failover procedures not adequately tested | 5 | 3 | β’ Comprehensive failover testing plan β’ Regular scheduled testing β’ Documented recovery procedures |
| GEO-006 | Custom modifications to GitLab affecting Geo functionality | 4 | 2 | β’ Inventory of customizations β’ Test each modification with Geo β’ Remediation plan for incompatibilities |
| GEO-007 | SSL certificate management issues across sites | 3 | 3 | β’ Centralized certificate management β’ Automation for certificate renewal β’ Monitoring for certificate expiration |
| GEO-008 | User authentication/authorization inconsistencies between sites | 4 | 2 | β’ Unified authentication strategy β’ Test user access scenarios β’ Monitoring for permission drift |
| GEO-009 | Inadequate monitoring and alerting for Geo health | 3 | 3 | β’ Comprehensive monitoring strategy β’ Alert thresholds and escalation paths β’ Dashboard for Geo health |
| GEO-010 | Disaster recovery procedures not aligned with business requirements | 5 | 3 | β’ Document RPO/RTO requirements β’ Test recovery scenarios β’ Validate against business requirements |
1.3 GitLab Upgrade Projects
| Risk ID | Risk Description | Impact | Probability | Common Mitigation Strategies |
|---|---|---|---|---|
| UPG-001 | Custom code or integrations incompatible with target version | 4 | 4 | β’ Inventory of customizations β’ Review release notes for breaking changes β’ Test in staging environment |
| UPG-002 | Database schema migration failures during upgrade | 5 | 3 | β’ Database health check before upgrade β’ Full backup before proceeding β’ Test migrations in staging |
| UPG-003 | Performance degradation after upgrade | 4 | 3 | β’ Baseline performance metrics β’ Performance testing in staging β’ Resource scaling plan if needed |
| UPG-004 | Inadequate rollback plan if upgrade fails | 5 | 3 | β’ Comprehensive rollback procedure β’ Full backup strategy β’ Test rollback in staging |
| UPG-005 | Skipping multiple versions leading to complex upgrade path | 4 | 3 | β’ Review recommended upgrade path β’ Consider incremental upgrades β’ Extended testing for large version jumps |
| UPG-006 | CI/CD pipeline incompatibilities with new version | 4 | 3 | β’ Inventory of all pipeline configurations β’ Test representative pipelines β’ Update pipeline syntax proactively |
| UPG-007 | User interface changes impacting user productivity | 3 | 4 | β’ Document UI changes β’ User training plan β’ Provide quick reference guides |
| UPG-008 | Exceeded downtime window during upgrade | 4 | 3 | β’ Accurate timing estimation β’ Practice runs in staging β’ Optimize upgrade steps |
| UPG-009 | Infrastructure requirements changed for new version | 3 | 3 | β’ Review resource requirements β’ Capacity planning β’ Infrastructure upgrades in advance |
| UPG-010 | Security features or settings reset during upgrade | 4 | 2 | β’ Document security configurations β’ Validation plan post-upgrade β’ Security compliance check |
1.4 CI/CD Pipeline Implementation
| Risk ID | Risk Description | Impact | Probability | Common Mitigation Strategies |
|---|---|---|---|---|
| CICD-001 | Build environments not matching production environments | 4 | 4 | β’ Container-based build strategy β’ Environment parity validation β’ Infrastructure as code approach |
| CICD-002 | Pipeline performance issues with large repositories/projects | 3 | 4 | β’ Pipeline optimization review β’ Caching strategies β’ Runner capacity planning |
| CICD-003 | Sensitive credentials exposed in pipeline configurations | 5 | 3 | β’ Secrets management strategy β’ Security scanning for credentials β’ Use of CI/CD variables and masked values |
| CICD-004 | Lack of standardization across team pipelines | 3 | 4 | β’ Pipeline templates β’ Documentation standards β’ Pipeline linting/validation |
| CICD-005 | Complex deployment requirements not supported by standard jobs | 4 | 3 | β’ Early discovery of requirements β’ Custom deployment scripts β’ Testing of complex scenarios |
| CICD-006 | Integration with external tools/systems failing | 3 | 3 | β’ Integration testing strategy β’ Fallback procedures β’ Monitoring of integrations |
| CICD-007 | Pipeline changes breaking existing workflows | 4 | 3 | β’ Change management process β’ Parallel pipelines during transition β’ Rollback capability |
| CICD-008 | Inadequate test coverage in automated pipelines | 4 | 3 | β’ Test coverage metrics β’ Incremental improvement plan β’ Critical path testing priorities |
| CICD-009 | Resource constraints for CI/CD runners | 3 | 4 | β’ Runner capacity planning β’ Autoscaling configuration β’ Resource monitoring and alerts |
| CICD-010 | Compliance requirements not met in pipeline processes | 5 | 2 | β’ Compliance requirements documentation β’ Audit trail implementation β’ Compliance validation steps |
1.5 GitLab Implementation/Onboarding
| Risk ID | Risk Description | Impact | Probability | Common Mitigation Strategies |
|---|---|---|---|---|
| IMP-001 | User adoption resistance due to workflow changes | 4 | 4 | β’ Change management program β’ Champions network β’ Phased approach with quick wins |
| IMP-002 | Project structure not aligned with organizational needs | 4 | 3 | β’ Requirements workshops β’ Prototyping and feedback β’ Flexibility for organizational changes |
| IMP-003 | Authentication/authorization strategy complexity | 4 | 3 | β’ Early planning with security team β’ Phased implementation β’ Testing with representative users |
| IMP-004 | Incomplete requirements for integrations with existing tools | 4 | 3 | β’ Integration discovery workshops β’ Prioritization of integrations β’ API compatibility assessment |
| IMP-005 | Performance issues with large-scale implementation | 4 | 3 | β’ Sizing assessment β’ Performance testing β’ Scalability planning |
| IMP-006 | Data migration scope creep from legacy systems | 3 | 4 | β’ Clear migration scope definition β’ Decision matrix for migration items β’ Phased migration approach |
| IMP-007 | Training program inadequate for user needs | 3 | 3 | β’ Training needs assessment β’ Role-based training materials β’ Ongoing learning resources |
| IMP-008 | Security or compliance requirements not identified | 5 | 2 | β’ Security/compliance workshops β’ Documentation of requirements β’ Validation testing |
| IMP-009 | Governance model not established for long-term management | 3 | 4 | β’ Governance framework development β’ Roles and responsibilities definition β’ Documentation of processes |
| IMP-010 | Incomplete visibility of total cost of ownership | 3 | 3 | β’ TCO analysis β’ Resource requirements documentation β’ Ongoing maintenance planning |
2. General Project Risks
2.1 Resource and Staffing Risks
| Risk ID | Risk Description | Impact | Probability | Common Mitigation Strategies |
|---|---|---|---|---|
| RES-001 | Key team member unavailability (illness, resignation) | 4 | 3 | β’ Cross-training team members β’ Documentation of key knowledge β’ Backup resources identified |
| RES-002 | Resource allocation conflicts with other projects | 3 | 4 | β’ Resource management in Kantata β’ Early escalation of conflicts β’ Buffer in resource planning |
| RES-003 | Skill gaps in project team for specific requirements | 3 | 3 | β’ Skills assessment early in project β’ Training plan for gaps β’ External resources if needed |
| RES-004 | Customer resource availability lower than expected | 4 | 4 | β’ Clear RACI chart β’ Escalation to sponsors β’ Adjusted timeline based on availability |
| RES-005 | Multiple project dependencies on scarce specialist resources | 4 | 3 | β’ Resource capacity planning β’ Task sequencing to optimize resources β’ Knowledge transfer plan |
2.2 Schedule and Timeline Risks
| Risk ID | Risk Description | Impact | Probability | Common Mitigation Strategies |
|---|---|---|---|---|
| SCH-001 | Optimistic estimation of task durations | 3 | 4 | β’ Historical data review β’ Buffer in critical path β’ Regular reassessment of estimates |
| SCH-002 | Dependencies on external systems/teams not in project control | 4 | 4 | β’ Identify all external dependencies β’ Buffer for external delays β’ Early engagement with external teams |
| SCH-003 | Scope creep extending timeline | 4 | 4 | β’ Clear scope definition β’ Change control process β’ Regular scope reviews |
| SCH-004 | Approval and decision delays | 3 | 4 | β’ Decision framework established β’ Escalation path for delayed decisions β’ Regular stakeholder meetings |
| SCH-005 | Inadequate time allocated for testing and validation | 4 | 3 | β’ Test planning early in project β’ Time buffers for defect remediation β’ Risk-based testing approach |
2.3 Technical and Implementation Risks
| Risk ID | Risk Description | Impact | Probability | Common Mitigation Strategies |
|---|---|---|---|---|
| TECH-001 | Infrastructure provisioning delays | 3 | 4 | β’ Early infrastructure requirements β’ Infrastructure as code β’ Regular status checks |
| TECH-002 | Security or compliance requirements changing mid-project | 4 | 3 | β’ Early security/compliance involvement β’ Regular reviews β’ Change impact assessment |
| TECH-003 | Performance issues in production environment | 4 | 3 | β’ Performance testing strategy β’ Scalability planning β’ Monitoring implementation |
| TECH-004 | Integration complexity underestimated | 4 | 3 | β’ Technical spike for complex integrations β’ Proof of concept for high-risk areas β’ Early integration testing |
| TECH-005 | Technical debt accumulated due to tight deadlines | 3 | 4 | β’ Definition of done including quality β’ Technical debt tracking β’ Refactoring plan |
2.4 Customer and Stakeholder Risks
| Risk ID | Risk Description | Impact | Probability | Common Mitigation Strategies |
|---|---|---|---|---|
| STK-001 | Stakeholder expectations misaligned with project scope | 4 | 4 | β’ Stakeholder management plan β’ Regular expectation setting β’ Clear documentation of scope |
| STK-002 | Key stakeholder changes during project | 3 | 3 | β’ Stakeholder onboarding process β’ Documentation of key decisions β’ Regular project status updates |
| STK-003 | User resistance to new processes or tools | 4 | 3 | β’ Change management plan β’ User involvement in design β’ Training and support strategy |
| STK-004 | Stakeholder communication breakdowns | 3 | 3 | β’ Communication plan β’ Regular touch points β’ Multiple communication channels |
| STK-005 | Executive sponsor disengagement | 4 | 2 | β’ Regular executive updates β’ Clear escalation path β’ Value demonstration throughout project |
2.5 Commercial and Contractual Risks
| Risk ID | Risk Description | Impact | Probability | Common Mitigation Strategies |
|---|---|---|---|---|
| COM-001 | Scope interpretation differences between teams | 4 | 3 | β’ Detailed SOW with clear deliverables β’ Acceptance criteria for deliverables β’ Regular scope reviews |
| COM-002 | Change requests without proper cost/timeline adjustments | 4 | 4 | β’ Formal change control process β’ Impact assessment for all changes β’ No work without approved changes |
| COM-003 | Work exceeding allocated budget | 4 | 3 | β’ Regular budget tracking β’ Early warning indicators β’ Proactive scope management |
| COM-004 | Delayed payment affecting project resources | 3 | 2 | β’ Clear payment milestones β’ Regular financial reporting β’ Escalation path for payment issues |
| COM-005 | Contractual deliverables acceptance criteria unclear | 4 | 3 | β’ Detailed acceptance criteria in SOW β’ Sample deliverables where possible β’ Progressive deliverable review |
2.6 Organizational and Environmental Risks
| Risk ID | Risk Description | Impact | Probability | Common Mitigation Strategies |
|---|---|---|---|---|
| ORG-001 | Organizational restructuring affecting project | 4 | 3 | β’ Sponsor commitment during changes β’ Regular reassessment of impacts β’ Flexible project approach |
| ORG-002 | Competing priorities within customer organization | 3 | 4 | β’ Executive alignment on priorities β’ Regular priority reviews β’ Escalation process for conflicts |
| ORG-003 | IT policy or governance changes affecting implementation | 3 | 3 | β’ Early IT governance involvement β’ Regular compliance checks β’ Flexibility in implementation approach |
| ORG-004 | Working environment challenges (remote work, different time zones) | 2 | 4 | β’ Collaboration tools strategy β’ Clear working agreements β’ Overlap hours for key meetings |
| ORG-005 | External factors (market changes, acquisitions, regulations) | 4 | 2 | β’ Regular business context reviews β’ Flexible project approach β’ Business impact assessments |
POC Migration Strategy and Expectations
Purpose of the POC Phase
The Proof of Concept (POC) migration phase is a critical discovery period designed to:
- Validate the migration approach in the customer's specific environment
- Identify unique technical challenges before full-scale migration
- Test customized migration scripts with representative data
- Establish baseline metrics for planning larger migration waves
Setting Proper Customer Expectations
When communicating about the POC phase with customers, emphasize these key points:
-
Exploratory Nature: The POC is intentionally designed to uncover issues early when they're easier and less costly to address. Issues found during POC should be viewed as valuable discoveries rather than failures.
-
Custom Solutions: Each migration requires engineering teams to build customer-specific solutions based on unique requirements and environments. This customization process may require multiple iterations.
-
Anticipated Challenges: During the POC migration phase, engineering teams must build customized solutions based on each customer's unique project requirements and environment. While we anticipate encountering customer-specific challenges, the variable nature of these issues may lead to unexpected complexities that could potentially delay the migration start date.
-
Timeline Flexibility: The POC is a test and isn't always intended to be smooth. We want to see what issues may arise so we can be proactive in resolving them before moving into the migration waves. Schedule buffer should be incorporated after the POC phase.
Kantata Project Management Guide
Overview
Kantata is our primary Resource Management software where the PMO team reviews and manages Delivery team hours against project scope to effectively report on project progress and forecast PS revenue.
Our team does leverage google sheet templates to ensure forecast & resource allocation accuracy.
- Initial Resource Planning templates
- Burndown Report templates
Project Types & Billing Models
Time & Materials (T&M) Projects
- Billing: Invoiced according to time submitted at the project level (bucket of hours)
- Revenue Recognition: Released monthly based on approved timesheets
- Tracking: While SKUs are one transaction, we track against hourly billings (e.g., Consulting Blocks & Dedicated Engineer Projects)
Fixed Fee (FF/FP) Projects
- Billing: Invoiced at milestone schedule
- Revenue Recognition: Upon customer milestone acceptance or passive acceptance completion
- Critical: Ensure anticipated dates are added to milestones and customer sign-off is obtained before billing period ends
Initial Project Setup
Project Lead Assignment
- Ensure you (as PM) are assigned as the project lead in Kantata
- Navigate to Kantata > Resourcing > Resource Center > Projects
- Filter by Project Lead = you to review allocations for your projects
Resource Allocation Types
- Soft Bookings: Non-confirmed allocations (displayed as striped cells) - used when final schedule isn't known yet
- Hard Bookings: Confirmed allocations (displayed as colored cells) - promises team member availability
Time Tracking Guidelines
- refer here for a complete breakdown of non-billable vs billable time
- be sure to review with your project team members independent or in conjunction with the Working Agreement
Resource Management & Forecasting
Creating Resource Requests
- Navigate to Resource Center > Projects
- Under assigned team members, click "Add Team Member" or "Add unnamed Resource"
- Fill in information and click "Submit Request" (Note: "Post" will not submit the request)
- If too early for specific resource but you have rough schedule, hard schedule with "unnamed resource" for capacity planning
Allocation Guidelines
All active projects must be fully allocated on a rolling 12-week basis and should have a combination of Hard and Soft allocations that account for the full 12-week window.
- Hard Allocations (Hard Forecast):
- Hours where we have confirmed client commitment (90%+ confidence)
- Examples: scheduled meetings, project plans, and confirmed upcoming deliverables
- Promises team member availability for requested hours
- Projects into revenue forecast (90-95% accuracy)
- Requires approval by project coordinator
- Soft Allocations (Soft Forecast):
- The PM's best assumption of likely project revenue based on current trajectory, scope, and client engagement β an informed estimate, not a guarantee
- Used for visibility and planning when schedule is uncertain
- Will not promise team member availability
- Considered upside forecast (40% accuracy)
What's expected of every PM:
- Confirm Hard allocations reflect only work with strong client confirmation
- Fill remaining weeks with your best Soft forecast assumptions
- Ensure no active project is left unallocated across the 12-week horizon
Blocked or missing information? If you're waiting on client confirmation, missing project details, or have any blockers, loop in your PMO Manager first and escalate any outstanding issues to PS leadership. Do not leave projects unallocated while waiting β use Soft allocations to capture your best current estimate.
Forecast Management Process
- Go to Resource Center > Project Tab and filter via "My Projects"
- Expand your project to see all PS Engineers and yourself
- Click on each team member's name and submit Resource Request via the "activity" window
- Assign to Project Coordinator as recipient
Team Member Availability
- Navigate to Kantata > Resourcing > Resource Center > Team Members
- View specific resource availability when changing or increasing allocations
Upside Tracking
Upside is reviewed weekly, monthly, and quarterly. Track upside in the weekly revenue tracking sheet (pinned to ps-pmo channel) for these scenarios:
- Uncertain Forecasting: Cannot confidently forecast project resources 2 months out β soft-book PSE/PM/TA time
- Pending Change Orders: CO not yet reflected in Kantata β review details with PMO Manager
- Milestone Date Adjustments: Anticipated completion in quarter but not yet confirmed/verified
- Customer Reporting: Call out upside in customer reports (e.g., "can only soft-forecast 'x' amount because of 'y' constraints")
Fixed Fee Project Management
Milestone Date Updates
- Open your project and select "Task Tracker" tab
- Expand milestones
- Update sign-off dates to reflect in forecast
Revenue Recognition & Project Closure
T&M Project Revenue Release
- Timing: Revenue recognized monthly
- Process:
- PSEs/PMs log time weekly via Kantata timesheets
- Project Lead/PM approves entries weekly
- Month-end: Project Coordinator compiles approved timesheets and submits to Finance
Fixed Fee Project Revenue Release
- Timing: Upon customer milestone acceptance or passive acceptance completion
- Process:
- PM copies Project Milestone/Closure document
- Attach document to customer for closure, copying Operations coordinator
- Customer signs document or replies "approved"
- PM sets milestone in Kantata to "complete"
Passive Acceptance
- Timeline: Customer has 5 business days to approve/deny (Day 1 = notification sent day)
- Action: If no response within timeframe, milestone can be set to "complete"
Required Kantata Updates for Milestones
Update these custom fields in respective milestone tasks:
- Sign-Off Sent: When acceptance request email is sent
- Sign-Off Received: When customer acceptance received or passive acceptance achieved
- Passive Acceptance Utilized: If passive acceptance is used
- Attachments: Acceptance email (PDF format) or milestone document
- Dates: Update actual start/kickoff/end dates
Important: Only update top-level milestone fields; sub-activities remain unchanged.
Key Reminders
- Adhere to scheduling guidelines for accurate resource allocation and revenue forecasting
- Weekly timesheet submissions are critical for T&M revenue recognition
- Milestone management is crucial for FF project revenue recognition
- Regular upside tracking ensures accurate quarterly forecasting
This is a folder to house guidance for the Planning phase
Kantata Date Entry Guidance for Program Managers
Date Fields
Planned Start Date
Enter during initial project planning or when a task/milestone is created. This is your baseline β reflect the originally scheduled start date and do not update it once work begins.
Planned Due Date
Enter at the same time as Planned Start Date. For client-facing milestones, this should align with any contractual or SOW commitments. Like Planned Start, do not update.
Start Date
Enter on the day work begins (no later than the next business day). Only log when work has genuinely started β do not enter speculatively.
Due Date
Enter on the day completion is confirmed. For milestones requiring client acceptance, use the acceptance date, not the submission date. Do not pre-populate as a target.
Variance Reason Fields
Start Variance Reason
Document the root cause, who or what drove the variance (internal team, client, third party, scope change), and any impact on downstream tasks.
Format: [Early/Late] by [# days] β [Root cause]. [Downstream impact or mitigation, if applicable.]
Examples:
- Late by 5 days β Client did not provide access credentials by the scheduled onboarding date. Downstream environment setup shifted accordingly.
- Early by 2 days β Predecessor task completed ahead of schedule; team capacity was available.
End Variance Reason
Document the root cause, whether it was within the team's control, and any corrective action taken or planned.
Format: [Early/Late] by [# days] β [Root cause]. [Corrective action or lessons learned, if applicable.]
Examples:
- Late by 8 days β Mid-task scope expansion added unanticipated complexity. Change order submitted and approved; schedule formally updated.
- Early by 3 days β Team identified an automation opportunity that reduced manual effort. No downstream impact.
Quick Reference
| Field | When to Enter | Update After Entry? |
|---|---|---|
| Planned Start | At project/task creation | No |
| Planned Due Date | At project/task creation | No |
| Start Date | When work begins | No |
| Due Date | When work is confirmed complete/accepted | No |
| Start Variance Reason | When actual vs. planned start do not match | As needed |
| End Variance Reason | When actual vs. planned end do not match | As needed |
FAQ
Q: Sometimes the start date gets populated when the first time card has been submitted; is it ok if the start dates are after the first time card submission, especially if the PM starts doing pre-planning before the kickoff?
A: Yes, using the first timesheet was an approach used by operations when there is no start date entered. Please use the date fields as described above and there will be no issue with timesheets being submitted before the project official start date.
[TOC]
GitLab Project Management AI Best Practices
Introduction
Welcome to the GitLab Project Management AI Knowledge Base! This collaborative resource shares approaches for using artificial intelligence to streamline project management processes, enhance collaboration, and improve delivery outcomes within GitLab projects.
This guide presents various techniques for integrating AI with existing templates and processes. Contributors have discovered significant opportunities to automate routine tasks, generate valuable insights, and support decision-making.
Some key value and efficiency successes reported by users include:
- Streamlined status reports with enhanced accuracy based on data inputs
- Fast Collaboration Project setup
- Easy generation of project data for analytical purposes
- Efficient data aggregation to easily find project information
- Improved data transformation processes
- Reduced context switching by using AI as an information cache
- Leveraging meeting transcripts to form content
- Expanding technical capabilities to create mockups, make API calls, and build simple apps
How to Use AI to Enhance GitLab Projects
Before getting into specifics, here are some general approaches to best use AI:
- Record Everything: Using audio transcripts has been one of the most valuable tools to help build accurate narratives.
- Copy & Paste all the things: Grabbing conversations from email, slack messages, or GitLab issues provides good information to summarize long discussions and associated timelines.
- Be aware of GitLab's data use policies
- Some relevant handbook pages
- (External) Data Classification Standard
- (Internal) Data Classification Index
- (Internal) AI at GitLab
- Some relevant handbook pages
AI-Enhanced Project Management Techniques
1. Status Report Generation and Analysis
Status Reports follow a consistent structure that's ideal for AI assistance:
Technique: Automated Draft Creation
- Use AI to generate initial status report drafts by analyzing project data, recent activities, and previous reports
- Ensure consistency by having AI check that all required sections (Project Scope, Overall Status, What's Next, Budget, RAID items) are completed with appropriate detail
- Leverage AI to suggest appropriate status indicators (π’/π‘/π΄) based on project metrics and narrative content
- Calculate and highlight remaining hours and burn rates automatically
- Analyze status narratives to proactively identify potential risks not explicitly listed
2. Project Planning and Template Customization
Templates (Status Template, Canvas Template, Collaboration Project Template, etc.) can be enhanced with AI:
Technique: Custom Template Generation
- Create tailored versions of templates to match specific project needs
- Break down SOW activities into structured GitLab issues (as outlined in "Directions to make issues from a sow")
- Generate realistic project timelines based on activity dependencies and resource availability
3. Project Documentation Enhancement
AI can improve Charter Templates, Collaboration Projects, and Kickoff Meeting materials:
Technique: Documentation Standardization
- Ensure all project documents follow GitLab's formatting and content standards
- Create project-specific content for wikis, charters, and kickoff materials
- Generate comprehensive team member lists with roles and responsibilities
- Organize bookmarks based on project type and stage
- Draft detailed agendas for kickoffs and status meetings based on project context
4. RAID Management and Risk Mitigation
RAID tracking can be enhanced through AI analysis:
Technique: Comprehensive Risk Creation
- Generate risks that include Risk Description, Background, Specific Technical Concerns, Current Customer Questions, Risk Impact, Mitigation Strategy, Ownership, and Status
5. Project Closure and Milestone Documentation
For project closure (using templates like TEMPLATE_Project Milestone_Closure Document, AI can:
Technique: Project Closure Assistance
- Compare completed deliverables against SOW requirements to ensure completeness
- Analyze project data to identify strengths and improvement opportunities
- Generate draft acceptance documentation for customer review
- Evaluate project outcomes against initial goals and KPIs
- Identify key learnings to be shared with the broader team
Getting Started with AI in Project Management
Implementation Approach
Here's how to integrate AI into your workflow:
- Data Preparation: Ensure project data is well-structured and accessible
- Template Selection: Choose appropriate templates from the project knowledge base
- Prompt Engineering: Develop effective prompts that generate valuable outputs
- Review and Refinement: Always review AI-generated content before sharing with stakeholders
Best Practices
- Maintain Human Oversight: Use AI as an assistant, not a replacement for judgment
- Focus on High-Value Activities: Prioritize AI use for repetitive, time-consuming tasks
- Iterate and Improve: Continuously refine prompts and processes based on results
- Respect Confidentiality: Ensure AI tools are used in compliance with data privacy requirements
- Share Successes: Document effective AI use cases that might help colleagues
AI Application Examples with Specific Artifacts
Status Reports
- Generate draft status updates by analyzing GitLab issues, milestones, and previous reports
- Suggest appropriate status indicators based on progress metrics and narrative content
- Identify missing information in draft reports before they're shared with stakeholders
Canvas Templates
- Auto-populate team member information from project directories
- Generate initial goal statements based on SOW activities
- Create comprehensive key resources lists based on project type
Collaboration Projects
- Translate SOW activities into structured GitLab epics and issues
- Generate detailed descriptions for each activity based on SOW language
- Create relevant labels based on project characteristics
Charter Templates
- Populate DRI tables with appropriate team members
- Generate project-specific dashboard links
Canned Actions
- Use the Project Knowledge base to store pre-planning agendas, kickoff agendas, and welcome emails
CONTRIBUTE: How have you applied AI to specific GitLab artifacts? Share your examples!
Contribution Template
When adding your own AI techniques to this knowledge base, please use the following format:
### [Technique Name]
**Problem It Solves**:
[Describe the challenge or inefficiency this technique addresses]
**Implementation Method**:
[Step-by-step process for implementing this technique]
**Results/Benefits**:
[Describe the outcomes and improvements achieved]
**Tools Used**:
[List specific AI tools or models that work well for this technique]
**Contributor**:
[Optional: Your name/handle]
Closing Thoughts
This knowledge base is evolving as AI technology develops. These strategies are shared not as prescriptive guidance but as potential inspiration for those interested in exploring similar productivity enhancements.
Have you found other helpful ways to integrate AI into your project management workflow? Please contribute your experiences by following the contribution guidelines above. Together, we can build a comprehensive resource of AI-enhanced project management techniques for the GitLab community.
This README MAY have been created with heavy AI assistance. Contributors are encouraged to discuss, add, or amend these approaches in more detail at any time.
[TOC]
Kantata Dashboard Configuration Guide for GitLab Professional Services
Overview
This guide will help you set up a powerful at-a-glance project portfolio dashboard in Kantata that displays the most critical project information for effective management and reporting.

Accessing the Dashboard Configuration
- Log into Kantata
- Click on Projects in the main navigation
- From the "Show" dropdown menu, select Your Projects
- Click the Configure button (usually represented by a gear icon)
Selecting and Ordering Columns
Select the following columns in this specific order for optimal visibility of critical project information:
- Start Date
- Due Date
- Budget Burn
- Hours Logged
- Hours Estimated
- Hours Approved
- Status
- % Done
- Technical Account Manager
- Opportunity Owner
- Provider Lead
- Tasks Done
- Next Due Milestone
- Time Entry Notes Required
- Task Status Set
- Stage
- Time Tracking
- Last Updated
- Project Color
- Paid
Save this configuration as your default view for quick access
Kantana Hours Compare Report Quick Guide
What Is It?
A report showing week-by-week comparison of actual vs. allocated hours against capacity. Helps track resources and monitor project progress.
Key Information
- Purpose: Compare actual hours worked vs. forecasted hours for all project contributors
- Main View: Weekly breakdown of hours (actual, allocated, capacity)
- Billable Analysis: Use "Billable Project Default" and "Billable Actuals Only" filters together for billable-specific comparisons
- Results: Reflect your specific project execution approach
How To Use
- Review weekly to spot resource utilization issues
- Identify over/under-allocated team members
- Compare billable allocated hours vs. actual billable hours
- Make resource adjustments based on findings
Benefits
- Holistic view of all contributors' hours
- Early warning for project overruns
- Better capacity planning
- Improved resource allocation
Active and Completed Project Report Guide
Purpose
This report is used for understanding which projects are in progress and completed by project leads (PMs). It's particularly helpful when closing out the month/quarter to ensure internal retrospective data is collected and populated.
Who Should Use This Guide
- Project Managers (PMs)
- Managers
- Anyone responsible for project oversight and quarterly/monthly closures
Step-by-Step Instructions
-
Access the Report Navigate to the Month End Reporting-Free Services Report in Kantata
-
Set Date Range
- Choose your desired date range for the reporting period
- Consider aligning with your monthly or quarterly closure timeline
- PS Type
- Select all
- PS Category
- Select all (filter out Edu Services if needed)
- User Type
- Select all
- Filter by Project Lead
- Filter by Project Lead = PM Assigned to review only your assigned projects
- Managers can filter by specific team members or leave unfiltered to see all projects
- Configure Project Status Filters Uncheck the following Project Status options:
- Cancelled
- Estimate
- Prospect
- Backlog
- NA
Keep checked:
- Active
- At Risk
- Blocked
- Cancelled
- Closed
- Completed
- In Setup
- Not Started
- Okay to Start
- On Hold
- Configure Free Services Filter
- Select all
- Opp Owner & SA
- Select all
- Project Components
- Select all (filter out Edu Services if needed)
- Generate and Review
- Run the report to see all relevant started, Due, and Completed projects within the date filter
- Use this data for retrospective analysis and internal data collection
Best Practices
- Run this report regularly during month-end and quarter-end processes
- Ensure all project data is up-to-date before generating the report (start/end date, kickoff date, updated project status)
- Use the results to verify project completion status and gather insights for retrospectives within the internal retro issue
- Coordinate with your Project Coordinator (PC) if you have any questions around project closure activities