Data/tasks.json

{
  "schemaVersion": 1,
  "tasks": [
    { "id": "ASSESS-01", "title": "Run the read-only assessment of every tenant", "workstream": "Assessment", "scope": "Project", "moment": "Now", "owner": "Migration team" },
    { "id": "ASSESS-02", "title": "Design the target architecture, the strategy and the roadmap", "workstream": "Assessment", "scope": "Project", "moment": "Now", "owner": "Migration team and Customer" },
    { "id": "ASSESS-03", "title": "Present the summary to management", "workstream": "Assessment", "scope": "Project", "moment": "Now", "owner": "Migration team" },

    { "id": "KICK-01", "title": "Hold the kickoff: contacts, weekly steering meeting, channels and calendar", "workstream": "Kickoff", "scope": "Project", "moment": "Now", "owner": "Migration team and Customer" },
    { "id": "KICK-02", "title": "Get the access the team needs: named accounts in each tenant, the DNS hosts, and the third-party products in use", "workstream": "Kickoff", "scope": "Project", "moment": "Now", "owner": "Customer" },
    { "id": "KICK-03", "title": "Open the registers (risks, decisions, migration, reconciliation), the shared tracking file and the weekly report template", "workstream": "Kickoff", "scope": "Project", "moment": "Now", "owner": "Migration team" },
    { "id": "KICK-04", "title": "Refresh the assessment of every tenant before finalizing the identity matrix", "workstream": "Kickoff", "scope": "Project", "moment": "Now", "owner": "Migration team", "procedure": "INV-COVERAGE" },
    { "id": "KICK-05", "title": "Set up the team's test environment: a short-lived test tenant, a test virtual machine and a team conversation", "workstream": "Kickoff", "scope": "Project", "moment": "Now", "owner": "Migration team" },
    { "id": "KICK-06", "title": "Agree how the team works: technical meetings, weekly follow-up, and no change without joint discussion", "workstream": "Kickoff", "scope": "Project", "moment": "Now", "owner": "Migration team and Customer" },

    { "id": "SEC-01", "title": "Check the unified audit log in every tenant and turn it on where it is off", "workstream": "Security", "scope": "Project", "moment": "Now", "owner": "Migration team" },
    { "id": "SEC-02", "title": "Create and hand over the emergency access accounts of the target", "workstream": "Security", "scope": "Target", "moment": "Preparation", "owner": "Migration team and Customer", "procedure": "EMERGENCY-ACCESS" },
    { "id": "SEC-03", "title": "Compare Conditional Access between the target and the sources, run it in report-only mode, then deploy it", "workstream": "Security", "scope": "Target", "moment": "Preparation", "owner": "Migration team", "procedure": "ENT-MFA", "condition": { "tables": ["conditionalAccess"] } },
    { "id": "SEC-04", "title": "Configure self-service password reset in the target for the users of {tenant}", "workstream": "Security", "scope": "Source", "moment": "Preparation", "owner": "Migration team", "condition": { "tables": ["users"] } },
    { "id": "SEC-05", "title": "Review the permissions of open sites and teams before AI assistants reach them", "workstream": "Security", "scope": "Project", "moment": "Preparation", "owner": "Migration team and Customer", "condition": { "tables": ["sites", "teams"] } },
    { "id": "SEC-06", "title": "Review privileged roles and MFA exclusions in {tenant}, and plan the removal of vendor accounts once responsibilities are handed over", "workstream": "Security", "scope": "Source", "moment": "Preparation", "owner": "Migration team and Customer", "procedure": "ENT-ADMINS", "condition": { "rules": ["ENT-ADMINS"], "tables": ["adminRoles"] } },
    { "id": "SEC-07", "title": "Apply the download restriction policy for unmanaged devices", "workstream": "Security", "scope": "Target", "moment": "Preparation", "owner": "Migration team" },

    { "id": "ID-01", "title": "Clean up the member and guest accounts of {tenant} with the designated owners", "workstream": "Identities", "scope": "Source", "moment": "Preparation", "owner": "Migration team and Customer", "procedure": "ENT-INACTIVE", "condition": { "tables": ["users"] } },
    { "id": "ID-02", "title": "Resolve the duplicates and produce the identity matrix of {tenant}", "workstream": "Identities", "scope": "Source", "moment": "Now", "owner": "Migration team and Customer", "procedure": "IDENTITY-MATRIX", "condition": { "tables": ["users"] } },
    { "id": "ID-03", "title": "Handle the guests of the target that mirror internal accounts of {tenant}", "workstream": "Identities", "scope": "Source", "moment": "Preparation", "owner": "Migration team and Customer", "procedure": "CMP-CROSS-GUESTS", "condition": { "rules": ["CMP-CROSS-GUESTS"] } },

    { "id": "GOV-01", "title": "Restrict application registration and review user consent in the target", "workstream": "Governance", "scope": "Target", "moment": "Preparation", "owner": "Migration team", "procedure": "ENT-AUTHORIZATION" },
    { "id": "GOV-02", "title": "Limit the creation of teams to a security group", "workstream": "Governance", "scope": "Target", "moment": "Preparation", "owner": "Migration team and Customer", "procedure": "ENT-GROUP-CREATION" },
    { "id": "GOV-03", "title": "Review overlapping groups between tenants and confirm the target design: merge, split and naming", "workstream": "Governance", "scope": "Project", "moment": "Preparation", "owner": "Migration team and Customer", "condition": { "tables": ["groups"] }, "decision": "Which groups merge, which stay separate, and which naming convention applies?" },

    { "id": "LIC-01", "title": "Confirm the license need, then coordinate the purchase and the activation", "workstream": "Licenses", "scope": "Project", "moment": "Preparation", "owner": "Migration team and Customer", "procedure": "CMP-LICENSES", "condition": { "tables": ["licenses"] } },

    { "id": "TOOL-01", "title": "Evaluate and recommend the migration tool on a coverage matrix", "workstream": "Migration tool", "scope": "Project", "moment": "Preparation", "owner": "Migration team", "decision": "Which migration tool covers the scope of this project?" },
    { "id": "TOOL-02", "title": "Decide how 1:1 Teams chats are kept, and test the restore if a backup product holds them", "workstream": "Migration tool", "scope": "Project", "moment": "Preparation", "owner": "Migration team and Customer", "condition": { "tables": ["teamsUsers"] }, "decision": "How are 1:1 Teams chats kept after the cutover?" },
    { "id": "TOOL-03", "title": "Install and configure the chosen migration tool", "workstream": "Migration tool", "scope": "Project", "moment": "Preparation", "owner": "Migration team" },

    { "id": "MAIL-01", "title": "Inventory the DNS of each domain of {tenant} (MX, SPF, DKIM, DMARC, Autodiscover) and plan the TTL reductions", "workstream": "Messaging", "scope": "Source", "moment": "Preparation", "owner": "Migration team", "procedure": "DNS-TTL", "condition": { "tables": ["publicDns"] } },
    { "id": "MAIL-02", "title": "Validate the connectors and mail flow rules of the domains of {tenant}, and settle the conflicting shared mailboxes", "workstream": "Messaging", "scope": "Source", "moment": "Preparation", "owner": "Migration team and Customer", "procedure": "EXO-CONNECTORS", "condition": { "rules": ["CMP-SHARED-MAILBOXES"], "tables": ["connectors", "transportRules"] } },
    { "id": "MAIL-03", "title": "Recreate the dynamic groups and the email signature setup in the target", "workstream": "Messaging", "scope": "Project", "moment": "Preparation", "owner": "Migration team", "condition": { "tables": ["dynamicGroups"] } },

    { "id": "DEV-01", "title": "Add the applications that {tenant} needs to Intune in the target", "workstream": "Devices", "scope": "Source", "moment": "Preparation", "owner": "Migration team", "condition": { "tables": ["intuneApps"] } },
    { "id": "DEV-02", "title": "Set up Autopilot for the devices of {tenant}: profile, naming and Windows Hello", "workstream": "Devices", "scope": "Source", "moment": "Preparation", "owner": "Migration team", "procedure": "INT-AUTOPILOT", "condition": { "tables": ["autopilotDevices"] } },
    { "id": "DEV-03", "title": "Confirm the device count of {tenant}, and list the Macs and the users who keep local administrator rights", "workstream": "Devices", "scope": "Source", "moment": "Preparation", "owner": "Customer", "condition": { "tables": ["managedDevices"] } },
    { "id": "DEV-04", "title": "Validate the inventory of locally installed applications on the devices of {tenant}, to spot what the reset would lose", "workstream": "Devices", "scope": "Source", "moment": "Preparation", "owner": "Migration team and Customer", "condition": { "tables": ["managedDevices"] } },
    { "id": "DEV-05", "title": "Align the Intune configuration and compliance policies", "workstream": "Devices", "scope": "Project", "moment": "Preparation", "owner": "Migration team", "procedure": "INT-POLICIES", "condition": { "tables": ["intunePolicies"] } },
    { "id": "DEV-06", "title": "Write the script that reconfigures the profiles of the unmanaged devices of {tenant}: credential cache, Outlook, Teams and OneDrive", "workstream": "Devices", "scope": "Source", "moment": "Preparation", "owner": "Migration team", "condition": { "tables": ["devices"] } },

    { "id": "VOICE-01", "title": "Analyze telephony across the tenants, then set the strategy (Calling Plans, Operator Connect, Direct Routing) and the porting plan", "workstream": "Teams Phone", "scope": "Project", "moment": "Preparation", "owner": "Migration team and Customer", "procedure": "TEL-ROUTING-TARGET", "condition": { "tables": ["phoneNumbers"] }, "decision": "Which telephony model will the target use?" },

    { "id": "BUILD-01", "title": "Create the target accounts, groups, teams and lists of {tenant} by script, once the duplicates are settled", "workstream": "Target build", "scope": "Source", "moment": "Preparation", "owner": "Migration team", "condition": { "tables": ["users"] } },
    { "id": "BUILD-02", "title": "Confirm the SharePoint capacity available before the pre-copy", "workstream": "Target build", "scope": "Target", "moment": "Preparation", "owner": "Migration team", "procedure": "CMP-CAPACITY", "condition": { "tables": ["sites"] } },
    { "id": "BUILD-03", "title": "Deliver the configuration report of the target", "workstream": "Target build", "scope": "Target", "moment": "Preparation", "owner": "Migration team" },
    { "id": "BUILD-04", "title": "Keep the documentation, the migration register (users, content, sites) and quality assurance", "workstream": "Target build", "scope": "Project", "moment": "Preparation", "owner": "Migration team" },
    { "id": "BUILD-05", "title": "Set up the baseline of the new target: verified domains, administrators, licenses and default policies", "workstream": "Target build", "scope": "Target", "moment": "Now", "owner": "Migration team", "targetState": "New" },
    { "id": "BUILD-06", "title": "Check what the consolidation changes for the users already in the target, and tell them", "workstream": "Target build", "scope": "Target", "moment": "Preparation", "owner": "Migration team and Customer", "targetState": "Production" },

    { "id": "POC-01", "title": "Get a test domain, set it up in a source, and create the test data and two test devices", "workstream": "Pilot", "scope": "Project", "moment": "Preparation", "owner": "Migration team" },
    { "id": "POC-02", "title": "Move the test domain to the target and test sending and receiving", "workstream": "Pilot", "scope": "Project", "moment": "Preparation", "owner": "Migration team", "procedure": "TARGET-DOMAIN" },
    { "id": "POC-03", "title": "Copy sample sites and teams, then validate the data", "workstream": "Pilot", "scope": "Project", "moment": "Preparation", "owner": "Migration team" },
    { "id": "POC-04", "title": "Document and run supervised pilot cases: multi-tenant users, guests, and private or shared channels", "workstream": "Pilot", "scope": "Project", "moment": "Preparation", "owner": "Migration team and Customer", "procedure": "TMS-CHANNELS" },
    { "id": "POC-05", "title": "Try the device reset: Autopilot, Windows Hello, endpoint protection and applications", "workstream": "Pilot", "scope": "Project", "moment": "Preparation", "owner": "Migration team", "condition": { "tables": ["managedDevices"] } },
    { "id": "POC-06", "title": "Write the cutover procedure, the go/no-go criteria, the rollback plan and the team's step-by-step checklist", "workstream": "Pilot", "scope": "Project", "moment": "Preparation", "owner": "Migration team", "procedure": "GO-NOGO" },
    { "id": "POC-07", "title": "Write the user guides and adjust them after testing", "workstream": "Pilot", "scope": "Project", "moment": "Preparation", "owner": "Migration team" },
    { "id": "POC-08", "title": "Deliver the pilot report: gaps, fixes and accepted limits", "workstream": "Pilot", "scope": "Project", "moment": "Preparation", "owner": "Migration team" },
    { "id": "POC-09", "title": "Build the support knowledge base", "workstream": "Pilot", "scope": "Project", "moment": "Preparation", "owner": "Migration team" },

    { "id": "PREP-01", "title": "Get written approval to start the migration of {wave}, and activate the licenses", "workstream": "Preparation", "scope": "Wave", "moment": "Preparation", "owner": "Customer" },
    { "id": "PREP-02", "title": "Pre-copy the data of {tenant} (Exchange, OneDrive, SharePoint, Teams), follow the progress and resolve the errors", "workstream": "Preparation", "scope": "Source", "moment": "Before cutover", "owner": "Migration team", "condition": { "tables": ["mailboxes", "sites", "oneDrive", "teams"] } },
    { "id": "PREP-03", "title": "Map the guest permissions, create the SharePoint access groups and export the reference permissions of {tenant}", "workstream": "Preparation", "scope": "Source", "moment": "Before cutover", "owner": "Migration team", "condition": { "tables": ["sites", "sharePointExternalUsers"] } },
    { "id": "PREP-04", "title": "Send the announcement, the downtime notice and the local data backup procedure to {wave}", "workstream": "Preparation", "scope": "Wave", "moment": "Before cutover", "owner": "Migration team and Customer" },
    { "id": "PREP-05", "title": "Prepare the cutover of {wave}: procedure, rehearsal and formal go/no-go", "workstream": "Preparation", "scope": "Wave", "moment": "Before cutover", "owner": "Migration team and Customer", "procedure": "GO-NOGO" },
    { "id": "PREP-06", "title": "Open a proactive Microsoft support ticket for the cutover of {wave}", "workstream": "Preparation", "scope": "Wave", "moment": "Before cutover", "owner": "Migration team" },
    { "id": "PREP-07", "title": "Validate the backup of {tenant} before the cutover", "workstream": "Preparation", "scope": "Source", "moment": "Before cutover", "owner": "Migration team and Customer" },
    { "id": "PREP-08", "title": "Write and test the Mac procedure for {tenant}", "workstream": "Preparation", "scope": "Source", "moment": "Before cutover", "owner": "Migration team", "procedure": "INT-CONNECTORS", "condition": { "rules": ["INT-CONNECTORS"] } },
    { "id": "PREP-09", "title": "Decide what happens to the empty or inactive sites of {tenant}", "workstream": "Preparation", "scope": "Source", "moment": "Preparation", "owner": "Customer", "procedure": "SPO-INACTIVE", "condition": { "rules": ["SPO-INACTIVE"] } },
    { "id": "PREP-10", "title": "Close the anonymous links and clean up the orphan permissions of {tenant}", "workstream": "Preparation", "scope": "Source", "moment": "Preparation", "owner": "Migration team and Customer", "procedure": "SPO-SHARING", "condition": { "rules": ["SPO-SHARING"], "tables": ["sharePointExternalUsers"] } },

    { "id": "CUT-01", "title": "Run the cutover of {wave}: assignments, final copy and source deactivation", "workstream": "Cutover", "scope": "Wave", "moment": "Cutover", "owner": "Migration team" },
    { "id": "CUT-02", "title": "Lead the device reset of {tenant} in batches during the cutover, and provide level 2 and 3 support", "workstream": "Cutover", "scope": "Source", "moment": "Cutover", "owner": "Migration team and Customer", "condition": { "tables": ["managedDevices"] } },
    { "id": "CUT-03", "title": "Re-register MFA, self-service password reset and applications in Entra ID for the users of {tenant}", "workstream": "Cutover", "scope": "Source", "moment": "Cutover", "owner": "Migration team and Customer", "procedure": "ENT-MFA-REGISTRATION", "condition": { "tables": ["users"] } },
    { "id": "CUT-04", "title": "Send the invitations to shared sites and re-invite the external guests of {tenant}", "workstream": "Cutover", "scope": "Source", "moment": "Cutover", "owner": "Migration team", "procedure": "SPO-EXTERNAL", "condition": { "rules": ["ENT-GUESTS"], "tables": ["sharePointExternalUsers"] } },
    { "id": "CUT-05", "title": "Release the domains of {tenant} from all their references", "workstream": "Cutover", "scope": "Source", "moment": "Before cutover", "owner": "Migration team", "procedure": "RELEASE-DOMAIN", "condition": { "tables": ["domains"] } },
    { "id": "CUT-06", "title": "Add and verify the domains of {tenant} in the target, then turn on mail", "workstream": "Cutover", "scope": "Source", "moment": "Cutover", "owner": "Migration team", "procedure": "TARGET-DOMAIN", "condition": { "tables": ["domains"] } },
    { "id": "CUT-07", "title": "Point MX, SPF and Autodiscover of the domains of {tenant} to the target", "workstream": "Cutover", "scope": "Source", "moment": "Cutover", "owner": "Migration team", "procedure": "DNS-SERVICES", "condition": { "tables": ["publicDns"] } },
    { "id": "CUT-08", "title": "Run the mail flow test of the domains of {tenant}", "workstream": "Cutover", "scope": "Source", "moment": "Cutover", "owner": "Migration team", "procedure": "MAIL-FLOW-TEST", "condition": { "tables": ["domains"] } },

    { "id": "STAB-01", "title": "Provide post-migration support and stabilization for {wave}", "workstream": "Stabilization", "scope": "Wave", "moment": "After cutover", "owner": "Migration team" },
    { "id": "STAB-02", "title": "Reconcile the data of {tenant}, then validate and document the acceptance", "workstream": "Stabilization", "scope": "Source", "moment": "After cutover", "owner": "Migration team and Customer" },

    { "id": "CLOSE-01", "title": "Run the final audit, then close the Azure services and subscriptions of {tenant}", "workstream": "Closure", "scope": "Source", "moment": "Closure", "owner": "Migration team and Customer", "condition": { "tables": ["azureSubscriptions"] } },
    { "id": "CLOSE-02", "title": "Set the retention strategy for backups and test access after a tenant is closed", "workstream": "Closure", "scope": "Project", "moment": "Closure", "owner": "Migration team and Customer" },
    { "id": "CLOSE-03", "title": "Define and set up the periodic review of access and guest accounts", "workstream": "Closure", "scope": "Target", "moment": "Closure", "owner": "Migration team and Customer" },
    { "id": "CLOSE-04", "title": "Clean up and close {tenant} in a controlled way, on documented authorization", "workstream": "Closure", "scope": "Source", "moment": "Closure", "owner": "Migration team and Customer" },
    { "id": "CLOSE-05", "title": "Coordinate the removal of the licenses of {tenant}", "workstream": "Closure", "scope": "Source", "moment": "Closure", "owner": "Customer", "condition": { "tables": ["licenses"] } }
  ]
}